diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 85d1e584..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior. - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Version** -Tell us what version you're running. Find out using the debug menu (Ctrl-M, Debug -> Version Text) -If you send a screenshot just enable it beforehand. diff --git a/.github/workflows/re3_msvc_amd64.yml b/.github/workflows/re3_msvc_amd64.yml index 78994650..863e2f94 100644 --- a/.github/workflows/re3_msvc_amd64.yml +++ b/.github/workflows/re3_msvc_amd64.yml @@ -48,22 +48,14 @@ jobs: - name: Build run: | msbuild -m build/re3.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}} - # - name: Pack artifacts - # run: | - # 7z a re3_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/* - - name: Move binaries to gamefiles + - name: Pack artifacts run: | - mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/re3.exe ./gamefiles/ - mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/re3.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/ + 7z a re3_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/* - name: Upload artifact to actions uses: actions/upload-artifact@v2 with: name: re3_${{matrix.buildtype}}_${{matrix.platform}} - path: ./gamefiles/* + path: ./bin/${{matrix.platform}}/${{matrix.buildtype}} # - name: Upload artifact to Bintray # uses: hpcsc/upload-bintray-docker-action@v1 # with: diff --git a/.github/workflows/re3_msvc_x86.yml b/.github/workflows/re3_msvc_x86.yml index ad60ce43..ff9afb25 100644 --- a/.github/workflows/re3_msvc_x86.yml +++ b/.github/workflows/re3_msvc_x86.yml @@ -48,23 +48,14 @@ jobs: - name: Build run: | msbuild -m build/re3.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}} - # - name: Pack artifacts - # run: | - # 7z a re3_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/* - - name: Move binaries to gamefiles + - name: Pack artifacts run: | - mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/re3.exe ./gamefiles/ - mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/re3.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/ + 7z a re3_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/* - name: Upload artifact to actions uses: actions/upload-artifact@v2 with: name: re3_${{matrix.buildtype}}_${{matrix.platform}} - path: ./gamefiles/* + path: re3_${{matrix.buildtype}}_${{matrix.platform}}.zip # - name: Upload artifact to Bintray # uses: hpcsc/upload-bintray-docker-action@v1 # with: diff --git a/.gitignore b/.gitignore index b4f221f2..44d3eb0b 100644 --- a/.gitignore +++ b/.gitignore @@ -358,5 +358,3 @@ sdk/ codewarrior/re3_Data/ codewarrior/Release/ codewarrior/Debug/ - -src/extras/GitSHA1.cpp \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 5396d3b4..8d753d80 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,10 +6,6 @@ set(PROJECT RE3) project(${EXECUTABLE} C CXX) list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") -include(GetGitRevisionDescription) -get_git_head_revision(GIT_REFSPEC GIT_SHA1 "ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR") -message(STATUS "Building ${CMAKE_PROJECT_NAME} GIT SHA1: ${GIT_SHA1}") - if(WIN32) set(${PROJECT}_AUDIOS "OAL" "MSS") else() diff --git a/README.md b/README.md index bf54e9ed..e0fac061 100644 --- a/README.md +++ b/README.md @@ -1,101 +1,34 @@ re3 logo [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FGTAmodding%2Fre3%2Fbadge%3Fref%3Dmaster&style=flat)](https://actions-badge.atrox.dev/GTAmodding/re3/goto?ref=master) - + ## Intro -In this repository you'll find the fully reversed source code for GTA III ([master](https://github.com/GTAmodding/re3/tree/master/) branch) and GTA VC ([miami](https://github.com/GTAmodding/re3/tree/miami/) branch). - -It has been tested and works on Windows, Linux and FreeBSD, on x86, amd64, arm and arm64.\ -Rendering is handled either by original RenderWare (D3D8) -or the reimplementation [librw](https://github.com/aap/librw) (D3D9, OpenGL 2.1 or above, OpenGL ES 2.0 or above).\ -Audio is done with MSS (using dlls from original GTA) or OpenAL. - -The project has also been ported to the [Nintendo Switch](https://github.com/AGraber/re3-nx/), -[Playstation Vita](https://github.com/Rinnegatamante/re3) and -[Nintendo Wii U](https://github.com/GaryOderNichts/re3-wiiu/). - -We cannot build for PS2 or Xbox yet. If you're interested in doing so, get in touch with us. - -## Installation - -- re3 requires PC game assets to work, so you **must** own [a copy of GTA III](https://store.steampowered.com/app/12100/Grand_Theft_Auto_III/). -- Build re3 or download the latest nightly build: - - [Windows D3D9 MSS 32bit](https://nightly.link/GTAmodding/re3/workflows/re3_msvc_x86/master/re3_Release_win-x86-librw_d3d9-mss.zip) - - [Windows D3D9 64bit](https://nightly.link/GTAmodding/re3/workflows/re3_msvc_amd64/master/re3_Release_win-amd64-librw_d3d9-oal.zip) - - [Windows OpenGL 64bit](https://nightly.link/GTAmodding/re3/workflows/re3_msvc_amd64/master/re3_Release_win-amd64-librw_gl3_glfw-oal.zip) - - [Linux 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/master/ubuntu-latest-gl3.zip) - - [MacOS 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/master/macos-latest-gl3.zip) -- Extract the downloaded zip over your GTA 3 directory and run re3. The zip includes the gamefiles and in case of OpenAL the required dlls. - -## Screenshots - -![re3 2021-02-11 22-57-03-23](https://user-images.githubusercontent.com/1521437/107704085-fbdabd00-6cbc-11eb-8406-8951a80ccb16.png) -![re3 2021-02-11 22-43-44-98](https://user-images.githubusercontent.com/1521437/107703339-cbdeea00-6cbb-11eb-8f0b-07daa105d470.png) -![re3 2021-02-11 22-46-33-76](https://user-images.githubusercontent.com/1521437/107703343-cd101700-6cbb-11eb-9ccd-012cb90524b7.png) -![re3 2021-02-11 22-50-29-54](https://user-images.githubusercontent.com/1521437/107703348-d00b0780-6cbb-11eb-8afd-054249c2b95e.png) - -## Improvements - -We have implemented a number of changes and improvements to the original game. -They can be configured in `core/config.h`. -Some of them can be toggled at runtime, some cannot. - -* Fixed a lot of smaller and bigger bugs -* User files (saves and settings) stored in GTA root directory -* Settings stored in re3.ini file instead of gta3.set -* Debug menu to do and change various things (Ctrl-M to open) -* Debug camera (Ctrl-B to toggle) -* Rotatable camera -* Xinput controller support (Windows) -* No loading screens between islands ("map memory usage" in menu) -* Skinned ped support (models from Xbox or Mobile) -* Rendering - * Widescreen support (properly scaled HUD, Menu and FOV) - * PS2 MatFX (vehicle reflections) - * PS2 alpha test (better rendering of transparency) - * PS2 particles - * Xbox vehicle rendering - * Xbox world lightmap rendering (needs Xbox map) - * Xbox ped rim light - * Xbox screen rain droplets - * More customizable colourfilter -* Menu - * Map - * More options - * Controller configuration menu - * ... -* Can load DFFs and TXDs from other platforms, possibly with a performance penalty -* ... - -## To-Do - -The following things would be nice to have/do: - -* Fix physics for high FPS -* Improve performance on lower end devices, especially the OpenGL layer on the Raspberry Pi (if you have experience with this, please get in touch) -* Compare code with PS2 code (tedious, no good decompiler) -* [PS2 port](https://github.com/GTAmodding/re3/wiki/PS2-port) -* Xbox port (not quite as important) -* reverse remaining unused/debug functions -* compare Codewarrior build with original binary for more accurate code (very tedious) - -## Modding - -Asset modifications (models, texture, handling, script, ...) should work the same way as with original GTA for the most part. - -Mods that make changes to the code (dll/asi, CLEO, limit adjusters) will *not* work. -Some things these mods do are already implemented in re3 (much of SkyGFX, GInput, SilentPatch, Widescreen fix), -others can easily be achieved (increasing limis, see `config.h`), -others will simply have to be rewritten and integrated into the code directly. -Sorry for the inconvenience. +The aim of this project is to reverse GTA III for PC by replacing +parts of the game [one by one](https://en.wikipedia.org/wiki/Ship_of_Theseus) +such that we have a working game at all times. -## Building from Source +## How can I try it? + +- re3 requires game assets to work, so you **must** own [a copy of GTA III](https://store.steampowered.com/app/12100/Grand_Theft_Auto_III/). +- Build re3 or download [the latest nightly build](https://github.com/GTAmodding/re3/actions) (You must be logged in.) +- (Optional) If you want to use optional features like Russian language or menu map, copy the files in /gamefiles folder to your game root folder. +- Move re3.exe to GTA 3 directory and run it. + +## Latest standalone executables to download -When using premake, you may want to point GTA_III_RE_DIR environment variable to GTA3 root folder if you want the executable to be moved there via post-build script. +(Put content of selected archive into gamedir) + +- [MacOS 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/master/macos-latest-gl3.zip) +- [Linux 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/master/ubuntu-latest-gl3.zip) +- [Windows D3D9 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/master/windows-latest-d3d9.zip) +- [Windows OpenGL 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/master/windows-latest-gl3.zip) +- [Windows D3D9 MSS 32bit](https://nightly.link/GTAmodding/re3/workflows/re3_msvc_x86/master/re3_Release_win-x86-librw_d3d9-mss.zip) + +## Building from Source -Clone the repository with `git clone --recursive https://github.com/GTAmodding/re3.git`. Then `cd re3` into the cloned repository. +If you gonna use premake, then before starting you may want to point GTA_III_RE_DIR environment variable to GTA3 root folder, if you want executable to be moved there via post-build script.
Linux Premake @@ -105,6 +38,13 @@ For Linux using premake, proceed: [Building on Linux](https://github.com/GTAmodd
Linux Conan +Obtain source code. +``` +git clone https://github.com/GTAmodding/re3.git +cd re3 +git submodule init +git submodule update --recursive +``` Install python and conan, and then run build. ``` conan export vendor/librw librw/master@ @@ -123,61 +63,36 @@ For FreeBSD using premake, proceed: [Building on FreeBSD](https://github.com/GTA
Windows -Assuming you have Visual Studio 2015/2017/2019: +Assuming you have Visual Studio: +- Clone the repo using the argument `--recursive`. - Run one of the `premake-vsXXXX.cmd` variants on root folder. -- Open build/re3.sln with Visual Studio and compile the solution. - -Microsoft recently discontinued its downloads of the DX9 SDK. You can download an archived version here: https://archive.org/details/dxsdk_jun10 +- Open the project via Visual Studio + +**If you use 64-bit D3D9**: We don't ship 64-bit Dx9 SDK. You need to download it from Microsoft if you don't have it(although it should come pre-installed after some Windows version) **If you choose OpenAL on Windows** You must read [Running OpenAL build on Windows](https://github.com/GTAmodding/re3/wiki/Running-OpenAL-build-on-Windows).
-> :information_source: premake has an `--lto` option if you want the project to be compiled with Link Time Optimization. - -> :information_source: There are various settings in [config.h](https://github.com/GTAmodding/re3/tree/master/src/core/config.h), you may want to take a look there. - -> :information_source: re3 uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of re3, but you also can use LIBRW enviorenment variable to specify path to your own librw. +> :information_source: There are various settings at the very bottom of [config.h](https://github.com/GTAmodding/re3/tree/master/src/core/config.h), you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across. -If you feel the need, you can also use Codewarrior 7 to compile re3 using the supplied codewarrior/re3.mcp project - this requires the original RW33 libraries, and the DX8 SDK. The build is unstable compared to the MSVC builds though, and is mostly meant to serve as a reference. +> :information_source: **Did you notice librw?** re3 uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of re3, but you also can use LIBRW enviorenment variable to specify path to your own librw. ## Contributing -We have a [Coding Style](https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.md) document that isn't followed or enforced very well. +Please read the [Coding Style](https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.md) Document -Do not use features from C++11 or later. - - -## History - -re3 was started sometime in the spring of 2018, -initially as a way to test reversed collision and physics code -inside the game. -This was done by replacing single functions of the game -with their reversed counterparts using a dll. - -After a bit of work the project lay dormant for about a year -and was picked up again and pushed to github in May 2019. -At the time I (aap) had reversed around 10k lines of code and estimated -the final game to have around 200-250k. -Others quickly joined the effort and we made very quick progress -throughout the summer of 2019 -after which the pace slowed down a bit. - -Due to everyone staying home during the start of the Corona pandemic -everybody had a lot of time to work on re3 again and -we finally got a standalone exe in April 2020 (around 180k lines by then). - -After the initial excitement and fixing and polishing the code further, -reVC was started in early May 2020 by starting from re3 code, -not by starting from scratch replacing functions with a dll. -After a few months of mostly steady progress we considered reVC -finished in December. - -Since then we have started reLCS, which is currently work in progress. - - -## License +### Unreversed / incomplete classes (at least the ones we know) +The following classes have only unused or practically unused code left: +``` +NameGrid.cpp - only on mobile (a player name grid, either a very early player name code ala GTA1 or a multiplayer leftover) +PedDebug.cpp - only on mobile (debug code) +HandlingMgr.cpp - debug functions from mobile +CFormationInfo - unused PedAI class that could be found on mobile +CVehicle::ProcessBikeWheel - early bike code (only on mobile) +CAutomobile::DebugCode - debug function from mobile +CBoat::DebugCode - debug function from mobile +CBoat::ModifyHandlingValue - debug function from mobile +CBoat::DisplayHandlingData - debug function from mobile +CStreaming::PrintRequestList - debug function from mobile +d3d8raster.c - only on PC (slight RW modification that we don't actually need) +``` -We don't feel like we're in a position to give this code a license.\ -The code should only be used for educational, documentation and modding purposes.\ -We do not encourage piracy or commercial use.\ -Please keep derivate work open source and give proper credit. diff --git a/cmake/GetGitRevisionDescription.cmake b/cmake/GetGitRevisionDescription.cmake deleted file mode 100644 index 87f691ad..00000000 --- a/cmake/GetGitRevisionDescription.cmake +++ /dev/null @@ -1,284 +0,0 @@ -# - Returns a version string from Git -# -# These functions force a re-configure on each git commit so that you can -# trust the values of the variables in your build system. -# -# get_git_head_revision( [ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR]) -# -# Returns the refspec and sha hash of the current head revision -# -# git_describe( [ ...]) -# -# Returns the results of git describe on the source tree, and adjusting -# the output so that it tests false if an error occurs. -# -# git_describe_working_tree( [ ...]) -# -# Returns the results of git describe on the working tree (--dirty option), -# and adjusting the output so that it tests false if an error occurs. -# -# git_get_exact_tag( [ ...]) -# -# Returns the results of git describe --exact-match on the source tree, -# and adjusting the output so that it tests false if there was no exact -# matching tag. -# -# git_local_changes() -# -# Returns either "CLEAN" or "DIRTY" with respect to uncommitted changes. -# Uses the return code of "git diff-index --quiet HEAD --". -# Does not regard untracked files. -# -# Requires CMake 2.6 or newer (uses the 'function' command) -# -# Original Author: -# 2009-2020 Ryan Pavlik -# http://academic.cleardefinition.com -# -# Copyright 2009-2013, Iowa State University. -# Copyright 2013-2020, Ryan Pavlik -# Copyright 2013-2020, Contributors -# SPDX-License-Identifier: BSL-1.0 -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt) - -if(__get_git_revision_description) - return() -endif() -set(__get_git_revision_description YES) - -# We must run the following at "include" time, not at function call time, -# to find the path to this module rather than the path to a calling list file -get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH) - -# Function _git_find_closest_git_dir finds the next closest .git directory -# that is part of any directory in the path defined by _start_dir. -# The result is returned in the parent scope variable whose name is passed -# as variable _git_dir_var. If no .git directory can be found, the -# function returns an empty string via _git_dir_var. -# -# Example: Given a path C:/bla/foo/bar and assuming C:/bla/.git exists and -# neither foo nor bar contain a file/directory .git. This wil return -# C:/bla/.git -# -function(_git_find_closest_git_dir _start_dir _git_dir_var) - set(cur_dir "${_start_dir}") - set(git_dir "${_start_dir}/.git") - while(NOT EXISTS "${git_dir}") - # .git dir not found, search parent directories - set(git_previous_parent "${cur_dir}") - get_filename_component(cur_dir ${cur_dir} DIRECTORY) - if(cur_dir STREQUAL git_previous_parent) - # We have reached the root directory, we are not in git - set(${_git_dir_var} - "" - PARENT_SCOPE) - return() - endif() - set(git_dir "${cur_dir}/.git") - endwhile() - set(${_git_dir_var} - "${git_dir}" - PARENT_SCOPE) -endfunction() - -function(get_git_head_revision _refspecvar _hashvar) - _git_find_closest_git_dir("${CMAKE_CURRENT_SOURCE_DIR}" GIT_DIR) - - if("${ARGN}" STREQUAL "ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR") - set(ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR TRUE) - else() - set(ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR FALSE) - endif() - if(NOT "${GIT_DIR}" STREQUAL "") - file(RELATIVE_PATH _relative_to_source_dir "${CMAKE_SOURCE_DIR}" - "${GIT_DIR}") - if("${_relative_to_source_dir}" MATCHES "[.][.]" AND NOT ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR) - # We've gone above the CMake root dir. - set(GIT_DIR "") - endif() - endif() - if("${GIT_DIR}" STREQUAL "") - set(${_refspecvar} - "GITDIR-NOTFOUND" - PARENT_SCOPE) - set(${_hashvar} - "GITDIR-NOTFOUND" - PARENT_SCOPE) - return() - endif() - - # Check if the current source dir is a git submodule or a worktree. - # In both cases .git is a file instead of a directory. - # - if(NOT IS_DIRECTORY ${GIT_DIR}) - # The following git command will return a non empty string that - # points to the super project working tree if the current - # source dir is inside a git submodule. - # Otherwise the command will return an empty string. - # - execute_process( - COMMAND "${GIT_EXECUTABLE}" rev-parse - --show-superproject-working-tree - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - OUTPUT_VARIABLE out - ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) - if(NOT "${out}" STREQUAL "") - # If out is empty, GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a submodule - file(READ ${GIT_DIR} submodule) - string(REGEX REPLACE "gitdir: (.*)$" "\\1" GIT_DIR_RELATIVE - ${submodule}) - string(STRIP ${GIT_DIR_RELATIVE} GIT_DIR_RELATIVE) - get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH) - get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} - ABSOLUTE) - set(HEAD_SOURCE_FILE "${GIT_DIR}/HEAD") - else() - # GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a worktree - file(READ ${GIT_DIR} worktree_ref) - # The .git directory contains a path to the worktree information directory - # inside the parent git repo of the worktree. - # - string(REGEX REPLACE "gitdir: (.*)$" "\\1" git_worktree_dir - ${worktree_ref}) - string(STRIP ${git_worktree_dir} git_worktree_dir) - _git_find_closest_git_dir("${git_worktree_dir}" GIT_DIR) - set(HEAD_SOURCE_FILE "${git_worktree_dir}/HEAD") - endif() - else() - set(HEAD_SOURCE_FILE "${GIT_DIR}/HEAD") - endif() - set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data") - if(NOT EXISTS "${GIT_DATA}") - file(MAKE_DIRECTORY "${GIT_DATA}") - endif() - - if(NOT EXISTS "${HEAD_SOURCE_FILE}") - return() - endif() - set(HEAD_FILE "${GIT_DATA}/HEAD") - configure_file("${HEAD_SOURCE_FILE}" "${HEAD_FILE}" COPYONLY) - - configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in" - "${GIT_DATA}/grabRef.cmake" @ONLY) - include("${GIT_DATA}/grabRef.cmake") - - set(${_refspecvar} - "${HEAD_REF}" - PARENT_SCOPE) - set(${_hashvar} - "${HEAD_HASH}" - PARENT_SCOPE) -endfunction() - -function(git_describe _var) - if(NOT GIT_FOUND) - find_package(Git QUIET) - endif() - get_git_head_revision(refspec hash) - if(NOT GIT_FOUND) - set(${_var} - "GIT-NOTFOUND" - PARENT_SCOPE) - return() - endif() - if(NOT hash) - set(${_var} - "HEAD-HASH-NOTFOUND" - PARENT_SCOPE) - return() - endif() - - # TODO sanitize - #if((${ARGN}" MATCHES "&&") OR - # (ARGN MATCHES "||") OR - # (ARGN MATCHES "\\;")) - # message("Please report the following error to the project!") - # message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}") - #endif() - - #message(STATUS "Arguments to execute_process: ${ARGN}") - - execute_process( - COMMAND "${GIT_EXECUTABLE}" describe --tags --always ${hash} ${ARGN} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - RESULT_VARIABLE res - OUTPUT_VARIABLE out - ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) - if(NOT res EQUAL 0) - set(out "${out}-${res}-NOTFOUND") - endif() - - set(${_var} - "${out}" - PARENT_SCOPE) -endfunction() - -function(git_describe_working_tree _var) - if(NOT GIT_FOUND) - find_package(Git QUIET) - endif() - if(NOT GIT_FOUND) - set(${_var} - "GIT-NOTFOUND" - PARENT_SCOPE) - return() - endif() - - execute_process( - COMMAND "${GIT_EXECUTABLE}" describe --dirty ${ARGN} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - RESULT_VARIABLE res - OUTPUT_VARIABLE out - ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) - if(NOT res EQUAL 0) - set(out "${out}-${res}-NOTFOUND") - endif() - - set(${_var} - "${out}" - PARENT_SCOPE) -endfunction() - -function(git_get_exact_tag _var) - git_describe(out --exact-match ${ARGN}) - set(${_var} - "${out}" - PARENT_SCOPE) -endfunction() - -function(git_local_changes _var) - if(NOT GIT_FOUND) - find_package(Git QUIET) - endif() - get_git_head_revision(refspec hash) - if(NOT GIT_FOUND) - set(${_var} - "GIT-NOTFOUND" - PARENT_SCOPE) - return() - endif() - if(NOT hash) - set(${_var} - "HEAD-HASH-NOTFOUND" - PARENT_SCOPE) - return() - endif() - - execute_process( - COMMAND "${GIT_EXECUTABLE}" diff-index --quiet HEAD -- - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - RESULT_VARIABLE res - OUTPUT_VARIABLE out - ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) - if(res EQUAL 0) - set(${_var} - "CLEAN" - PARENT_SCOPE) - else() - set(${_var} - "DIRTY" - PARENT_SCOPE) - endif() -endfunction() diff --git a/cmake/GetGitRevisionDescription.cmake.in b/cmake/GetGitRevisionDescription.cmake.in deleted file mode 100644 index 116efc4e..00000000 --- a/cmake/GetGitRevisionDescription.cmake.in +++ /dev/null @@ -1,43 +0,0 @@ -# -# Internal file for GetGitRevisionDescription.cmake -# -# Requires CMake 2.6 or newer (uses the 'function' command) -# -# Original Author: -# 2009-2010 Ryan Pavlik -# http://academic.cleardefinition.com -# Iowa State University HCI Graduate Program/VRAC -# -# Copyright 2009-2012, Iowa State University -# Copyright 2011-2015, Contributors -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt) -# SPDX-License-Identifier: BSL-1.0 - -set(HEAD_HASH) - -file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024) - -string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS) -if(HEAD_CONTENTS MATCHES "ref") - # named branch - string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}") - if(EXISTS "@GIT_DIR@/${HEAD_REF}") - configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) - else() - configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY) - file(READ "@GIT_DATA@/packed-refs" PACKED_REFS) - if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}") - set(HEAD_HASH "${CMAKE_MATCH_1}") - endif() - endif() -else() - # detached HEAD - configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY) -endif() - -if(NOT HEAD_HASH) - file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024) - string(STRIP "${HEAD_HASH}" HEAD_HASH) -endif() diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt index ebd1ac39..cf4bb1e5 100644 Binary files a/gamefiles/TEXT/american.gxt and b/gamefiles/TEXT/american.gxt differ diff --git a/gamefiles/TEXT/french.gxt b/gamefiles/TEXT/french.gxt index 5b4c9e05..cb2874f9 100644 Binary files a/gamefiles/TEXT/french.gxt and b/gamefiles/TEXT/french.gxt differ diff --git a/gamefiles/TEXT/german.gxt b/gamefiles/TEXT/german.gxt index 88c54095..d5a986cf 100644 Binary files a/gamefiles/TEXT/german.gxt and b/gamefiles/TEXT/german.gxt differ diff --git a/gamefiles/TEXT/italian.gxt b/gamefiles/TEXT/italian.gxt index 746f07da..95e2dd36 100644 Binary files a/gamefiles/TEXT/italian.gxt and b/gamefiles/TEXT/italian.gxt differ diff --git a/gamefiles/TEXT/polish.gxt b/gamefiles/TEXT/polish.gxt old mode 100755 new mode 100644 index 5519c290..1782ef87 Binary files a/gamefiles/TEXT/polish.gxt and b/gamefiles/TEXT/polish.gxt differ diff --git a/gamefiles/TEXT/russian.gxt b/gamefiles/TEXT/russian.gxt index aeb3f0b5..026222ac 100644 Binary files a/gamefiles/TEXT/russian.gxt and b/gamefiles/TEXT/russian.gxt differ diff --git a/gamefiles/TEXT/spanish.gxt b/gamefiles/TEXT/spanish.gxt index be659528..6b188fc6 100644 Binary files a/gamefiles/TEXT/spanish.gxt and b/gamefiles/TEXT/spanish.gxt differ diff --git a/gamefiles/models/frontend_ds3.txd b/gamefiles/models/frontend_ds3.txd deleted file mode 100644 index 7481e9b9..00000000 Binary files a/gamefiles/models/frontend_ds3.txd and /dev/null differ diff --git a/gamefiles/models/frontend_ds4.txd b/gamefiles/models/frontend_ds4.txd deleted file mode 100644 index 594de328..00000000 Binary files a/gamefiles/models/frontend_ds4.txd and /dev/null differ diff --git a/gamefiles/models/frontend_x360.txd b/gamefiles/models/frontend_x360.txd deleted file mode 100644 index a57b8d13..00000000 Binary files a/gamefiles/models/frontend_x360.txd and /dev/null differ diff --git a/gamefiles/models/frontend_xone.txd b/gamefiles/models/frontend_xone.txd deleted file mode 100644 index 03dfefda..00000000 Binary files a/gamefiles/models/frontend_xone.txd and /dev/null differ diff --git a/gamefiles/models/generic.txd b/gamefiles/models/generic.txd deleted file mode 100644 index 8e0d60f3..00000000 Binary files a/gamefiles/models/generic.txd and /dev/null differ diff --git a/gamefiles/models/ps3btns.txd b/gamefiles/models/ps3btns.txd deleted file mode 100644 index ed216263..00000000 Binary files a/gamefiles/models/ps3btns.txd and /dev/null differ diff --git a/gamefiles/models/x360btns.txd b/gamefiles/models/x360btns.txd index 95a68c8b..27837c2f 100644 Binary files a/gamefiles/models/x360btns.txd and b/gamefiles/models/x360btns.txd differ diff --git a/premake5.lua b/premake5.lua index d4459f94..f715f1e5 100644 --- a/premake5.lua +++ b/premake5.lua @@ -204,7 +204,6 @@ project "librw" architecture "amd64" filter "platforms:win*" - defines { "_CRT_SECURE_NO_WARNINGS", "_CRT_NONSTDC_NO_DEPRECATE" } staticruntime "on" buildoptions { "/Zc:sizedDealloc-" } @@ -236,10 +235,6 @@ project "re3" targetname "re3" 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") } @@ -263,7 +258,6 @@ project "re3" 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" } @@ -314,7 +308,7 @@ project "re3" filter {} if(os.getenv("GTA_III_RE_DIR")) then - setpaths(os.getenv("GTA_III_RE_DIR") .. "/", "%(cfg.buildtarget.name)") + setpaths("$(GTA_III_RE_DIR)/", "%(cfg.buildtarget.name)") end filter "platforms:win*" @@ -328,10 +322,6 @@ project "re3" -- 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" diff --git a/printHash.bat b/printHash.bat deleted file mode 100644 index ef1cd9d6..00000000 --- a/printHash.bat +++ /dev/null @@ -1,26 +0,0 @@ -@echo off - -REM creates version.h with HEAD commit hash -REM params: $1=full path to output file (usually points version.h) - -setlocal enableextensions enabledelayedexpansion - -cd /d "%~dp0" - -break> %1 - - %1 - -where git -if "%errorlevel%" == "0" ( goto :havegit ) else ( goto :writeending ) - -:havegit -for /f %%v in ('git rev-parse --short HEAD') do set version=%%v -> %1 - -:writeending - -echo ^" >> %1 -echo const char* g_GIT_SHA1 = GIT_SHA1; >> %1 - -EXIT /B \ No newline at end of file diff --git a/printHash.sh b/printHash.sh deleted file mode 100755 index 71f54466..00000000 --- a/printHash.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -> $1 - -echo -n "#define GIT_SHA1 \"" > $1 - -if (command -v "git" >/dev/null) then -git rev-parse --short HEAD | tr -d '\n' >> $1 -fi - -echo "\"" >> $1 -echo "const char* g_GIT_SHA1 = GIT_SHA1;" >> $1 \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c81873fd..df39c7c9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,5 @@ -find_package(Threads REQUIRED) set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) file(GLOB_RECURSE ${PROJECT}_SOURCES "*.cpp" "*.h" "*.rc") @@ -17,9 +17,6 @@ endfunction() header_directories(${PROJECT}_INCLUDES) -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/extras/GitSHA1.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/extras/GitSHA1.cpp" @ONLY) -list(APPEND ${PROJECT}_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/extras/GitSHA1.cpp") - add_executable(${EXECUTABLE} WIN32 ${${PROJECT}_SOURCES} ) @@ -49,8 +46,6 @@ if(LIBRW_PLATFORM_D3D9) ) endif() -target_compile_definitions(${EXECUTABLE} PRIVATE CMAKE_BUILD) - if(${PROJECT}_AUDIO STREQUAL "OAL") find_package(OpenAL REQUIRED) target_include_directories(${EXECUTABLE} PRIVATE ${OPENAL_INCLUDE_DIR}) diff --git a/src/animation/AnimManager.cpp b/src/animation/AnimManager.cpp index c66997ce..557bd842 100644 --- a/src/animation/AnimManager.cpp +++ b/src/animation/AnimManager.cpp @@ -19,68 +19,68 @@ 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 | 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_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, + { ANIM_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, + { ANIM_SPRINT, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, + { ANIM_IDLE_STANCE, ASSOC_REPEAT }, + { ANIM_WALK_START, ASSOC_HAS_TRANSLATION }, + { ANIM_RUN_STOP, ASSOC_DELETEFADEDOUT | ASSOC_HAS_TRANSLATION }, + { ANIM_RUN_STOP_R, ASSOC_DELETEFADEDOUT | ASSOC_HAS_TRANSLATION }, + { ANIM_IDLE_CAM, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_IDLE_HBHB, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_IDLE_TIRED, ASSOC_REPEAT }, + { ANIM_IDLE_ARMED, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_IDLE_CHAT, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_IDLE_TAXI, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_KO_SHOT_FRONT1, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_KO_SHOT_FRONT2, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_KO_SHOT_FRONT3, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_KO_SHOT_FRONT4, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_KO_SHOT_FACE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_KO_SHOT_STOM, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_KO_SHOT_ARML, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_KO_SHOT_ARMR, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_KO_SHOT_LEGL, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_KO_SHOT_LEGR, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_KD_LEFT, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_KD_RIGHT, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_KO_SKID_FRONT, ASSOC_PARTIAL }, + { ANIM_KO_SPIN_R, ASSOC_PARTIAL }, + { ANIM_KO_SKID_BACK, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_KO_SPIN_L, ASSOC_PARTIAL }, + { ANIM_SHOT_FRONT_PARTIAL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_SHOT_LEFT_PARTIAL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_SHOT_BACK_PARTIAL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_SHOT_RIGHT_PARTIAL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_HIT_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_HIT_LEFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_HIT_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_HIT_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_FLOOR_HIT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, #if GTA_VERSION <= GTA3_PS2_160 - { ANIM_STD_HIT_BODY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_HIT_BODY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, #endif - { 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_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_KICKGROUND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_WEAPON_BAT_H, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_WEAPON_BAT_V, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_WEAPON_HGUN_BODY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_STD_WEAPON_AK_BODY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_WEAPON_PUMP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_WEAPON_SNIPER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_WEAPON_THROW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_THROW_UNDER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_START_THROW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_DETONATE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_STD_HGUN_RELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_STD_AK_RELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_HIT_BODYBLOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_HIT_CHEST, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_HIT_HEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_HIT_WALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_HIT_WALL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_FLOOR_HIT_F, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_HIT_BEHIND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_PUNCH_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_KICK_FLOOR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_BAT_H, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_BAT_V, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_HGUN_BODY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_WEAPON_AK_BODY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_PUMP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_SNIPER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_THROW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_THROWU, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_START_THROW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_BOMBER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_HGUN_RELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_AK_RELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, #ifdef PC_PLAYER_CONTROLS // maybe wrong define, but unused anyway { ANIM_FPS_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, @@ -91,121 +91,121 @@ AnimAssocDesc aStdAnimDescs[] = { { ANIM_FPS_M16, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_FPS_ROCKET, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, #endif - { 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_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_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 }, - { ANIM_STD_CAR_DRIVE_RIGHT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_CAR_DRIVE_LEFT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_CAR_DRIVE_RIGHT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_CAR_DRIVEBY_LEFT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_CAR_DRIVEBY_RIGHT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_CAR_LOOKBEHIND, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_BOAT_DRIVE, ASSOC_DELETEFADEDOUT }, - { 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_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_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_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_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_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_MEDIC_CPR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_DUCK_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_DUCK_LOW, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_RBLOCK_SHOOT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_THROW_UNDER2, ASSOC_FADEOUTWHENDONE | 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_PARTIAL }, - { ANIM_STD_PHONE_OUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_PHONE_TALK, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_FIGHT_IDLE, ASSOC_REPEAT }, + { ANIM_FIGHT2_IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_FIGHT_SH_F, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_FIGHT_BODYBLOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_FIGHT_HEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_FIGHT_KICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_FIGHT_KNEE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_FIGHT_LHOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_FIGHT_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_FIGHT_ROUNDHOUSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_FIGHT_LONGKICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_FIGHT_PPUNCH, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_CAR_JACKED_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_CAR_LJACKED_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_CAR_JACKED_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_CAR_LJACKED_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_CAR_QJACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_QJACKED, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_CAR_ALIGN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_ALIGNHI_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_OPEN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_DOORLOCKED_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_PULLOUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_PULLOUT_LOW_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_GETIN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_GETIN_LOW_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_CLOSEDOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_CLOSEDOOR_LOW_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_ROLLDOOR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_ROLLDOOR_LOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_GETOUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_GETOUT_LOW_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_CLOSE_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_ALIGN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_ALIGNHI_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_OPEN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_DOORLOCKED_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_PULLOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_PULLOUT_LOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_GETIN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_GETIN_LOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_CLOSEDOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_CLOSEDOOR_LOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_SHUFFLE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_LSHUFFLE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_SIT, ASSOC_DELETEFADEDOUT }, + { ANIM_CAR_LSIT, ASSOC_DELETEFADEDOUT }, + { ANIM_CAR_SITP, ASSOC_DELETEFADEDOUT }, + { ANIM_CAR_SITPLO, ASSOC_DELETEFADEDOUT }, + { ANIM_DRIVE_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_DRIVE_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_DRIVE_LOW_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_DRIVE_LOW_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_DRIVEBY_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_DRIVEBY_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_CAR_LB, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_DRIVE_BOAT, ASSOC_DELETEFADEDOUT }, + { ANIM_CAR_GETOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_GETOUT_LOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_CLOSE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_HOOKERTALK, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_COACH_OPEN_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_COACH_OPEN_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_COACH_IN_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_COACH_IN_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_COACH_OUT_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_TRAIN_GETIN, ASSOC_PARTIAL }, + { ANIM_TRAIN_GETOUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_CRAWLOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_CAR_CRAWLOUT_RHS2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_VAN_OPEN_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_VAN_GETIN_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_VAN_CLOSE_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_VAN_GETOUT_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_VAN_OPEN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_VAN_GETIN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_VAN_CLOSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_VAN_GETOUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_GETUP1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_GETUP2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_GETUP3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_GETUP_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_JUMP_LAUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_JUMP_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_JUMP_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_FALL_FALL, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_FALL_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_FALL_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_FALL_COLLAPSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_EV_STEP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_EV_DIVE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_XPRESS_SCRATCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, + { ANIM_ROAD_CROSS, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_TURN_180, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ARREST_GUN, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_DROWN, ASSOC_PARTIAL }, + { ANIM_CPR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_DUCK_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_DUCK_LOW, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_RBLOCK_CSHOOT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_WEAPON_THROWU2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_HANDSUP, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_HANDSCOWER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_FUCKU, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_PHONE_IN, ASSOC_PARTIAL }, + { ANIM_PHONE_OUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_PHONE_TALK, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, }; #ifdef PC_PLAYER_CONTROLS AnimAssocDesc aStdAnimDescsSide[] = { - { ANIM_STD_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK | ASSOC_HAS_X_TRANSLATION }, - { ANIM_STD_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK | ASSOC_HAS_X_TRANSLATION }, - { ANIM_STD_RUNFAST, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK | ASSOC_HAS_X_TRANSLATION }, - { ANIM_STD_IDLE, ASSOC_REPEAT }, - { ANIM_STD_STARTWALK, ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, + { ANIM_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK | ASSOC_HAS_X_TRANSLATION }, + { ANIM_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK | ASSOC_HAS_X_TRANSLATION }, + { ANIM_SPRINT, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK | ASSOC_HAS_X_TRANSLATION }, + { ANIM_IDLE_STANCE, ASSOC_REPEAT }, + { ANIM_WALK_START, ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, }; #endif char const *aStdAnimations[] = { diff --git a/src/animation/AnimationId.h b/src/animation/AnimationId.h index baf6eb33..4b3dd92d 100644 --- a/src/animation/AnimationId.h +++ b/src/animation/AnimationId.h @@ -2,82 +2,68 @@ enum AnimationId { - ANIM_STD_WALK, - ANIM_STD_RUN, - ANIM_STD_RUNFAST, - ANIM_STD_IDLE, - ANIM_STD_STARTWALK, - ANIM_STD_RUNSTOP1, - ANIM_STD_RUNSTOP2, - ANIM_STD_IDLE_CAM, - ANIM_STD_IDLE_HBHB, - ANIM_STD_IDLE_TIRED, - ANIM_STD_IDLE_BIGGUN, - ANIM_STD_CHAT, - ANIM_STD_HAILTAXI, - ANIM_STD_KO_FRONT, - ANIM_STD_KO_LEFT, - ANIM_STD_KO_BACK, - ANIM_STD_KO_RIGHT, - ANIM_STD_KO_SHOT_FACE, - ANIM_STD_KO_SHOT_STOMACH, - ANIM_STD_KO_SHOT_ARM_L, - ANIM_STD_KO_SHOT_ARM_R, - ANIM_STD_KO_SHOT_LEG_L, - ANIM_STD_KO_SHOT_LEG_R, - ANIM_STD_SPINFORWARD_LEFT, - ANIM_STD_SPINFORWARD_RIGHT, - ANIM_STD_HIGHIMPACT_FRONT, - ANIM_STD_HIGHIMPACT_LEFT, - ANIM_STD_HIGHIMPACT_BACK, - ANIM_STD_HIGHIMPACT_RIGHT, - ANIM_STD_HITBYGUN_FRONT, - ANIM_STD_HITBYGUN_LEFT, - ANIM_STD_HITBYGUN_BACK, - ANIM_STD_HITBYGUN_RIGHT, - ANIM_STD_HIT_FRONT, - ANIM_STD_HIT_LEFT, - ANIM_STD_HIT_BACK, - ANIM_STD_HIT_RIGHT, - ANIM_STD_HIT_FLOOR, - - /* names made up */ + ANIM_WALK, + ANIM_RUN, + ANIM_SPRINT, + ANIM_IDLE_STANCE, + ANIM_WALK_START, + ANIM_RUN_STOP, + ANIM_RUN_STOP_R, + ANIM_IDLE_CAM, + ANIM_IDLE_HBHB, + ANIM_IDLE_TIRED, + ANIM_IDLE_ARMED, + ANIM_IDLE_CHAT, + ANIM_IDLE_TAXI, + ANIM_KO_SHOT_FRONT1, + ANIM_KO_SHOT_FRONT2, + ANIM_KO_SHOT_FRONT3, + ANIM_KO_SHOT_FRONT4, + ANIM_KO_SHOT_FACE, + ANIM_KO_SHOT_STOM, + ANIM_KO_SHOT_ARML, + ANIM_KO_SHOT_ARMR, + ANIM_KO_SHOT_LEGL, + ANIM_KO_SHOT_LEGR, + ANIM_KD_LEFT, + ANIM_KD_RIGHT, + ANIM_KO_SKID_FRONT, + ANIM_KO_SPIN_R, // named left in VC + ANIM_KO_SKID_BACK, + ANIM_KO_SPIN_L, // named right in VC + ANIM_SHOT_FRONT_PARTIAL, + ANIM_SHOT_LEFT_PARTIAL, + ANIM_SHOT_BACK_PARTIAL, + ANIM_SHOT_RIGHT_PARTIAL, + ANIM_HIT_FRONT, + ANIM_HIT_LEFT, + ANIM_HIT_BACK, + ANIM_HIT_RIGHT, + ANIM_FLOOR_HIT, #if GTA_VERSION <= GTA3_PS2_160 - ANIM_STD_HIT_BODY, + ANIM_HIT_BODY, #endif - 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_PUNCH, - ANIM_STD_KICKGROUND, - - /* names made up */ - ANIM_STD_WEAPON_BAT_H, - ANIM_STD_WEAPON_BAT_V, - ANIM_STD_WEAPON_HGUN_BODY, - ANIM_STD_WEAPON_AK_BODY, - ANIM_STD_WEAPON_PUMP, - ANIM_STD_WEAPON_SNIPER, - ANIM_STD_WEAPON_THROW, - /**/ - - ANIM_STD_THROW_UNDER, - - /* names made up */ - ANIM_STD_START_THROW, - /**/ - - ANIM_STD_DETONATE, - - /* names made up */ - ANIM_STD_HGUN_RELOAD, - ANIM_STD_AK_RELOAD, + ANIM_HIT_BODYBLOW, + ANIM_HIT_CHEST, + ANIM_HIT_HEAD, + ANIM_HIT_WALK, + ANIM_HIT_WALL, + ANIM_FLOOR_HIT_F, + ANIM_HIT_BEHIND, + ANIM_PUNCH_R, + ANIM_KICK_FLOOR, + ANIM_WEAPON_BAT_H, + ANIM_WEAPON_BAT_V, + ANIM_WEAPON_HGUN_BODY, + ANIM_WEAPON_AK_BODY, + ANIM_WEAPON_PUMP, + ANIM_WEAPON_SNIPER, + ANIM_WEAPON_THROW, + ANIM_WEAPON_THROWU, + ANIM_WEAPON_START_THROW, + ANIM_BOMBER, + ANIM_HGUN_RELOAD, + ANIM_AK_RELOAD, #ifdef PC_PLAYER_CONTROLS // maybe wrong define, but unused anyway ANIM_FPS_PUNCH, @@ -88,123 +74,113 @@ enum AnimationId ANIM_FPS_M16, ANIM_FPS_ROCKET, #endif - /**/ - - 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_STD_JACKEDCAR_RHS, - ANIM_STD_JACKEDCAR_LO_RHS, - ANIM_STD_JACKEDCAR_LHS, - ANIM_STD_JACKEDCAR_LO_LHS, - ANIM_STD_QUICKJACK, - ANIM_STD_QUICKJACKED, - ANIM_STD_CAR_ALIGN_DOOR_LHS, - ANIM_STD_CAR_ALIGNHI_DOOR_LHS, - ANIM_STD_CAR_OPEN_DOOR_LHS, - ANIM_STD_CARDOOR_LOCKED_LHS, - ANIM_STD_CAR_PULL_OUT_PED_LHS, - ANIM_STD_CAR_PULL_OUT_PED_LO_LHS, - ANIM_STD_CAR_GET_IN_LHS, - ANIM_STD_CAR_GET_IN_LO_LHS, - ANIM_STD_CAR_CLOSE_DOOR_LHS, - ANIM_STD_CAR_CLOSE_DOOR_LO_LHS, - ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS, - ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS, - ANIM_STD_GETOUT_LHS, - ANIM_STD_GETOUT_LO_LHS, - ANIM_STD_CAR_CLOSE_LHS, - ANIM_STD_CAR_ALIGN_DOOR_RHS, - ANIM_STD_CAR_ALIGNHI_DOOR_RHS, - ANIM_STD_CAR_OPEN_DOOR_RHS, - ANIM_STD_CARDOOR_LOCKED_RHS, - ANIM_STD_CAR_PULL_OUT_PED_RHS, - ANIM_STD_CAR_PULL_OUT_PED_LO_RHS, - ANIM_STD_CAR_GET_IN_RHS, - ANIM_STD_CAR_GET_IN_LO_RHS, - ANIM_STD_CAR_CLOSE_DOOR_RHS, - ANIM_STD_CAR_CLOSE_DOOR_LO_RHS, - ANIM_STD_CAR_SHUFFLE_RHS, - ANIM_STD_CAR_SHUFFLE_LO_RHS, - ANIM_STD_CAR_SIT, - ANIM_STD_CAR_SIT_LO, - ANIM_STD_CAR_SIT_P, - ANIM_STD_CAR_SIT_P_LO, - ANIM_STD_CAR_DRIVE_LEFT, - ANIM_STD_CAR_DRIVE_RIGHT, - ANIM_STD_CAR_DRIVE_LEFT_LO, - ANIM_STD_CAR_DRIVE_RIGHT_LO, - ANIM_STD_CAR_DRIVEBY_LEFT, - ANIM_STD_CAR_DRIVEBY_RIGHT, - ANIM_STD_CAR_LOOKBEHIND, - ANIM_STD_BOAT_DRIVE, - ANIM_STD_GETOUT_RHS, - ANIM_STD_GETOUT_LO_RHS, - ANIM_STD_CAR_CLOSE_RHS, - ANIM_STD_CAR_HOOKERTALK, - ANIM_STD_COACH_OPEN_LHS, - ANIM_STD_COACH_OPEN_RHS, - ANIM_STD_COACH_GET_IN_LHS, - ANIM_STD_COACH_GET_IN_RHS, - ANIM_STD_COACH_GET_OUT_LHS, - ANIM_STD_TRAIN_GETIN, - ANIM_STD_TRAIN_GETOUT, - ANIM_STD_CRAWLOUT_LHS, - ANIM_STD_CRAWLOUT_RHS, - ANIM_STD_VAN_OPEN_DOOR_REAR_LHS, - ANIM_STD_VAN_GET_IN_REAR_LHS, - ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS, - ANIM_STD_VAN_GET_OUT_REAR_LHS, - ANIM_STD_VAN_OPEN_DOOR_REAR_RHS, - ANIM_STD_VAN_GET_IN_REAR_RHS, - ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS, - ANIM_STD_VAN_GET_OUT_REAR_RHS, - ANIM_STD_GET_UP, - ANIM_STD_GET_UP_LEFT, - ANIM_STD_GET_UP_RIGHT, - ANIM_STD_GET_UP_FRONT, - ANIM_STD_JUMP_LAUNCH, - ANIM_STD_JUMP_GLIDE, - ANIM_STD_JUMP_LAND, - ANIM_STD_FALL, - ANIM_STD_FALL_GLIDE, - ANIM_STD_FALL_LAND, - ANIM_STD_FALL_COLLAPSE, - ANIM_STD_EVADE_STEP, - ANIM_STD_EVADE_DIVE, - ANIM_STD_XPRESS_SCRATCH, - ANIM_STD_ROADCROSS, - ANIM_STD_TURN180, - ANIM_STD_ARREST, - ANIM_STD_DROWN, - ANIM_MEDIC_CPR, - ANIM_STD_DUCK_DOWN, - ANIM_STD_DUCK_LOW, - ANIM_STD_RBLOCK_SHOOT, - - /* names made up */ - ANIM_STD_THROW_UNDER2, - /**/ - - ANIM_STD_HANDSUP, - ANIM_STD_HANDSCOWER, - ANIM_STD_PARTIAL_FUCKU, - ANIM_STD_PHONE_IN, - ANIM_STD_PHONE_OUT, - ANIM_STD_PHONE_TALK, + ANIM_FIGHT_IDLE, + ANIM_FIGHT2_IDLE, + ANIM_FIGHT_SH_F, + ANIM_FIGHT_BODYBLOW, + ANIM_FIGHT_HEAD, + ANIM_FIGHT_KICK, + ANIM_FIGHT_KNEE, + ANIM_FIGHT_LHOOK, + ANIM_FIGHT_PUNCH, + ANIM_FIGHT_ROUNDHOUSE, + ANIM_FIGHT_LONGKICK, + ANIM_FIGHT_PPUNCH, + ANIM_CAR_JACKED_RHS, + ANIM_CAR_LJACKED_RHS, + ANIM_CAR_JACKED_LHS, + ANIM_CAR_LJACKED_LHS, + ANIM_CAR_QJACK, + ANIM_CAR_QJACKED, + ANIM_CAR_ALIGN_LHS, + ANIM_CAR_ALIGNHI_LHS, + ANIM_CAR_OPEN_LHS, + ANIM_CAR_DOORLOCKED_LHS, + ANIM_CAR_PULLOUT_LHS, + ANIM_CAR_PULLOUT_LOW_LHS, + ANIM_CAR_GETIN_LHS, + ANIM_CAR_GETIN_LOW_LHS, + ANIM_CAR_CLOSEDOOR_LHS, + ANIM_CAR_CLOSEDOOR_LOW_LHS, + ANIM_CAR_ROLLDOOR, + ANIM_CAR_ROLLDOOR_LOW, + ANIM_CAR_GETOUT_LHS, + ANIM_CAR_GETOUT_LOW_LHS, + ANIM_CAR_CLOSE_LHS, + ANIM_CAR_ALIGN_RHS, + ANIM_CAR_ALIGNHI_RHS, + ANIM_CAR_OPEN_RHS, + ANIM_CAR_DOORLOCKED_RHS, + ANIM_CAR_PULLOUT_RHS, + ANIM_CAR_PULLOUT_LOW_RHS, + ANIM_CAR_GETIN_RHS, + ANIM_CAR_GETIN_LOW_RHS, + ANIM_CAR_CLOSEDOOR_RHS, + ANIM_CAR_CLOSEDOOR_LOW_RHS, + ANIM_CAR_SHUFFLE_RHS, + ANIM_CAR_LSHUFFLE_RHS, + ANIM_CAR_SIT, + ANIM_CAR_LSIT, + ANIM_CAR_SITP, + ANIM_CAR_SITPLO, + ANIM_DRIVE_L, + ANIM_DRIVE_R, + ANIM_DRIVE_LOW_L, + ANIM_DRIVE_LOW_R, + ANIM_DRIVEBY_L, + ANIM_DRIVEBY_R, + ANIM_CAR_LB, + ANIM_DRIVE_BOAT, + ANIM_CAR_GETOUT_RHS, + ANIM_CAR_GETOUT_LOW_RHS, + ANIM_CAR_CLOSE_RHS, + ANIM_CAR_HOOKERTALK, + ANIM_COACH_OPEN_L, + ANIM_COACH_OPEN_R, + ANIM_COACH_IN_L, + ANIM_COACH_IN_R, + ANIM_COACH_OUT_L, + ANIM_TRAIN_GETIN, + ANIM_TRAIN_GETOUT, + ANIM_CAR_CRAWLOUT_RHS, + ANIM_CAR_CRAWLOUT_RHS2, + ANIM_VAN_OPEN_L, + ANIM_VAN_GETIN_L, + ANIM_VAN_CLOSE_L, + ANIM_VAN_GETOUT_L, + ANIM_VAN_OPEN, + ANIM_VAN_GETIN, + ANIM_VAN_CLOSE, + ANIM_VAN_GETOUT, + ANIM_GETUP1, + ANIM_GETUP2, + ANIM_GETUP3, + ANIM_GETUP_FRONT, + ANIM_JUMP_LAUNCH, + ANIM_JUMP_GLIDE, + ANIM_JUMP_LAND, + ANIM_FALL_FALL, + ANIM_FALL_GLIDE, + ANIM_FALL_LAND, + ANIM_FALL_COLLAPSE, + ANIM_EV_STEP, + ANIM_EV_DIVE, + ANIM_XPRESS_SCRATCH, + ANIM_ROAD_CROSS, + ANIM_TURN_180, + ANIM_ARREST_GUN, + ANIM_DROWN, + ANIM_CPR, + ANIM_DUCK_DOWN, + ANIM_DUCK_LOW, + ANIM_RBLOCK_CSHOOT, + ANIM_WEAPON_THROWU2, + ANIM_HANDSUP, + ANIM_HANDSCOWER, + ANIM_FUCKU, + ANIM_PHONE_IN, + ANIM_PHONE_OUT, + ANIM_PHONE_TALK, - ANIM_STD_NUM + NUM_ANIMS }; \ No newline at end of file diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp index ec364c27..eab14ce6 100644 --- a/src/audio/AudioLogic.cpp +++ b/src/audio/AudioLogic.cpp @@ -7927,7 +7927,7 @@ cAudioManager::ProcessFrontEnd() frontendBank = true; stereo = true; break; - case SOUND_FRONTEND_RADIO_TURN_OFF: + case SOUND_FRONTEND_NO_RADIO: case SOUND_FRONTEND_RADIO_CHANGE: m_sQueueSample.m_nSampleIndex = SFX_RADIO_CLICK; break; diff --git a/src/audio/MusicManager.cpp b/src/audio/MusicManager.cpp index 3e1a7384..54c1b0bc 100644 --- a/src/audio/MusicManager.cpp +++ b/src/audio/MusicManager.cpp @@ -15,9 +15,6 @@ #include "World.h" #include "sampman.h" -#if !defined FIX_BUGS && (defined RADIO_SCROLL_TO_PREV_STATION || defined RADIO_OFF_TEXT) -static_assert(false, "RADIO_SCROLL_TO_PREV_STATION and RADIO_OFF_TEXT won't work correctly without FIX_BUGS"); -#endif cMusicManager MusicManager; int32 gNumRetunePresses; @@ -29,8 +26,8 @@ cMusicManager::cMusicManager() m_bIsInitialised = false; m_bDisabled = false; m_nMusicMode = MUSICMODE_DISABLED; - m_nNextTrack = NO_TRACK; - m_nPlayingTrack = NO_TRACK; + m_nCurrentStreamedSound = NO_TRACK; + m_nPreviousStreamedSound = NO_TRACK; m_bFrontendTrackFinished = false; m_bPlayInFrontend = false; m_bSetNextStation = false; @@ -38,7 +35,7 @@ cMusicManager::cMusicManager() m_bPreviousPlayerInCar = false; m_bPlayerInCar = false; m_bAnnouncementInProgress = false; - m_bVerifyAmbienceTrackStartedToPlay = false; + m_bDontServiceAmbienceTrack = false; bHasStarted = false; } @@ -86,15 +83,16 @@ cMusicManager::DisplayRadioStationName() if(m_bPlayerInCar && !m_bPreviousPlayerInCar) pCurrentStation = nil; -#ifdef FIX_BUGS - const int curRadio = GetCarTuning(); -#else - const int curRadio = m_nNextTrack; -#endif - #ifdef RADIO_SCROLL_TO_PREV_STATION if(gNumRetunePresses < 0) { - gStreamedSound = curRadio; + gStreamedSound = m_nCurrentStreamedSound; + + if(gStreamedSound == STREAMED_SOUND_CITY_AMBIENT || + gStreamedSound == STREAMED_SOUND_WATER_AMBIENT) { + gStreamedSound = POLICE_RADIO; // which means OFF + + } else if(gStreamedSound > STREAMED_SOUND_RADIO_MP3_PLAYER) + return; gRetuneCounter = gNumRetunePresses; pRetune = gStreamedSound; @@ -102,7 +100,7 @@ cMusicManager::DisplayRadioStationName() while(gRetuneCounter < 0) { if(pRetune == HEAD_RADIO) { pRetune = RADIO_OFF; - } else if(pRetune == RADIO_OFF || pRetune == NUM_RADIOS) { + } else if(pRetune == RADIO_OFF || pRetune == POLICE_RADIO) { pRetune = SampleManager.IsMP3RadioChannelAvailable() ? USERTRACK : USERTRACK - 1; } else pRetune--; @@ -112,38 +110,31 @@ cMusicManager::DisplayRadioStationName() } else #endif if(SampleManager.IsMP3RadioChannelAvailable()) { - gStreamedSound = curRadio; + gStreamedSound = m_nCurrentStreamedSound; if(gStreamedSound == STREAMED_SOUND_CITY_AMBIENT || - gStreamedSound == STREAMED_SOUND_WATER_AMBIENT) { // which means OFF - gStreamedSound = NUM_RADIOS; + gStreamedSound == STREAMED_SOUND_WATER_AMBIENT) { + gStreamedSound = POLICE_RADIO; // which means OFF } else if(gStreamedSound > STREAMED_SOUND_RADIO_MP3_PLAYER) return; pRetune = gNumRetunePresses + gStreamedSound; -#ifdef FIX_BUGS - while(pRetune > NUM_RADIOS) - pRetune -= (NUM_RADIOS + 1); -#endif - if(pRetune == NUM_RADIOS) { + if(pRetune == POLICE_RADIO) { pRetune = RADIO_OFF; + } else if(pRetune > POLICE_RADIO) { + pRetune = pRetune - RADIO_OFF; } -#ifndef FIX_BUGS - else if(pRetune > NUM_RADIOS) { - pRetune = pRetune - (NUM_RADIOS + 1); - } -#endif } else { - gStreamedSound = curRadio; + gStreamedSound = m_nCurrentStreamedSound; pRetune = gNumRetunePresses + gStreamedSound; if(pRetune >= USERTRACK) { gRetuneCounter = gNumRetunePresses; - pRetune = curRadio; + pRetune = m_nCurrentStreamedSound; if(gStreamedSound == STREAMED_SOUND_WATER_AMBIENT) - pRetune = STREAMED_SOUND_CITY_AMBIENT; // which is RADIO_OFF + pRetune = RADIO_OFF; while(gRetuneCounter) { if(pRetune == RADIO_OFF) { @@ -158,7 +149,7 @@ cMusicManager::DisplayRadioStationName() } } - wchar *string; + wchar *string = nil; switch(pRetune) { case HEAD_RADIO: string = TheText.Get("FEA_FM0"); break; @@ -170,27 +161,22 @@ cMusicManager::DisplayRadioStationName() case MSX_FM: string = TheText.Get("FEA_FM6"); break; case FLASHBACK: string = TheText.Get("FEA_FM7"); break; case CHATTERBOX: string = TheText.Get("FEA_FM8"); break; - case USERTRACK: - if (!SampleManager.IsMP3RadioChannelAvailable()) - return; - string = TheText.Get("FEA_FM9"); break; + case USERTRACK: string = TheText.Get("FEA_FM9"); break; #ifdef RADIO_OFF_TEXT - case RADIO_OFF: { - extern wchar WideErrorString[]; - - string = TheText.Get("FEA_FMN"); - if(string == WideErrorString) { - pCurrentStation = nil; - return; - } - break; - } + case RADIO_OFF: case POLICE_RADIO: string = TheText.Get("FEM_OFF"); break; #endif default: return; }; - if(pCurrentStation != string || - m_nNextTrack == STREAMED_SOUND_RADIO_MP3_PLAYER && m_nPlayingTrack != STREAMED_SOUND_RADIO_MP3_PLAYER) { +#ifdef RADIO_OFF_TEXT + if(pRetune == USERTRACK && !SampleManager.IsMP3RadioChannelAvailable()) { string = TheText.Get("FEM_OFF"); } +#else + if(pRetune > CHATTERBOX && !SampleManager.IsMP3RadioChannelAvailable()) { return; } +#endif + + if(string && pCurrentStation != string || + m_nCurrentStreamedSound == STREAMED_SOUND_RADIO_MP3_PLAYER && + m_nPreviousStreamedSound != STREAMED_SOUND_RADIO_MP3_PLAYER) { pCurrentStation = string; cDisplay = 60; } else { @@ -271,7 +257,7 @@ cMusicManager::Initialise() m_bDoTrackService = false; m_bIgnoreTimeDelay = false; m_bRadioSetByScript = false; - m_nRadioStationScript = HEAD_RADIO; + m_nRadioStation = HEAD_RADIO; m_nRadioPosition = -1; m_nRadioInCar = NO_TRACK; gNumRetunePresses = 0; @@ -288,8 +274,8 @@ cMusicManager::Terminate() if (SampleManager.IsStreamPlaying(0)) { SampleManager.StopStreamedFile(0); - m_nNextTrack = NO_TRACK; - m_nPlayingTrack = NO_TRACK; + m_nCurrentStreamedSound = NO_TRACK; + m_nPreviousStreamedSound = NO_TRACK; } m_bIsInitialised = false; } @@ -317,14 +303,14 @@ cMusicManager::ChangeMusicMode(uint8 mode) case MUSICMODE_CUTSCENE: case MUSICMODE_DISABLED: if (SampleManager.IsStreamPlaying(0)) { - if (m_nNextTrack < TOTAL_STREAMED_SOUNDS) { - m_aTracks[m_nNextTrack].m_nPosition = SampleManager.GetStreamedFilePosition(0); - m_aTracks[m_nNextTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + if (m_nCurrentStreamedSound < TOTAL_STREAMED_SOUNDS) { + m_aTracks[m_nCurrentStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); } SampleManager.StopStreamedFile(0); } - m_nNextTrack = NO_TRACK; - m_nPlayingTrack = NO_TRACK; + m_nCurrentStreamedSound = NO_TRACK; + m_nPreviousStreamedSound = NO_TRACK; m_bFrontendTrackFinished = false; m_bPlayInFrontend = false; m_bSetNextStation = false; @@ -334,7 +320,7 @@ cMusicManager::ChangeMusicMode(uint8 mode) m_nTimer = m_nLastTrackServiceTime = CTimer::GetTimeInMillisecondsPauseMode(); m_bDoTrackService = false; m_bIgnoreTimeDelay = true; - m_bVerifyAmbienceTrackStartedToPlay = false; + m_bDontServiceAmbienceTrack = false; m_nMusicMode = mode2; break; default: return; @@ -384,7 +370,7 @@ cMusicManager::SetRadioChannelByScript(uint8 station, int32 pos) { if (m_bIsInitialised && station < RADIO_OFF) { m_bRadioSetByScript = true; - m_nRadioStationScript = station; + m_nRadioStation = station; m_nRadioPosition = pos == -1 ? -1 : pos % m_aTracks[station].m_nLength; } } @@ -394,7 +380,7 @@ void cMusicManager::ResetMusicAfterReload() { m_bRadioSetByScript = false; - m_nRadioStationScript = 0; + m_nRadioStation = 0; m_nRadioPosition = -1; m_nAnnouncement = NO_TRACK; m_bAnnouncementInProgress = false; @@ -433,7 +419,7 @@ cMusicManager::Service() m_nLastTrackServiceTime = m_nTimer; } else m_bDoTrackService = false; - if (m_nNextTrack == NO_TRACK && SampleManager.IsStreamPlaying(0)) + if (m_nCurrentStreamedSound == NO_TRACK && SampleManager.IsStreamPlaying(0)) SampleManager.StopStreamedFile(0); else switch (m_nMusicMode) { case MUSICMODE_FRONTEND: ServiceFrontEndMode(); break; @@ -444,10 +430,10 @@ cMusicManager::Service() void cMusicManager::ServiceFrontEndMode() { - if (m_nNextTrack < TOTAL_STREAMED_SOUNDS) { + if (m_nCurrentStreamedSound < TOTAL_STREAMED_SOUNDS) { if (m_bFrontendTrackFinished) { if (!SampleManager.IsStreamPlaying(0)) { - switch (m_nNextTrack) + switch (m_nCurrentStreamedSound) { case STREAMED_SOUND_MISSION_COMPLETED: if (!AudioManager.m_nUserPause) @@ -459,15 +445,15 @@ cMusicManager::ServiceFrontEndMode() default: break; } - m_nNextTrack = NO_TRACK; - m_nPlayingTrack = NO_TRACK; + m_nCurrentStreamedSound = NO_TRACK; + m_nPreviousStreamedSound = NO_TRACK; } } else if (bHasStarted) { if (!SampleManager.IsStreamPlaying(0)) - SampleManager.StartStreamedFile(m_nNextTrack, 0, 0); + SampleManager.StartStreamedFile(m_nCurrentStreamedSound, 0, 0); } else { SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0); - if (!SampleManager.StartStreamedFile(m_nNextTrack, m_nNextTrack < NUM_RADIOS ? GetTrackStartPos(m_nNextTrack) : 0, 0)) + if (!SampleManager.StartStreamedFile(m_nCurrentStreamedSound, m_nCurrentStreamedSound < STREAMED_SOUND_RADIO_POLICE ? GetTrackStartPos(m_nCurrentStreamedSound) : 0, 0)) return; SampleManager.SetStreamedVolumeAndPan(100, 63, 0, 0); if (m_bPlayInFrontend) bHasStarted = true; @@ -487,7 +473,7 @@ cMusicManager::ServiceGameMode() m_bPreviousPlayerInCar = m_bPlayerInCar; m_bPlayerInCar = PlayerInCar(); - m_nPlayingTrack = m_nNextTrack; + m_nPreviousStreamedSound = m_nCurrentStreamedSound; if (m_bPlayerInCar) { if (FindPlayerPed() != nil && !FindPlayerPed()->DyingOrDead() @@ -499,13 +485,10 @@ cMusicManager::ServiceGameMode() gRetuneCounter = 30; gNumRetunePresses++; AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_RADIO_CHANGE, 1.0f); - // This needs loop, and this is not the right place. Now done elsewhere. -#ifndef FIX_BUGS if (SampleManager.IsMP3RadioChannelAvailable()) { if (gNumRetunePresses > RADIO_OFF) gNumRetunePresses -= RADIO_OFF; } -#endif } #ifdef RADIO_SCROLL_TO_PREV_STATION else if(CPad::GetPad(0)->GetMouseWheelDownJustDown() || CPad::GetPad(0)->GetMouseWheelUpJustDown()) { @@ -528,8 +511,8 @@ cMusicManager::ServiceGameMode() m_bPreviousPlayerInCar = false; if (!m_bPlayerInCar) { if (m_bPreviousPlayerInCar) { - if (m_nNextTrack != STREAMED_SOUND_RADIO_POLICE) - m_nRadioInCar = m_nNextTrack; + if (m_nCurrentStreamedSound != STREAMED_SOUND_RADIO_POLICE) + m_nRadioInCar = m_nCurrentStreamedSound; } ServiceAmbience(); return; @@ -537,22 +520,22 @@ cMusicManager::ServiceGameMode() if (m_bPreviousPlayerInCar) { if (m_nAnnouncement < TOTAL_STREAMED_SOUNDS - && (m_nNextTrack < RADIO_OFF || m_bAnnouncementInProgress) + && (m_nCurrentStreamedSound < STREAMED_SOUND_CITY_AMBIENT || m_bAnnouncementInProgress) && ServiceAnnouncement()) { if (m_bAnnouncementInProgress) { m_bSetNextStation = false; return; } - m_nPlayingTrack = m_nNextTrack; - m_nNextTrack = GetCarTuning(); + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = GetCarTuning(); } if (SampleManager.IsMP3RadioChannelAvailable() - && m_nNextTrack != STREAMED_SOUND_RADIO_MP3_PLAYER + && m_nCurrentStreamedSound != STREAMED_SOUND_RADIO_MP3_PLAYER && ControlsManager.GetIsKeyboardKeyJustDown(rsF9)) { - m_nPlayingTrack = m_nNextTrack; - m_nNextTrack = STREAMED_SOUND_RADIO_MP3_PLAYER; + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = STREAMED_SOUND_RADIO_MP3_PLAYER; if (FindPlayerVehicle() != nil) FindPlayerVehicle()->m_nRadioStation = STREAMED_SOUND_RADIO_MP3_PLAYER; AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_RADIO_CHANGE, 1.0f); @@ -580,22 +563,22 @@ cMusicManager::ServiceGameMode() AudioManager.DoPoliceRadioCrackle(); if (m_bSetNextStation) { m_bSetNextStation = false; - m_nPlayingTrack = m_nNextTrack; - m_nNextTrack = GetNextCarTuning(); - if (m_nNextTrack == STREAMED_SOUND_CITY_AMBIENT || m_nNextTrack == STREAMED_SOUND_WATER_AMBIENT) + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = GetNextCarTuning(); + if (m_nCurrentStreamedSound == STREAMED_SOUND_CITY_AMBIENT || m_nCurrentStreamedSound == STREAMED_SOUND_WATER_AMBIENT) bRadioOff = true; - if (m_nPlayingTrack == STREAMED_SOUND_CITY_AMBIENT || m_nPlayingTrack == STREAMED_SOUND_WATER_AMBIENT) + if (m_nPreviousStreamedSound == STREAMED_SOUND_CITY_AMBIENT || m_nPreviousStreamedSound == STREAMED_SOUND_WATER_AMBIENT) AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_RADIO_CHANGE, 0.0f); } - if (m_nNextTrack < RADIO_OFF) { + if (m_nCurrentStreamedSound < STREAMED_SOUND_CITY_AMBIENT) { if (ChangeRadioChannel()) { ServiceTrack(); } else { m_bPlayerInCar = false; if (FindPlayerVehicle()) - FindPlayerVehicle()->m_nRadioStation = m_nNextTrack; - m_nNextTrack = NO_TRACK; + FindPlayerVehicle()->m_nRadioStation = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = NO_TRACK; } if (CTimer::GetIsSlowMotionActive()) { if (TheCamera.pTargetEntity != nil) { @@ -648,56 +631,56 @@ cMusicManager::ServiceGameMode() return; } if (bRadioOff) { - m_nNextTrack = m_nPlayingTrack; + m_nCurrentStreamedSound = m_nPreviousStreamedSound; if (FindPlayerVehicle() != nil) FindPlayerVehicle()->m_nRadioStation = RADIO_OFF; - AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_RADIO_TURN_OFF, 0.0f); + AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_NO_RADIO, 0.0f); } ServiceAmbience(); return; } if (m_bRadioSetByScript) { if (UsesPoliceRadio(FindPlayerVehicle())) { - m_nNextTrack = STREAMED_SOUND_RADIO_POLICE; + m_nCurrentStreamedSound = STREAMED_SOUND_RADIO_POLICE; } else { - m_nNextTrack = m_nRadioStationScript; - if (FindPlayerVehicle()->m_nRadioStation == m_nNextTrack) { - m_nPlayingTrack = NO_TRACK; + m_nCurrentStreamedSound = m_nRadioStation; + if (FindPlayerVehicle()->m_nRadioStation == m_nCurrentStreamedSound) { + m_nPreviousStreamedSound = NO_TRACK; SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0); SampleManager.StopStreamedFile(0); } if (m_nRadioPosition != -1) { - m_aTracks[m_nNextTrack].m_nPosition = m_nRadioPosition; - m_aTracks[m_nNextTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + m_aTracks[m_nCurrentStreamedSound].m_nPosition = m_nRadioPosition; + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); } } } else { - m_nNextTrack = GetCarTuning(); + m_nCurrentStreamedSound = GetCarTuning(); } - if (m_nNextTrack >= RADIO_OFF) { + if (m_nCurrentStreamedSound >= RADIO_OFF) { ServiceAmbience(); return; } if (ChangeRadioChannel()) { if (m_bRadioSetByScript) { m_bRadioSetByScript = false; - FindPlayerVehicle()->m_nRadioStation = m_nNextTrack; + FindPlayerVehicle()->m_nRadioStation = m_nCurrentStreamedSound; } } else { m_bPlayerInCar = false; - m_nNextTrack = NO_TRACK; + m_nCurrentStreamedSound = NO_TRACK; } } void cMusicManager::StopFrontEndTrack() { - if (IsInitialised() && !m_bDisabled && m_nMusicMode == MUSICMODE_FRONTEND && m_nNextTrack != NO_TRACK) { - m_aTracks[m_nNextTrack].m_nPosition = SampleManager.GetStreamedFilePosition(0); - m_aTracks[m_nNextTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + if (IsInitialised() && !m_bDisabled && m_nMusicMode == MUSICMODE_FRONTEND && m_nCurrentStreamedSound != NO_TRACK) { + m_aTracks[m_nCurrentStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); SampleManager.StopStreamedFile(0); - m_nPlayingTrack = NO_TRACK; - m_nNextTrack = NO_TRACK; + m_nPreviousStreamedSound = NO_TRACK; + m_nCurrentStreamedSound = NO_TRACK; } } @@ -713,30 +696,30 @@ cMusicManager::PlayFrontEndTrack(uint8 track, uint8 bPlayInFrontend) { if (IsInitialised() && !m_bDisabled && track < TOTAL_STREAMED_SOUNDS) { if (m_nMusicMode == MUSICMODE_GAME) { - if (m_nNextTrack != NO_TRACK) { + if (m_nCurrentStreamedSound != NO_TRACK) { if (m_bAnnouncementInProgress) { m_nAnnouncement = NO_TRACK; m_bAnnouncementInProgress = false; } - m_aTracks[m_nNextTrack].m_nPosition = SampleManager.GetStreamedFilePosition(0); - m_aTracks[m_nNextTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + m_aTracks[m_nCurrentStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); } SampleManager.StopStreamedFile(0); } else if (m_nMusicMode == MUSICMODE_FRONTEND) { - if (m_nNextTrack != NO_TRACK) { - m_aTracks[m_nNextTrack].m_nPosition = SampleManager.GetStreamedFilePosition(0); - m_aTracks[m_nNextTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + if (m_nCurrentStreamedSound != NO_TRACK) { + m_aTracks[m_nCurrentStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); } SampleManager.StopStreamedFile(0); } - m_nPlayingTrack = m_nNextTrack; - m_nNextTrack = track; + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = track; m_bPlayInFrontend = !!bPlayInFrontend; m_bFrontendTrackFinished = false; m_bDoTrackService = true; bHasStarted = false; - if (m_nNextTrack < NUM_RADIOS) { + if (m_nCurrentStreamedSound < STREAMED_SOUND_RADIO_POLICE) { gRetuneCounter = 0; gNumRetunePresses = 0; } @@ -752,7 +735,7 @@ cMusicManager::PreloadCutSceneMusic(uint8 track) SampleManager.StopStreamedFile(0); SampleManager.PreloadStreamedFile(track, 0); SampleManager.SetStreamedVolumeAndPan(MAX_VOLUME, 63, 1, 0); - m_nNextTrack = track; + m_nCurrentStreamedSound = track; } } @@ -768,7 +751,7 @@ cMusicManager::StopCutSceneMusic(void) { if (IsInitialised() && !m_bDisabled && m_nMusicMode == MUSICMODE_CUTSCENE) { SampleManager.StopStreamedFile(0); - m_nNextTrack = NO_TRACK; + m_nCurrentStreamedSound = NO_TRACK; } } @@ -812,45 +795,45 @@ cMusicManager::ServiceAmbience() m_nAnnouncement = NO_TRACK; m_bAnnouncementInProgress = false; } - if (m_nNextTrack < RADIO_OFF) { + if (m_nCurrentStreamedSound < STREAMED_SOUND_CITY_AMBIENT) { if (SampleManager.IsStreamPlaying(0)) { - m_aTracks[m_nNextTrack].m_nPosition = SampleManager.GetStreamedFilePosition(0); - m_aTracks[m_nNextTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + m_aTracks[m_nCurrentStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); SampleManager.StopStreamedFile(0); - m_nNextTrack = NO_TRACK; + m_nCurrentStreamedSound = NO_TRACK; return; } - m_nNextTrack = RADIO_OFF; + m_nCurrentStreamedSound = STREAMED_SOUND_CITY_AMBIENT; } if (CWorld::Players[CWorld::PlayerInFocus].m_WBState != WBSTATE_PLAYING && !SampleManager.IsStreamPlaying(0)) { - m_nNextTrack = NO_TRACK; + m_nCurrentStreamedSound = NO_TRACK; return; } - m_nPlayingTrack = m_nNextTrack; - m_nNextTrack = TheCamera.DistanceToWater <= 45.0f ? STREAMED_SOUND_WATER_AMBIENT : STREAMED_SOUND_CITY_AMBIENT; + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = TheCamera.DistanceToWater <= 45.0f ? STREAMED_SOUND_WATER_AMBIENT : STREAMED_SOUND_CITY_AMBIENT; - if (m_nNextTrack == m_nPlayingTrack) { + if (m_nCurrentStreamedSound == m_nPreviousStreamedSound) { ComputeAmbienceVol(false, volume); SampleManager.SetStreamedVolumeAndPan(volume, 63, 1, 0); - if (m_bVerifyAmbienceTrackStartedToPlay) { + if (m_bDontServiceAmbienceTrack) { if (SampleManager.IsStreamPlaying(0)) - m_bVerifyAmbienceTrackStartedToPlay = false; + m_bDontServiceAmbienceTrack = false; } else ServiceTrack(); } else { - if (m_nPlayingTrack < TOTAL_STREAMED_SOUNDS) { - m_aTracks[m_nPlayingTrack].m_nPosition = SampleManager.GetStreamedFilePosition(0); - m_aTracks[m_nPlayingTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + if (m_nPreviousStreamedSound < TOTAL_STREAMED_SOUNDS) { + m_aTracks[m_nPreviousStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nPreviousStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); SampleManager.StopStreamedFile(0); } - uint32 pos = GetTrackStartPos(m_nNextTrack); + uint32 pos = GetTrackStartPos(m_nCurrentStreamedSound); SampleManager.SetStreamedVolumeAndPan(0, 63, 1, 0); - if (SampleManager.StartStreamedFile(m_nNextTrack, pos, 0)) { + if (SampleManager.StartStreamedFile(m_nCurrentStreamedSound, pos, 0)) { ComputeAmbienceVol(true, volume); SampleManager.SetStreamedVolumeAndPan(volume, 63, 1, 0); - m_bVerifyAmbienceTrackStartedToPlay = true; + m_bDontServiceAmbienceTrack = true; } else - m_nNextTrack = NO_TRACK; + m_nCurrentStreamedSound = NO_TRACK; } } @@ -879,7 +862,7 @@ cMusicManager::ServiceTrack() { if (m_bDoTrackService) { if (!SampleManager.IsStreamPlaying(0)) - SampleManager.StartStreamedFile(m_nNextTrack, 0, 0); + SampleManager.StartStreamedFile(m_nCurrentStreamedSound, 0, 0); } } @@ -899,9 +882,9 @@ cMusicManager::ServiceAnnouncement() cCheck = 0; int pos = SampleManager.GetStreamedFilePosition(0); if (SampleManager.IsStreamPlaying(0)) { - if (m_nNextTrack != NO_TRACK) { - m_aTracks[m_nNextTrack].m_nPosition = pos; - m_aTracks[m_nNextTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + if (m_nCurrentStreamedSound != NO_TRACK) { + m_aTracks[m_nCurrentStreamedSound].m_nPosition = pos; + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); SampleManager.StopStreamedFile(0); } } @@ -910,8 +893,8 @@ cMusicManager::ServiceAnnouncement() if (SampleManager.StartStreamedFile(m_nAnnouncement, 0, 0)) { SampleManager.SetStreamedVolumeAndPan(AudioManager.ShouldDuckMissionAudio() ? 25 : 100, 63, 0, 0); m_bAnnouncementInProgress = true; - m_nPlayingTrack = m_nNextTrack; - m_nNextTrack = m_nAnnouncement; + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = m_nAnnouncement; return true; } @@ -946,7 +929,7 @@ cMusicManager::GetNextCarTuning() while (gNumRetunePresses < 0) { if(veh->m_nRadioStation == HEAD_RADIO) { veh->m_nRadioStation = RADIO_OFF; - } else if(veh->m_nRadioStation == RADIO_OFF || veh->m_nRadioStation == NUM_RADIOS) { + } else if(veh->m_nRadioStation == RADIO_OFF || veh->m_nRadioStation == POLICE_RADIO) { veh->m_nRadioStation = SampleManager.IsMP3RadioChannelAvailable() ? USERTRACK : USERTRACK - 1; } else veh->m_nRadioStation--; @@ -957,18 +940,12 @@ cMusicManager::GetNextCarTuning() #endif if (SampleManager.IsMP3RadioChannelAvailable()) { if (veh->m_nRadioStation == RADIO_OFF) - veh->m_nRadioStation = NUM_RADIOS; + veh->m_nRadioStation = POLICE_RADIO; veh->m_nRadioStation += gNumRetunePresses; -#ifdef FIX_BUGS - while (veh->m_nRadioStation > NUM_RADIOS) - veh->m_nRadioStation -= (NUM_RADIOS + 1); -#endif - if (veh->m_nRadioStation == NUM_RADIOS) + if (veh->m_nRadioStation == POLICE_RADIO) veh->m_nRadioStation = RADIO_OFF; -#ifndef FIX_BUGS - else if (veh->m_nRadioStation > NUM_RADIOS) - veh->m_nRadioStation -= (NUM_RADIOS + 1); -#endif + else if (veh->m_nRadioStation > POLICE_RADIO) + veh->m_nRadioStation -= RADIO_OFF; } else if (gNumRetunePresses + veh->m_nRadioStation >= USERTRACK) { while (gNumRetunePresses) { if (veh->m_nRadioStation == RADIO_OFF) @@ -990,16 +967,16 @@ cMusicManager::GetNextCarTuning() bool cMusicManager::ChangeRadioChannel() { - if (m_nNextTrack != m_nPlayingTrack) { - if (m_nPlayingTrack < TOTAL_STREAMED_SOUNDS) { - m_aTracks[m_nPlayingTrack].m_nPosition = SampleManager.GetStreamedFilePosition(0); - m_aTracks[m_nPlayingTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + if (m_nCurrentStreamedSound != m_nPreviousStreamedSound) { + if (m_nPreviousStreamedSound < TOTAL_STREAMED_SOUNDS) { + m_aTracks[m_nPreviousStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nPreviousStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0); SampleManager.StopStreamedFile(0); } if (SampleManager.IsStreamPlaying(0)) return false; - if (!SampleManager.StartStreamedFile(m_nNextTrack, GetTrackStartPos(m_nNextTrack), 0)) + if (!SampleManager.StartStreamedFile(m_nCurrentStreamedSound, GetTrackStartPos(m_nCurrentStreamedSound), 0)) return false; SampleManager.SetStreamedVolumeAndPan(AudioManager.ShouldDuckMissionAudio() ? 25 : 100, 63, 0, 0); } diff --git a/src/audio/MusicManager.h b/src/audio/MusicManager.h index 5d277f0e..e8b94da6 100644 --- a/src/audio/MusicManager.h +++ b/src/audio/MusicManager.h @@ -18,8 +18,8 @@ public: bool m_bIsInitialised; bool m_bDisabled; uint8 m_nMusicMode; - uint8 m_nNextTrack; - uint8 m_nPlayingTrack; + uint8 m_nCurrentStreamedSound; + uint8 m_nPreviousStreamedSound; bool m_bFrontendTrackFinished; bool m_bPlayInFrontend; bool m_bSetNextStation; @@ -34,9 +34,9 @@ public: uint32 m_nTimer; bool m_bDoTrackService; bool m_bIgnoreTimeDelay; - bool m_bVerifyAmbienceTrackStartedToPlay; + bool m_bDontServiceAmbienceTrack; bool m_bRadioSetByScript; - uint8 m_nRadioStationScript; + uint8 m_nRadioStation; int32 m_nRadioPosition; uint8 m_nRadioInCar; @@ -44,7 +44,7 @@ public: cMusicManager(); bool IsInitialised() { return m_bIsInitialised; } uint32 GetMusicMode() { return m_nMusicMode; } - uint8 GetNextTrack() { return m_nNextTrack; } + uint8 GetCurrentTrack() { return m_nCurrentStreamedSound; } bool Initialise(); void Terminate(); diff --git a/src/audio/audio_enums.h b/src/audio/audio_enums.h index 027042cb..8c6d35aa 100644 --- a/src/audio/audio_enums.h +++ b/src/audio/audio_enums.h @@ -12,9 +12,8 @@ enum eRadioStation FLASHBACK, CHATTERBOX, USERTRACK, - POLICE_RADIO = 10, - NUM_RADIOS = 10, - RADIO_OFF = 11, + POLICE_RADIO, + RADIO_OFF, }; enum eMusicMode diff --git a/src/audio/oal/channel.cpp b/src/audio/oal/channel.cpp index d1fd0aea..673a4aed 100644 --- a/src/audio/oal/channel.cpp +++ b/src/audio/oal/channel.cpp @@ -15,8 +15,6 @@ ALuint alFilters[MAXCHANNELS+MAX2DCHANNELS]; ALuint alBuffers[MAXCHANNELS+MAX2DCHANNELS]; bool bChannelsCreated = false; -int32 CChannel::channelsThatNeedService = 0; - void CChannel::InitChannels() { @@ -61,9 +59,7 @@ void CChannel::SetDefault() Position[0] = 0.0f; Position[1] = 0.0f; Position[2] = 0.0f; Distances[0] = 0.0f; Distances[1] = FLT_MAX; - - LoopCount = 1; - LastProcessedOffset = UINT32_MAX; + LoopCount = 1; LoopPoints[0] = 0; LoopPoints[1] = -1; Frequency = MAX_FREQ; @@ -71,10 +67,6 @@ void CChannel::SetDefault() void CChannel::Reset() { - // Here is safe because ctor don't call this - if (LoopCount > 1) - channelsThatNeedService--; - ClearBuffer(); SetDefault(); } @@ -173,51 +165,10 @@ void CChannel::SetCurrentFreq(uint32 freq) SetPitch(ALfloat(freq) / Frequency); } -void CChannel::SetLoopCount(int32 count) +void CChannel::SetLoopCount(int32 loopCount) // fake. TODO: { if ( !HasSource() ) return; - - // 0: loop indefinitely, 1: play one time, 2: play two times etc... - // only > 1 needs manual processing - - if (LoopCount > 1 && count < 2) - channelsThatNeedService--; - else if (LoopCount < 2 && count > 1) - channelsThatNeedService++; - - alSourcei(alSources[id], AL_LOOPING, count == 1 ? AL_FALSE : AL_TRUE); - LoopCount = count; -} - -bool CChannel::Update() -{ - if (!HasSource()) return false; - if (LoopCount < 2) return false; - - ALint state; - alGetSourcei(alSources[id], AL_SOURCE_STATE, &state); - if (state == AL_STOPPED) { - debug("Looping channels(%d in this case) shouldn't report AL_STOPPED, but nvm\n", id); - SetLoopCount(1); - return true; - } - - assert(channelsThatNeedService > 0 && "Ref counting is broken"); - - ALint offset; - alGetSourcei(alSources[id], AL_SAMPLE_OFFSET, &offset); - - // Rewound - if (offset < LastProcessedOffset) { - LoopCount--; - if (LoopCount == 1) { - // Playing last tune... - channelsThatNeedService--; - alSourcei(alSources[id], AL_LOOPING, AL_FALSE); - } - } - LastProcessedOffset = offset; - return true; + alSourcei(alSources[id], AL_LOOPING, loopCount == 1 ? AL_FALSE : AL_TRUE); } void CChannel::SetLoopPoints(ALint start, ALint end) @@ -249,7 +200,6 @@ void CChannel::SetPan(int32 pan) void CChannel::ClearBuffer() { if ( !HasSource() ) return; - alSourcei(alSources[id], AL_LOOPING, AL_FALSE); alSourcei(alSources[id], AL_BUFFER, AL_NONE); Data = nil; DataSize = 0; diff --git a/src/audio/oal/channel.h b/src/audio/oal/channel.h index b081be25..81817a32 100644 --- a/src/audio/oal/channel.h +++ b/src/audio/oal/channel.h @@ -19,10 +19,7 @@ class CChannel float Distances[2]; int32 LoopCount; ALint LoopPoints[2]; - ALint LastProcessedOffset; public: - static int32 channelsThatNeedService; - static void InitChannels(); static void DestroyChannels(); @@ -40,7 +37,7 @@ public: void SetVolume(int32 vol); void SetSampleData(void *_data, size_t _DataSize, int32 freq); void SetCurrentFreq(uint32 freq); - void SetLoopCount(int32 count); + void SetLoopCount(int32 loopCount); // fake void SetLoopPoints(ALint start, ALint end); void SetPosition(float x, float y, float z); void SetDistances(float max, float min); @@ -48,7 +45,6 @@ public: void ClearBuffer(); void SetReverbMix(ALuint slot, float mix); void UpdateReverb(ALuint slot); - bool Update(); }; #endif \ No newline at end of file diff --git a/src/audio/oal/stream.cpp b/src/audio/oal/stream.cpp index 61cd243d..74ed86f4 100644 --- a/src/audio/oal/stream.cpp +++ b/src/audio/oal/stream.cpp @@ -492,7 +492,6 @@ public: m_bOpened = mpg123_open(m_pMH, path) == MPG123_OK && mpg123_getformat(m_pMH, &rate, &channels, &encoding) == MPG123_OK; - m_nRate = rate; m_nChannels = channels; @@ -926,8 +925,7 @@ CStream::CStream(char *filename, ALuint *sources, ALuint (&buffers)[NUM_STREAMBU m_bReset(false), m_nVolume(0), m_nPan(0), - m_nPosBeforeReset(0), - m_nLoopCount(1) + m_nPosBeforeReset(0) { // Be case-insensitive on linux (from https://github.com/OneSadCookie/fcaseopen/) @@ -1023,7 +1021,7 @@ bool CStream::IsPlaying() ALint sourceState[2]; alGetSourcei(m_pAlSources[0], AL_SOURCE_STATE, &sourceState[0]); alGetSourcei(m_pAlSources[1], AL_SOURCE_STATE, &sourceState[1]); - if (sourceState[0] == AL_PLAYING || sourceState[1] == AL_PLAYING) + if ( m_bActive || sourceState[0] == AL_PLAYING || sourceState[1] == AL_PLAYING) return true; } @@ -1181,8 +1179,6 @@ bool CStream::Setup() { if ( IsOpened() ) { - alSourcei(m_pAlSources[0], AL_LOOPING, AL_FALSE); - alSourcei(m_pAlSources[1], AL_LOOPING, AL_FALSE); m_pSoundFile->Seek(0); //SetPosition(0.0f, 0.0f, 0.0f); SetPitch(1.0f); @@ -1193,13 +1189,6 @@ bool CStream::Setup() return IsOpened(); } -void CStream::SetLoopCount(int32 count) -{ - if ( !HasSource() ) return; - - m_nLoopCount = count; -} - void CStream::SetPlay(bool state) { if ( !HasSource() ) return; @@ -1259,7 +1248,7 @@ void CStream::Update() if ( !m_bPaused ) { - ALint totalBuffers[2] = { 0, 0 }; + ALint sourceState[2]; ALint buffersProcessed[2] = { 0, 0 }; // Relying a lot on left buffer states in here @@ -1267,51 +1256,44 @@ void CStream::Update() do { //alSourcef(m_pAlSources[0], AL_ROLLOFF_FACTOR, 0.0f); - alGetSourcei(m_pAlSources[0], AL_BUFFERS_QUEUED, &totalBuffers[0]); + alGetSourcei(m_pAlSources[0], AL_SOURCE_STATE, &sourceState[0]); alGetSourcei(m_pAlSources[0], AL_BUFFERS_PROCESSED, &buffersProcessed[0]); //alSourcef(m_pAlSources[1], AL_ROLLOFF_FACTOR, 0.0f); - alGetSourcei(m_pAlSources[1], AL_BUFFERS_QUEUED, &totalBuffers[1]); + alGetSourcei(m_pAlSources[1], AL_SOURCE_STATE, &sourceState[1]); alGetSourcei(m_pAlSources[1], AL_BUFFERS_PROCESSED, &buffersProcessed[1]); } while (buffersProcessed[0] != buffersProcessed[1]); - assert(buffersProcessed[0] == buffersProcessed[1]); - - // Correcting OpenAL concepts here: - // AL_BUFFERS_QUEUED = Number of *all* buffers in queue, including processed, processing and pending - // AL_BUFFERS_PROCESSED = Index of the buffer being processing right now. Buffers coming after that(have greater index) are pending buffers. - // which means: totalBuffers[0] - buffersProcessed[0] = pending buffers - - bool buffersRefilled = false; - - // We should wait queue to be cleared to loop track, because position calculation relies on queue. - if (m_nLoopCount != 1 && m_bActive && totalBuffers[0] == 0) + ALint looping = AL_FALSE; + alGetSourcei(m_pAlSources[0], AL_LOOPING, &looping); + + if ( looping == AL_TRUE ) { - Setup(); - buffersRefilled = FillBuffers() != 0; - if (m_nLoopCount != 0) - m_nLoopCount--; + TRACE("stream set looping"); + alSourcei(m_pAlSources[0], AL_LOOPING, AL_TRUE); + alSourcei(m_pAlSources[1], AL_LOOPING, AL_TRUE); } - else + + assert(buffersProcessed[0] == buffersProcessed[1]); + + while( buffersProcessed[0]-- ) { - while( buffersProcessed[0]-- ) + ALuint buffer[2]; + + alSourceUnqueueBuffers(m_pAlSources[0], 1, &buffer[0]); + alSourceUnqueueBuffers(m_pAlSources[1], 1, &buffer[1]); + + if (m_bActive && FillBuffer(buffer)) { - ALuint buffer[2]; - - alSourceUnqueueBuffers(m_pAlSources[0], 1, &buffer[0]); - alSourceUnqueueBuffers(m_pAlSources[1], 1, &buffer[1]); - - if (m_bActive && FillBuffer(buffer)) - { - buffersRefilled = true; - alSourceQueueBuffers(m_pAlSources[0], 1, &buffer[0]); - alSourceQueueBuffers(m_pAlSources[1], 1, &buffer[1]); - } + alSourceQueueBuffers(m_pAlSources[0], 1, &buffer[0]); + alSourceQueueBuffers(m_pAlSources[1], 1, &buffer[1]); } } - - // Two reasons: 1-Source may be starved to audio and stopped itself, 2- We're already waiting it to starve and die for looping track! - if (m_bActive && (buffersRefilled || (totalBuffers[1] - buffersProcessed[1] != 0))) - SetPlay(true); + + if ( sourceState[0] != AL_PLAYING ) + { + alGetSourcei(m_pAlSources[0], AL_BUFFERS_PROCESSED, &buffersProcessed[0]); + SetPlay(buffersProcessed[0]!=0); + } } } @@ -1323,7 +1305,6 @@ void CStream::ProviderInit() { SetPan(m_nPan); SetVolume(m_nVolume); - SetLoopCount(m_nLoopCount); SetPosMS(m_nPosBeforeReset); if (m_bActive) FillBuffers(); diff --git a/src/audio/oal/stream.h b/src/audio/oal/stream.h index b3e96809..bcbc5e54 100644 --- a/src/audio/oal/stream.h +++ b/src/audio/oal/stream.h @@ -69,7 +69,6 @@ class CStream uint32 m_nVolume; uint8 m_nPan; uint32 m_nPosBeforeReset; - int32 m_nLoopCount; IDecoder *m_pSoundFile; @@ -104,8 +103,6 @@ public: void Start(); void Stop(); void Update(void); - void SetLoopCount(int32); - void ProviderInit(); void ProviderTerm(); diff --git a/src/audio/sampman_miles.cpp b/src/audio/sampman_miles.cpp index 9b601d52..11e2b0ff 100644 --- a/src/audio/sampman_miles.cpp +++ b/src/audio/sampman_miles.cpp @@ -1514,7 +1514,7 @@ cSampleManager::LoadPedComment(uint32 nComment) case MUSICMODE_FRONTEND: { - if ( MusicManager.GetNextTrack() == STREAMED_SOUND_GAME_COMPLETED ) + if ( MusicManager.GetCurrentTrack() == STREAMED_SOUND_GAME_COMPLETED ) return false; break; @@ -1753,8 +1753,8 @@ cSampleManager::SetChannelEmittingVolume(uint32 nChannel, uint32 nVolume) // increase the volume for JB.MP3 and S4_BDBD.MP3 if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE - && MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO - && MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD ) + && MusicManager.GetCurrentTrack() != STREAMED_SOUND_NEWS_INTRO + && MusicManager.GetCurrentTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD ) { nChannelVolume[nChannel] >>= 2; } @@ -1792,8 +1792,8 @@ cSampleManager::SetChannelVolume(uint32 nChannel, uint32 nVolume) // increase the volume for JB.MP3 and S4_BDBD.MP3 if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE - && MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO - && MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD ) + && MusicManager.GetCurrentTrack() != STREAMED_SOUND_NEWS_INTRO + && MusicManager.GetCurrentTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD ) { nChannelVolume[nChannel] >>= 2; } diff --git a/src/audio/sampman_oal.cpp b/src/audio/sampman_oal.cpp index d9adef5b..798ea287 100644 --- a/src/audio/sampman_oal.cpp +++ b/src/audio/sampman_oal.cpp @@ -14,6 +14,8 @@ #include #include +#pragma comment(lib, "OpenAL32.lib") + // for user MP3s #include #include @@ -22,10 +24,6 @@ #define _getcwd getcwd #endif -#if defined _MSC_VER && !defined CMAKE_NO_AUTOLINK -#pragma comment( lib, "OpenAL32.lib" ) -#endif - #include "common.h" #include "crossplatform.h" @@ -46,6 +44,7 @@ //TODO: fix eax3 reverb //TODO: max channels +//TODO: loop count cSampleManager SampleManager; bool _bSampmanInitialised = false; @@ -118,6 +117,7 @@ char _mp3DirectoryPath[MAX_PATH]; CStream *aStream[MAX_STREAMS]; uint8 nStreamPan [MAX_STREAMS]; uint8 nStreamVolume[MAX_STREAMS]; +uint8 nStreamLoopedFlag[MAX_STREAMS]; uint32 _CurMP3Index; int32 _CurMP3Pos; bool _bIsMp3Active; @@ -1318,7 +1318,7 @@ cSampleManager::LoadPedComment(uint32 nComment) case MUSICMODE_FRONTEND: { - if ( MusicManager.GetNextTrack() == STREAMED_SOUND_GAME_COMPLETED ) + if ( MusicManager.GetCurrentTrack() == STREAMED_SOUND_GAME_COMPLETED ) return false; break; @@ -1533,8 +1533,8 @@ cSampleManager::SetChannelEmittingVolume(uint32 nChannel, uint32 nVolume) // reduce channel volume when JB.MP3 or S4_BDBD.MP3 playing if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE - && MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO - && MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD ) + && MusicManager.GetCurrentTrack() != STREAMED_SOUND_NEWS_INTRO + && MusicManager.GetCurrentTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD ) { nChannelVolume[nChannel] = vol / 4; } @@ -1575,8 +1575,8 @@ cSampleManager::SetChannelVolume(uint32 nChannel, uint32 nVolume) // reduce the volume for JB.MP3 and S4_BDBD.MP3 if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE - && MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO - && MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD ) + && MusicManager.GetCurrentTrack() != STREAMED_SOUND_NEWS_INTRO + && MusicManager.GetCurrentTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD ) { nChannelVolume[nChannel] = vol / 4; } @@ -1666,7 +1666,7 @@ cSampleManager::PreloadStreamedFile(uint8 nFile, uint8 nStream) ASSERT(stream != NULL); aStream[nStream] = stream; - if ( !stream->Setup() ) + if ( !stream->IsOpened() ) { delete stream; aStream[nStream] = NULL; @@ -1696,7 +1696,7 @@ cSampleManager::StartPreloadedStreamedFile(uint8 nStream) if ( stream ) { - if ( stream->IsOpened() ) + if ( stream->Setup() ) { stream->Start(); } @@ -1742,11 +1742,13 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream) aStream[nStream] = stream; - if (stream->Setup()) { - if (position != 0) - stream->SetPosMS(position); + if (stream->IsOpened()) { + if (stream->Setup()) { + if (position != 0) + stream->SetPosMS(position); - stream->Start(); + stream->Start(); + } return true; } else { @@ -1767,8 +1769,10 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream) aStream[nStream] = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); } - if (aStream[nStream]->Setup()) { - aStream[nStream]->Start(); + if (aStream[nStream]->IsOpened()) { + if (aStream[nStream]->Setup()) { + aStream[nStream]->Start(); + } return true; } else { @@ -1794,11 +1798,13 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream) aStream[nStream] = stream; - if (stream->Setup()) { - if (position != 0) - stream->SetPosMS(position); + if (stream->IsOpened()) { + if (stream->Setup()) { + if (position != 0) + stream->SetPosMS(position); - stream->Start(); + stream->Start(); + } return true; } else { @@ -1819,11 +1825,13 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream) aStream[nStream] = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream]); } - if (aStream[nStream]->Setup()) { - if (position != 0) - aStream[nStream]->SetPosMS(position); + if (aStream[nStream]->IsOpened()) { + if (aStream[nStream]->Setup()) { + if (position != 0) + aStream[nStream]->SetPosMS(position); - aStream[nStream]->Start(); + aStream[nStream]->Start(); + } _bIsMp3Active = true; return true; @@ -1847,11 +1855,13 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream) aStream[nStream] = stream; - if ( stream->Setup() ) { - if (position != 0) - stream->SetPosMS(position); + if ( stream->IsOpened() ) { + if ( stream->Setup() ) { + if (position != 0) + stream->SetPosMS(position); - stream->Start(); + stream->Start(); + } return true; } else { @@ -1874,9 +1884,6 @@ cSampleManager::StopStreamedFile(uint8 nStream) { delete stream; aStream[nStream] = NULL; - - if ( nStream == 0 ) - _bIsMp3Active = false; } } @@ -1889,21 +1896,7 @@ cSampleManager::GetStreamedFilePosition(uint8 nStream) if ( stream ) { - if ( _bIsMp3Active ) - { - tMP3Entry *mp3 = _GetMP3EntryByIndex(_CurMP3Index); - - if ( mp3 != NULL ) - { - return stream->GetPosMS() + mp3->nTrackStreamPos; - } - else - return 0; - } - else - { - return stream->GetPosMS(); - } + return stream->GetPosMS(); } return 0; @@ -1970,12 +1963,6 @@ cSampleManager::Service(void) if ( stream ) stream->Update(); } - int refCount = CChannel::channelsThatNeedService; - for ( int32 i = 0; refCount && i < MAXCHANNELS+MAX2DCHANNELS; i++ ) - { - if ( aChannel[i].Update() ) - refCount--; - } } bool diff --git a/src/audio/soundlist.h b/src/audio/soundlist.h index 4bbc3dde..7c3b30a7 100644 --- a/src/audio/soundlist.h +++ b/src/audio/soundlist.h @@ -160,7 +160,7 @@ enum eSound SOUND_FRONTEND_MONO, SOUND_FRONTEND_AUDIO_TEST, SOUND_FRONTEND_FAIL, - SOUND_FRONTEND_RADIO_TURN_OFF, + SOUND_FRONTEND_NO_RADIO, SOUND_FRONTEND_RADIO_CHANGE, SOUND_HUD, SOUND_AMMUNATION_WELCOME_1, diff --git a/src/control/AutoPilot.cpp b/src/control/AutoPilot.cpp index 77cbd0b4..4038c93e 100644 --- a/src/control/AutoPilot.cpp +++ b/src/control/AutoPilot.cpp @@ -52,8 +52,8 @@ void CAutoPilot::Save(uint8*& buf) WriteSaveBuf(buf, m_nCurrentRouteNode); WriteSaveBuf(buf, m_nNextRouteNode); WriteSaveBuf(buf, m_nPrevRouteNode); - WriteSaveBuf(buf, m_nTimeEnteredCurve); - WriteSaveBuf(buf, m_nTimeToSpendOnCurrentCurve); + WriteSaveBuf(buf, m_nTimeEnteredCurve); + WriteSaveBuf(buf, m_nTimeToSpendOnCurrentCurve); WriteSaveBuf(buf, m_nCurrentPathNodeInfo); WriteSaveBuf(buf, m_nNextPathNodeInfo); WriteSaveBuf(buf, m_nPreviousPathNodeInfo); @@ -91,8 +91,8 @@ void CAutoPilot::Load(uint8*& buf) m_nCurrentRouteNode = ReadSaveBuf(buf); m_nNextRouteNode = ReadSaveBuf(buf); m_nPrevRouteNode = ReadSaveBuf(buf); - m_nTimeEnteredCurve = ReadSaveBuf(buf); - m_nTimeToSpendOnCurrentCurve = ReadSaveBuf(buf); + m_nTimeEnteredCurve = ReadSaveBuf(buf); + m_nTimeToSpendOnCurrentCurve = ReadSaveBuf(buf); m_nCurrentPathNodeInfo = ReadSaveBuf(buf); m_nNextPathNodeInfo = ReadSaveBuf(buf); m_nPreviousPathNodeInfo = ReadSaveBuf(buf); diff --git a/src/control/AutoPilot.h b/src/control/AutoPilot.h index c7707ed6..6349fce6 100644 --- a/src/control/AutoPilot.h +++ b/src/control/AutoPilot.h @@ -57,8 +57,8 @@ public: int32 m_nCurrentRouteNode; int32 m_nNextRouteNode; int32 m_nPrevRouteNode; - int32 m_nTimeEnteredCurve; - int32 m_nTimeToSpendOnCurrentCurve; + uint32 m_nTimeEnteredCurve; + uint32 m_nTimeToSpendOnCurrentCurve; uint32 m_nCurrentPathNodeInfo; uint32 m_nNextPathNodeInfo; uint32 m_nPreviousPathNodeInfo; diff --git a/src/control/Phones.cpp b/src/control/Phones.cpp index ef7ecead..f649d435 100644 --- a/src/control/Phones.cpp +++ b/src/control/Phones.cpp @@ -58,9 +58,9 @@ CPhoneInfo::Update(void) TheCamera.SetWideScreenOff(); pPhoneDisplayingMessages = nil; bDisplayingPhoneMessage = false; - CAnimBlendAssociation *talkAssoc = RpAnimBlendClumpGetAssociation(player->GetClump(), ANIM_STD_PHONE_TALK); + CAnimBlendAssociation *talkAssoc = RpAnimBlendClumpGetAssociation(player->GetClump(), ANIM_PHONE_TALK); if (talkAssoc && talkAssoc->blendAmount > 0.5f) { - CAnimBlendAssociation *endAssoc = CAnimManager::BlendAnimation(player->GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_OUT, 8.0f); + CAnimBlendAssociation *endAssoc = CAnimManager::BlendAnimation(player->GetClump(), ASSOCGRP_STD, ANIM_PHONE_OUT, 8.0f); endAssoc->flags &= ~ASSOC_DELETEFADEDOUT; endAssoc->SetFinishCallback(PhonePutDownCB, player); } else { @@ -117,7 +117,7 @@ CPhoneInfo::Update(void) CPad::GetPad(0)->SetDisablePlayerControls(PLAYERCONTROL_PHONE); TheCamera.SetWideScreenOn(); playerInfo->MakePlayerSafe(true); - CAnimBlendAssociation *phonePickAssoc = CAnimManager::BlendAnimation(player->GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_IN, 4.0f); + CAnimBlendAssociation *phonePickAssoc = CAnimManager::BlendAnimation(player->GetClump(), ASSOCGRP_STD, ANIM_PHONE_IN, 4.0f); phonePickAssoc->SetFinishCallback(PhonePickUpCB, &m_aPhones[phoneId]); bPickingUpPhone = true; pCallBackPed = player; @@ -442,10 +442,10 @@ PhonePickUpCB(CAnimBlendAssociation *assoc, void *arg) CPed *ped = CPhoneInfo::pCallBackPed; ped->m_nMoveState = PEDMOVE_STILL; - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE, 8.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_IDLE_STANCE, 8.0f); if (assoc->blendAmount > 0.5f && ped) - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_TALK, 8.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_PHONE_TALK, 8.0f); CPhoneInfo::pCallBackPed = nil; } diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index d8b15385..2dd66333 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -457,7 +457,7 @@ void CReplay::StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState state->aFunctionCallbackID[i] = 0; } }else{ - state->aAnimId[i] = ANIM_STD_NUM; + state->aAnimId[i] = NUM_ANIMS; state->aCurTime[i] = 0; state->aSpeed[i] = 85; state->aFunctionCallbackID[i] = 0; @@ -484,7 +484,7 @@ void CReplay::StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState } } else { - state->aAnimId2[i] = ANIM_STD_NUM; + state->aAnimId2[i] = NUM_ANIMS; state->aCurTime2[i] = 0; state->aSpeed2[i] = 85; state->aFunctionCallbackID2[i] = 0; @@ -558,7 +558,7 @@ void CReplay::RetrievePedAnimation(CPed *ped, CStoredAnimationState *state) float time = state->partAnimTime * 4.0f / 255.0f; float speed = state->partAnimSpeed * 3.0f / 255.0f; float blend = state->partBlendAmount * 2.0f / 255.0f; - if (blend > 0.0f && state->partAnimId != ANIM_STD_IDLE){ + if (blend > 0.0f && state->partAnimId != ANIM_IDLE_STANCE){ CAnimBlendAssociation* anim3 = CAnimManager::BlendAnimation( (RpClump*)ped->m_rwObject, ASSOCGRP_STD, (AnimationId)state->partAnimId, 1000.0f); anim3->SetCurrentTime(time); @@ -578,7 +578,7 @@ void CReplay::RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationSt assoc->SetBlend(0.0f, -1.0f); #endif for (int i = 0; i < NUM_MAIN_ANIMS_IN_REPLAY; i++) { - if (state->aAnimId[i] == ANIM_STD_NUM) + if (state->aAnimId[i] == NUM_ANIMS) continue; #ifdef FIX_REPLAY_BUGS CAnimBlendAssociation* anim = CAnimManager::AddAnimation(ped->GetClump(), @@ -607,7 +607,7 @@ void CReplay::RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationSt anim->SetDeleteCallback(FindCBFunction(callback & 0x7F), ped); } for (int i = 0; i < NUM_PARTIAL_ANIMS_IN_REPLAY; i++) { - if (state->aAnimId2[i] == ANIM_STD_NUM) + if (state->aAnimId2[i] == NUM_ANIMS) continue; #ifdef FIX_REPLAY_BUGS CAnimBlendAssociation* anim = CAnimManager::AddAnimation(ped->GetClump(), diff --git a/src/control/Script.cpp b/src/control/Script.cpp index 5598f3c9..e70bd508 100644 --- a/src/control/Script.cpp +++ b/src/control/Script.cpp @@ -4266,7 +4266,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) #ifdef FIX_BUGS AnimationId anim = pVehicle->GetDriverAnim(); #else - AnimationId anim = pVehicle->bLowVehicle ? ANIM_STD_CAR_SIT_LO : ANIM_STD_CAR_SIT; + AnimationId anim = pVehicle->bLowVehicle ? ANIM_CAR_LSIT : ANIM_CAR_SIT; #endif pPed->m_pVehicleAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, anim, 100.0f); pPed->StopNonPartialAnims(); @@ -4309,7 +4309,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) pPlayer->m_pPed->m_pVehicleAnim->blendDelta = -1000.0f; pPlayer->m_pPed->m_pVehicleAnim = nil; pPlayer->m_pPed->SetMoveState(PEDMOVE_NONE); - CAnimManager::BlendAnimation(pPlayer->m_pPed->GetClump(), pPlayer->m_pPed->m_animGroup, ANIM_STD_IDLE, 100.0f); + CAnimManager::BlendAnimation(pPlayer->m_pPed->GetClump(), pPlayer->m_pPed->m_animGroup, ANIM_IDLE_STANCE, 100.0f); pPlayer->m_pPed->RestartNonPartialAnims(); AudioManager.PlayerJustLeftCar(); pos.z += pPlayer->m_pPed->GetDistanceFromCentreOfMassToBaseOfModel(); diff --git a/src/control/Script2.cpp b/src/control/Script2.cpp index 5c953011..9329b3bc 100644 --- a/src/control/Script2.cpp +++ b/src/control/Script2.cpp @@ -913,7 +913,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) if (strcmp(m_abScriptName, "camera") == 0){ pPlayer->m_pPed->SetMoveSpeed(0.0f, 0.0f, 0.0f); pPlayer->m_pPed->SetTurnSpeed(0.0f, 0.0f, 0.0f); - CAnimManager::BlendAnimation((RpClump*)pPlayer->m_pPed->m_rwObject, pPlayer->m_pPed->m_animGroup, ANIM_STD_IDLE, 1000.0f); + CAnimManager::BlendAnimation((RpClump*)pPlayer->m_pPed->m_rwObject, pPlayer->m_pPed->m_animGroup, ANIM_IDLE_STANCE, 1000.0f); } } return 0; @@ -1156,7 +1156,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) #ifdef FIX_BUGS AnimationId anim = pVehicle->GetDriverAnim(); #else - AnimationId anim = pVehicle->bLowVehicle ? ANIM_STD_CAR_SIT_LO : ANIM_STD_CAR_SIT; + AnimationId anim = pVehicle->bLowVehicle ? ANIM_CAR_LSIT : ANIM_CAR_SIT; #endif pPed->m_pVehicleAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, anim, 100.0f); pPed->StopNonPartialAnims(); diff --git a/src/control/Script3.cpp b/src/control/Script3.cpp index ac88347b..f49835db 100644 --- a/src/control/Script3.cpp +++ b/src/control/Script3.cpp @@ -417,7 +417,7 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) pPed->FlagToDestroyWhenNextProcessed(); } else { - pPed->SetDie(ANIM_STD_KO_FRONT, 4.0f, 0.0f); + pPed->SetDie(ANIM_KO_SHOT_FRONT1, 4.0f, 0.0f); } return 0; } diff --git a/src/control/Script4.cpp b/src/control/Script4.cpp index 93956ea2..40f9f2f1 100644 --- a/src/control/Script4.cpp +++ b/src/control/Script4.cpp @@ -68,7 +68,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) pPed->ApplyHeadShot(WEAPONTYPE_SNIPERRIFLE, pPed->GetNodePosition(PED_HEAD), true); } else { - pPed->SetDie(ANIM_STD_KO_FRONT, 4.0f, 0.0f); + pPed->SetDie(ANIM_KO_SHOT_FRONT1, 4.0f, 0.0f); } return 0; } @@ -81,7 +81,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) pPed->ApplyHeadShot(WEAPONTYPE_SNIPERRIFLE, pPed->GetNodePosition(PED_HEAD), true); } else { - pPed->SetDie(ANIM_STD_KO_FRONT, 4.0f, 0.0f); + pPed->SetDie(ANIM_KO_SHOT_FRONT1, 4.0f, 0.0f); } return 0; } @@ -793,7 +793,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) pPed->m_pVehicleAnim = nil; pPed->RestartNonPartialAnims(); pPed->SetMoveState(PEDMOVE_NONE); - CAnimManager::BlendAnimation(pPed->GetClump(), pPed->m_animGroup, ANIM_STD_IDLE, 100.0f); + CAnimManager::BlendAnimation(pPed->GetClump(), pPed->m_animGroup, ANIM_IDLE_STANCE, 100.0f); pos.z += pPed->GetDistanceFromCentreOfMassToBaseOfModel(); pPed->Teleport(pos); CTheScripts::ClearSpaceForMissionEntity(pos, pPed); diff --git a/src/control/Script5.cpp b/src/control/Script5.cpp index 464a77d8..b54d425c 100644 --- a/src/control/Script5.cpp +++ b/src/control/Script5.cpp @@ -2450,10 +2450,10 @@ bool CTheScripts::IsPlayerStopped(CPlayerInfo* pPlayer) CPed* pPed = pPlayer->m_pPed; if (pPed->bInVehicle) return IsVehicleStopped(pPed->m_pMyVehicle); - if (RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_STD_RUNSTOP1) || - RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_STD_RUNSTOP2) || - RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_STD_JUMP_LAUNCH) || - RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_STD_JUMP_GLIDE)) + if (RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_RUN_STOP) || + RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_RUN_STOP_R) || + RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_JUMP_LAUNCH) || + RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_JUMP_GLIDE)) return false; return pPed->m_nMoveState == PEDMOVE_NONE || pPed->m_nMoveState == PEDMOVE_STILL; } diff --git a/src/core/AnimViewer.cpp b/src/core/AnimViewer.cpp index 946693a7..a888d528 100644 --- a/src/core/AnimViewer.cpp +++ b/src/core/AnimViewer.cpp @@ -230,7 +230,7 @@ CAnimViewer::Update(void) if (modelInfo->GetModelType() == MITYPE_PED) { int animGroup = ((CPedModelInfo*)modelInfo)->m_animGroup; - if (animId > ANIM_STD_IDLE) + if (animId > ANIM_IDLE_STANCE) animGroup = ASSOCGRP_STD; if (reloadIFP) { @@ -318,14 +318,14 @@ CAnimViewer::Update(void) CMessages::AddMessage(gUString, 1000, 0); } else if (pad->GetCircleJustDown()) { - PlayAnimation(pTarget->GetClump(), animGroup, ANIM_STD_IDLE); + PlayAnimation(pTarget->GetClump(), animGroup, ANIM_IDLE_STANCE); AsciiToUnicode("Idle animation playing", gUString); CMessages::AddMessage(gUString, 1000, 0); } else if (pad->GetDPadUpJustDown()) { animId--; if (animId < 0) { - animId = ANIM_STD_NUM - 1; + animId = NUM_ANIMS - 1; } PlayAnimation(pTarget->GetClump(), animGroup, (AnimationId)animId); @@ -334,7 +334,7 @@ CAnimViewer::Update(void) CMessages::AddMessage(gUString, 1000, 0); } else if (pad->GetDPadDownJustDown()) { - animId = (animId == (ANIM_STD_NUM - 1) ? 0 : animId + 1); + animId = (animId == (NUM_ANIMS - 1) ? 0 : animId + 1); PlayAnimation(pTarget->GetClump(), animGroup, (AnimationId)animId); sprintf(gString, "Current anim: %d", animId); diff --git a/src/core/Cam.cpp b/src/core/Cam.cpp index e0497fe2..f43ff57a 100644 --- a/src/core/Cam.cpp +++ b/src/core/Cam.cpp @@ -1644,10 +1644,10 @@ CCam::Process_FollowPedWithMouse(const CVector &CameraTarget, float TargetOrient if(CamTargetEntity->m_rwObject){ // what's going on here? - if(RpAnimBlendClumpGetAssociation(CamTargetEntity->GetClump(), ANIM_STD_WEAPON_PUMP) || - RpAnimBlendClumpGetAssociation(CamTargetEntity->GetClump(), ANIM_STD_WEAPON_THROW) || - RpAnimBlendClumpGetAssociation(CamTargetEntity->GetClump(), ANIM_STD_THROW_UNDER) || - RpAnimBlendClumpGetAssociation(CamTargetEntity->GetClump(), ANIM_STD_START_THROW)){ + if(RpAnimBlendClumpGetAssociation(CamTargetEntity->GetClump(), ANIM_WEAPON_PUMP) || + RpAnimBlendClumpGetAssociation(CamTargetEntity->GetClump(), ANIM_WEAPON_THROW) || + RpAnimBlendClumpGetAssociation(CamTargetEntity->GetClump(), ANIM_WEAPON_THROWU) || + RpAnimBlendClumpGetAssociation(CamTargetEntity->GetClump(), ANIM_WEAPON_START_THROW)){ CPed *player = FindPlayerPed(); float PlayerDist = (Source - player->GetPosition()).Magnitude(); if(PlayerDist < 2.75f) @@ -4631,7 +4631,7 @@ CCam::Process_FollowPed_Rotation(const CVector &CameraTarget, float TargetOrient */ { LookLeftRight = -CPad::GetPad(0)->LookAroundLeftRight(); - LookUpDown = CPad::GetPad(0)->LookAroundUpDown(); + LookUpDown = -CPad::GetPad(0)->LookAroundUpDown(); } float AlphaOffset, BetaOffset; if(UseMouse){ diff --git a/src/core/CdStreamPosix.cpp b/src/core/CdStreamPosix.cpp index e18280e5..50d823d2 100644 --- a/src/core/CdStreamPosix.cpp +++ b/src/core/CdStreamPosix.cpp @@ -1,8 +1,8 @@ #ifndef _WIN32 #include "common.h" #include "crossplatform.h" -#include #include +#include #include #include #include @@ -12,7 +12,11 @@ #include #include #include +#include + +#ifdef __linux__ #include +#endif #include "CdStream.h" #include "rwcore.h" @@ -25,6 +29,58 @@ bool flushStream[MAX_CDCHANNELS]; #endif +#ifdef USE_UNNAMED_SEM + +#define RE3_SEM_OPEN(name, ...) re3_sem_open() +sem_t* +re3_sem_open(void) +{ + sem_t* sem = (sem_t*)malloc(sizeof(sem_t)); + if (sem_init(sem, 0, 1) == -1) { + sem = SEM_FAILED; + } + + return sem; +} + +#define RE3_SEM_CLOSE(sem, format, ...) re3_sem_close(sem) +void +re3_sem_close(sem_t* sem) +{ + sem_destroy(sem); + free(sem); +} + +#else + +#define RE3_SEM_OPEN re3_sem_open +sem_t* +re3_sem_open(const char* format, ...) +{ + char semName[20]; + va_list va; + va_start(va, format); + vsprintf(semName, format, va); + + return sem_open(semName, O_CREAT, 0644, 1); +} + +#define RE3_SEM_CLOSE re3_sem_close +void +re3_sem_close(sem_t* sem, const char* format, ...) +{ + sem_close(sem); + + char semName[20]; + va_list va; + va_start(va, format); + vsprintf(semName, format, va); + + sem_unlink(semName); +} + +#endif + struct CdReadInfo { uint32 nSectorOffset; @@ -69,14 +125,13 @@ void CdStreamInitThread(void) { int status; - char semName[20]; #ifndef ONE_THREAD_PER_CHANNEL gChannelRequestQ.items = (int32 *)calloc(gNumChannels + 1, sizeof(int32)); gChannelRequestQ.head = 0; gChannelRequestQ.tail = 0; gChannelRequestQ.size = gNumChannels + 1; ASSERT(gChannelRequestQ.items != nil ); - gCdStreamSema = sem_open("/semaphore_cd_stream", O_CREAT, 0644, 0); + gCdStreamSema = RE3_SEM_OPEN("/semaphore_cd_stream"); if (gCdStreamSema == SEM_FAILED) { @@ -90,8 +145,7 @@ CdStreamInitThread(void) { for ( int32 i = 0; i < gNumChannels; i++ ) { - sprintf(semName,"/semaphore_done%d",i); - gpReadInfo[i].pDoneSemaphore = sem_open(semName, O_CREAT, 0644, 0); + gpReadInfo[i].pDoneSemaphore = RE3_SEM_OPEN("/semaphore_done%d", i); if (gpReadInfo[i].pDoneSemaphore == SEM_FAILED) { @@ -101,8 +155,7 @@ CdStreamInitThread(void) } #ifdef ONE_THREAD_PER_CHANNEL - sprintf(semName,"/semaphore_start%d",i); - gpReadInfo[i].pStartSemaphore = sem_open(semName, O_CREAT, 0644, 0); + gpReadInfo[i].pStartSemaphore = RE3_SEM_OPEN("/semaphore_start%d", i); if (gpReadInfo[i].pStartSemaphore == SEM_FAILED) { @@ -464,21 +517,14 @@ void *CdStreamThread(void *param) #ifndef ONE_THREAD_PER_CHANNEL for ( int32 i = 0; i < gNumChannels; i++ ) { - sem_close(gpReadInfo[i].pDoneSemaphore); - sprintf(semName,"/semaphore_done%d",i); - sem_unlink(semName); + RE3_SEM_CLOSE(gpReadInfo[i].pDoneSemaphore, "/semaphore_done%d", i); } - sem_close(gCdStreamSema); - sem_unlink("/semaphore_cd_stream"); + RE3_SEM_CLOSE(gCdStreamSema, "/semaphore_cd_stream"); free(gChannelRequestQ.items); #else - sem_close(gpReadInfo[channel].pStartSemaphore); - sprintf(semName,"/semaphore_start%d",channel); - sem_unlink(semName); + RE3_SEM_CLOSE(gpReadInfo[channel].pStartSemaphore, "/semaphore_start%d", channel); - sem_close(gpReadInfo[channel].pDoneSemaphore); - sprintf(semName,"/semaphore_done%d",channel); - sem_unlink(semName); + RE3_SEM_CLOSE(gpReadInfo[channel].pDoneSemaphore, "/semaphore_done%d", channel); #endif if (gpReadInfo) free(gpReadInfo); diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp index e72af7e4..4115cd38 100644 --- a/src/core/ControllerConfig.cpp +++ b/src/core/ControllerConfig.cpp @@ -354,11 +354,6 @@ uint32 CControllerConfigManager::ms_padButtonsInited = 0; void CControllerConfigManager::InitDefaultControlConfigJoyPad(uint32 buttons) { -#ifdef XINPUT - // No manual bindings for you, honey. - return; -#endif - m_bFirstCapture = true; uint32 btn = buttons; @@ -2624,6 +2619,11 @@ const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O #define PS2_CIRCLE "|" #define PS2_CROSS "/" #define PS2_SQUARE "^" +#elif defined(BUTTON_ICONS) +#define PS2_TRIANGLE "~T~" +#define PS2_CIRCLE "~O~" +#define PS2_CROSS "~X~" +#define PS2_SQUARE "~Q~" #else #define PS2_TRIANGLE "TRIANGLE" #define PS2_CIRCLE "CIRCLE" @@ -2636,7 +2636,7 @@ const char *PlayStationButtons_noIcons[][MAX_CONTROLLERACTIONS] = #ifdef BUTTON_ICONS const char *PlayStationButtons[][MAX_CONTROLLERACTIONS] = - CONTROLLER_BUTTONS("~T~", "~O~", "~X~", "~Q~", "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "SELECT"); + CONTROLLER_BUTTONS(PS2_TRIANGLE, PS2_CIRCLE, PS2_CROSS, PS2_SQUARE, "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "SELECT"); #endif #undef PS2_TRIANGLE @@ -2653,36 +2653,11 @@ void CControllerConfigManager::GetWideStringOfCommandKeys(uint16 action, wchar * if (CPad::GetPad(0)->IsAffectedByController) { wchar wstr[16]; - const char* (*Buttons)[MAX_CONTROLLERACTIONS]; - + // TODO: INI and/or menu setting for Xbox/PS switch #ifdef BUTTON_ICONS - #ifdef GAMEPAD_MENU - switch (FrontEndMenuManager.m_PrefsControllerType) - { - case CMenuManager::CONTROLLER_DUALSHOCK2: - case CMenuManager::CONTROLLER_DUALSHOCK3: - case CMenuManager::CONTROLLER_DUALSHOCK4: - Buttons = CFont::ButtonsSlot != -1 ? PlayStationButtons : PlayStationButtons_noIcons; - break; - default: - #endif - Buttons = CFont::ButtonsSlot != -1 ? XboxButtons : XboxButtons_noIcons; - #ifdef GAMEPAD_MENU - break; - } - #endif + const char *(*Buttons)[MAX_CONTROLLERACTIONS] = CFont::ButtonsSlot != -1 ? XboxButtons : XboxButtons_noIcons; #else - switch (FrontEndMenuManager.m_PrefsControllerType) - { - case CMenuManager::CONTROLLER_DUALSHOCK2: - case CMenuManager::CONTROLLER_DUALSHOCK3: - case CMenuManager::CONTROLLER_DUALSHOCK4: - Buttons = PlayStationButtons_noIcons; - break; - default: - Buttons = XboxButtons_noIcons; - break; - } + const char *(*Buttons)[MAX_CONTROLLERACTIONS] = XboxButtons_noIcons; #endif assert(Buttons[CPad::GetPad(0)->Mode][action] != nil); // we cannot use these diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 07b8f996..bd72a15f 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -141,10 +141,6 @@ int8 CMenuManager::m_nDisplayMSAALevel = 0; int8 CMenuManager::m_PrefsIslandLoading = ISLAND_LOADING_LOW; #endif -#ifdef GAMEPAD_MENU -int8 CMenuManager::m_PrefsControllerType = CONTROLLER_XBOXONE; -#endif - int32 CMenuManager::OS_Language = LANG_ENGLISH; int8 CMenuManager::m_PrefsUseVibration; int8 CMenuManager::m_DisplayControllerOnFoot; @@ -1165,16 +1161,6 @@ CMenuManager::Draw() CFont::SetScale(MENU_X(MENU_TEXT_SIZE_X = BIGTEXT_X_SCALE), MENU_Y(MENU_TEXT_SIZE_Y = BIGTEXT_Y_SCALE)); CFont::SetCentreOn(); break; -#ifdef FIX_BUGS - case MENUPAGE_CONTROLLER_SETTINGS: - columnWidth = 50; - headerHeight = -50; - lineHeight = 20; - CFont::SetFontStyle(FONT_LOCALE(FONT_HEADING)); - CFont::SetScale(MENU_X(MENU_TEXT_SIZE_X = MEDIUMTEXT_X_SCALE), MENU_Y(MENU_TEXT_SIZE_Y = MEDIUMTEXT_Y_SCALE)); - CFont::SetRightJustifyOff(); - break; -#endif case MENUPAGE_SOUND_SETTINGS: case MENUPAGE_DISPLAY_SETTINGS: case MENUPAGE_MULTIPLAYER_CREATE: @@ -3636,10 +3622,6 @@ CMenuManager::LoadAllTextures() m_aFrontEndSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); } -#ifdef GAMEPAD_MENU - LoadController(m_PrefsControllerType); -#endif - int menuTxdSlot = CTxdStore::FindTxdSlot("menu"); if (menuTxdSlot == -1) @@ -3655,13 +3637,7 @@ CMenuManager::LoadAllTextures() m_aMenuSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); } #ifdef MENU_MAP - static bool menuOptionAdded = false; for (int i = 0; i < ARRAY_SIZE(MapFilenames); i++) { - if (!menuOptionAdded && RwTextureRead(MapFilenames[i][0], MapFilenames[i][1])) { - FrontendOptionSetCursor(MENUPAGE_PAUSE_MENU, 2, false); - FrontendOptionAddBuiltinAction("FEG_MAP", MENUACTION_CHANGEMENU, MENUPAGE_MAP, SAVESLOT_NONE); - menuOptionAdded = true; - } m_aMapSprites[i].SetTexture(MapFilenames[i][0], MapFilenames[i][1]); m_aMapSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); } @@ -3677,71 +3653,6 @@ CMenuManager::LoadAllTextures() CTxdStore::PopCurrentTxd(); } -#ifdef GAMEPAD_MENU -const char* controllerTypesPaths[] = { - nil, - "MODELS/FRONTEND_DS3.TXD", - "MODELS/FRONTEND_DS4.TXD", - "MODELS/FRONTEND_X360.TXD", - "MODELS/FRONTEND_XONE.TXD", -}; - -void -CMenuManager::LoadController(int8 type) -{ - switch (type) - { - case CONTROLLER_DUALSHOCK2: - case CONTROLLER_DUALSHOCK3: - case CONTROLLER_DUALSHOCK4: - CFont::LoadButtons("MODELS/PS3BTNS.TXD"); - break; - default: - CFont::LoadButtons("MODELS/X360BTNS.TXD"); - break; - } - - // Unload current textures - for (int i = FE_CONTROLLER; i <= FE_ARROWS4; i++) - m_aFrontEndSprites[i].Delete(); - - // Unload txd - int frontend_controller = CTxdStore::FindTxdSlot("frontend_controller"); - if (frontend_controller != -1) - CTxdStore::RemoveTxd(frontend_controller); - - // Find the new txd to load - bool bTxdMissing = true; - if (controllerTypesPaths[type]) - if (int file = CFileMgr::OpenFile(controllerTypesPaths[type])) { - CFileMgr::CloseFile(file); - bTxdMissing = false; - } - - int txdSlot = -1; - - if (bTxdMissing) - // Not found, fall back to original textures - txdSlot = CTxdStore::FindTxdSlot("frontend"); - else { - // Found, load txd - txdSlot = frontend_controller; - if (txdSlot == -1) - txdSlot = CTxdStore::AddTxdSlot("frontend_controller"); - CTxdStore::LoadTxd(txdSlot, controllerTypesPaths[type]); - CTxdStore::AddRef(txdSlot); - } - - assert(txdSlot != -1); - // Load new textures - CTxdStore::SetCurrentTxd(txdSlot); - for (int i = FE_CONTROLLER; i <= FE_ARROWS4; i++) { - m_aFrontEndSprites[i].SetTexture(FrontendFilenames[i][0], FrontendFilenames[i][1]); - m_aFrontEndSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); - } -} -#endif // GAMEPAD_MENU - void CMenuManager::LoadSettings() { @@ -5351,17 +5262,6 @@ CMenuManager::ProcessButtonPresses(void) if (changeValueBy != 0) { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { -#ifdef FIX_BUGS - case MENUACTION_CTRLCONFIG: - CPad::GetPad(0)->Mode += changeValueBy; - if (CPad::GetPad(0)->Mode > 3) - CPad::GetPad(0)->Mode = 0; - else if (CPad::GetPad(0)->Mode < 0) - CPad::GetPad(0)->Mode = 3; - SaveSettings(); - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); - break; -#endif case MENUACTION_RADIO: m_PrefsRadioStation += changeValueBy; DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); @@ -5500,18 +5400,13 @@ CMenuManager::ProcessOnOffMenuOptions() TimeToStopPadShaking = CTimer::GetTimeInMillisecondsPauseMode() + 500; } DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); -#ifdef FIX_BUGS - SaveSettings(); -#endif // !FIX_BUGS break; -#ifndef FIX_BUGS case MENUACTION_CTRLCONFIG: CPad::GetPad(0)->Mode++; if (CPad::GetPad(0)->Mode > 3) CPad::GetPad(0)->Mode = 0; DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); break; -#endif // !FIX_BUGS case MENUACTION_CTRLDISPLAY: m_DisplayControllerOnFoot = !m_DisplayControllerOnFoot; DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); @@ -5781,12 +5676,6 @@ CMenuManager::UnloadTextures() int frontend = CTxdStore::FindTxdSlot("frontend"); CTxdStore::RemoveTxd(frontend); -#ifdef GAMEPAD_MENU - int frontend_controllerTxdSlot = CTxdStore::FindTxdSlot("frontend_controller"); - if (frontend_controllerTxdSlot != -1) - CTxdStore::RemoveTxd(frontend_controllerTxdSlot); -#endif - printf("REMOVE menu textures\n"); for (int i = 0; i < ARRAY_SIZE(MenuFilenames); ++i) m_aMenuSprites[i].Delete(); @@ -5828,301 +5717,6 @@ CMenuManager::WaitForUserCD() } } -#ifdef GAMEPAD_MENU -void -CMenuManager::PrintController(void) -{ - const float scale = 0.9f; - const float CONTROLLER_SIZE_X = 235.2f; - const float CONTROLLER_SIZE_Y = 175.2f; - const float CONTROLLER_POS_X = (DEFAULT_SCREEN_WIDTH - CONTROLLER_SIZE_X) / 2.0f; - const float CONTROLLER_POS_Y = 160.0f; - - float centerX = CONTROLLER_POS_X + CONTROLLER_SIZE_X / 2; - float centerY = CONTROLLER_POS_Y + CONTROLLER_SIZE_Y / 2; - -#define X(f) ((f)*scale + centerX) -#define Y(f) ((f)*scale + centerY) - - m_aFrontEndSprites[FE_CONTROLLERSH].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X((CONTROLLER_SIZE_X + 4.8f) * scale), MENU_Y((CONTROLLER_SIZE_Y + 4.8f) * scale), CRGBA(0, 0, 0, 255)); - m_aFrontEndSprites[FE_CONTROLLER].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, 255)); - if (m_DisplayControllerOnFoot) { - if (CTimer::GetTimeInMillisecondsPauseMode() & 0x400) - m_aFrontEndSprites[FE_ARROWS1].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, 255)); - else - m_aFrontEndSprites[FE_ARROWS3].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, 255)); - } else { - if (CTimer::GetTimeInMillisecondsPauseMode() & 0x400) - m_aFrontEndSprites[FE_ARROWS2].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, 255)); - else - m_aFrontEndSprites[FE_ARROWS4].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, 255)); - } - - CFont::SetFontStyle(FONT_LOCALE(FONT_BANK)); - CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * scale), MENU_Y(SMALLESTTEXT_Y_SCALE * scale)); // X - - // CFont::SetColor(CRGBA(128, 128, 128, FadeIn(255))); - CFont::SetDropColor(CRGBA(0, 0, 0, FadeIn(255))); - CFont::SetDropShadowPosition(1); - CFont::SetColor(CRGBA(255, 255, 255, FadeIn(255))); - CFont::SetWrapx(SCREEN_WIDTH); - - float TEXT_L2_X = 50.0f + CONTROLLER_POS_X - centerX, TEXT_L2_Y = -14.0f + CONTROLLER_POS_Y - centerY; - float TEXT_L1_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_L1_Y = 25.0f + CONTROLLER_POS_Y - centerY, TEXT_L1_Y_VEH = 3.0f + TEXT_L1_Y; - float TEXT_DPAD_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_DPAD_Y = 65.0f + CONTROLLER_POS_Y - centerY; - float TEXT_LSTICK_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_LSTICK_Y = 97.0f + CONTROLLER_POS_Y - centerY; - float TEXT_SELECT_X = 103.0f + CONTROLLER_POS_X - centerX, TEXT_SELECT_Y = 141.0f + CONTROLLER_POS_Y - centerY; - float TEXT_START_X = 130.0f + CONTROLLER_POS_X - centerX, TEXT_START_Y = 128.0f + CONTROLLER_POS_Y - centerY; - float TEXT_R2_X = 184.0F + CONTROLLER_POS_X - centerX, TEXT_R2_Y = -14.0f + CONTROLLER_POS_Y - centerY; - float TEXT_R1_X = 238.0f + CONTROLLER_POS_X - centerX, TEXT_R1_Y = 25.0f + CONTROLLER_POS_Y - centerY; - - float TEXT_SQUARE_X = 144.0f + CONTROLLER_POS_X - centerX, TEXT_SQUARE_Y = 18.0f + CONTROLLER_POS_Y - centerY; - float TEXT_TRIANGLE_X = 238.0f + CONTROLLER_POS_X - centerX, TEXT_TRIANGLE_Y = 52.0f + CONTROLLER_POS_Y - centerY; - float TEXT_CIRCLE_X = 238.0f + CONTROLLER_POS_X - centerX, TEXT_CIRCLE_Y = 65.0f + CONTROLLER_POS_Y - centerY; - float TEXT_CROSS_X = 238.0f + CONTROLLER_POS_X - centerX, TEXT_CROSS_Y = 78.0f + CONTROLLER_POS_Y - centerY; - float TEXT_RSTICK_X = 238.0f + CONTROLLER_POS_X - centerX, TEXT_RSTICK_Y = 94.0f + CONTROLLER_POS_Y - centerY; - float TEXT_R3_X = 238.0f + CONTROLLER_POS_X - centerX, TEXT_R3_Y = 109.0f + CONTROLLER_POS_Y - centerY; - float TEXT_L3_X = 84.0f + CONTROLLER_POS_X - centerX, TEXT_L3_Y = 162.0f + CONTROLLER_POS_Y - centerY; - float TEXT_L2R2_X = 74.0f + CONTROLLER_POS_X - centerX, TEXT_L2R2_Y = -6.0f + CONTROLLER_POS_Y - centerY; - - switch (m_PrefsControllerType) - { - case CONTROLLER_DUALSHOCK4: - TEXT_L1_Y += 7.0f; - TEXT_L1_Y_VEH = TEXT_L1_Y; - TEXT_R1_Y += 7.0f; - TEXT_TRIANGLE_Y -= 1.0f; - TEXT_CIRCLE_Y -= 1.0f; - TEXT_CROSS_Y -= 1.0f; - TEXT_RSTICK_Y -= 4.0f; - TEXT_R3_Y -= 4.0f; - TEXT_DPAD_Y -= 1.0f; - TEXT_LSTICK_Y -= 6.0f; - TEXT_L3_X -= 2.0f; - break; - case CONTROLLER_XBOXONE: - TEXT_L2_X -= 2.0f; - TEXT_R2_X += 2.0f; - TEXT_L1_Y += 15.0f; - TEXT_L1_Y_VEH = TEXT_L1_Y; - TEXT_R1_Y += 15.0f; - TEXT_TRIANGLE_Y += 4.0f; - TEXT_CIRCLE_Y += 4.0f; - TEXT_CROSS_Y += 4.0f; - TEXT_RSTICK_Y += 1.0f; - TEXT_R3_Y += 1.0f; - TEXT_DPAD_Y += 29.0f; - TEXT_LSTICK_Y -= 22.0f; - TEXT_L3_X -= 36.0f; - TEXT_L2R2_Y += 5.0f; - TEXT_SELECT_X += 4.0f; - break; - case CONTROLLER_XBOX360: - TEXT_L2_X += 8.0f; - TEXT_R2_X -= 8.0f; - TEXT_L1_Y += 15.0f; - TEXT_L1_Y_VEH = TEXT_L1_Y; - TEXT_R1_Y += 15.0f; - TEXT_TRIANGLE_Y += 4.0f; - TEXT_CIRCLE_Y += 4.0f; - TEXT_CROSS_Y += 4.0f; - TEXT_RSTICK_Y += 4.0f; - TEXT_R3_Y += 4.0f; - TEXT_DPAD_Y += 30.0f; - TEXT_LSTICK_Y -= 21.0f; - TEXT_L3_X -= 36.0f; - TEXT_L2R2_Y += 5.0f; - TEXT_SELECT_X += 3.0f; - break; - }; - - if (m_DisplayControllerOnFoot) { - switch (CPad::GetPad(0)->Mode) { - case 0: - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_LOF")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_MOV")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_ATT")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); - break; - case 1: - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_LOF")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_CAM")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_NA")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_ATT")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); - break; - case 2: - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_ENV")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_MOV")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); - break; - case 3: - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_TAR")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_NA")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_ATT")); - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_LOF")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); - break; - default: - return; - } - } else { - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2R2_X)), MENU_Y(Y(TEXT_L2R2_Y)), TheText.Get("FEC_LB")); - switch (CPad::GetPad(0)->Mode) { - case 0: - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_RSC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_VES")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_HO3")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HAB")); - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); - break; - case 1: - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_HOR")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_CAM")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_NA")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_RSC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HAB")); - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); - break; - case 2: - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_EXV")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_VES")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_RS3")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HOR")); - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_HAB")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); - break; - case 3: - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_HAB")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_TUC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_HO3")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_CAW")); - CFont::SetRightJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT")); - CFont::SetJustifyOn(); // X - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RSC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_NA")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_ACC")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_BRA")); - break; - default: - return; - } - } - - CFont::SetDropShadowPosition(0); // X - -#undef X -#undef Y -} -#else void CMenuManager::PrintController(void) { @@ -6343,7 +5937,6 @@ CMenuManager::PrintController(void) CFont::SetDropShadowPosition(0); // X } -#endif #ifdef MENU_MAP diff --git a/src/core/Frontend.h b/src/core/Frontend.h index 5c3523ab..b0100fdc 100644 --- a/src/core/Frontend.h +++ b/src/core/Frontend.h @@ -235,15 +235,15 @@ enum eMenuScreen MENUPAGE_KEYBOARD_CONTROLS = 55, MENUPAGE_MOUSE_CONTROLS = 56, MENUPAGE_MISSION_RETRY = 57, -#ifdef CUSTOM_FRONTEND_OPTIONS - #ifdef MENU_MAP MENUPAGE_MAP = 58, #endif +#ifdef CUSTOM_FRONTEND_OPTIONS + #ifdef GRAPHICS_MENU_OPTIONS MENUPAGE_GRAPHICS_SETTINGS, #endif -#ifdef DETECT_JOYSTICK_MENU +#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS MENUPAGE_DETECT_JOYSTICK, #endif @@ -725,19 +725,6 @@ public: #define ISLAND_LOADING_ISNT(p) #endif -#ifdef GAMEPAD_MENU - enum - { - CONTROLLER_DUALSHOCK2 = 0, - CONTROLLER_DUALSHOCK3, - CONTROLLER_DUALSHOCK4, - CONTROLLER_XBOX360, - CONTROLLER_XBOXONE, - }; - - static int8 m_PrefsControllerType; -#endif - public: static void BuildStatLine(Const char *text, void *stat, bool itsFloat, void *stat2); static void CentreMousePointer(); @@ -797,9 +784,6 @@ public: void PageDownList(bool); int8 GetPreviousPageOption(); void ProcessList(bool &goBack, bool &optionSelected); -#ifdef GAMEPAD_MENU - void LoadController(int8 type); -#endif }; #ifndef IMPROVED_VIDEOMODE diff --git a/src/core/Game.cpp b/src/core/Game.cpp index 2a6afa97..4fd30b53 100644 --- a/src/core/Game.cpp +++ b/src/core/Game.cpp @@ -414,11 +414,6 @@ bool CGame::Initialise(const char* datFile) CTxdStore::Create(gameTxdSlot); CTxdStore::AddRef(gameTxdSlot); -#ifdef EXTENDED_PIPELINES - // for generic fallback - CustomPipes::SetTxdFindCallback(); -#endif - LoadingScreen("Loading the Game", "Loading particles", nil); int particleTxdSlot = CTxdStore::AddTxdSlot("particle"); CTxdStore::LoadTxd(particleTxdSlot, "MODELS/PARTICLE.TXD"); @@ -503,6 +498,10 @@ bool CGame::Initialise(const char* datFile) CFileLoader::LoadLevel("GTA3.DAT"); #endif +#ifdef EXTENDED_PIPELINES + // for generic fallback + CustomPipes::SetTxdFindCallback(); +#endif CWorld::AddParticles(); CVehicleModelInfo::LoadVehicleColours(); CVehicleModelInfo::LoadEnvironmentMaps(); diff --git a/src/core/MenuScreens.cpp b/src/core/MenuScreens.cpp index 3bd9adf4..7c90ea12 100644 --- a/src/core/MenuScreens.cpp +++ b/src/core/MenuScreens.cpp @@ -394,6 +394,9 @@ CMenuScreen aScreens[MENUPAGES] = { { "FET_PAU", 1, MENUPAGE_DISABLED, MENUPAGE_DISABLED, 0, 0, MENUACTION_RESUME, "FEM_RES", SAVESLOT_NONE, MENUPAGE_NONE, MENUACTION_CHANGEMENU, "FEN_STA", SAVESLOT_NONE, MENUPAGE_NEW_GAME, +#ifdef MENU_MAP + MENUACTION_CHANGEMENU, "FEG_MAP", SAVESLOT_NONE, MENUPAGE_MAP, +#endif MENUACTION_CHANGEMENU, "FEP_STA", SAVESLOT_NONE, MENUPAGE_STATS, MENUACTION_CHANGEMENU, "FEP_BRI", SAVESLOT_NONE, MENUPAGE_BRIEFS, MENUACTION_CHANGEMENU, "FET_OPT", SAVESLOT_NONE, MENUPAGE_OPTIONS, @@ -438,6 +441,14 @@ CMenuScreen aScreens[MENUPAGES] = { }, #endif +#ifdef MENU_MAP + // MENUPAGE_MAP + { "FEG_MAP", 1, MENUPAGE_NONE, MENUPAGE_NONE, 2, 2, + MENUACTION_UNK110, "", SAVESLOT_NONE, MENUPAGE_NONE, // to prevent cross/enter to go back + MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE, + }, +#endif + // MENUPAGE_UNK { "", 0, MENUPAGE_NONE, MENUPAGE_NONE, 0, 0, diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index 6e23f76a..3eee8dd2 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -1,13 +1,4 @@ #include "common.h" -#if defined DETECT_JOYSTICK_MENU && defined XINPUT -#include -#include -#if !defined(PSAPI_VERSION) || (PSAPI_VERSION > 1) -#pragma comment( lib, "Xinput9_1_0.lib" ) -#else -#pragma comment( lib, "Xinput.lib" ) -#endif -#endif #include "platform.h" #include "crossplatform.h" #include "Renderer.h" @@ -83,12 +74,6 @@ #define INVERT_PAD_SELECTOR #endif -#ifdef GAMEPAD_MENU - #define SELECT_CONTROLLER_TYPE MENUACTION_CFO_SELECT, "FEC_TYP", { new CCFOSelect((int8*)&CMenuManager::m_PrefsControllerType, "Controller", "Type", controllerTypes, ARRAY_SIZE(controllerTypes), false, ControllerTypeAfterChange) }, -#else - #define SELECT_CONTROLLER_TYPE -#endif - const char *filterNames[] = { "FEM_NON", "FEM_SIM", "FEM_NRM", "FEM_MOB" }; const char *off_on[] = { "FEM_OFF", "FEM_ON" }; @@ -195,6 +180,38 @@ 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() { } @@ -274,13 +291,11 @@ void ScreenModeAfterChange(int8 before, int8 after) #endif -#ifdef DETECT_JOYSTICK_MENU +#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS wchar selectedJoystickUnicode[128]; int cachedButtonNum = -1; wchar* DetectJoystickDraw(bool* disabled, bool userHovering) { - -#if defined RW_GL3 && !defined LIBRW_SDL2 int numButtons; int found = -1; const char *joyname; @@ -311,37 +326,6 @@ wchar* DetectJoystickDraw(bool* disabled, bool userHovering) { } } if (PSGLOBAL(joy1id) == -1) -#elif defined XINPUT - int found = -1; - XINPUT_STATE xstate; - memset(&xstate, 0, sizeof(XINPUT_STATE)); - if (userHovering) { - for (int i = 0; i <= 3; i++) { - if (XInputGetState(i, &xstate) == ERROR_SUCCESS) { - if (xstate.Gamepad.bLeftTrigger || xstate.Gamepad.bRightTrigger) { - found = i; - break; - } - for (int j = XINPUT_GAMEPAD_DPAD_UP; j != XINPUT_GAMEPAD_Y << 1; j = (j << 1)) { - if (xstate.Gamepad.wButtons & j) { - found = i; - break; - } - } - if (found != -1) - break; - } - } - if (found != -1 && CPad::XInputJoy1 != found) { - // We should never leave pads -1, so we can process them when they're connected and kinda support hotplug. - CPad::XInputJoy2 = (CPad::XInputJoy1 == -1 ? (found + 1) % 4 : CPad::XInputJoy1); - CPad::XInputJoy1 = found; - cachedButtonNum = 0; // fake too, because xinput bypass CControllerConfig - } - } - sprintf(gSelectedJoystickName, "%d", CPad::XInputJoy1); // fake, on xinput we only store gamepad ids(thanks MS) so this is a temp variable to be used below - if (CPad::XInputJoy1 == -1) -#endif AsciiToUnicode("Not found", selectedJoystickUnicode); else AsciiToUnicode(gSelectedJoystickName, selectedJoystickUnicode); @@ -362,14 +346,6 @@ void DetectJoystickGoBack() { } #endif -#ifdef GAMEPAD_MENU -const char* controllerTypes[] = { "FEC_DS2", "FEC_DS3", "FEC_DS4", "FEC_360", "FEC_ONE" }; -void ControllerTypeAfterChange(int8 before, int8 after) -{ - FrontEndMenuManager.LoadController(after); -} -#endif - CMenuScreenCustom aScreens[MENUPAGES] = { // MENUPAGE_NONE = 0 { "", MENUPAGE_DISABLED, MENUPAGE_DISABLED, nil, nil, }, @@ -393,16 +369,10 @@ CMenuScreenCustom aScreens[MENUPAGES] = { }, // MENUPAGE_CONTROLLER_SETTINGS = 4 -#ifdef GAMEPAD_MENU - { "FET_AGS", MENUPAGE_CONTROLLER_PC, MENUPAGE_CONTROLLER_PC, nil, nil, -#else { "FET_CON", MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, nil, nil, -#endif MENUACTION_CTRLCONFIG, "FEC_CCF", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, MENUACTION_CTRLDISPLAY, "FEC_CDP", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, - INVERT_PAD_SELECTOR MENUACTION_CTRLVIBRATION, "FEC_VIB", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, - SELECT_CONTROLLER_TYPE MENUACTION_CHANGEMENU, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, }, @@ -462,7 +432,11 @@ CMenuScreenCustom aScreens[MENUPAGES] = { MENUACTION_LANG_GER, "FEL_GER", { nil, SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS }, MENUACTION_LANG_ITA, "FEL_ITA", { nil, SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS }, MENUACTION_LANG_SPA, "FEL_SPA", { nil, SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS }, - // CustomFrontendOptionsPopulate will add languages here, if files are found +#ifdef MORE_LANGUAGES + MENUACTION_CFO_DYNAMIC, "FEL_POL", { new CCFODynamic(nil, nil, nil, nil, LangPolSelect) }, + MENUACTION_CFO_DYNAMIC, "FEL_RUS", { new CCFODynamic(nil, nil, nil, nil, LangRusSelect) }, + MENUACTION_CFO_DYNAMIC, "FEL_JAP", { new CCFODynamic(nil, nil, nil, nil, LangJapSelect) }, +#endif MENUACTION_CHANGEMENU, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, }, @@ -669,10 +643,7 @@ CMenuScreenCustom aScreens[MENUPAGES] = { MENUACTION_CTRLMETHOD, "FET_CME", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC }, #endif MENUACTION_KEYBOARDCTRLS,"FET_RDK", { nil, SAVESLOT_NONE, MENUPAGE_KEYBOARD_CONTROLS }, -#ifdef GAMEPAD_MENU - MENUACTION_CHANGEMENU, "FET_AGS", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, -#endif -#ifdef DETECT_JOYSTICK_MENU +#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS MENUACTION_CHANGEMENU, "FEC_JOD", { nil, SAVESLOT_NONE, MENUPAGE_DETECT_JOYSTICK }, #endif MENUACTION_CHANGEMENU, "FET_AMS", { nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS }, @@ -728,7 +699,7 @@ CMenuScreenCustom aScreens[MENUPAGES] = { MENUACTION_LOADRADIO, "FET_AUD", { nil, SAVESLOT_NONE, MENUPAGE_SOUND_SETTINGS }, MENUACTION_CHANGEMENU, "FET_DIS", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS }, #ifdef GRAPHICS_MENU_OPTIONS - MENUACTION_CHANGEMENU, "FET_GFX", { nil, SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS }, + MENUACTION_CHANGEMENU, "FET_GRA", { nil, SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS }, #endif MENUACTION_CHANGEMENU, "FET_LAN", { nil, SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS }, MENUACTION_PLAYERSETUP, "FET_PSU", { nil, SAVESLOT_NONE, MENUPAGE_SKIN_SELECT }, @@ -797,7 +768,9 @@ CMenuScreenCustom aScreens[MENUPAGES] = { { "FET_PAU", MENUPAGE_DISABLED, MENUPAGE_DISABLED, nil, nil, MENUACTION_RESUME, "FEM_RES", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, MENUACTION_CHANGEMENU, "FEN_STA", { nil, SAVESLOT_NONE, MENUPAGE_NEW_GAME }, - // CMenuManager::LoadAllTextures will add map here, if MENU_MAP enabled and map textures are found +#ifdef MENU_MAP + MENUACTION_CHANGEMENU, "FEG_MAP", { nil, SAVESLOT_NONE, MENUPAGE_MAP }, +#endif MENUACTION_CHANGEMENU, "FEP_STA", { nil, SAVESLOT_NONE, MENUPAGE_STATS }, MENUACTION_CHANGEMENU, "FEP_BRI", { nil, SAVESLOT_NONE, MENUPAGE_BRIEFS }, MENUACTION_CHANGEMENU, "FET_OPT", { nil, SAVESLOT_NONE, MENUPAGE_OPTIONS }, @@ -825,9 +798,7 @@ CMenuScreenCustom aScreens[MENUPAGES] = { { "FET_MTI", MENUPAGE_CONTROLLER_PC, MENUPAGE_CONTROLLER_PC, nil, nil, MENUACTION_MOUSESENS, "FEC_MSH", { nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS }, MENUACTION_INVVERT, "FEC_IVV", { nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS }, -#ifndef GAMEPAD_MENU INVERT_PAD_SELECTOR -#endif MENUACTION_MOUSESTEER, "FET_MST", { nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS }, MENUACTION_CHANGEMENU, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, }, @@ -855,7 +826,7 @@ CMenuScreenCustom aScreens[MENUPAGES] = { #ifdef GRAPHICS_MENU_OPTIONS // MENUPAGE_GRAPHICS_SETTINGS - { "FET_GFX", MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, + { "FET_GRA", MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, new CCustomScreenLayout({MENUSPRITE_MAINMENU, 50, 0, 20, FONT_HEADING, FESCREEN_LEFT_ALIGN, true, MEDIUMTEXT_X_SCALE, MEDIUMTEXT_Y_SCALE}), GraphicsGoBack, MENUACTION_SCREENRES, "FED_RES", { nil, SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS }, @@ -877,7 +848,7 @@ CMenuScreenCustom aScreens[MENUPAGES] = { }, #endif -#ifdef DETECT_JOYSTICK_MENU +#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS // MENUPAGE_DETECT_JOYSTICK { "FEC_JOD", MENUPAGE_CONTROLLER_PC, MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({MENUSPRITE_MAINMENU, 40, 60, 20, FONT_BANK, FESCREEN_LEFT_ALIGN, false, MEDIUMTEXT_X_SCALE, MEDIUMTEXT_Y_SCALE}), DetectJoystickGoBack, diff --git a/src/core/Pad.cpp b/src/core/Pad.cpp index 60bb7a76..95a107ee 100644 --- a/src/core/Pad.cpp +++ b/src/core/Pad.cpp @@ -1028,14 +1028,8 @@ void CPad::AddToPCCheatString(char c) } #ifdef XINPUT -int CPad::XInputJoy1 = 0; -int CPad::XInputJoy2 = 1; void CPad::AffectFromXinput(uint32 pad) { - pad = pad == 0 ? XInputJoy1 : XInputJoy2; - if (pad == -1) // LoadINIControllerSettings can set it to -1 - return; - XINPUT_STATE xstate; memset(&xstate, 0, sizeof(XINPUT_STATE)); if (XInputGetState(pad, &xstate) == ERROR_SUCCESS) @@ -2342,121 +2336,6 @@ bool CPad::ShiftTargetRightJustDown(void) return !!(NewState.RightShoulder2 && !OldState.RightShoulder2); } -#ifdef FIX_BUGS -// FIX: fixes from VC for the bug of double switching the controller setup -bool CPad::GetAnaloguePadUp(void) -{ - static int16 oldfStickY = 0; - - int16 leftStickY = CPad::GetPad(0)->GetLeftStickY(); - - if ( leftStickY < -15 && oldfStickY >= -5 ) - { - oldfStickY = leftStickY; - return true; - } - else - { - oldfStickY = leftStickY; - return false; - } -} - -bool CPad::GetAnaloguePadDown(void) -{ - static int16 oldfStickY = 0; - - int16 leftStickY = CPad::GetPad(0)->GetLeftStickY(); - - if ( leftStickY > 15 && oldfStickY <= 5 ) - { - oldfStickY = leftStickY; - return true; - } - else - { - oldfStickY = leftStickY; - return false; - } -} - -bool CPad::GetAnaloguePadLeft(void) -{ - static int16 oldfStickX = 0; - - int16 leftStickX = CPad::GetPad(0)->GetLeftStickX(); - - if ( leftStickX < -15 && oldfStickX >= -5 ) - { - oldfStickX = leftStickX; - return true; - } - else - { - oldfStickX = leftStickX; - return false; - } -} - -bool CPad::GetAnaloguePadRight(void) -{ - static int16 oldfStickX = 0; - - int16 leftStickX = CPad::GetPad(0)->GetLeftStickX(); - - if ( leftStickX > 15 && oldfStickX <= 5 ) - { - oldfStickX = leftStickX; - return true; - } - else - { - oldfStickX = leftStickX; - return false; - } -} - -bool CPad::GetAnaloguePadLeftJustUp(void) -{ - static int16 oldfStickX = 0; - - int16 X = GetPad(0)->GetPedWalkLeftRight(); - - if ( X == 0 && oldfStickX < 0 ) - { - oldfStickX = 0; - - return true; - } - else - { - oldfStickX = X; - - return false; - } -} - -bool CPad::GetAnaloguePadRightJustUp(void) -{ - static int16 oldfStickX = 0; - - int16 X = GetPad(0)->GetPedWalkLeftRight(); - - if ( X == 0 && oldfStickX > 0 ) - { - oldfStickX = 0; - - return true; - } - else - { - oldfStickX = X; - - return false; - } -} - -#else bool CPad::GetAnaloguePadUp(void) { static int16 oldfStickY = 0; @@ -2568,7 +2447,6 @@ bool CPad::GetAnaloguePadRightJustUp(void) return false; } } -#endif bool CPad::ForceCameraBehindPlayer(void) { diff --git a/src/core/Pad.h b/src/core/Pad.h index b37659cd..20a676ef 100644 --- a/src/core/Pad.h +++ b/src/core/Pad.h @@ -263,8 +263,6 @@ public: static int32 *EditCodesForControls(int32 *pRsKeys, int32 nSize); #ifdef XINPUT - static int XInputJoy1; - static int XInputJoy2; void AffectFromXinput(uint32 pad); #endif diff --git a/src/core/PlayerInfo.cpp b/src/core/PlayerInfo.cpp index bd6feeed..1af8f924 100644 --- a/src/core/PlayerInfo.cpp +++ b/src/core/PlayerInfo.cpp @@ -155,8 +155,8 @@ CPlayerInfo::Process(void) m_pPed->SetPedState(PED_IDLE); m_pPed->SetMoveState(PEDMOVE_STILL); CPed::PedSetOutCarCB(0, m_pPed); - CAnimManager::BlendAnimation(m_pPed->GetClump(), m_pPed->m_animGroup, ANIM_STD_IDLE, 100.0f); - CAnimManager::BlendAnimation(m_pPed->GetClump(), ASSOCGRP_STD, ANIM_STD_FALL_LAND, 100.0f); + CAnimManager::BlendAnimation(m_pPed->GetClump(), m_pPed->m_animGroup, ANIM_IDLE_STANCE, 100.0f); + CAnimManager::BlendAnimation(m_pPed->GetClump(), ASSOCGRP_STD, ANIM_FALL_LAND, 100.0f); m_pPed->SetPosition(sth); m_pPed->SetMoveState(PEDMOVE_STILL); m_pPed->m_vecMoveSpeed = veh->m_vecMoveSpeed; diff --git a/src/core/World.cpp b/src/core/World.cpp index 90d73b09..0874b680 100644 --- a/src/core/World.cpp +++ b/src/core/World.cpp @@ -2123,7 +2123,7 @@ CWorld::TriggerExplosionSectorList(CPtrList &list, const CVector &position, floa PEDPIECE_TORSO, direction); if(pPed->m_nPedState != PED_DIE) pPed->SetFall(2000, - (AnimationId)(direction + ANIM_STD_HIGHIMPACT_FRONT), 0); + (AnimationId)(direction + ANIM_KO_SKID_FRONT), 0); if(pCreator && pCreator->IsPed()) { eEventType eventType = EVENT_SHOOT_PED; if(pPed->m_nPedType == PEDTYPE_COP) eventType = EVENT_SHOOT_COP; diff --git a/src/core/common.h b/src/core/common.h index a8f19158..33d8910d 100644 --- a/src/core/common.h +++ b/src/core/common.h @@ -354,7 +354,7 @@ __inline__ void TRACE(char *f, ...) { } // this is re3 only, and so the function #ifndef MASTER #define assert(_Expression) (void)( (!!(_Expression)) || (re3_assert(#_Expression, __FILE__, __LINE__, __FUNCTION__), 0) ) #else -#define assert(_Expression) (_Expression) +#define assert(_Expression) #endif #define ASSERT assert diff --git a/src/core/config.h b/src/core/config.h index 6619be68..bb1ca5e3 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -183,11 +183,7 @@ enum Config { // those infamous texts #define DRAW_GAME_VERSION_TEXT -#ifdef DRAW_GAME_VERSION_TEXT - // unlike R* development builds, ours has runtime switch on debug menu & .ini, and disabled as default. - #define USE_OUR_VERSIONING // If you disable this then game will fetch version from peds.col, as R* did while in development -#endif -//#define DRAW_MENU_VERSION_TEXT +#define DRAW_MENU_VERSION_TEXT // Memory allocation and compression // #define USE_CUSTOM_ALLOCATOR // use CMemoryHeap for allocation. use with care, not finished yet @@ -267,10 +263,6 @@ enum Config { #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 -#ifdef DISABLE_LOADING_SCREEN -// enable the PC splash -#undef RANDOMSPLASH -#endif #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 @@ -295,8 +287,8 @@ enum Config { #if !defined(RW_GL3) && defined(_WIN32) #define XINPUT #endif -#if defined XINPUT || (defined RW_GL3 && !defined LIBRW_SDL2 && !defined __SWITCH__) -#define DETECT_JOYSTICK_MENU // Then we'll expect user to enter Controller->Detect joysticks if his joystick isn't detected at the start. +#if !defined(_WIN32) && !defined(__SWITCH__) +#define DONT_TRUST_RECOGNIZED_JOYSTICKS // Then we'll only rely on GLFW gamepad DB, and expect user to enter Controller->Detect joysticks if his joystick isn't on that list. #endif #define DETECT_PAD_INPUT_SWITCH // Adds automatic switch of pad related stuff between controller and kb/m #define KANGAROO_CHEAT @@ -320,11 +312,7 @@ enum Config { # define PS2_MENU //# define PS2_MENU_USEALLPAGEICONS #else - -# ifdef XINPUT -# define GAMEPAD_MENU // Add gamepad menu -# endif - +# define MENU_MAP // VC-like menu map. Make sure you have new menu.txd # define SCROLLABLE_STATS_PAGE // only draggable by mouse atm # define TRIANGLE_BACK_BUTTON //# define CIRCLE_BACK_BUTTON @@ -333,7 +321,6 @@ enum Config { # define CUSTOM_FRONTEND_OPTIONS # ifdef CUSTOM_FRONTEND_OPTIONS -# define MENU_MAP // VC-like menu map. Won't appear if you don't have our menu.txd # 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 CUTSCENE_BORDERS_SWITCH @@ -353,10 +340,6 @@ enum Config { #define USE_ADVANCED_SCRIPT_DEBUG_OUTPUT #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 -#endif - #ifndef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT #define USE_BASIC_SCRIPT_DEBUG_OUTPUT #endif @@ -485,7 +468,6 @@ enum Config { #undef RADIO_OFF_TEXT #undef MENU_MAP -#undef GAMEPAD_MENU #undef SCROLLABLE_STATS_PAGE #undef CUSTOM_FRONTEND_OPTIONS diff --git a/src/core/main.cpp b/src/core/main.cpp index b47f5d37..af0d556a 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -1,10 +1,8 @@ #include "common.h" -#include #include "rpmatfx.h" #include "rphanim.h" #include "rpskin.h" #include "rtbmp.h" -#include "rtpng.h" #ifdef ANISOTROPIC_FILTERING #include "rpanisot.h" #endif @@ -72,9 +70,6 @@ #include "custompipes.h" #include "screendroplets.h" #include "MemoryHeap.h" -#ifdef USE_OUR_VERSIONING -#include "GitSHA1.h" -#endif GlobalScene Scene; @@ -91,9 +86,6 @@ bool gbModelViewer; #ifdef TIMEBARS bool gbShowTimebars; #endif -#ifdef DRAW_GAME_VERSION_TEXT -bool gDrawVersionText; // Our addition, we think it was always enabled on !MASTER builds -#endif volatile int32 frameCount; @@ -362,11 +354,7 @@ RwGrabScreen(RwCamera *camera, RwChar *filename) strcpy(temp, CFileMgr::GetRootDirName()); strcat(temp, filename); -#ifndef LIBRW if (RtBMPImageWrite(pImage, &temp[0]) == nil) -#else - if (RtPNGImageWrite(pImage, &temp[0]) == nil) -#endif result = false; RwImageDestroy(pImage); return result; @@ -385,7 +373,6 @@ DoRWStuffEndOfFrame(void) RsCameraShowRaster(Scene.camera); #ifndef MASTER char s[48]; -#ifdef THIS_IS_STUPID if (CPad::GetPad(1)->GetLeftShockJustDown()) { // try using both controllers for this thing... crazy bastards if (CPad::GetPad(0)->GetRightStickY() > 0) { @@ -397,12 +384,6 @@ DoRWStuffEndOfFrame(void) RwGrabScreen(Scene.camera, s); } } -#else - if (CPad::GetPad(1)->GetLeftShockJustDown() || CPad::GetPad(0)->GetFJustDown(11)) { - sprintf(s, "screen_%11lld.png", time(nil)); - RwGrabScreen(Scene.camera, s); - } -#endif #endif // !MASTER } @@ -1094,7 +1075,7 @@ DisplayGameDebugText() static bool bDisplayRate = false; #ifndef FINAL { - SETTWEAKPATH("Debug"); + SETTWEAKPATH("GameDebugText"); TWEAKBOOL(bDisplayPosn); TWEAKBOOL(bDisplayRate); } @@ -1108,56 +1089,13 @@ DisplayGameDebugText() #ifdef DRAW_GAME_VERSION_TEXT wchar ver[200]; - - if(gDrawVersionText) // This realtime switch is our thing - { - -#ifdef USE_OUR_VERSIONING - char verA[200]; - sprintf(verA, -#if defined _WIN32 - "Win " -#elif defined __linux__ - "Linux " -#elif defined __APPLE__ - "Mac OS X " -#elif defined __FreeBSD__ - "FreeBSD " -#else - "Posix-compliant " -#endif -#if defined __LP64__ || defined _WIN64 - "64-bit " -#else - "32-bit " -#endif -#if defined RW_D3D9 - "D3D9 " -#elif defined RWLIBS - "D3D8 " -#elif defined RW_GL3 - "OpenGL " -#endif -#if defined AUDIO_OAL - "OAL " -#elif defined AUDIO_MSS - "MSS " -#endif -#if defined _DEBUG || defined DEBUG - "DEBUG " -#endif - "%.8s", - g_GIT_SHA1); - AsciiToUnicode(verA, ver); - CFont::SetScale(SCREEN_SCALE_X(0.5f), SCREEN_SCALE_Y(0.7f)); -#else + AsciiToUnicode(version_name, ver); - CFont::SetScale(SCREEN_SCALE_X(0.5f), SCREEN_SCALE_Y(0.5f)); -#endif CFont::SetPropOn(); CFont::SetBackgroundOff(); CFont::SetFontStyle(FONT_BANK); + CFont::SetScale(SCREEN_SCALE_X(0.5f), SCREEN_SCALE_Y(0.5f)); CFont::SetCentreOff(); CFont::SetRightJustifyOff(); CFont::SetWrapx(SCREEN_WIDTH); @@ -1169,7 +1107,6 @@ DisplayGameDebugText() #else CFont::PrintString(10.0f, 10.0f, ver); #endif - } #endif // #ifdef DRAW_GAME_VERSION_TEXT FrameSamples++; diff --git a/src/core/re3.cpp b/src/core/re3.cpp index e0f9c5c2..37b2cdf0 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -1,14 +1,6 @@ #include #define WITHWINDOWS #include "common.h" -#if defined DETECT_JOYSTICK_MENU && defined XINPUT -#include -#if !defined(PSAPI_VERSION) || (PSAPI_VERSION > 1) -#pragma comment( lib, "Xinput9_1_0.lib" ) -#else -#pragma comment( lib, "Xinput.lib" ) -#endif -#endif #include "Renderer.h" #include "Credits.h" #include "Camera.h" @@ -42,7 +34,7 @@ #include "MBlur.h" #include "ControllerConfig.h" -#ifdef DETECT_JOYSTICK_MENU +#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS #include "crossplatform.h" #endif @@ -85,49 +77,16 @@ 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) { - // Most of custom options are done statically in MenuScreensCustom.cpp, we add them here only if they're dependent to extra files + // Moved to an array in MenuScreensCustom.cpp, but APIs are still available. see frontendoption.h - // These work only if we have neo folder - int fd; + // These work only if we have neo folder, so they're dynamically added #ifdef EXTENDED_PIPELINES const char *vehPipelineNames[] = { "FED_MFX", "FED_NEO" }; const char *off_on[] = { "FEM_OFF", "FEM_ON" }; - fd = CFileMgr::OpenFile("neo/neo.txd","r"); + int fd = CFileMgr::OpenFile("neo/neo.txd","r"); if (fd) { #ifdef GRAPHICS_MENU_OPTIONS FrontendOptionSetCursor(MENUPAGE_GRAPHICS_SETTINGS, -3, false); @@ -146,35 +105,6 @@ CustomFrontendOptionsPopulate(void) } #endif - // Add outsourced language translations, if files are found -#ifdef MORE_LANGUAGES - int fd2; - FrontendOptionSetCursor(MENUPAGE_LANGUAGE_SETTINGS, 5, false); - if (fd = CFileMgr::OpenFile("text/polish.gxt","r")) { - if (fd2 = CFileMgr::OpenFile("models/fonts_p.txd","r")) { - FrontendOptionAddDynamic("FEL_POL", nil, nil, LangPolSelect, nil, nil); - CFileMgr::CloseFile(fd2); - } - CFileMgr::CloseFile(fd); - } - - if (fd = CFileMgr::OpenFile("text/russian.gxt","r")) { - if (fd2 = CFileMgr::OpenFile("models/fonts_r.txd","r")) { - FrontendOptionAddDynamic("FEL_RUS", nil, nil, LangRusSelect, nil, nil); - CFileMgr::CloseFile(fd2); - } - CFileMgr::CloseFile(fd); - } - - if (fd = CFileMgr::OpenFile("text/japanese.gxt","r")) { - if (fd2 = CFileMgr::OpenFile("models/fonts_j.txd","r")) { - FrontendOptionAddDynamic("FEL_JAP", nil, nil, LangJapSelect, nil, nil); - CFileMgr::CloseFile(fd2); - } - CFileMgr::CloseFile(fd); - } -#endif - } #endif @@ -314,40 +244,8 @@ const char *iniKeyboardButtons[] = {"ESC","F1","F2","F3","F4","F5","F6","F7","F8 void LoadINIControllerSettings() { -#ifdef DETECT_JOYSTICK_MENU -#ifdef XINPUT - int storedJoy1 = -1; - if (ReadIniIfExists("Controller", "JoystickName", &storedJoy1)) { - CPad::XInputJoy1 = -1; - CPad::XInputJoy2 = -1; - XINPUT_STATE xstate; - memset(&xstate, 0, sizeof(XINPUT_STATE)); - - // Firstly confirm & set joy 1 - if (XInputGetState(storedJoy1, &xstate) == ERROR_SUCCESS) { - CPad::XInputJoy1 = storedJoy1; - } - - for (int i = 0; i <= 3; i++) { - if (XInputGetState(i, &xstate) == ERROR_SUCCESS) { - if (CPad::XInputJoy1 == -1) - CPad::XInputJoy1 = i; - else if (CPad::XInputJoy2 == -1 && i != CPad::XInputJoy1) - CPad::XInputJoy2 = i; - } - } - - // There is no plug event on XInput, so let's leave XInputJoy1/2 as 0/1 respectively, and hotplug will be possible. - if (CPad::XInputJoy1 == -1) { - CPad::XInputJoy1 = 0; - CPad::XInputJoy2 = 1; - } else if (CPad::XInputJoy2 == -1) { - CPad::XInputJoy2 = (CPad::XInputJoy1 + 1) % 4; - } - } -#else +#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS ReadIniIfExists("Controller", "JoystickName", gSelectedJoystickName, 128); -#endif #endif // force to default GTA behaviour (never overwrite bindings on joy change/initialization) if user init'ed/set bindings before we introduced that if (!ReadIniIfExists("Controller", "PadButtonsInited", &ControlsManager.ms_padButtonsInited)) { @@ -445,12 +343,8 @@ void SaveINIControllerSettings() StoreIni("Bindings", iniControllerActions[i], value, 128); } -#ifdef DETECT_JOYSTICK_MENU -#ifdef XINPUT - StoreIni("Controller", "JoystickName", CPad::XInputJoy1); -#else +#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS StoreIni("Controller", "JoystickName", gSelectedJoystickName, 128); -#endif #endif StoreIni("Controller", "PadButtonsInited", ControlsManager.ms_padButtonsInited); cfg.write_file("re3.ini"); @@ -475,7 +369,6 @@ bool LoadINISettings() ReadIniIfExists("Controller", "HorizantalMouseSens", &TheCamera.m_fMouseAccelHorzntl); ReadIniIfExists("Controller", "InvertMouseVertically", &MousePointerStateHelper.bInvertVertically); ReadIniIfExists("Controller", "DisableMouseSteering", &CVehicle::m_bDisableMouseSteering); - ReadIniIfExists("Controller", "Vibration", &FrontEndMenuManager.m_PrefsUseVibration); ReadIniIfExists("Audio", "SfxVolume", &FrontEndMenuManager.m_PrefsSfxVolume); ReadIniIfExists("Audio", "MusicVolume", &FrontEndMenuManager.m_PrefsMusicVolume); ReadIniIfExists("Audio", "Radio", &FrontEndMenuManager.m_PrefsRadioStation); @@ -516,10 +409,6 @@ bool LoadINISettings() #ifdef FIX_SPRITES ReadIniIfExists("Draw", "FixSprites", &CDraw::ms_bFixSprites); #endif -#ifdef DRAW_GAME_VERSION_TEXT - extern bool gDrawVersionText; - ReadIniIfExists("General", "DrawVersionText", &gDrawVersionText); -#endif #ifdef CUSTOM_FRONTEND_OPTIONS bool migrate = cfg.category_size("FrontendOptions") != 0; @@ -566,7 +455,6 @@ void SaveINISettings() StoreIni("Controller", "HorizantalMouseSens", TheCamera.m_fMouseAccelHorzntl); StoreIni("Controller", "InvertMouseVertically", MousePointerStateHelper.bInvertVertically); StoreIni("Controller", "DisableMouseSteering", CVehicle::m_bDisableMouseSteering); - StoreIni("Controller", "Vibration", FrontEndMenuManager.m_PrefsUseVibration); StoreIni("Audio", "SfxVolume", FrontEndMenuManager.m_PrefsSfxVolume); StoreIni("Audio", "MusicVolume", FrontEndMenuManager.m_PrefsMusicVolume); StoreIni("Audio", "Radio", FrontEndMenuManager.m_PrefsRadioStation); @@ -607,10 +495,6 @@ void SaveINISettings() #ifdef FIX_SPRITES StoreIni("Draw", "FixSprites", CDraw::ms_bFixSprites); #endif -#ifdef DRAW_GAME_VERSION_TEXT - extern bool gDrawVersionText; - StoreIni("General", "DrawVersionText", gDrawVersionText); -#endif #ifdef CUSTOM_FRONTEND_OPTIONS for (int i = 0; i < MENUPAGES; i++) { for (int j = 0; j < NUM_MENUROWS; j++) { @@ -733,6 +617,18 @@ SwitchCarCollision(void) FindPlayerVehicle()->bUsesCollision = !FindPlayerVehicle()->bUsesCollision; } +static int engineStatus; +static void +SetEngineStatus(void) +{ + CVehicle *veh = FindPlayerVehicle(); + if(veh == nil) + return; + if(!veh->IsCar()) + return; + ((CAutomobile*)veh)->Damage.SetEngineStatus(engineStatus); +} + static void ToggleComedy(void) { @@ -794,7 +690,7 @@ void CTweakVars::Add(CTweakVar *var) TweakVarsListSize = 0; } if(TweakVarsListSize > 63) - TweakVarsList = (CTweakVar**) realloc(TweakVarsList, (TweakVarsListSize + 1) * sizeof(CTweakVar*)); + TweakVarsList = (CTweakVar**) realloc(TweakVarsList, (TweakVarsListSize + 1) * sizeof(*var)); TweakVarsList[TweakVarsListSize++] = var; // TweakVarsList.push_back(var); @@ -915,22 +811,12 @@ DebugMenuPopulate(void) DebugMenuAddCmd("Spawn", "Spawn Predator", [](){ SpawnCar(MI_PREDATOR); }); DebugMenuAddVarBool8("Render", "Draw hud", &CHud::m_Wants_To_Draw_Hud, nil); - -#ifdef PROPER_SCALING - DebugMenuAddVarBool8("Render", "Proper Scaling", &CDraw::ms_bProperScaling, nil); -#endif -#ifdef FIX_RADAR - DebugMenuAddVarBool8("Render", "Fix Radar", &CDraw::ms_bFixRadar, nil); -#endif -#ifdef FIX_SPRITES - DebugMenuAddVarBool8("Render", "Fix Sprites", &CDraw::ms_bFixSprites, nil); -#endif DebugMenuAddVarBool8("Render", "PS2 Alpha test Emu", &gPS2alphaTest, nil); DebugMenuAddVarBool8("Render", "Frame limiter", &FrontEndMenuManager.m_PrefsFrameLimiter, nil); DebugMenuAddVarBool8("Render", "VSynch", &FrontEndMenuManager.m_PrefsVsync, nil); DebugMenuAddVar("Render", "Max FPS", &RsGlobal.maxFPS, nil, 1, 1, 1000, nil); #ifdef NEW_RENDERER - DebugMenuAddVarBool8("Render", "New Renderer", &gbNewRenderer, nil); + DebugMenuAddVarBool8("Render", "new renderer", &gbNewRenderer, nil); extern bool gbRenderRoads; extern bool gbRenderEverythingBarRoads; //extern bool gbRenderFadingInUnderwaterEntities; @@ -941,16 +827,16 @@ extern bool gbRenderVehicles; extern bool gbRenderWorld0; extern bool gbRenderWorld1; extern bool gbRenderWorld2; - DebugMenuAddVarBool8("Debug Render", "gbRenderRoads", &gbRenderRoads, nil); - DebugMenuAddVarBool8("Debug Render", "gbRenderEverythingBarRoads", &gbRenderEverythingBarRoads, nil); -// DebugMenuAddVarBool8("Debug Render", "gbRenderFadingInUnderwaterEntities", &gbRenderFadingInUnderwaterEntities, nil); - DebugMenuAddVarBool8("Debug Render", "gbRenderFadingInEntities", &gbRenderFadingInEntities, nil); - DebugMenuAddVarBool8("Debug Render", "gbRenderWater", &gbRenderWater, nil); - DebugMenuAddVarBool8("Debug Render", "gbRenderBoats", &gbRenderBoats, nil); - DebugMenuAddVarBool8("Debug Render", "gbRenderVehicles", &gbRenderVehicles, nil); - DebugMenuAddVarBool8("Debug Render", "gbRenderWorld0", &gbRenderWorld0, nil); - DebugMenuAddVarBool8("Debug Render", "gbRenderWorld1", &gbRenderWorld1, nil); - DebugMenuAddVarBool8("Debug Render", "gbRenderWorld2", &gbRenderWorld2, nil); + DebugMenuAddVarBool8("Render", "gbRenderRoads", &gbRenderRoads, nil); + DebugMenuAddVarBool8("Render", "gbRenderEverythingBarRoads", &gbRenderEverythingBarRoads, nil); +// DebugMenuAddVarBool8("Render", "gbRenderFadingInUnderwaterEntities", &gbRenderFadingInUnderwaterEntities, nil); + DebugMenuAddVarBool8("Render", "gbRenderFadingInEntities", &gbRenderFadingInEntities, nil); + DebugMenuAddVarBool8("Render", "gbRenderWater", &gbRenderWater, nil); + DebugMenuAddVarBool8("Render", "gbRenderBoats", &gbRenderBoats, nil); + DebugMenuAddVarBool8("Render", "gbRenderVehicles", &gbRenderVehicles, nil); + DebugMenuAddVarBool8("Render", "gbRenderWorld0", &gbRenderWorld0, nil); + DebugMenuAddVarBool8("Render", "gbRenderWorld1", &gbRenderWorld1, nil); + DebugMenuAddVarBool8("Render", "gbRenderWorld2", &gbRenderWorld2, nil); #endif #ifdef EXTENDED_COLOURFILTER @@ -974,29 +860,32 @@ extern bool gbRenderWorld2; 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); - DebugMenuAddVarBool8("Debug Render", "Show Car Path Links", &gbShowCarPathsLinks, nil); - DebugMenuAddVarBool8("Debug Render", "Show Ped Road Groups", &gbShowPedRoadGroups, nil); - DebugMenuAddVarBool8("Debug Render", "Show Car Road Groups", &gbShowCarRoadGroups, nil); - DebugMenuAddVarBool8("Debug Render", "Show Collision Lines", &gbShowCollisionLines, nil); - DebugMenuAddVarBool8("Debug Render", "Show Collision Polys", &gbShowCollisionPolys, nil); - DebugMenuAddVarBool8("Debug Render", "Don't render Buildings", &gbDontRenderBuildings, nil); - DebugMenuAddVarBool8("Debug Render", "Don't render Big Buildings", &gbDontRenderBigBuildings, nil); - DebugMenuAddVarBool8("Debug Render", "Don't render Peds", &gbDontRenderPeds, nil); - DebugMenuAddVarBool8("Debug Render", "Don't render Vehicles", &gbDontRenderVehicles, nil); - DebugMenuAddVarBool8("Debug Render", "Don't render Objects", &gbDontRenderObjects, nil); - DebugMenuAddVarBool8("Debug Render", "Don't Render Water", &gbDontRenderWater, nil); - + DebugMenuAddVarBool8("Render", "Show Ped Paths", &gbShowPedPaths, nil); + DebugMenuAddVarBool8("Render", "Show Car Paths", &gbShowCarPaths, nil); + DebugMenuAddVarBool8("Render", "Show Car Path Links", &gbShowCarPathsLinks, nil); + DebugMenuAddVarBool8("Render", "Show Ped Road Groups", &gbShowPedRoadGroups, nil); + DebugMenuAddVarBool8("Render", "Show Car Road Groups", &gbShowCarRoadGroups, nil); + DebugMenuAddVarBool8("Render", "Show Collision Lines", &gbShowCollisionLines, nil); + DebugMenuAddVarBool8("Render", "Show Collision Polys", &gbShowCollisionPolys, nil); + DebugMenuAddVarBool8("Render", "Don't render Buildings", &gbDontRenderBuildings, nil); + DebugMenuAddVarBool8("Render", "Don't render Big Buildings", &gbDontRenderBigBuildings, nil); + DebugMenuAddVarBool8("Render", "Don't render Peds", &gbDontRenderPeds, nil); + DebugMenuAddVarBool8("Render", "Don't render Vehicles", &gbDontRenderVehicles, nil); + DebugMenuAddVarBool8("Render", "Don't render Objects", &gbDontRenderObjects, nil); + DebugMenuAddVarBool8("Render", "Don't Render Water", &gbDontRenderWater, nil); -#ifdef DRAW_GAME_VERSION_TEXT - extern bool gDrawVersionText; - DebugMenuAddVarBool8("Debug", "Version Text", &gDrawVersionText, nil); +#ifdef PROPER_SCALING + DebugMenuAddVarBool8("Draw", "Proper Scaling", &CDraw::ms_bProperScaling, nil); #endif - DebugMenuAddVarBool8("Debug", "Show DebugStuffInRelease", &gbDebugStuffInRelease, nil); -#ifdef TIMEBARS - DebugMenuAddVarBool8("Debug", "Show Timebars", &gbShowTimebars, nil); +#ifdef FIX_RADAR + DebugMenuAddVarBool8("Draw", "Fix Radar", &CDraw::ms_bFixRadar, nil); +#endif +#ifdef FIX_SPRITES + DebugMenuAddVarBool8("Draw", "Fix Sprites", &CDraw::ms_bFixSprites, nil); #endif + + + #ifndef FINAL DebugMenuAddVarBool8("Debug", "Print Memory Usage", &gbPrintMemoryUsage, nil); #ifdef USE_CUSTOM_ALLOCATOR @@ -1010,19 +899,30 @@ extern bool gbRenderWorld2; #ifdef GTA_SCENE_EDIT DebugMenuAddVarBool8("Debug", "Edit on", &CSceneEdit::m_bEditOn, nil); #endif - //DebugMenuAddCmd("Debug", "Start Credits", CCredits::Start); - //DebugMenuAddCmd("Debug", "Stop Credits", CCredits::Stop); - #ifdef MENU_MAP - DebugMenuAddCmd("Game", "Teleport to map waypoint", TeleportToWaypoint); + DebugMenuAddCmd("Debug", "Teleport to map waypoint", TeleportToWaypoint); #endif - DebugMenuAddCmd("Game", "Fix Car", FixCar); - DebugMenuAddCmd("Game", "Place Car on Road", PlaceOnRoad); - DebugMenuAddCmd("Game", "Switch car collision", SwitchCarCollision); - DebugMenuAddCmd("Game", "Toggle Comedy Controls", ToggleComedy); + DebugMenuAddCmd("Debug", "Switch car collision", SwitchCarCollision); + DebugMenuAddVar("Debug", "Engine Status", &engineStatus, nil, 1, 0, 226, nil); + DebugMenuAddCmd("Debug", "Set Engine Status", SetEngineStatus); + DebugMenuAddCmd("Debug", "Fix Car", FixCar); + DebugMenuAddCmd("Debug", "Toggle Comedy Controls", ToggleComedy); + DebugMenuAddCmd("Debug", "Place Car on Road", PlaceOnRoad); + + DebugMenuAddVarBool8("Debug", "Catalina Heli On", &CHeli::CatalinaHeliOn, nil); + DebugMenuAddCmd("Debug", "Catalina Fly By", CHeli::StartCatalinaFlyBy); + DebugMenuAddCmd("Debug", "Catalina Take Off", CHeli::CatalinaTakeOff); + DebugMenuAddCmd("Debug", "Catalina Fly Away", CHeli::MakeCatalinaHeliFlyAway); + DebugMenuAddVarBool8("Debug", "Script Heli On", &CHeli::ScriptHeliOn, nil); - DebugMenuAddVarBool8("Game", "Toggle popping heads on headshot", &CPed::bPopHeadsOnHeadshot, nil); + DebugMenuAddVarBool8("Debug", "Toggle popping heads on headshot", &CPed::bPopHeadsOnHeadshot, nil); + DebugMenuAddCmd("Debug", "Start Credits", CCredits::Start); + DebugMenuAddCmd("Debug", "Stop Credits", CCredits::Stop); + DebugMenuAddVarBool8("Debug", "Show DebugStuffInRelease", &gbDebugStuffInRelease, nil); +#ifdef TIMEBARS + DebugMenuAddVarBool8("Debug", "Show Timebars", &gbShowTimebars, nil); +#endif #ifdef MISSION_SWITCHER DebugMenuEntry *missionEntry; static const char* missions[] = { @@ -1042,9 +942,9 @@ extern bool gbRenderWorld2; "Uzi Money", "Toyminator", "Rigged To Blow", "Bullion Run", "Rumble", "The Exchange" }; - missionEntry = DebugMenuAddVar("Game", "Select mission", &nextMissionToSwitch, nil, 1, 0, ARRAY_SIZE(missions) - 1, missions); + missionEntry = DebugMenuAddVar("Debug", "Select mission", &nextMissionToSwitch, nil, 1, 0, ARRAY_SIZE(missions) - 1, missions); DebugMenuEntrySetWrap(missionEntry, true); - DebugMenuAddCmd("Game", "Start selected mission ", SwitchToMission); + DebugMenuAddCmd("Debug", "Start selected mission ", SwitchToMission); #endif extern bool PrintDebugCode; @@ -1056,9 +956,9 @@ extern bool gbRenderWorld2; DebugMenuAddVarBool8("Cam", "Print Debug Code", &PrintDebugCode, nil); DebugMenuAddVar("Cam", "Cam Mode", &DebugCamMode, nil, 1, 0, CCam::MODE_EDITOR, nil); DebugMenuAddCmd("Cam", "Normal", []() { DebugCamMode = 0; }); - // DebugMenuAddCmd("Cam", "Follow Ped With Bind", []() { DebugCamMode = CCam::MODE_FOLLOW_PED_WITH_BIND; }); - // DebugMenuAddCmd("Cam", "Reaction", []() { DebugCamMode = CCam::MODE_REACTION; }); - // DebugMenuAddCmd("Cam", "Chris", []() { DebugCamMode = CCam::MODE_CHRIS; }); + DebugMenuAddCmd("Cam", "Follow Ped With Bind", []() { DebugCamMode = CCam::MODE_FOLLOW_PED_WITH_BIND; }); + DebugMenuAddCmd("Cam", "Reaction", []() { DebugCamMode = CCam::MODE_REACTION; }); + DebugMenuAddCmd("Cam", "Chris", []() { DebugCamMode = CCam::MODE_CHRIS; }); DebugMenuAddCmd("Cam", "Reset Statics", ResetCamStatics); CTweakVars::AddDBG("Debug"); diff --git a/src/extras/GitSHA1.cpp.in b/src/extras/GitSHA1.cpp.in deleted file mode 100644 index 6168dc79..00000000 --- a/src/extras/GitSHA1.cpp.in +++ /dev/null @@ -1,2 +0,0 @@ -#define GIT_SHA1 "@GIT_SHA1@" -const char* g_GIT_SHA1 = GIT_SHA1; diff --git a/src/extras/GitSHA1.h b/src/extras/GitSHA1.h deleted file mode 100644 index 359bfaff..00000000 --- a/src/extras/GitSHA1.h +++ /dev/null @@ -1 +0,0 @@ -extern const char* g_GIT_SHA1; \ No newline at end of file diff --git a/src/extras/custompipes_d3d9.cpp b/src/extras/custompipes_d3d9.cpp index dad42b33..4242c630 100644 --- a/src/extras/custompipes_d3d9.cpp +++ b/src/extras/custompipes_d3d9.cpp @@ -89,7 +89,6 @@ vehicleRenderCB(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); @@ -121,7 +120,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(flags, m->color, m->surfaceProps); + setMaterial(m->color, m->surfaceProps); if(m->texture) d3d::setTexture(0, m->texture); @@ -150,11 +149,11 @@ CreateVehiclePipe(void) fp = ReadTweakValueTable(fp, SpecColor); } -#include "shaders/obj/neoVehicle_VS.inc" +#include "shaders/neoVehicle_VS.inc" neoVehicle_VS = rw::d3d::createVertexShader(neoVehicle_VS_cso); assert(neoVehicle_VS); -#include "shaders/obj/neoVehicle_PS.inc" +#include "shaders/neoVehicle_PS.inc" neoVehicle_PS = rw::d3d::createPixelShader(neoVehicle_PS_cso); assert(neoVehicle_PS); @@ -260,11 +259,11 @@ CreateWorldPipe(void) else ReadTweakValueTable((char*)work_buff, WorldLightmapBlend); -#include "shaders/obj/default_UV2_VS.inc" +#include "shaders/default_UV2_VS.inc" neoWorld_VS = rw::d3d::createVertexShader(default_UV2_VS_cso); assert(neoWorld_VS); -#include "shaders/obj/neoWorldIII_PS.inc" +#include "shaders/neoWorldIII_PS.inc" neoWorldIII_PS = rw::d3d::createPixelShader(neoWorldIII_PS_cso); assert(neoWorldIII_PS); @@ -347,11 +346,11 @@ glossRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) void CreateGlossPipe(void) { -#include "shaders/obj/neoGloss_VS.inc" +#include "shaders/neoGloss_VS.inc" neoGloss_VS = rw::d3d::createVertexShader(neoGloss_VS_cso); assert(neoGloss_VS); -#include "shaders/obj/neoGloss_PS.inc" +#include "shaders/neoGloss_PS.inc" neoGloss_PS = rw::d3d::createPixelShader(neoGloss_PS_cso); assert(neoGloss_PS); @@ -421,7 +420,6 @@ 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); @@ -439,7 +437,7 @@ rimRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255); - setMaterial(flags, m->color, m->surfaceProps); + setMaterial(m->color, m->surfaceProps); if(m->texture){ d3d::setTexture(0, m->texture); @@ -465,7 +463,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); @@ -486,7 +484,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255); - setMaterial(flags, m->color, m->surfaceProps); + setMaterial(m->color, m->surfaceProps); if(inst->material->texture){ d3d::setTexture(0, m->texture); @@ -514,11 +512,11 @@ CreateRimLightPipes(void) } -#include "shaders/obj/neoRim_VS.inc" +#include "shaders/neoRim_VS.inc" neoRim_VS = rw::d3d::createVertexShader(neoRim_VS_cso); assert(neoRim_VS); -#include "shaders/obj/neoRimSkin_VS.inc" +#include "shaders/neoRimSkin_VS.inc" neoRimSkin_VS = rw::d3d::createVertexShader(neoRimSkin_VS_cso); assert(neoRimSkin_VS); @@ -612,7 +610,6 @@ 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; @@ -642,7 +639,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass) setupDone = true; } - setMaterial(flags, m->color, m->surfaceProps); + setMaterial(m->color, m->surfaceProps); if(m->texture){ d3d::setTexture(0, m->texture); @@ -705,7 +702,7 @@ RenderBlendPass(int pass) rw::RGBA color = m->color; color.alpha = (color.alpha * building->fadeAlpha)/255; - setMaterial(color, m->surfaceProps); // always modulate here + setMaterial(color, m->surfaceProps); if(m->texture){ d3d::setTexture(0, m->texture); diff --git a/src/extras/custompipes_gl.cpp b/src/extras/custompipes_gl.cpp index f1cbfc38..caf9eb27 100644 --- a/src/extras/custompipes_gl.cpp +++ b/src/extras/custompipes_gl.cpp @@ -87,7 +87,6 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) Material *m; - rw::uint32 flags = atomic->geometry->flags; setWorldMatrix(atomic->getFrame()->getLTM()); lightingCB(atomic); @@ -120,7 +119,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) while(n--){ m = inst->material; - setMaterial(flags, m->color, m->surfaceProps); + setMaterial(m->color, m->surfaceProps); setTexture(0, m->texture); @@ -160,8 +159,8 @@ CreateVehiclePipe(void) { -#include "shaders/obj/neoVehicle_frag.inc" -#include "shaders/obj/neoVehicle_vert.inc" +#include "shaders/neoVehicle_fs_gl.inc" +#include "shaders/neoVehicle_vs_gl.inc" const char *vs[] = { shaderDecl, header_vert_src, neoVehicle_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, neoVehicle_frag_src, nil }; neoVehicleShader = Shader::create(vs, fs); @@ -271,8 +270,8 @@ CreateWorldPipe(void) ReadTweakValueTable((char*)work_buff, WorldLightmapBlend); { -#include "shaders/obj/neoWorldIII_frag.inc" -#include "shaders/obj/default_UV2_vert.inc" +#include "shaders/neoWorldIII_fs_gl.inc" +#include "shaders/default_UV2_gl.inc" const char *vs[] = { shaderDecl, header_vert_src, default_UV2_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, neoWorldIII_frag_src, nil }; neoWorldShader = Shader::create(vs, fs); @@ -379,8 +378,8 @@ CreateGlossPipe(void) using namespace rw::gl3; { -#include "shaders/obj/neoGloss_frag.inc" -#include "shaders/obj/neoGloss_vert.inc" +#include "shaders/neoGloss_fs_gl.inc" +#include "shaders/neoGloss_vs_gl.inc" const char *vs[] = { shaderDecl, header_vert_src, neoGloss_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, neoGloss_frag_src, nil }; neoGlossShader = Shader::create(vs, fs); @@ -449,7 +448,6 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) Material *m; - rw::uint32 flags = atomic->geometry->flags; setWorldMatrix(atomic->getFrame()->getLTM()); lightingCB(atomic); @@ -473,7 +471,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) while(n--){ m = inst->material; - setMaterial(flags, m->color, m->surfaceProps); + setMaterial(m->color, m->surfaceProps); setTexture(0, m->texture); @@ -500,7 +498,6 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) Material *m; - rw::uint32 flags = atomic->geometry->flags; setWorldMatrix(atomic->getFrame()->getLTM()); lightingCB(atomic); @@ -522,7 +519,7 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) while(n--){ m = inst->material; - setMaterial(flags, m->color, m->surfaceProps); + setMaterial(m->color, m->surfaceProps); setTexture(0, m->texture); @@ -553,8 +550,8 @@ CreateRimLightPipes(void) } { -#include "shaders/obj/simple_frag.inc" -#include "shaders/obj/neoRimSkin_vert.inc" +#include "shaders/simple_fs_gl.inc" +#include "shaders/neoRimSkin_gl.inc" const char *vs[] = { shaderDecl, header_vert_src, neoRimSkin_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, simple_frag_src, nil }; neoRimSkinShader = Shader::create(vs, fs); @@ -562,8 +559,8 @@ CreateRimLightPipes(void) } { -#include "shaders/obj/simple_frag.inc" -#include "shaders/obj/neoRim_vert.inc" +#include "shaders/simple_fs_gl.inc" +#include "shaders/neoRim_gl.inc" const char *vs[] = { shaderDecl, header_vert_src, neoRim_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, simple_frag_src, nil }; neoRimShader = Shader::create(vs, fs); @@ -667,7 +664,6 @@ 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; @@ -707,7 +703,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass) setupDone = true; } - setMaterial(flags, m->color, m->surfaceProps); + setMaterial(m->color, m->surfaceProps); setTexture(0, m->texture); @@ -776,7 +772,7 @@ RenderBlendPass(int pass) rw::RGBA color = m->color; color.alpha = (color.alpha * building->fadeAlpha)/255; - setMaterial(color, m->surfaceProps); // always modulate here + setMaterial(color, m->surfaceProps); setTexture(0, m->texture); diff --git a/src/extras/postfx.cpp b/src/extras/postfx.cpp index b94d245d..51b91060 100644 --- a/src/extras/postfx.cpp +++ b/src/extras/postfx.cpp @@ -141,16 +141,16 @@ CPostFX::Open(RwCamera *cam) #ifdef RW_D3D9 -#include "shaders/obj/colourfilterIII_PS.inc" +#include "shaders/colourfilterIII_PS.inc" colourfilterIII_PS = rw::d3d::createPixelShader(colourfilterIII_PS_cso); -#include "shaders/obj/contrastPS.inc" +#include "shaders/contrastPS.inc" contrast_PS = rw::d3d::createPixelShader(contrastPS_cso); #endif #ifdef RW_OPENGL using namespace rw::gl3; { -#include "shaders/obj/im2d_vert.inc" -#include "shaders/obj/colourfilterIII_frag.inc" +#include "shaders/im2d_gl.inc" +#include "shaders/colourfilterIII_fs_gl.inc" const char *vs[] = { shaderDecl, header_vert_src, im2d_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, colourfilterIII_frag_src, nil }; colourFilterIII = Shader::create(vs, fs); @@ -158,8 +158,8 @@ CPostFX::Open(RwCamera *cam) } { -#include "shaders/obj/im2d_vert.inc" -#include "shaders/obj/contrast_frag.inc" +#include "shaders/im2d_gl.inc" +#include "shaders/contrast_fs_gl.inc" const char *vs[] = { shaderDecl, header_vert_src, im2d_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, contrast_frag_src, nil }; contrast = Shader::create(vs, fs); diff --git a/src/extras/screendroplets.cpp b/src/extras/screendroplets.cpp index 1412141e..74c44da0 100644 --- a/src/extras/screendroplets.cpp +++ b/src/extras/screendroplets.cpp @@ -112,14 +112,14 @@ ScreenDroplets::InitDraw(void) openim2d_uv2(); #ifdef RW_D3D9 -#include "shaders/obj/screenDroplet_PS.inc" +#include "shaders/screenDroplet_PS.inc" screenDroplet_PS = rw::d3d::createPixelShader(screenDroplet_PS_cso); #endif #ifdef RW_GL3 using namespace rw::gl3; { -#include "shaders/obj/im2d_UV2_vert.inc" -#include "shaders/obj/screenDroplet_frag.inc" +#include "shaders/im2d_UV2_gl.inc" +#include "shaders/screenDroplet_fs_gl.inc" const char *vs[] = { shaderDecl, header_vert_src, im2d_UV2_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, screenDroplet_frag_src, nil }; screenDroplet = Shader::create(vs, fs); diff --git a/src/extras/shaders/Makefile b/src/extras/shaders/Makefile new file mode 100644 index 00000000..51e009d6 --- /dev/null +++ b/src/extras/shaders/Makefile @@ -0,0 +1,79 @@ +all: im2d_gl.inc simple_fs_gl.inc default_UV2_gl.inc \ + colourfilterIII_fs_gl.inc contrast_fs_gl.inc \ + neoRim_gl.inc neoRimSkin_gl.inc \ + neoWorldIII_fs_gl.inc neoGloss_vs_gl.inc neoGloss_fs_gl.inc \ + neoVehicle_vs_gl.inc neoVehicle_fs_gl.inc \ + im2d_UV2_gl.inc screenDroplet_fs_gl.inc + +im2d_gl.inc: im2d.vert + (echo 'const char *im2d_vert_src =';\ + sed 's/..*/"&\\n"/' im2d.vert;\ + echo ';') >im2d_gl.inc + +simple_fs_gl.inc: simple.frag + (echo 'const char *simple_frag_src =';\ + sed 's/..*/"&\\n"/' simple.frag;\ + echo ';') >simple_fs_gl.inc + +default_UV2_gl.inc: default_UV2.vert + (echo 'const char *default_UV2_vert_src =';\ + sed 's/..*/"&\\n"/' default_UV2.vert;\ + echo ';') >default_UV2_gl.inc + + + +colourfilterIII_fs_gl.inc: colourfilterIII.frag + (echo 'const char *colourfilterIII_frag_src =';\ + sed 's/..*/"&\\n"/' colourfilterIII.frag;\ + echo ';') >colourfilterIII_fs_gl.inc + +contrast_fs_gl.inc: contrast.frag + (echo 'const char *contrast_frag_src =';\ + sed 's/..*/"&\\n"/' contrast.frag;\ + echo ';') >contrast_fs_gl.inc + + +neoRim_gl.inc: neoRim.vert + (echo 'const char *neoRim_vert_src =';\ + sed 's/..*/"&\\n"/' neoRim.vert;\ + echo ';') >neoRim_gl.inc + +neoRimSkin_gl.inc: neoRimSkin.vert + (echo 'const char *neoRimSkin_vert_src =';\ + sed 's/..*/"&\\n"/' neoRimSkin.vert;\ + echo ';') >neoRimSkin_gl.inc + +neoWorldIII_fs_gl.inc: neoWorldIII.frag + (echo 'const char *neoWorldIII_frag_src =';\ + sed 's/..*/"&\\n"/' neoWorldIII.frag;\ + echo ';') >neoWorldIII_fs_gl.inc + +neoGloss_fs_gl.inc: neoGloss.frag + (echo 'const char *neoGloss_frag_src =';\ + sed 's/..*/"&\\n"/' neoGloss.frag;\ + echo ';') >neoGloss_fs_gl.inc + +neoGloss_vs_gl.inc: neoGloss.vert + (echo 'const char *neoGloss_vert_src =';\ + sed 's/..*/"&\\n"/' neoGloss.vert;\ + echo ';') >neoGloss_vs_gl.inc + +neoVehicle_vs_gl.inc: neoVehicle.vert + (echo 'const char *neoVehicle_vert_src =';\ + sed 's/..*/"&\\n"/' neoVehicle.vert;\ + echo ';') >neoVehicle_vs_gl.inc + +neoVehicle_fs_gl.inc: neoVehicle.frag + (echo 'const char *neoVehicle_frag_src =';\ + sed 's/..*/"&\\n"/' neoVehicle.frag;\ + echo ';') >neoVehicle_fs_gl.inc + +im2d_UV2_gl.inc: im2d_UV2.vert + (echo 'const char *im2d_UV2_vert_src =';\ + sed 's/..*/"&\\n"/' im2d_UV2.vert;\ + echo ';') >im2d_UV2_gl.inc + +screenDroplet_fs_gl.inc: screenDroplet.frag + (echo 'const char *screenDroplet_frag_src =';\ + sed 's/..*/"&\\n"/' screenDroplet.frag;\ + echo ';') >screenDroplet_fs_gl.inc diff --git a/src/extras/shaders/obj/colourfilterIII_PS.cso b/src/extras/shaders/colourfilterIII_PS.cso similarity index 100% rename from src/extras/shaders/obj/colourfilterIII_PS.cso rename to src/extras/shaders/colourfilterIII_PS.cso diff --git a/src/extras/shaders/obj/colourfilterIII_PS.inc b/src/extras/shaders/colourfilterIII_PS.inc similarity index 100% rename from src/extras/shaders/obj/colourfilterIII_PS.inc rename to src/extras/shaders/colourfilterIII_PS.inc diff --git a/src/extras/shaders/obj/colourfilterIII_frag.inc b/src/extras/shaders/colourfilterIII_fs_gl.inc similarity index 100% rename from src/extras/shaders/obj/colourfilterIII_frag.inc rename to src/extras/shaders/colourfilterIII_fs_gl.inc diff --git a/src/extras/shaders/obj/contrastPS.cso b/src/extras/shaders/contrastPS.cso similarity index 100% rename from src/extras/shaders/obj/contrastPS.cso rename to src/extras/shaders/contrastPS.cso diff --git a/src/extras/shaders/obj/contrastPS.inc b/src/extras/shaders/contrastPS.inc similarity index 100% rename from src/extras/shaders/obj/contrastPS.inc rename to src/extras/shaders/contrastPS.inc diff --git a/src/extras/shaders/obj/contrast_frag.inc b/src/extras/shaders/contrast_fs_gl.inc similarity index 100% rename from src/extras/shaders/obj/contrast_frag.inc rename to src/extras/shaders/contrast_fs_gl.inc diff --git a/src/extras/shaders/obj/default_UV2_VS.cso b/src/extras/shaders/default_UV2_VS.cso similarity index 100% rename from src/extras/shaders/obj/default_UV2_VS.cso rename to src/extras/shaders/default_UV2_VS.cso diff --git a/src/extras/shaders/obj/default_UV2_VS.inc b/src/extras/shaders/default_UV2_VS.inc similarity index 100% rename from src/extras/shaders/obj/default_UV2_VS.inc rename to src/extras/shaders/default_UV2_VS.inc diff --git a/src/extras/shaders/obj/default_UV2_vert.inc b/src/extras/shaders/default_UV2_gl.inc similarity index 100% rename from src/extras/shaders/obj/default_UV2_vert.inc rename to src/extras/shaders/default_UV2_gl.inc diff --git a/src/extras/shaders/obj/im2d_UV2_vert.inc b/src/extras/shaders/im2d_UV2_gl.inc similarity index 100% rename from src/extras/shaders/obj/im2d_UV2_vert.inc rename to src/extras/shaders/im2d_UV2_gl.inc diff --git a/src/extras/shaders/obj/im2d_vert.inc b/src/extras/shaders/im2d_gl.inc similarity index 100% rename from src/extras/shaders/obj/im2d_vert.inc rename to src/extras/shaders/im2d_gl.inc diff --git a/src/extras/shaders/make_hlsl.cmd b/src/extras/shaders/make.cmd similarity index 58% rename from src/extras/shaders/make_hlsl.cmd rename to src/extras/shaders/make.cmd index dee95283..8404ac6c 100644 --- a/src/extras/shaders/make_hlsl.cmd +++ b/src/extras/shaders/make.cmd @@ -1,3 +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 +for %%f in (*PS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T ps_2_0 /nologo /E main /Fo %%~nf.cso %%f +for %%f in (*VS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T vs_2_0 /nologo /E main /Fo %%~nf.cso %%f diff --git a/src/extras/shaders/make_glsl.sh b/src/extras/shaders/make_glsl.sh deleted file mode 100644 index 0af98961..00000000 --- a/src/extras/shaders/make_glsl.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!sh -for i in *.vert; do - echo $i - ./makeinc_glsl.sh $i -done -for i in *.frag; do - echo $i - ./makeinc_glsl.sh $i -done diff --git a/src/extras/shaders/makeinc_hlsl.sh b/src/extras/shaders/makeinc.sh similarity index 93% rename from src/extras/shaders/makeinc_hlsl.sh rename to src/extras/shaders/makeinc.sh index a5b12867..a649af33 100644 --- a/src/extras/shaders/makeinc_hlsl.sh +++ b/src/extras/shaders/makeinc.sh @@ -1,5 +1,4 @@ #!sh -cd obj for i in *cso; do (echo -n 'static ' xxd -i $i | grep -v '_len = ') > ${i%cso}inc diff --git a/src/extras/shaders/makeinc_glsl.sh b/src/extras/shaders/makeinc_glsl.sh deleted file mode 100644 index 2bc6a387..00000000 --- a/src/extras/shaders/makeinc_glsl.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!sh -ext=${1##*.} -name=${1%.*} -(echo "const char *${name}_${ext}_src =";\ -sed 's/..*/"&\\n"/' $1;\ -echo ';') > obj/${name}_${ext}.inc diff --git a/src/extras/shaders/obj/neoGloss_PS.cso b/src/extras/shaders/neoGloss_PS.cso similarity index 100% rename from src/extras/shaders/obj/neoGloss_PS.cso rename to src/extras/shaders/neoGloss_PS.cso diff --git a/src/extras/shaders/obj/neoGloss_PS.inc b/src/extras/shaders/neoGloss_PS.inc similarity index 100% rename from src/extras/shaders/obj/neoGloss_PS.inc rename to src/extras/shaders/neoGloss_PS.inc diff --git a/src/extras/shaders/obj/neoGloss_VS.cso b/src/extras/shaders/neoGloss_VS.cso similarity index 100% rename from src/extras/shaders/obj/neoGloss_VS.cso rename to src/extras/shaders/neoGloss_VS.cso diff --git a/src/extras/shaders/obj/neoGloss_VS.inc b/src/extras/shaders/neoGloss_VS.inc similarity index 100% rename from src/extras/shaders/obj/neoGloss_VS.inc rename to src/extras/shaders/neoGloss_VS.inc diff --git a/src/extras/shaders/obj/neoGloss_frag.inc b/src/extras/shaders/neoGloss_fs_gl.inc similarity index 100% rename from src/extras/shaders/obj/neoGloss_frag.inc rename to src/extras/shaders/neoGloss_fs_gl.inc diff --git a/src/extras/shaders/obj/neoGloss_vert.inc b/src/extras/shaders/neoGloss_vs_gl.inc similarity index 100% rename from src/extras/shaders/obj/neoGloss_vert.inc rename to src/extras/shaders/neoGloss_vs_gl.inc diff --git a/src/extras/shaders/obj/neoRimSkin_VS.cso b/src/extras/shaders/neoRimSkin_VS.cso similarity index 100% rename from src/extras/shaders/obj/neoRimSkin_VS.cso rename to src/extras/shaders/neoRimSkin_VS.cso diff --git a/src/extras/shaders/obj/neoRimSkin_VS.inc b/src/extras/shaders/neoRimSkin_VS.inc similarity index 100% rename from src/extras/shaders/obj/neoRimSkin_VS.inc rename to src/extras/shaders/neoRimSkin_VS.inc diff --git a/src/extras/shaders/obj/neoRimSkin_vert.inc b/src/extras/shaders/neoRimSkin_gl.inc similarity index 100% rename from src/extras/shaders/obj/neoRimSkin_vert.inc rename to src/extras/shaders/neoRimSkin_gl.inc diff --git a/src/extras/shaders/obj/neoRim_VS.cso b/src/extras/shaders/neoRim_VS.cso similarity index 100% rename from src/extras/shaders/obj/neoRim_VS.cso rename to src/extras/shaders/neoRim_VS.cso diff --git a/src/extras/shaders/obj/neoRim_VS.inc b/src/extras/shaders/neoRim_VS.inc similarity index 100% rename from src/extras/shaders/obj/neoRim_VS.inc rename to src/extras/shaders/neoRim_VS.inc diff --git a/src/extras/shaders/obj/neoRim_vert.inc b/src/extras/shaders/neoRim_gl.inc similarity index 100% rename from src/extras/shaders/obj/neoRim_vert.inc rename to src/extras/shaders/neoRim_gl.inc diff --git a/src/extras/shaders/obj/neoVehicle_PS.cso b/src/extras/shaders/neoVehicle_PS.cso similarity index 100% rename from src/extras/shaders/obj/neoVehicle_PS.cso rename to src/extras/shaders/neoVehicle_PS.cso diff --git a/src/extras/shaders/obj/neoVehicle_PS.inc b/src/extras/shaders/neoVehicle_PS.inc similarity index 100% rename from src/extras/shaders/obj/neoVehicle_PS.inc rename to src/extras/shaders/neoVehicle_PS.inc diff --git a/src/extras/shaders/obj/neoVehicle_VS.cso b/src/extras/shaders/neoVehicle_VS.cso similarity index 100% rename from src/extras/shaders/obj/neoVehicle_VS.cso rename to src/extras/shaders/neoVehicle_VS.cso diff --git a/src/extras/shaders/obj/neoVehicle_VS.inc b/src/extras/shaders/neoVehicle_VS.inc similarity index 100% rename from src/extras/shaders/obj/neoVehicle_VS.inc rename to src/extras/shaders/neoVehicle_VS.inc diff --git a/src/extras/shaders/obj/neoVehicle_frag.inc b/src/extras/shaders/neoVehicle_fs_gl.inc similarity index 100% rename from src/extras/shaders/obj/neoVehicle_frag.inc rename to src/extras/shaders/neoVehicle_fs_gl.inc diff --git a/src/extras/shaders/obj/neoVehicle_vert.inc b/src/extras/shaders/neoVehicle_vs_gl.inc similarity index 100% rename from src/extras/shaders/obj/neoVehicle_vert.inc rename to src/extras/shaders/neoVehicle_vs_gl.inc diff --git a/src/extras/shaders/obj/neoWorldIII_PS.cso b/src/extras/shaders/neoWorldIII_PS.cso similarity index 100% rename from src/extras/shaders/obj/neoWorldIII_PS.cso rename to src/extras/shaders/neoWorldIII_PS.cso diff --git a/src/extras/shaders/obj/neoWorldIII_PS.inc b/src/extras/shaders/neoWorldIII_PS.inc similarity index 100% rename from src/extras/shaders/obj/neoWorldIII_PS.inc rename to src/extras/shaders/neoWorldIII_PS.inc diff --git a/src/extras/shaders/obj/neoWorldIII_frag.inc b/src/extras/shaders/neoWorldIII_fs_gl.inc similarity index 100% rename from src/extras/shaders/obj/neoWorldIII_frag.inc rename to src/extras/shaders/neoWorldIII_fs_gl.inc diff --git a/src/extras/shaders/obj/screenDroplet_PS.cso b/src/extras/shaders/screenDroplet_PS.cso similarity index 100% rename from src/extras/shaders/obj/screenDroplet_PS.cso rename to src/extras/shaders/screenDroplet_PS.cso diff --git a/src/extras/shaders/obj/screenDroplet_PS.inc b/src/extras/shaders/screenDroplet_PS.inc similarity index 100% rename from src/extras/shaders/obj/screenDroplet_PS.inc rename to src/extras/shaders/screenDroplet_PS.inc diff --git a/src/extras/shaders/obj/screenDroplet_frag.inc b/src/extras/shaders/screenDroplet_fs_gl.inc similarity index 100% rename from src/extras/shaders/obj/screenDroplet_frag.inc rename to src/extras/shaders/screenDroplet_fs_gl.inc diff --git a/src/extras/shaders/obj/simple_frag.inc b/src/extras/shaders/simple_fs_gl.inc similarity index 100% rename from src/extras/shaders/obj/simple_frag.inc rename to src/extras/shaders/simple_fs_gl.inc diff --git a/src/fakerw/fake.cpp b/src/fakerw/fake.cpp index 1d4c881f..366dcf3e 100644 --- a/src/fakerw/fake.cpp +++ b/src/fakerw/fake.cpp @@ -945,43 +945,6 @@ RtBMPImageRead(const RwChar *imageName) #endif } - -RwImage * -RtPNGImageWrite(RwImage *image, const RwChar *imageName) -{ -#ifndef _WIN32 - char *r = casepath(imageName); - if (r) { - rw::writePNG(image, r); - free(r); - } else { - rw::writePNG(image, imageName); - } - -#else - rw::writePNG(image, imageName); -#endif - return image; -} -RwImage * -RtPNGImageRead(const RwChar *imageName) -{ -#ifndef _WIN32 - RwImage *image; - char *r = casepath(imageName); - if (r) { - image = rw::readPNG(r); - free(r); - } else { - image = rw::readPNG(imageName); - } - return image; - -#else - return rw::readPNG(imageName); -#endif -} - #include "rtquat.h" RtQuat *RtQuatRotate(RtQuat * quat, const RwV3d * axis, RwReal angle, RwOpCombineType combineOp) { return (RtQuat*)((rw::Quat*)quat)->rotate(axis, angle/180.0f*3.14159f, (CombineOp)combineOp); } diff --git a/src/fakerw/rtpng.h b/src/fakerw/rtpng.h deleted file mode 100644 index 80f29020..00000000 --- a/src/fakerw/rtpng.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -RwImage *RtPNGImageWrite(RwImage * image, const RwChar * imageName); -RwImage *RtPNGImageRead(const RwChar * imageName); diff --git a/src/peds/CopPed.cpp b/src/peds/CopPed.cpp index 44e3baf0..29612ccf 100644 --- a/src/peds/CopPed.cpp +++ b/src/peds/CopPed.cpp @@ -239,9 +239,9 @@ CCopPed::ArrestPlayer(void) if (suspect && (suspect->m_nPedState == PED_ARRESTED || suspect->DyingOrDead() || suspect->EnteringCar())) { - CAnimBlendAssociation *arrestAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ARREST); + CAnimBlendAssociation *arrestAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ARREST_GUN); if (!arrestAssoc || arrestAssoc->blendDelta < 0.0f) - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ARREST, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_ARREST_GUN, 4.0f); CVector suspMidPos; suspect->m_pedIK.GetComponentPosition(suspMidPos, PED_MID); @@ -401,7 +401,7 @@ CCopPed::CopAI(void) if (m_nPedState != PED_ATTACK && m_nPedState != PED_FIGHT && !m_bZoneDisabled) { CVector targetDist = playerOrHisVeh->GetPosition() - GetPosition(); if (m_fDistanceToTarget > 30.0f) { - CAnimBlendAssociation* crouchShootAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RBLOCK_SHOOT); + CAnimBlendAssociation* crouchShootAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RBLOCK_CSHOOT); if (crouchShootAssoc) crouchShootAssoc->blendDelta = -1000.0f; diff --git a/src/peds/EmergencyPed.cpp b/src/peds/EmergencyPed.cpp index d8c8309e..9f87c12b 100644 --- a/src/peds/EmergencyPed.cpp +++ b/src/peds/EmergencyPed.cpp @@ -317,7 +317,7 @@ CEmergencyPed::MedicAI(void) m_nEmergencyPedState = EMERGENCY_PED_STAND_STILL; } else { m_nEmergencyPedState = EMERGENCY_PED_FACE_TO_PATIENT; - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_MEDIC_CPR, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CPR, 4.0f); bIsDucking = true; } SetLookTimer(2000); diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 28a4e989..87e77ef3 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -329,7 +329,7 @@ CPed::SetModelIndex(uint32 mi) SetPedStats(modelInfo->m_pedStatType); m_headingRate = m_pedStats->m_headingChangeRate; m_animGroup = (AssocGroupId) modelInfo->m_animGroup; - CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE); + CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE); (*RPANIMBLENDCLUMPDATA(m_rwObject))->velocity2d = &m_vecAnimMoveDelta; @@ -496,30 +496,30 @@ CPed::SetMoveAnim(void) CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_BLOCK); if (!animAssoc) { - CAnimBlendAssociation *fightIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); + CAnimBlendAssociation *fightIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FIGHT_IDLE); animAssoc = fightIdleAssoc; if (fightIdleAssoc && m_nPedState == PED_FIGHT) return; if (fightIdleAssoc) { - CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); + CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); if (!idleAssoc || idleAssoc->blendDelta <= 0.0f) { animAssoc->flags |= ASSOC_DELETEFADEDOUT; - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_IDLE, 8.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_IDLE_STANCE, 8.0f); } } } if (!animAssoc) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED); if (animAssoc) if (m_nWaitState == WAITSTATE_STUCK || m_nWaitState == WAITSTATE_FINISH_FLEE) return; if (animAssoc) { - CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); + CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); if (!idleAssoc || idleAssoc->blendDelta <= 0.0f) { animAssoc->flags |= ASSOC_DELETEFADEDOUT; - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_IDLE, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_IDLE_STANCE, 4.0f); } } } @@ -541,20 +541,20 @@ CPed::SetMoveAnim(void) switch (m_nMoveState) { case PEDMOVE_STILL: - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_IDLE, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_IDLE_STANCE, 4.0f); break; case PEDMOVE_WALK: - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_WALK, 1.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_WALK, 1.0f); break; case PEDMOVE_RUN: if (m_nPedState == PED_FLEE_ENTITY) { - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_RUN, 3.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_RUN, 3.0f); } else { - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_RUN, 1.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_RUN, 1.0f); } break; case PEDMOVE_SPRINT: - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_RUNFAST, 1.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_SPRINT, 1.0f); break; default: break; @@ -562,12 +562,12 @@ CPed::SetMoveAnim(void) if (animAssoc) { if (m_leader) { - CAnimBlendAssociation *walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_STD_WALK); + CAnimBlendAssociation *walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_WALK); if (!walkAssoc) - walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_STD_RUN); + walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_RUN); if (!walkAssoc) - walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_STD_RUNFAST); + walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_SPRINT); if (walkAssoc) { animAssoc->speed = walkAssoc->speed; @@ -920,7 +920,7 @@ FinishFuckUCB(CAnimBlendAssociation *animAssoc, void *arg) { CPed *ped = (CPed*)arg; - if (animAssoc->animId == ANIM_STD_PARTIAL_FUCKU && ped->GetWeapon()->m_eWeaponType == WEAPONTYPE_UNARMED) + if (animAssoc->animId == ANIM_FUCKU && ped->GetWeapon()->m_eWeaponType == WEAPONTYPE_UNARMED) ped->RemoveWeaponModel(0); } @@ -939,7 +939,7 @@ CPed::MoveHeadToLook(void) if (!bShakeFist && GetWeapon()->m_eWeaponType == WEAPONTYPE_UNARMED) { - CAnimBlendAssociation *fuckUAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_PARTIAL_FUCKU); + CAnimBlendAssociation *fuckUAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FUCKU); if (fuckUAssoc) { float animTime = fuckUAssoc->currentTime; @@ -984,7 +984,7 @@ CPed::MoveHeadToLook(void) bool notRocketLauncher = false; bool notTwoHanded = false; - AnimationId animToPlay = ANIM_STD_NUM; + AnimationId animToPlay = NUM_ANIMS; if (!GetWeapon()->IsType2Handed()) notTwoHanded = true; @@ -1002,24 +1002,24 @@ CPed::MoveHeadToLook(void) #ifndef FIX_BUGS if (m_pedStats->m_temper < 47) #endif - animToPlay = ANIM_STD_PARTIAL_PUNCH; + animToPlay = ANIM_FIGHT_PPUNCH; } else { - animToPlay = ANIM_STD_PARTIAL_FUCKU; + animToPlay = ANIM_FUCKU; } } else if (m_pedStats->m_temper > 49 || m_pLookTarget->GetModelIndex() == MI_POLICE) { - animToPlay = ANIM_STD_PARTIAL_FUCKU; + animToPlay = ANIM_FUCKU; } } else if (notRocketLauncher && (CGeneral::GetRandomNumber() & 1)) { - animToPlay = ANIM_STD_PARTIAL_FUCKU; + animToPlay = ANIM_FUCKU; } - if (animToPlay != ANIM_STD_NUM) { + if (animToPlay != NUM_ANIMS) { CAnimBlendAssociation *newAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, animToPlay, 4.0f); if (newAssoc) { newAssoc->flags |= ASSOC_FADEOUTWHENDONE; newAssoc->flags |= ASSOC_DELETEFADEDOUT; - if (newAssoc->animId == ANIM_STD_PARTIAL_FUCKU) + if (newAssoc->animId == ANIM_FUCKU) newAssoc->SetDeleteCallback(FinishFuckUCB, this); } } @@ -1365,8 +1365,8 @@ CPed::CalculateNewVelocity(void) m_moved = CVector2D(-Sin(walkAngle), Cos(walkAngle)) * pedSpeed; } - CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); - CAnimBlendAssociation *fightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); + CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); + CAnimBlendAssociation *fightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FIGHT_IDLE); #ifdef VC_PED_PORTS if ((!idleAssoc || idleAssoc->blendAmount < 0.5f) && !fightAssoc && !bIsDucking) { #else @@ -1809,7 +1809,7 @@ CPed::ProcessControl(void) ++m_panicCounter; if (m_fHealth <= 1.0f && m_nPedState <= PED_STATES_NO_AI && !bIsInTheAir && !bIsLanding) - SetDie(ANIM_STD_KO_FRONT, 4.0f, 0.0f); + SetDie(ANIM_KO_SHOT_FRONT1, 4.0f, 0.0f); bCollidedWithMyVehicle = false; @@ -1900,9 +1900,9 @@ CPed::ProcessControl(void) } else { if (m_nPedType != PEDTYPE_COP && neededTurn < DEGTORAD(15.0f) && m_nWaitState == WAITSTATE_FALSE) { if ((m_nStoredMoveState == PEDMOVE_RUN || m_nStoredMoveState == PEDMOVE_SPRINT) && m_vecDamageNormal.z < 0.3f) { - CAnimBlendAssociation *runAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUN); + CAnimBlendAssociation *runAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN); if (!runAssoc) - runAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNFAST); + runAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_SPRINT); if (runAssoc && runAssoc->blendAmount > 0.9f && runAssoc->IsRunning()) { SetWaitState(WAITSTATE_HITWALL, nil); @@ -2189,7 +2189,7 @@ CPed::ProcessControl(void) bIsStanding = false; CVector2D collidingEntMoveDir = -collidingVeh->m_vecMoveSpeed; int dir = GetLocalDirection(collidingEntMoveDir); - SetFall(1000, (AnimationId)(dir + ANIM_STD_HIGHIMPACT_FRONT), false); + SetFall(1000, (AnimationId)(dir + ANIM_KO_SKID_FRONT), false); float damage; if (collidingVeh->m_modelIndex == MI_TRAIN) { @@ -2321,7 +2321,7 @@ CPed::ProcessControl(void) bIsStanding = false; CVector2D collidingEntMoveDir = -collidingVeh->m_vecMoveSpeed; int dir = GetLocalDirection(collidingEntMoveDir); - SetFall(1000, (AnimationId)(dir + ANIM_STD_HIGHIMPACT_FRONT), false); + SetFall(1000, (AnimationId)(dir + ANIM_KO_SKID_FRONT), false); CPed *driver = collidingVeh->pDriver; float damage; @@ -2448,17 +2448,12 @@ CPed::ProcessControl(void) #ifdef VC_PED_PORTS uint8 flyDir = 0; float feetZ = GetPosition().z - FEET_OFFSET; -#ifdef FIX_BUGS - if (obstacleForFlyingZ > feetZ && obstacleForFlyingOtherDirZ < 501.0f) - flyDir = 1; - else if (obstacleForFlyingOtherDirZ > feetZ && obstacleForFlyingZ < 500.0f) - flyDir = 2; -#else - if ((obstacleForFlyingZ > feetZ && obstacleForFlyingOtherDirZ < 500.0f) || (obstacleForFlyingZ > feetZ && obstacleForFlyingOtherDirZ > feetZ)) + if ((obstacleForFlyingZ <= feetZ || obstacleForFlyingOtherDirZ >= 500.0f) && (obstacleForFlyingZ <= feetZ || obstacleForFlyingOtherDirZ <= feetZ)) { + if (obstacleForFlyingOtherDirZ > feetZ && obstacleForFlyingZ < 499.0f) + flyDir = 2; + } else { flyDir = 1; - else if (obstacleForFlyingOtherDirZ > feetZ && obstacleForFlyingZ < 499.0f) - flyDir = 2; -#endif + } if (flyDir != 0 && !bSomeVCflag1) { SetPosition((flyDir == 2 ? obstacleForFlyingOtherDir.point : obstacleForFlying.point)); @@ -2476,10 +2471,6 @@ CPed::ProcessControl(void) forceDir.z = 4.0f; ApplyMoveForce(forceDir); - // What was that for?? It pushes player inside of collision sometimes and kills him. -#ifdef FIX_BUGS - if (!IsPlayer()) -#endif GetMatrix().GetPosition() += 0.25f * offsetToCheck; m_fRotationCur = CGeneral::GetRadianAngleBetweenPoints(offsetToCheck.x, offsetToCheck.y, 0.0f, 0.0f); @@ -2488,7 +2479,7 @@ CPed::ProcessControl(void) SetHeading(m_fRotationCur); if (m_nPedState != PED_FALL && !bIsPedDieAnimPlaying) { - SetFall(1000, ANIM_STD_HIGHIMPACT_BACK, true); + SetFall(1000, ANIM_KO_SKID_BACK, true); } bIsInTheAir = false; } else if (m_vecDamageNormal.z > 0.4f) { @@ -2543,10 +2534,10 @@ CPed::ProcessControl(void) m_fRotationCur = m_fRotationDest; SetHeading(m_fRotationCur); } - CAnimBlendAssociation *jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_JUMP_GLIDE); + CAnimBlendAssociation *jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_JUMP_GLIDE); if (!jumpAssoc) - jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL_GLIDE); + jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_GLIDE); if (jumpAssoc) { jumpAssoc->blendDelta = -3.0f; @@ -2555,10 +2546,10 @@ CPed::ProcessControl(void) if (m_nPedState == PED_JUMP) m_nPedState = PED_IDLE; } else { - CAnimBlendAssociation *jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_JUMP_GLIDE); + CAnimBlendAssociation *jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_JUMP_GLIDE); if (!jumpAssoc) - jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL_GLIDE); + jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_GLIDE); if (jumpAssoc) { jumpAssoc->blendDelta = -3.0f; @@ -2684,7 +2675,7 @@ CPed::ProcessControl(void) Wait(); if (m_nPedState != PED_IDLE) { - CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_BIGGUN); + CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_ARMED); if(idleAssoc) { idleAssoc->blendDelta = -8.0f; idleAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -2703,27 +2694,27 @@ CPed::ProcessControl(void) int16 padWalkX = pad->GetPedWalkLeftRight(); int16 padWalkY = pad->GetPedWalkUpDown(); if (Abs(padWalkX) > 0.0f || Abs(padWalkY) > 0.0f) { - if (vehAnim == ANIM_STD_CAR_OPEN_DOOR_LHS || vehAnim == ANIM_STD_CAR_OPEN_DOOR_RHS || vehAnim == ANIM_STD_COACH_OPEN_LHS || vehAnim == ANIM_STD_COACH_OPEN_RHS || - vehAnim == ANIM_STD_VAN_OPEN_DOOR_REAR_LHS || vehAnim == ANIM_STD_VAN_OPEN_DOOR_REAR_RHS) { + if (vehAnim == ANIM_CAR_OPEN_LHS || vehAnim == ANIM_CAR_OPEN_RHS || vehAnim == ANIM_COACH_OPEN_L || vehAnim == ANIM_COACH_OPEN_R || + vehAnim == ANIM_VAN_OPEN_L || vehAnim == ANIM_VAN_OPEN) { if (!m_pMyVehicle->pDriver) { cancelJack = false; bCancelEnteringCar = true; } else cancelJack = true; - } else if (vehAnim == ANIM_STD_QUICKJACK && m_pVehicleAnim->GetTimeLeft() > 0.75f) { + } else if (vehAnim == ANIM_CAR_QJACK && m_pVehicleAnim->GetTimeLeft() > 0.75f) { cancelJack = true; - } else if (vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LO_LHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LO_RHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_RHS) { + } else if (vehAnim == ANIM_CAR_PULLOUT_LHS || vehAnim == ANIM_CAR_PULLOUT_LOW_LHS || vehAnim == ANIM_CAR_PULLOUT_LOW_RHS || vehAnim == ANIM_CAR_PULLOUT_RHS) { bCancelEnteringCar = true; cancelJack = false; } } - if (cancelJack && vehAnim == ANIM_STD_QUICKJACK && m_pVehicleAnim->GetTimeLeft() > 0.75f && m_pVehicleAnim->GetTimeLeft() < 0.78f) { + if (cancelJack && vehAnim == ANIM_CAR_QJACK && m_pVehicleAnim->GetTimeLeft() > 0.75f && m_pVehicleAnim->GetTimeLeft() < 0.78f) { cancelJack = false; QuitEnteringCar(); RestorePreviousObjective(); } - if (cancelJack && (vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LO_LHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LO_RHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_RHS)) { + if (cancelJack && (vehAnim == ANIM_CAR_PULLOUT_LHS || vehAnim == ANIM_CAR_PULLOUT_LOW_LHS || vehAnim == ANIM_CAR_PULLOUT_LOW_RHS || vehAnim == ANIM_CAR_PULLOUT_RHS)) { cancelJack = false; bCancelEnteringCar = true; } @@ -2883,25 +2874,25 @@ CPed::ProcessControl(void) CAnimBlendAssociation *lbAssoc; CAnimBlendAssociation *sitAssoc; if (m_pMyVehicle->bLowVehicle) { - sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT_LO); + sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LSIT); if (!sitAssoc || sitAssoc->blendAmount < 1.0f) { break; } - lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_LEFT_LO); + lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_LOW_L); lbAssoc = nil; - rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_RIGHT_LO); + rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_LOW_R); } else { - sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT); + sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SIT); if (!sitAssoc || sitAssoc->blendAmount < 1.0f) { break; } - lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_LEFT); - rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_RIGHT); - lbAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_LOOKBEHIND); + lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_L); + rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_R); + lbAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LB); if (lbAssoc && TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_1STPERSON @@ -2910,10 +2901,10 @@ CPed::ProcessControl(void) } } - CAnimBlendAssociation *driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVEBY_LEFT); + CAnimBlendAssociation *driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_L); if (!driveByAssoc) - driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVEBY_RIGHT); + driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_R); if (m_pMyVehicle->bLowVehicle || m_pMyVehicle->m_fGasPedal >= 0.0f || driveByAssoc) { if (steerAngle == 0.0f || driveByAssoc) { @@ -2929,9 +2920,9 @@ CPed::ProcessControl(void) if (rDriveAssoc) rDriveAssoc->blendAmount = clamp(steerAngle * -100.0f / 61.0f, 0.0f, 1.0f); else if (m_pMyVehicle->bLowVehicle) - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVE_RIGHT_LO); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_LOW_R); else - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVE_RIGHT); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_R); } else { if (rDriveAssoc) @@ -2940,9 +2931,9 @@ CPed::ProcessControl(void) if (lDriveAssoc) lDriveAssoc->blendAmount = clamp(steerAngle * 100.0f / 61.0f, 0.0f, 1.0f); else if (m_pMyVehicle->bLowVehicle) - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVE_LEFT_LO); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_LOW_L); else - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVE_LEFT); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_L); } if (lbAssoc) @@ -2952,7 +2943,7 @@ CPed::ProcessControl(void) if ((TheCamera.Cams[TheCamera.ActiveCam].Mode != CCam::MODE_1STPERSON || TheCamera.Cams[TheCamera.ActiveCam].DirectionWasLooking != LOOKING_LEFT) && (!lbAssoc || lbAssoc->blendAmount < 1.0f)) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_LOOKBEHIND, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_LB, 4.0f); } } break; @@ -2962,12 +2953,12 @@ CPed::ProcessControl(void) break; case PED_HANDS_UP: if (m_pedStats->m_temper <= 50) { - if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HANDSCOWER)) { - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HANDSCOWER); + if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_HANDSCOWER)) { + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_HANDSCOWER); Say(SOUND_PED_HANDS_COWER); } - } else if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HANDSUP)) { - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HANDSUP); + } else if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_HANDSUP)) { + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_HANDSUP); Say(SOUND_PED_HANDS_UP); } break; @@ -3159,7 +3150,7 @@ CPed::ProcessEntityCollision(CEntity *collidingEnt, CColPoint *collidingPoints) upperSpeedLimit *= 2.0f; lowerSpeedLimit *= 1.5f; } - CAnimBlendAssociation *fallAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL); + CAnimBlendAssociation *fallAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_FALL); if (!bWasStanding && speed > upperSpeedLimit && (/*!bPushedAlongByCar ||*/ m_vecMoveSpeed.z < lowerSpeedLimit) && m_pCollidingEntity != collidingEnt) { @@ -3183,7 +3174,7 @@ CPed::ProcessEntityCollision(CEntity *collidingEnt, CColPoint *collidingPoints) } #else float speedSqr = 0.0f; - CAnimBlendAssociation *fallAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL); + CAnimBlendAssociation *fallAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_FALL); if (!bWasStanding && (m_vecMoveSpeed.z < -0.25f || (speedSqr = m_vecMoveSpeed.MagnitudeSqr()) > sq(0.5f))) { if (speedSqr == 0.0f) speedSqr = sq(m_vecMoveSpeed.z); @@ -3335,10 +3326,10 @@ CPed::PlayFootSteps(void) if ( IsPlayer() ) { - runStopAsoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP2); + runStopAsoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP); if ( runStopAsoc == NULL ) - runStopAsoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP2); + runStopAsoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP_R); } if ( runStopAsoc != NULL && runStopAsoc->blendAmount > 0.1f ) @@ -4167,7 +4158,7 @@ CPed::PedSetOutCarCB(CAnimBlendAssociation *animAssoc, void *arg) #ifdef VC_PED_PORTS else if (ped->m_objective == OBJECTIVE_LEAVE_CAR_AND_DIE) { ped->m_fHealth = 0.0f; - ped->SetDie(ANIM_STD_HIT_FLOOR, 4.0f, 0.5f); + ped->SetDie(ANIM_FLOOR_HIT, 4.0f, 0.5f); } #endif @@ -4295,7 +4286,7 @@ CPed::PedSetOutCarCB(CAnimBlendAssociation *animAssoc, void *arg) ped->bOnBoat = false; if (ped->bBusJacked) { - ped->SetFall(1500, ANIM_STD_HIGHIMPACT_BACK, false); + ped->SetFall(1500, ANIM_KO_SKID_BACK, false); ped->bBusJacked = false; } ped->m_nStoredMoveState = PEDMOVE_NONE; @@ -4319,7 +4310,7 @@ CPed::PedSetDraggedOutCarCB(CAnimBlendAssociation *dragAssoc, void *arg) CVehicle *vehicle; CPed *ped = (CPed*)arg; - quickJackedAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_STD_QUICKJACKED); + quickJackedAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_CAR_QJACKED); if (ped->m_nPedState != PED_ARRESTED) { ped->m_nLastPedState = PED_NONE; if (dragAssoc) @@ -4352,7 +4343,7 @@ CPed::PedSetDraggedOutCarCB(CAnimBlendAssociation *dragAssoc, void *arg) if (ped->m_objective == OBJECTIVE_LEAVE_CAR_AND_DIE) { dragAssoc->SetDeleteCallback(PedSetDraggedOutCarPositionCB, ped); ped->m_fHealth = 0.0f; - ped->SetDie(ANIM_STD_HIT_FLOOR, 1000.0f, 0.5f); + ped->SetDie(ANIM_FLOOR_HIT, 1000.0f, 0.5f); return; } #endif @@ -4362,7 +4353,7 @@ CPed::PedSetDraggedOutCarCB(CAnimBlendAssociation *dragAssoc, void *arg) } else { dragAssoc->SetDeleteCallback(PedSetDraggedOutCarPositionCB, ped); if (ped->CanSetPedState()) - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_GET_UP, 1000.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_GETUP1, 1000.0f); } ped->ReplaceWeaponWhenExitingVehicle(); @@ -4597,14 +4588,14 @@ CPed::PedSetInCarCB(CAnimBlendAssociation *animAssoc, void *arg) if (veh->pDriver == ped) { if (veh->bLowVehicle) { - ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT_LO, 100.0f); + ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_LSIT, 100.0f); } else { - ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT, 100.0f); + ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_SIT, 100.0f); } } else if (veh->bLowVehicle) { - ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT_P_LO, 100.0f); + ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_SITPLO, 100.0f); } else { - ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT_P, 100.0f); + ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_SITP, 100.0f); } ped->StopNonPartialAnims(); @@ -4848,7 +4839,7 @@ CPed::PreRender(void) if (Abs(speed.x) <= 0.05f && Abs(speed.y) <= 0.05f) { if (!OnGround() && m_nPedState != PED_ATTACK && m_nPedState != PED_FIGHT) { - if (!IsPedHeadAbovePos(0.3f) || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED)) { + if (!IsPedHeadAbovePos(0.3f) || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED)) { doSplashUp = false; } } else @@ -4982,8 +4973,8 @@ CPed::Idle(void) } } - CAnimBlendAssociation *armedIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_BIGGUN); - CAnimBlendAssociation *unarmedIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); + CAnimBlendAssociation *armedIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_ARMED); + CAnimBlendAssociation *unarmedIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); int waitTime; if (m_nMoveState == PEDMOVE_STILL) { @@ -4998,7 +4989,7 @@ CPed::Idle(void) m_moved = CVector2D(0.0f, 0.0f); return; } - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_BIGGUN, 3.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_ARMED, 3.0f); waitTime = CGeneral::GetRandomNumberInRange(4000, 7500); } else { armedIdleAssoc->blendDelta = -2.0f; @@ -5122,7 +5113,7 @@ CPed::SetInTheAir(void) return; bIsInTheAir = true; - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FALL_GLIDE, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FALL_GLIDE, 4.0f); if (m_nPedState == PED_ATTACK) { ClearAttack(); @@ -5153,9 +5144,9 @@ CPed::InTheAir(void) ) SetLanding(); } else { - if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL)) { + if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_FALL)) { if (m_vecMoveSpeed.z < -0.1f) - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FALL, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FALL_FALL, 4.0f); } } } @@ -5168,19 +5159,19 @@ CPed::SetLanding(void) if (DyingOrDead()) return; - CAnimBlendAssociation *fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL); + CAnimBlendAssociation *fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_FALL); CAnimBlendAssociation *landAssoc; RpAnimBlendClumpSetBlendDeltas(GetClump(), ASSOC_PARTIAL, -1000.0f); if (fallAssoc) { - landAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FALL_COLLAPSE); + landAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_FALL_COLLAPSE); DMAudio.PlayOneShot(m_audioEntityId, SOUND_FALL_COLLAPSE, 1.0f); if (IsPlayer()) Say(SOUND_PED_LAND); } else { - landAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FALL_LAND); + landAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_FALL_LAND); DMAudio.PlayOneShot(m_audioEntityId, SOUND_FALL_LAND, 1.0f); } @@ -5231,25 +5222,25 @@ CPed::SetGetUp(void) bGetUpAnimStarted = true; m_pCollidingEntity = nil; bKnockedUpIntoAir = false; - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNFAST); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_SPRINT); if (animAssoc) { - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUN)) { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_RUN, 8.0f); + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN)) { + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_RUN, 8.0f); } else { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 8.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 8.0f); } animAssoc->flags |= ASSOC_DELETEFADEDOUT; } if (RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL)) - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GET_UP_FRONT, 1000.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_GETUP_FRONT, 1000.0f); else - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GET_UP, 1000.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_GETUP1, 1000.0f); animAssoc->SetFinishCallback(PedGetupCB,this); } else { m_fHealth = 0.0f; - SetDie(ANIM_STD_NUM, 4.0f, 0.0f); + SetDie(NUM_ANIMS, 4.0f, 0.0f); } } @@ -6096,7 +6087,7 @@ CPed::SetEvasiveStep(CEntity *reason, uint8 animType) if (neededTurn <= DEGTORAD(90.0f) || veh->GetModelIndex() == MI_RCBANDIT || vehPressedHorn || animType != 0) { SetLookFlag(veh, true); if ((CGeneral::GetRandomNumber() & 1) && veh->GetModelIndex() != MI_RCBANDIT && animType == 0) { - stepAnim = ANIM_STD_HAILTAXI; + stepAnim = ANIM_IDLE_TAXI; } else { float vehDirection = CGeneral::GetRadianAngleBetweenPoints( @@ -6119,11 +6110,11 @@ CPed::SetEvasiveStep(CEntity *reason, uint8 animType) else angleToFace = vehDirection + HALFPI; - stepAnim = ANIM_STD_NUM; + stepAnim = NUM_ANIMS; if (animType == 0 || animType == 1) - stepAnim = ANIM_STD_EVADE_STEP; + stepAnim = ANIM_EV_STEP; else if (animType == 2) - stepAnim = ANIM_STD_HANDSCOWER; + stepAnim = ANIM_HANDSCOWER; } if (!RpAnimBlendClumpGetAssociation(GetClump(), stepAnim)) { CAnimBlendAssociation *stepAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, stepAnim, 8.0f); @@ -6225,11 +6216,11 @@ CPed::SetEvasiveDive(CPhysical *reason, uint8 onlyRandomJump) ClearLookFlag(); ClearAimFlag(); SetLookFlag(reason, true); - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HANDSUP); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_HANDSUP); if (animAssoc) return; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HANDSUP, 8.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_HANDSUP, 8.0f); animAssoc->flags &= ~ASSOC_DELETEFADEDOUT; animAssoc->SetFinishCallback(PedEvadeCB, this); SetStoredState(); @@ -6240,7 +6231,7 @@ CPed::SetEvasiveDive(CPhysical *reason, uint8 onlyRandomJump) ClearAimFlag(); SetStoredState(); SetPedState(PED_DIVE_AWAY); - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_EVADE_DIVE, 8.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_EV_DIVE, 8.0f); animAssoc->SetFinishCallback(PedEvadeCB, this); } @@ -6271,7 +6262,7 @@ CPed::PedEvadeCB(CAnimBlendAssociation* animAssoc, void* arg) if (ped->m_nPedState == PED_DIVE_AWAY || ped->m_nPedState == PED_STEP_AWAY) ped->RestorePreviousState(); - } else if (animAssoc->animId == ANIM_STD_EVADE_DIVE) { + } else if (animAssoc->animId == ANIM_EV_DIVE) { ped->bUpdateAnimHeading = true; ped->ClearLookFlag(); if (ped->m_nPedState == PED_DIVE_AWAY) @@ -6329,7 +6320,7 @@ CPed::SetDie(AnimationId animId, float delta, float speed) } SetPedState(PED_DIE); - if (animId == ANIM_STD_NUM) { + if (animId == NUM_ANIMS) { bIsPedDieAnimPlaying = false; } else { CAnimBlendAssociation *dieAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, animId, delta); @@ -6438,7 +6429,7 @@ CPed::Chat(void) } if (bIsTalking) { if (CGeneral::GetRandomNumber() < 512) { - CAnimBlendAssociation *chatAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CHAT); + CAnimBlendAssociation *chatAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_CHAT); if (chatAssoc) { chatAssoc->blendDelta = -4.0f; chatAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -6450,10 +6441,10 @@ CPed::Chat(void) } else { if (CGeneral::GetRandomNumber() < 20 && !RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_IDLE)) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_XPRESS_SCRATCH, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_XPRESS_SCRATCH, 4.0f); } if (!bIsTalking && !RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_IDLE)) { - CAnimBlendAssociation *chatAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CHAT, 4.0f); + CAnimBlendAssociation *chatAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_CHAT, 4.0f); float chatTime = CGeneral::GetRandomNumberInRange(0.0f, 3.0f); chatAssoc->SetCurrentTime(chatTime); @@ -6470,7 +6461,7 @@ CPed::Chat(void) void CPed::ClearChat(void) { - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CHAT); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_CHAT); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -6486,10 +6477,10 @@ ReportPhonePickUpCB(CAnimBlendAssociation* assoc, void* arg) { CPed* ped = (CPed*)arg; ped->m_nMoveState = PEDMOVE_STILL; - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE, 8.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_IDLE_STANCE, 8.0f); if (assoc->blendAmount > 0.5f && ped) { - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_TALK, 8.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_PHONE_TALK, 8.0f); } } @@ -6533,7 +6524,7 @@ CPed::FacePhone(void) ClearLookFlag(); SetIdle(); m_phoneTalkTimer = CTimer::GetTimeInMilliseconds() + 10000; - CAnimBlendAssociation* assoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_IN, 4.0f); + CAnimBlendAssociation* assoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_PHONE_IN, 4.0f); assoc->SetFinishCallback(ReportPhonePickUpCB, this); return true; } @@ -6588,9 +6579,9 @@ CPed::MakePhonecall(void) return false; #ifdef PEDS_REPORT_CRIMES_ON_PHONE - CAnimBlendAssociation* talkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_PHONE_TALK); + CAnimBlendAssociation* talkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_PHONE_TALK); if (talkAssoc && talkAssoc->blendAmount > 0.5f) { - CAnimBlendAssociation* endAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_OUT, 8.0f); + CAnimBlendAssociation* endAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_PHONE_OUT, 8.0f); endAssoc->flags &= ~ASSOC_DELETEFADEDOUT; endAssoc->SetFinishCallback(ReportPhonePutDownCB, this); } @@ -6920,18 +6911,18 @@ CPed::SetPedPositionInCar(void) if (bChangedSeat) { bool notYet = false; - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_GET_IN_LHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_GET_IN_LO_LHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_CLOSE_DOOR_LHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_CLOSE_DOOR_LO_LHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SHUFFLE_RHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SHUFFLE_LO_RHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_VAN_GET_IN_REAR_LHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_VAN_GET_IN_REAR_RHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_COACH_GET_IN_LHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_COACH_GET_IN_RHS)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_GETIN_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_GETIN_LOW_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_CLOSEDOOR_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_CLOSEDOOR_LOW_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SHUFFLE_RHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LSHUFFLE_RHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_VAN_CLOSE_L) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_VAN_CLOSE) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_VAN_GETIN_L) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_VAN_GETIN) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_COACH_IN_L) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_COACH_IN_R)) { notYet = true; } if (notYet) { @@ -7184,7 +7175,7 @@ CPed::LookForInterestingNodes(void) void CPed::SetWaitState(eWaitState state, void *time) { - AnimationId waitAnim = ANIM_STD_NUM; + AnimationId waitAnim = NUM_ANIMS; CAnimBlendAssociation *animAssoc; if (!IsPedInControl()) @@ -7200,10 +7191,10 @@ CPed::SetWaitState(eWaitState state, void *time) break; case WAITSTATE_CROSS_ROAD: m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 1000; - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_HBHB, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_HBHB, 4.0f); break; case WAITSTATE_CROSS_ROAD_LOOK: - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ROADCROSS, 8.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_ROAD_CROSS, 8.0f); if (time) m_nWaitTimer = CTimer::GetTimeInMilliseconds() + *(int*)time; @@ -7219,7 +7210,7 @@ CPed::SetWaitState(eWaitState state, void *time) case WAITSTATE_DOUBLEBACK: m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 3500; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_HBHB, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_HBHB, 4.0f); #ifdef FIX_BUGS animAssoc->SetFinishCallback(RestoreHeadingRateCB, this); #endif @@ -7227,7 +7218,7 @@ CPed::SetWaitState(eWaitState state, void *time) case WAITSTATE_HITWALL: m_headingRate = 2.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 5000; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_WALL, 16.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_HIT_WALL, 16.0f); animAssoc->flags |= ASSOC_DELETEFADEDOUT; animAssoc->flags |= ASSOC_FADEOUTWHENDONE; animAssoc->SetDeleteCallback(FinishedWaitCB, this); @@ -7241,14 +7232,14 @@ CPed::SetWaitState(eWaitState state, void *time) case WAITSTATE_TURN180: m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 5000; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_TURN180, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_TURN_180, 4.0f); animAssoc->SetFinishCallback(FinishedWaitCB, this); animAssoc->SetDeleteCallback(RestoreHeadingRateCB, this); break; case WAITSTATE_SURPRISE: m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 2000; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_WALL, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_HIT_WALL, 4.0f); animAssoc->SetFinishCallback(FinishedWaitCB, this); break; case WAITSTATE_STUCK: @@ -7256,7 +7247,7 @@ CPed::SetWaitState(eWaitState state, void *time) SetMoveAnim(); m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 5000; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_TIRED, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TIRED, 4.0f); #ifdef FIX_BUGS animAssoc->SetFinishCallback(RestoreHeadingRateCB, this); #endif @@ -7272,20 +7263,20 @@ CPed::SetWaitState(eWaitState state, void *time) SetMoveAnim(); m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 5000; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_HBHB, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_HBHB, 4.0f); #ifdef FIX_BUGS animAssoc->SetFinishCallback(RestoreHeadingRateCB, this); #endif break; case WAITSTATE_PLAYANIM_COWER: - waitAnim = ANIM_STD_HANDSCOWER; + waitAnim = ANIM_HANDSCOWER; case WAITSTATE_PLAYANIM_HANDSUP: - if (waitAnim == ANIM_STD_NUM) - waitAnim = ANIM_STD_HANDSUP; + if (waitAnim == NUM_ANIMS) + waitAnim = ANIM_HANDSUP; case WAITSTATE_PLAYANIM_HANDSCOWER: - if (waitAnim == ANIM_STD_NUM) - waitAnim = ANIM_STD_HANDSCOWER; + if (waitAnim == NUM_ANIMS) + waitAnim = ANIM_HANDSCOWER; m_headingRate = 0.0f; if (time) m_nWaitTimer = CTimer::GetTimeInMilliseconds() + *(int*)time; @@ -7296,13 +7287,13 @@ CPed::SetWaitState(eWaitState state, void *time) animAssoc->SetDeleteCallback(FinishedWaitCB, this); break; case WAITSTATE_PLAYANIM_DUCK: - waitAnim = ANIM_STD_DUCK_DOWN; + waitAnim = ANIM_DUCK_DOWN; case WAITSTATE_PLAYANIM_TAXI: - if (waitAnim == ANIM_STD_NUM) - waitAnim = ANIM_STD_HAILTAXI; + if (waitAnim == NUM_ANIMS) + waitAnim = ANIM_IDLE_TAXI; case WAITSTATE_PLAYANIM_CHAT: - if (waitAnim == ANIM_STD_NUM) - waitAnim = ANIM_STD_CHAT; + if (waitAnim == NUM_ANIMS) + waitAnim = ANIM_IDLE_CHAT; if (time) m_nWaitTimer = CTimer::GetTimeInMilliseconds() + *(int*)time; else @@ -7318,7 +7309,7 @@ CPed::SetWaitState(eWaitState state, void *time) SetMoveAnim(); m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 2500; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_TIRED, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TIRED, 4.0f); #ifdef FIX_BUGS animAssoc->SetFinishCallback(RestoreHeadingRateCB, this); #endif @@ -7334,7 +7325,7 @@ CPed::SetWaitState(eWaitState state, void *time) void CPed::Wait(void) { - AnimationId mustHaveAnim = ANIM_STD_NUM; + AnimationId mustHaveAnim = NUM_ANIMS; CAnimBlendAssociation *animAssoc; CPed *pedWeLook; @@ -7362,7 +7353,7 @@ CPed::Wait(void) else SetWaitState(WAITSTATE_CROSS_ROAD_LOOK, nil); - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_HBHB); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_HBHB); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -7373,7 +7364,7 @@ CPed::Wait(void) case WAITSTATE_CROSS_ROAD_LOOK: if (CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { m_nWaitState = WAITSTATE_FALSE; - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROADCROSS); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ROAD_CROSS); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -7386,7 +7377,7 @@ CPed::Wait(void) uint32 timeLeft = m_nWaitTimer - CTimer::GetTimeInMilliseconds(); if (timeLeft < 2500 && timeLeft > 2000) { m_nWaitTimer -= 500; - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_XPRESS_SCRATCH, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_XPRESS_SCRATCH, 4.0f); } } else { m_nWaitState = WAITSTATE_FALSE; @@ -7420,8 +7411,8 @@ CPed::Wait(void) case WAITSTATE_SURPRISE: if (CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HIT_WALL)) { - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_XPRESS_SCRATCH, 4.0f); + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_HIT_WALL)) { + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_XPRESS_SCRATCH, 4.0f); animAssoc->SetFinishCallback(FinishedWaitCB, this); m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 5000; } else { @@ -7434,14 +7425,14 @@ CPed::Wait(void) if (CTimer::GetTimeInMilliseconds() <= m_nWaitTimer) break; - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_TURN180); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_TURN_180); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_XPRESS_SCRATCH); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_XPRESS_SCRATCH); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROADCROSS); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ROAD_CROSS); if (animAssoc) { if (animAssoc->IsPartial()) { @@ -7449,10 +7440,10 @@ CPed::Wait(void) animAssoc->flags |= ASSOC_DELETEFADEDOUT; } else { animAssoc->flags |= ASSOC_DELETEFADEDOUT; - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); } - if (animAssoc->animId == ANIM_STD_TURN180) { + if (animAssoc->animId == ANIM_TURN_180) { m_fRotationCur = CGeneral::LimitRadianAngle(PI + m_fRotationCur); m_nWaitState = WAITSTATE_FALSE; SetMoveState(PEDMOVE_WALK); @@ -7466,16 +7457,16 @@ CPed::Wait(void) switch (CGeneral::GetRandomNumber() & 3) { case 0: - animToPlay = ANIM_STD_ROADCROSS; + animToPlay = ANIM_ROAD_CROSS; break; case 1: - animToPlay = ANIM_STD_IDLE_TIRED; + animToPlay = ANIM_IDLE_TIRED; break; case 2: - animToPlay = ANIM_STD_XPRESS_SCRATCH; + animToPlay = ANIM_XPRESS_SCRATCH; break; case 3: - animToPlay = ANIM_STD_TURN180; + animToPlay = ANIM_TURN_180; break; default: break; @@ -7483,7 +7474,7 @@ CPed::Wait(void) animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, animToPlay, 4.0f); - if (animToPlay == ANIM_STD_TURN180) + if (animToPlay == ANIM_TURN_180) animAssoc->SetFinishCallback(FinishedWaitCB, this); m_nWaitTimer = CTimer::GetTimeInMilliseconds() + CGeneral::GetRandomNumberInRange(1500, 5000); @@ -7492,7 +7483,7 @@ CPed::Wait(void) case WAITSTATE_LOOK_ABOUT: if (CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { m_nWaitState = WAITSTATE_FALSE; - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_HBHB); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_HBHB); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -7501,11 +7492,11 @@ CPed::Wait(void) break; case WAITSTATE_PLAYANIM_HANDSUP: - mustHaveAnim = ANIM_STD_HANDSUP; + mustHaveAnim = ANIM_HANDSUP; case WAITSTATE_PLAYANIM_HANDSCOWER: - if (mustHaveAnim == ANIM_STD_NUM) - mustHaveAnim = ANIM_STD_HANDSCOWER; + if (mustHaveAnim == NUM_ANIMS) + mustHaveAnim = ANIM_HANDSCOWER; animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), mustHaveAnim); pedWeLook = (CPed*) m_pLookTarget; @@ -7573,19 +7564,19 @@ CPed::Wait(void) } break; case WAITSTATE_PLAYANIM_COWER: - mustHaveAnim = ANIM_STD_HANDSCOWER; + mustHaveAnim = ANIM_HANDSCOWER; case WAITSTATE_PLAYANIM_DUCK: - if (mustHaveAnim == ANIM_STD_NUM) - mustHaveAnim = ANIM_STD_DUCK_DOWN; + if (mustHaveAnim == NUM_ANIMS) + mustHaveAnim = ANIM_DUCK_DOWN; case WAITSTATE_PLAYANIM_TAXI: - if (mustHaveAnim == ANIM_STD_NUM) - mustHaveAnim = ANIM_STD_HAILTAXI; + if (mustHaveAnim == NUM_ANIMS) + mustHaveAnim = ANIM_IDLE_TAXI; case WAITSTATE_PLAYANIM_CHAT: - if (mustHaveAnim == ANIM_STD_NUM) - mustHaveAnim = ANIM_STD_CHAT; + if (mustHaveAnim == NUM_ANIMS) + mustHaveAnim = ANIM_IDLE_CHAT; if (CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), mustHaveAnim); @@ -7611,11 +7602,11 @@ CPed::Wait(void) break; case WAITSTATE_FINISH_FLEE: - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED); if (animAssoc) { if (CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { animAssoc->flags |= ASSOC_DELETEFADEDOUT; - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); int timer = 2000; m_nWaitState = WAITSTATE_FALSE; SetWaitState(WAITSTATE_CROSS_ROAD_LOOK, &timer); @@ -7695,7 +7686,7 @@ CPed::SetSolicit(uint32 time) m_chatTimer = CTimer::GetTimeInMilliseconds() + time; if(!m_carInObjective->bIsVan && !m_carInObjective->bIsBus) - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_HOOKERTALK, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_HOOKERTALK, 4.0f); SetPedState(PED_SOLICIT); } @@ -7722,7 +7713,7 @@ CPed::Solicit(void) if ((GetPosition() - doorPos).MagnitudeSqr() <= 1.0f) return; - CAnimBlendAssociation *talkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_HOOKERTALK); + CAnimBlendAssociation *talkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_HOOKERTALK); if (talkAssoc) { talkAssoc->blendDelta = -1000.0f; talkAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -7968,12 +7959,12 @@ CPed::SetJump(void) { if (!bInVehicle && #if defined VC_PED_PORTS || defined FIX_BUGS - m_nPedState != PED_JUMP && !RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_JUMP_LAUNCH) && + m_nPedState != PED_JUMP && !RpAnimBlendClumpGetAssociation(GetClump(), ANIM_JUMP_LAUNCH) && #endif (m_nSurfaceTouched != SURFACE_STEEP_CLIFF || DotProduct(GetForward(), m_vecDamageNormal) >= 0.0f)) { SetStoredState(); SetPedState(PED_JUMP); - CAnimBlendAssociation *jumpAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_JUMP_LAUNCH, 8.0f); + CAnimBlendAssociation *jumpAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_JUMP_LAUNCH, 8.0f); jumpAssoc->SetFinishCallback(FinishLaunchCB, this); m_fRotationDest = m_fRotationCur; } @@ -8002,7 +7993,7 @@ CPed::FinishLaunchCB(CAnimBlendAssociation *animAssoc, void *arg) animAssoc->flags |= ASSOC_DELETEFADEDOUT; // ANIM_HIT_WALL in VC (which makes more sense) - CAnimBlendAssociation *handsCoverAssoc = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_HANDSCOWER, 8.0f); + CAnimBlendAssociation *handsCoverAssoc = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_HANDSCOWER, 8.0f); handsCoverAssoc->flags &= ~ASSOC_FADEOUTWHENDONE; handsCoverAssoc->SetFinishCallback(FinishHitHeadCB, ped); ped->bIsLanding = true; @@ -8010,12 +8001,12 @@ CPed::FinishLaunchCB(CAnimBlendAssociation *animAssoc, void *arg) } float velocityFromAnim = 0.1f; - CAnimBlendAssociation *sprintAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_STD_RUNFAST); + CAnimBlendAssociation *sprintAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_SPRINT); if (sprintAssoc) { velocityFromAnim = 0.05f * sprintAssoc->blendAmount + 0.17f; } else { - CAnimBlendAssociation *runAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_STD_RUN); + CAnimBlendAssociation *runAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_RUN); if (runAssoc) { velocityFromAnim = 0.07f * runAssoc->blendAmount + 0.1f; } @@ -8059,7 +8050,7 @@ CPed::FinishLaunchCB(CAnimBlendAssociation *animAssoc, void *arg) ped->bIsStanding = false; ped->bIsInTheAir = true; animAssoc->blendDelta = -1000.0f; - CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_JUMP_GLIDE); + CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_JUMP_GLIDE); if (ped->bDoBloodyFootprints) { CVector bloodPos(0.0f, 0.0f, 0.0f); @@ -8327,7 +8318,7 @@ CPed::WarpPedIntoCar(CVehicle *car) #else if (car->IsBoat()) { #ifndef FIX_BUGS - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_BOAT_DRIVE, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT, 100.0f); #else m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, car->GetDriverAnim(), 100.0f); #endif @@ -8338,9 +8329,9 @@ CPed::WarpPedIntoCar(CVehicle *car) RemoveWeaponWhenEnteringVehicle(); if (car->bLowVehicle) - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT_LO, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_LSIT, 100.0f); else - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_SIT, 100.0f); } #endif diff --git a/src/peds/PedAI.cpp b/src/peds/PedAI.cpp index 7f7120af..089c8d9d 100644 --- a/src/peds/PedAI.cpp +++ b/src/peds/PedAI.cpp @@ -1121,7 +1121,7 @@ CPed::ProcessObjective(void) if (m_attackTimer < CTimer::GetTimeInMilliseconds() && distWithTargetSc < wepRange && m_pedInObjective->m_nPedState != PED_GETUP && m_pedInObjective->m_nPedState != PED_DRAG_FROM_CAR) { if (bIsDucking) { - CAnimBlendAssociation *duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_DOWN); + CAnimBlendAssociation *duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_DOWN); if (duckAnim) { duckAnim->blendDelta = -2.0f; break; @@ -1202,14 +1202,14 @@ CPed::ProcessObjective(void) // This is weird... if (bNotAllowedToDuck && bKindaStayInSamePlace) { if (!bIsDucking) { - CAnimBlendAssociation* duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_DOWN); + CAnimBlendAssociation* duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_DOWN); if (!duckAnim || duckAnim->blendDelta < 0.0f) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_DUCK_DOWN, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DUCK_DOWN, 4.0f); bIsDucking = true; } break; } else { - CAnimBlendAssociation* duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_DOWN); + CAnimBlendAssociation* duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_DOWN); if (!duckAnim || duckAnim->blendDelta < 0.0f) { bIsDucking = false; } else { @@ -1701,9 +1701,9 @@ CPed::ProcessObjective(void) } break; case OBJECTIVE_HAIL_TAXI: - if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HAILTAXI) && CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { + if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TAXI) && CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { Say(SOUND_PED_TAXI_WAIT); - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HAILTAXI, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TAXI, 4.0f); m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 2000; } break; @@ -1813,7 +1813,7 @@ CPed::ProcessObjective(void) float distWithTargetScSqr = distWithTarget.MagnitudeSqr(); if (distWithTargetScSqr <= sq(10.0f)) { if (distWithTargetScSqr <= sq(1.4f)) { - CAnimBlendAssociation *reloadAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_AK_RELOAD); + CAnimBlendAssociation *reloadAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_AK_RELOAD); m_fRotationDest = CGeneral::GetRadianAngleBetweenPoints( m_pedInObjective->GetPosition().x, m_pedInObjective->GetPosition().y, GetPosition().x, GetPosition().y); @@ -1821,7 +1821,7 @@ CPed::ProcessObjective(void) if (reloadAssoc || !m_pedInObjective->IsPedShootable()) { if (reloadAssoc && (!reloadAssoc->IsRunning() || reloadAssoc->currentTime / reloadAssoc->hierarchy->totalLength > 0.8f)) { - CAnimBlendAssociation *punchAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_PARTIAL_PUNCH, 8.0f); + CAnimBlendAssociation *punchAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_PPUNCH, 8.0f); punchAssoc->flags |= ASSOC_DELETEFADEDOUT; punchAssoc->flags |= ASSOC_FADEOUTWHENDONE; CVector2D offset(distWithTarget.x, distWithTarget.y); @@ -1850,13 +1850,13 @@ CPed::ProcessObjective(void) if (weaponType != WEAPONTYPE_UNARMED && weaponType != WEAPONTYPE_BASEBALLBAT) SetCurrentWeapon(WEAPONTYPE_UNARMED); - CAnimBlendAssociation *newReloadAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_AK_RELOAD, 8.0f); + CAnimBlendAssociation *newReloadAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_AK_RELOAD, 8.0f); newReloadAssoc->flags |= ASSOC_DELETEFADEDOUT; newReloadAssoc->flags |= ASSOC_FADEOUTWHENDONE; } } else { SetSeek(m_pedInObjective, 1.0f); - CAnimBlendAssociation *walkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_WALK); + CAnimBlendAssociation *walkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WALK); if (walkAssoc) walkAssoc->speed = 1.3f; @@ -2256,26 +2256,26 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) } if (enterDoor != DOOR_FRONT_LEFT && enterDoor != DOOR_REAR_LEFT) { if (itsVan) { - enterAnim = ANIM_STD_VAN_GET_IN_REAR_RHS; + enterAnim = ANIM_VAN_GETIN; } else if (itsBus) { - enterAnim = ANIM_STD_COACH_GET_IN_RHS; + enterAnim = ANIM_COACH_IN_R; #ifdef FIX_BUGS } else if (itsLow) { - enterAnim = ANIM_STD_CAR_GET_IN_LO_RHS; + enterAnim = ANIM_CAR_GETIN_LOW_RHS; #endif } else { - enterAnim = ANIM_STD_CAR_GET_IN_RHS; + enterAnim = ANIM_CAR_GETIN_RHS; } } else if (itsVan) { - enterAnim = ANIM_STD_VAN_GET_IN_REAR_LHS; + enterAnim = ANIM_VAN_GETIN_L; } else if (itsBus) { - enterAnim = ANIM_STD_COACH_GET_IN_LHS; + enterAnim = ANIM_COACH_IN_L; #ifdef FIX_BUGS } else if (itsLow) { - enterAnim = ANIM_STD_CAR_GET_IN_LO_LHS; + enterAnim = ANIM_CAR_GETIN_LOW_LHS; #endif } else { - enterAnim = ANIM_STD_CAR_GET_IN_LHS; + enterAnim = ANIM_CAR_GETIN_LHS; } ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, enterAnim); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); @@ -2285,16 +2285,16 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) veh->AutoPilot.m_nCruiseSpeed = 0; if (enterDoor != DOOR_FRONT_LEFT && enterDoor != DOOR_REAR_LEFT) { if (itsVan) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_VAN_OPEN_DOOR_REAR_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_VAN_OPEN); } else if (itsBus) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_COACH_OPEN_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_COACH_OPEN_R); } else { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_OPEN_DOOR_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_OPEN_RHS); } } else if (itsVan) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_VAN_OPEN_DOOR_REAR_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_VAN_OPEN_L); } else if (itsBus) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_COACH_OPEN_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_COACH_OPEN_L); } else { if (ped->m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER && veh->pDriver) { @@ -2303,7 +2303,7 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) && veh->pDriver->CharCreatedBy != MISSION_CHAR && veh->pDriver->m_nPedState == PED_DRIVING) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_QUICKJACK); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_QJACK); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); veh->pDriver->SetBeingDraggedFromCar(veh, ped->m_vehDoor, true); @@ -2312,15 +2312,15 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) return; } } - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_OPEN_DOOR_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_OPEN_LHS); } ped->m_pVehicleAnim->SetFinishCallback(PedAnimDoorOpenCB, ped); } else { if (enterDoor != DOOR_FRONT_LEFT && enterDoor != DOOR_REAR_LEFT) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CARDOOR_LOCKED_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_DOORLOCKED_RHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CARDOOR_LOCKED_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_DOORLOCKED_LHS); ped->bCancelEnteringCar = true; ped->m_pVehicleAnim->SetFinishCallback(PedAnimDoorOpenCB, ped); @@ -2393,13 +2393,13 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg) if (veh->m_vecMoveSpeed.Magnitude() > 0.2f) { ped->QuitEnteringCar(); if (ped->m_vehDoor != CAR_DOOR_LF && ped->m_vehDoor != CAR_DOOR_LR) - ped->SetFall(1000, ANIM_STD_HIGHIMPACT_LEFT, false); + ped->SetFall(1000, ANIM_KO_SPIN_R, false); else - ped->SetFall(1000, ANIM_STD_HIGHIMPACT_RIGHT, false); + ped->SetFall(1000, ANIM_KO_SPIN_L, false); return; } - veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_STD_CAR_OPEN_DOOR_LHS, 1.0f); + veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_CAR_OPEN_LHS, 1.0f); if (ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_RF) isVan = false; @@ -2409,22 +2409,22 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg) if (ped->m_vehDoor != CAR_DOOR_LF && ped->m_vehDoor != CAR_DOOR_LR) { if (isVan) { - animToPlay = ANIM_STD_VAN_GET_IN_REAR_RHS; + animToPlay = ANIM_VAN_GETIN; } else if (isBus) { - animToPlay = ANIM_STD_COACH_GET_IN_RHS; + animToPlay = ANIM_COACH_IN_R; } else if (isLow) { - animToPlay = ANIM_STD_CAR_GET_IN_LO_RHS; + animToPlay = ANIM_CAR_GETIN_LOW_RHS; } else { - animToPlay = ANIM_STD_CAR_GET_IN_RHS; + animToPlay = ANIM_CAR_GETIN_RHS; } } else if (isVan) { - animToPlay = ANIM_STD_VAN_GET_IN_REAR_LHS; + animToPlay = ANIM_VAN_GETIN_L; } else if (isBus) { - animToPlay = ANIM_STD_COACH_GET_IN_LHS; + animToPlay = ANIM_COACH_IN_L; } else if (isLow) { - animToPlay = ANIM_STD_CAR_GET_IN_LO_LHS; + animToPlay = ANIM_CAR_GETIN_LOW_LHS; } else { - animToPlay = ANIM_STD_CAR_GET_IN_LHS; + animToPlay = ANIM_CAR_GETIN_LHS; } ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, animToPlay); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); @@ -2451,9 +2451,9 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg) pedToDragOut = nil; } else { if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_PULL_OUT_PED_LO_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_PULLOUT_LOW_RHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_PULL_OUT_PED_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_PULLOUT_RHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimPullPedOutCB, ped); } @@ -2468,9 +2468,9 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg) } else { // BUG: Probably we will sit on top of the passenger if his m_ped_flagF4 is true. if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_LHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); } @@ -2483,17 +2483,17 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg) pedToDragOut = nil; } else { if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_PULL_OUT_PED_LO_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_PULLOUT_LOW_LHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_PULL_OUT_PED_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_PULLOUT_LHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimPullPedOutCB, ped); } } else { if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_LHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); } @@ -2577,13 +2577,13 @@ CPed::PedAnimPullPedOutCB(CAnimBlendAssociation* animAssoc, void* arg) AnimationId animToPlay; if (ped->m_vehDoor != CAR_DOOR_LF && ped->m_vehDoor != CAR_DOOR_LR) { if (isLow) - animToPlay = ANIM_STD_CAR_GET_IN_LO_RHS; + animToPlay = ANIM_CAR_GETIN_LOW_RHS; else - animToPlay = ANIM_STD_CAR_GET_IN_RHS; + animToPlay = ANIM_CAR_GETIN_RHS; } else if (isLow) { - animToPlay = ANIM_STD_CAR_GET_IN_LO_LHS; + animToPlay = ANIM_CAR_GETIN_LOW_LHS; } else { - animToPlay = ANIM_STD_CAR_GET_IN_LHS; + animToPlay = ANIM_CAR_GETIN_LHS; } ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, animToPlay); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); @@ -2717,18 +2717,18 @@ CPed::PedAnimGetInCB(CAnimBlendAssociation *animAssoc, void *arg) AnimationId animToPlay; if (enterDoor != DOOR_FRONT_LEFT && enterDoor != DOOR_REAR_LEFT) { if (isVan) { - animToPlay = ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS; + animToPlay = ANIM_VAN_CLOSE; } else if (isLow) { - animToPlay = ANIM_STD_CAR_CLOSE_DOOR_LO_RHS; + animToPlay = ANIM_CAR_CLOSEDOOR_LOW_RHS; } else { - animToPlay = ANIM_STD_CAR_CLOSE_DOOR_RHS; + animToPlay = ANIM_CAR_CLOSEDOOR_RHS; } } else if (isVan) { - animToPlay = ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS; + animToPlay = ANIM_VAN_CLOSE_L; } else if (isLow) { - animToPlay = ANIM_STD_CAR_CLOSE_DOOR_LO_LHS; + animToPlay = ANIM_CAR_CLOSEDOOR_LOW_LHS; } else { - animToPlay = ANIM_STD_CAR_CLOSE_DOOR_LHS; + animToPlay = ANIM_CAR_CLOSEDOOR_LHS; } ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, animToPlay); ped->m_pVehicleAnim->SetFinishCallback(PedAnimDoorCloseCB, ped); @@ -2749,7 +2749,7 @@ CPed::PedAnimDoorCloseCB(CAnimBlendAssociation *animAssoc, void *arg) bool isLow = !!veh->bLowVehicle; if (!veh->bIsBus) - veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_STD_CAR_CLOSE_DOOR_LHS, 1.0f); + veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_CAR_CLOSEDOOR_LHS, 1.0f); eDoors door; switch (ped->m_vehDoor) { @@ -2796,9 +2796,9 @@ CPed::PedAnimDoorCloseCB(CAnimBlendAssociation *animAssoc, void *arg) animAssoc->blendDelta = -1000.0f; if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SHUFFLE_LO_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_LSHUFFLE_RHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SHUFFLE_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_SHUFFLE_RHS); ped->m_pVehicleAnim->SetFinishCallback(PedSetInCarCB, ped); } @@ -2902,7 +2902,7 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg) veh->m_vecMoveSpeed += CVector(0.001f, 0.001f, 0.001f); veh->m_vecTurnSpeed += CVector(0.001f, 0.001f, 0.001f); if (!veh->bIsBus) - veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_STD_GETOUT_LHS, 1.0f); + veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_CAR_GETOUT_LHS, 1.0f); /* // Duplicate and only in PC for some reason @@ -2991,16 +2991,16 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg) } else { switch (door) { case DOOR_FRONT_LEFT: - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSE_LHS); break; case DOOR_FRONT_RIGHT: - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSE_RHS); break; case DOOR_REAR_LEFT: - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSE_LHS); break; case DOOR_REAR_RIGHT: - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSE_RHS); break; default: break; @@ -3026,19 +3026,19 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) return; if (!bChangedSeat && phase != LINE_UP_TO_CAR_2) { - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SIT)) { SetPedPositionInCar(); return; } - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT_LO)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LSIT)) { SetPedPositionInCar(); return; } - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT_P)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SITP)) { SetPedPositionInCar(); return; } - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT_P_LO)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SITPLO)) { SetPedPositionInCar(); return; } @@ -3093,22 +3093,22 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) vehAnim = m_pVehicleAnim->animId; switch (vehAnim) { - case ANIM_STD_JACKEDCAR_RHS: - case ANIM_STD_JACKEDCAR_LO_RHS: - case ANIM_STD_JACKEDCAR_LHS: - case ANIM_STD_JACKEDCAR_LO_LHS: - case ANIM_STD_VAN_GET_IN_REAR_LHS: - case ANIM_STD_VAN_GET_IN_REAR_RHS: + case ANIM_CAR_JACKED_RHS: + case ANIM_CAR_LJACKED_RHS: + case ANIM_CAR_JACKED_LHS: + case ANIM_CAR_LJACKED_LHS: + case ANIM_VAN_GETIN_L: + case ANIM_VAN_GETIN: #ifdef VC_PED_PORTS multExtractedFromAnim = true; zBlend = Max(m_pVehicleAnim->currentTime / m_pVehicleAnim->hierarchy->totalLength - 0.3f, 0.0f) / (1.0f - 0.3f); // fall through #endif - case ANIM_STD_QUICKJACKED: - case ANIM_STD_GETOUT_LHS: - case ANIM_STD_GETOUT_LO_LHS: - case ANIM_STD_GETOUT_RHS: - case ANIM_STD_GETOUT_LO_RHS: + case ANIM_CAR_QJACKED: + case ANIM_CAR_GETOUT_LHS: + case ANIM_CAR_GETOUT_LOW_LHS: + case ANIM_CAR_GETOUT_RHS: + case ANIM_CAR_GETOUT_LOW_RHS: #ifdef VC_PED_PORTS if (!multExtractedFromAnim) { multExtractedFromAnim = true; @@ -3116,14 +3116,14 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) } // fall through #endif - case ANIM_STD_CRAWLOUT_LHS: - case ANIM_STD_CRAWLOUT_RHS: - case ANIM_STD_VAN_GET_OUT_REAR_LHS: - case ANIM_STD_VAN_GET_OUT_REAR_RHS: + case ANIM_CAR_CRAWLOUT_RHS: + case ANIM_CAR_CRAWLOUT_RHS2: + case ANIM_VAN_GETOUT_L: + case ANIM_VAN_GETOUT: seatPosMult = m_pVehicleAnim->currentTime / m_pVehicleAnim->hierarchy->totalLength; break; - case ANIM_STD_CAR_GET_IN_RHS: - case ANIM_STD_CAR_GET_IN_LHS: + case ANIM_CAR_GETIN_RHS: + case ANIM_CAR_GETIN_LHS: #ifdef VC_PED_PORTS if (veh && veh->IsCar() && veh->bIsBus) { multExtractedFromAnimBus = true; @@ -3131,27 +3131,27 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) } // fall through #endif - case ANIM_STD_QUICKJACK: - case ANIM_STD_CAR_GET_IN_LO_LHS: - case ANIM_STD_CAR_GET_IN_LO_RHS: - case ANIM_STD_BOAT_DRIVE: + case ANIM_CAR_QJACK: + case ANIM_CAR_GETIN_LOW_LHS: + case ANIM_CAR_GETIN_LOW_RHS: + case ANIM_DRIVE_BOAT: seatPosMult = m_pVehicleAnim->GetTimeLeft() / m_pVehicleAnim->hierarchy->totalLength; break; - case ANIM_STD_CAR_CLOSE_DOOR_LHS: - case ANIM_STD_CAR_CLOSE_DOOR_LO_LHS: - case ANIM_STD_CAR_CLOSE_DOOR_RHS: - case ANIM_STD_CAR_CLOSE_DOOR_LO_RHS: - case ANIM_STD_CAR_SHUFFLE_RHS: - case ANIM_STD_CAR_SHUFFLE_LO_RHS: + case ANIM_CAR_CLOSEDOOR_LHS: + case ANIM_CAR_CLOSEDOOR_LOW_LHS: + case ANIM_CAR_CLOSEDOOR_RHS: + case ANIM_CAR_CLOSEDOOR_LOW_RHS: + case ANIM_CAR_SHUFFLE_RHS: + case ANIM_CAR_LSHUFFLE_RHS: seatPosMult = 0.0f; break; - case ANIM_STD_CAR_CLOSE_LHS: - case ANIM_STD_CAR_CLOSE_RHS: - case ANIM_STD_COACH_OPEN_LHS: - case ANIM_STD_COACH_OPEN_RHS: - case ANIM_STD_COACH_GET_IN_LHS: - case ANIM_STD_COACH_GET_IN_RHS: - case ANIM_STD_COACH_GET_OUT_LHS: + case ANIM_CAR_CLOSE_LHS: + case ANIM_CAR_CLOSE_RHS: + case ANIM_COACH_OPEN_L: + case ANIM_COACH_OPEN_R: + case ANIM_COACH_IN_L: + case ANIM_COACH_IN_R: + case ANIM_COACH_OUT_L: seatPosMult = 1.0f; break; default: @@ -3203,10 +3203,10 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) } else { #endif currentZ = GetPosition().z; - if (m_pVehicleAnim && vehAnim != ANIM_STD_VAN_GET_IN_REAR_LHS && vehAnim != ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS && vehAnim != ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS && vehAnim != ANIM_STD_VAN_GET_IN_REAR_RHS) { + if (m_pVehicleAnim && vehAnim != ANIM_VAN_GETIN_L && vehAnim != ANIM_VAN_CLOSE_L && vehAnim != ANIM_VAN_CLOSE && vehAnim != ANIM_VAN_GETIN) { neededPos.z = autoZPos.z; m_vecMoveSpeed = CVector(0.0f, 0.0f, 0.0f); - } else if (neededPos.z < currentZ && m_pVehicleAnim && vehAnim != ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS && vehAnim != ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS) { + } else if (neededPos.z < currentZ && m_pVehicleAnim && vehAnim != ANIM_VAN_CLOSE_L && vehAnim != ANIM_VAN_CLOSE) { adjustedTimeStep = Max(m_pVehicleAnim->timeStep, 0.1f); // Smoothly change ped position @@ -3227,8 +3227,8 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) } else { #endif if (m_pVehicleAnim && - (vehAnim == ANIM_STD_CAR_GET_IN_RHS || vehAnim == ANIM_STD_CAR_GET_IN_LO_RHS || vehAnim == ANIM_STD_CAR_GET_IN_LHS || vehAnim == ANIM_STD_CAR_GET_IN_LO_LHS - || vehAnim == ANIM_STD_QUICKJACK || vehAnim == ANIM_STD_VAN_GET_IN_REAR_LHS || vehAnim == ANIM_STD_VAN_GET_IN_REAR_RHS)) { + (vehAnim == ANIM_CAR_GETIN_RHS || vehAnim == ANIM_CAR_GETIN_LOW_RHS || vehAnim == ANIM_CAR_GETIN_LHS || vehAnim == ANIM_CAR_GETIN_LOW_LHS + || vehAnim == ANIM_CAR_QJACK || vehAnim == ANIM_VAN_GETIN_L || vehAnim == ANIM_VAN_GETIN)) { adjustedTimeStep = Max(m_pVehicleAnim->timeStep, 0.1f); // Smoothly change ped position @@ -3358,9 +3358,9 @@ CPed::SetCarJack_AllClear(CVehicle *car, uint32 doorNode, uint32 doorFlag) bUsesCollision = false; if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR) - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_STD_CAR_ALIGNHI_DOOR_LHS : ANIM_STD_CAR_ALIGN_DOOR_LHS, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_CAR_ALIGNHI_LHS : ANIM_CAR_ALIGN_LHS, 4.0f); else - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_STD_CAR_ALIGNHI_DOOR_RHS : ANIM_STD_CAR_ALIGN_DOOR_RHS, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_CAR_ALIGNHI_RHS : ANIM_CAR_ALIGN_RHS, 4.0f); m_pVehicleAnim->SetFinishCallback(PedAnimAlignCB, this); } @@ -3408,14 +3408,14 @@ CPed::BeingDraggedFromCar(void) PedLineUpPhase lineUpType; if (!m_pVehicleAnim) { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 100.0f); - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 100.0f); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SIT); if (!animAssoc) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT_LO); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LSIT); if (!animAssoc) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT_P); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SITP); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT_P_LO); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SITPLO); } } if (animAssoc) @@ -3423,17 +3423,17 @@ CPed::BeingDraggedFromCar(void) if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR) { if (bWillBeQuickJacked) { - enterAnim = ANIM_STD_QUICKJACKED; + enterAnim = ANIM_CAR_QJACKED; } else if (m_pMyVehicle->bLowVehicle) { - enterAnim = ANIM_STD_JACKEDCAR_LO_LHS; + enterAnim = ANIM_CAR_LJACKED_LHS; } else { - enterAnim = ANIM_STD_JACKEDCAR_LHS; + enterAnim = ANIM_CAR_JACKED_LHS; } } else if (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR) { if (m_pMyVehicle->bLowVehicle) - enterAnim = ANIM_STD_JACKEDCAR_LO_RHS; + enterAnim = ANIM_CAR_LJACKED_RHS; else - enterAnim = ANIM_STD_JACKEDCAR_RHS; + enterAnim = ANIM_CAR_JACKED_RHS; } else dontRunAnim = true; @@ -3454,7 +3454,7 @@ CPed::BeingDraggedFromCar(void) #ifdef VC_PED_PORTS if (m_objective == OBJECTIVE_LEAVE_CAR_AND_DIE) { if (m_pMyVehicle) { - m_pMyVehicle->ProcessOpenDoor(m_vehDoor, ANIM_STD_NUM, m_pVehicleAnim->currentTime * 5.0f); + m_pMyVehicle->ProcessOpenDoor(m_vehDoor, NUM_ANIMS, m_pVehicleAnim->currentTime * 5.0f); } } #endif @@ -3534,16 +3534,16 @@ CPed::SetEnterCar_AllClear(CVehicle *car, uint32 doorNode, uint32 doorFlag) #ifdef VC_PED_PORTS // VC checks for handling flag, but we can't do that if(car->GetModelIndex() == MI_SPEEDER) - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_SIT, 100.0f); else - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_BOAT_DRIVE, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT, 100.0f); PedSetInCarCB(nil, this); bVehExitWillBeInstant = true; #else #ifndef FIX_BUGS - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_BOAT_DRIVE, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT, 100.0f); #else m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, car->GetDriverAnim(), 100.0f); #endif @@ -3555,15 +3555,15 @@ CPed::SetEnterCar_AllClear(CVehicle *car, uint32 doorNode, uint32 doorFlag) } else { if (zDiff > 4.4f) { if (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR) - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_ALIGNHI_DOOR_RHS, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ALIGNHI_RHS, 4.0f); else - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_ALIGNHI_DOOR_LHS, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ALIGNHI_LHS, 4.0f); } else { if (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR) - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_ALIGN_DOOR_RHS, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ALIGN_RHS, 4.0f); else - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_ALIGN_DOOR_LHS, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ALIGN_LHS, 4.0f); } m_pVehicleAnim->SetFinishCallback(PedAnimAlignCB, this); car->AutoPilot.m_nCruiseSpeed = 0; @@ -3588,7 +3588,7 @@ CPed::EnterCar(void) LineUpPedWithCar(LINE_UP_TO_CAR_START); } else { QuitEnteringCar(); - SetDie(ANIM_STD_KO_FRONT, 4.0f, 0.0f); + SetDie(ANIM_KO_SHOT_FRONT1, 4.0f, 0.0f); } } @@ -3601,8 +3601,8 @@ CPed::QuitEnteringCar(void) RestartNonPartialAnims(); - if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE)) - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 100.0f); + if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE)) + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 100.0f); if (veh) { if (m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER || m_nPedState == PED_CARJACK) @@ -3677,9 +3677,9 @@ CPed::SetExitBoat(CVehicle *boat) #ifndef VC_PED_PORTS SetPedState(PED_IDLE); CVector firstPos = GetPosition(); - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 100.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 100.0f); if (boat->GetModelIndex() == MI_SPEEDER && boat->IsUpsideDown()) { - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CRAWLOUT_LHS, 8.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_CRAWLOUT_RHS, 8.0f); m_pVehicleAnim->SetFinishCallback(PedSetOutCarCB, this); m_vehDoor = CAR_DOOR_RF; SetPedState(PED_EXIT_CAR); @@ -3926,7 +3926,7 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode) if (m_pVehicleAnim && m_pVehicleAnim->flags & ASSOC_PARTIAL) m_pVehicleAnim->blendDelta = -1000.0f; SetMoveState(PEDMOVE_NONE); - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 100.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 100.0f); RemoveInCarAnims(); veh->AutoPilot.m_nCruiseSpeed = 0; if (teleportNeeded) { @@ -3966,12 +3966,12 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode) switch (m_vehDoor) { case CAR_DOOR_RF: if (veh->bIsBus) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_COACH_GET_OUT_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_COACH_OUT_L); } else { if (isLow) - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LO_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LOW_RHS); else - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_RHS); if (addDoorSmoke) AddYardieDoorSmoke(veh, CAR_DOOR_RF); @@ -3979,21 +3979,21 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode) break; case CAR_DOOR_RR: if (veh->bIsVan) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_VAN_GET_OUT_REAR_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_VAN_GETOUT); } else if (isLow) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LO_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LOW_RHS); } else { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_RHS); } break; case CAR_DOOR_LF: if (veh->bIsBus) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_COACH_GET_OUT_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_COACH_OUT_L); } else { if (isLow) - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LO_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LOW_LHS); else - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LHS); if (addDoorSmoke) AddYardieDoorSmoke(veh, CAR_DOOR_LF); @@ -4001,11 +4001,11 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode) break; case CAR_DOOR_LR: if (veh->bIsVan) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_VAN_GET_OUT_REAR_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_VAN_GETOUT_L); } else if (isLow) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LO_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LOW_LHS); } else { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LHS); } break; default: @@ -4032,9 +4032,9 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode) m_pVehicleAnim->SetFinishCallback(PedAnimStepOutCarCB, this); } else { if (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CRAWLOUT_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_CRAWLOUT_RHS2); } else if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CRAWLOUT_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_CRAWLOUT_RHS); } m_pVehicleAnim->SetFinishCallback(PedSetOutCarCB, this); } @@ -4067,7 +4067,7 @@ CPed::ExitCar(void) if (m_pSeekTarget) { // Car is upside down if (m_pMyVehicle->GetUp().z > -0.8f) { - if (exitAnim == ANIM_STD_CAR_CLOSE_RHS || exitAnim == ANIM_STD_CAR_CLOSE_LHS || animTime > 0.3f) + if (exitAnim == ANIM_CAR_CLOSE_RHS || exitAnim == ANIM_CAR_CLOSE_LHS || animTime > 0.3f) LineUpPedWithCar(LINE_UP_TO_CAR_END); else LineUpPedWithCar((m_pMyVehicle->GetModelIndex() == MI_DODO ? LINE_UP_TO_CAR_END : LINE_UP_TO_CAR_START)); @@ -4086,7 +4086,7 @@ CPed::ExitCar(void) } } if (foundPed && animTime > 0.4f && foundPed->IsPedInControl()) - foundPed->SetFall(1000, ANIM_STD_HIGHIMPACT_FRONT, 1); + foundPed->SetFall(1000, ANIM_KO_SKID_FRONT, 1); } } @@ -4248,7 +4248,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) { // FIX: If there were no translations on enter anims, there were overflows all over this function. - CAnimBlendHierarchy *enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_STD_JACKEDCAR_LHS)->hierarchy; + CAnimBlendHierarchy *enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_CAR_JACKED_LHS)->hierarchy; CAnimBlendSequence *seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4260,7 +4260,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LHS)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_CAR_GETIN_LHS)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4272,7 +4272,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_LHS)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_LHS)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4284,7 +4284,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_STD_QUICKJACKED)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_CAR_QJACKED)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4296,7 +4296,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_STD_VAN_GET_IN_REAR_LHS)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_VAN_GETIN_L)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4308,7 +4308,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_STD_TRAIN_GETOUT)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_TRAIN_GETOUT)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4614,7 +4614,7 @@ CPed::SetEnterTrain(CVehicle *train, uint32 unused) m_pMyVehicle->RegisterReference((CEntity **) &m_pMyVehicle); SetPedState(PED_ENTER_TRAIN); - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_TRAIN_GETIN, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_TRAIN_GETIN, 4.0f); m_pVehicleAnim->SetFinishCallback(PedSetInTrainCB, this); bUsesCollision = false; LineUpPedWithTrain(); @@ -4688,7 +4688,7 @@ CPed::SetExitTrain(CVehicle* train) GetNearestTrainPedPosition(train, exitPos); */ SetPedState(PED_EXIT_TRAIN); - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_TRAIN_GETOUT, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_TRAIN_GETOUT, 4.0f); m_pVehicleAnim->SetFinishCallback(PedSetOutTrainCB, this); bUsesCollision = false; LineUpPedWithTrain(); @@ -5060,16 +5060,16 @@ CPed::SetDuck(uint32 time) return; if (bCrouchWhenShooting && (m_nPedState == PED_ATTACK || m_nPedState == PED_AIM_GUN)) { - CAnimBlendAssociation *duckAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_LOW); + CAnimBlendAssociation *duckAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_LOW); if (!duckAssoc || duckAssoc->blendDelta < 0.0f) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_DUCK_LOW, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DUCK_LOW, 4.0f); bIsDucking = true; m_duckTimer = CTimer::GetTimeInMilliseconds() + time; } } else { - CAnimBlendAssociation *duckAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_DOWN); + CAnimBlendAssociation *duckAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_DOWN); if (!duckAssoc || duckAssoc->blendDelta < 0.0f) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_DUCK_DOWN, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DUCK_DOWN, 4.0f); bIsDucking = true; m_duckTimer = CTimer::GetTimeInMilliseconds() + time; } @@ -5086,9 +5086,9 @@ CPed::Duck(void) void CPed::ClearDuck(void) { - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_DOWN); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_DOWN); if (!animAssoc) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_LOW); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_LOW); if (!animAssoc) { bIsDucking = false; @@ -5102,9 +5102,9 @@ CPed::ClearDuck(void) if (m_nPedState != PED_ATTACK && m_nPedState != PED_AIM_GUN) return; - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RBLOCK_SHOOT); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RBLOCK_CSHOOT); if (!animAssoc || animAssoc->blendDelta < 0.0f) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_RBLOCK_SHOOT, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_RBLOCK_CSHOOT, 4.0f); } } @@ -5154,9 +5154,9 @@ CPed::PedAnimDoorCloseRollingCB(CAnimBlendAssociation* animAssoc, void* arg) animAssoc->blendDelta = -1000.0f; if (veh->bLowVehicle) { - veh->ProcessOpenDoor(CAR_DOOR_LF, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS, 1.0f); + veh->ProcessOpenDoor(CAR_DOOR_LF, ANIM_CAR_ROLLDOOR_LOW, 1.0f); } else { - veh->ProcessOpenDoor(CAR_DOOR_LF, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS, 1.0f); + veh->ProcessOpenDoor(CAR_DOOR_LF, ANIM_CAR_ROLLDOOR, 1.0f); } veh->m_nGettingOutFlags &= ~CAR_DOOR_FLAG_LF; @@ -5235,40 +5235,40 @@ CPed::RemoveInCarAnims(void) CAnimBlendAssociation *animAssoc; if (m_pMyVehicle && m_pMyVehicle->bLowVehicle) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_LEFT_LO); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_LOW_L); if (animAssoc) animAssoc->blendDelta = -1000.0f; - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_RIGHT_LO); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_LOW_R); if (animAssoc) animAssoc->blendDelta = -1000.0f; - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVEBY_LEFT); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_L); if (animAssoc) animAssoc->blendDelta = -1000.0f; - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVEBY_RIGHT); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_R); if (animAssoc) animAssoc->blendDelta = -1000.0f; } else { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_LEFT); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_L); if (animAssoc) animAssoc->blendDelta = -1000.0f; - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_RIGHT); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_R); if (animAssoc) animAssoc->blendDelta = -1000.0f; - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVEBY_LEFT); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_L); if (animAssoc) animAssoc->blendDelta = -1000.0f; - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVEBY_RIGHT); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_R); if (animAssoc) animAssoc->blendDelta = -1000.0f; } #ifdef VC_PED_PORTS - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_BOAT_DRIVE); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_BOAT); if (animAssoc) animAssoc->blendDelta = -1000.0f; #endif - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_LOOKBEHIND); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LB); if (animAssoc) animAssoc->blendDelta = -1000.0f; } diff --git a/src/peds/PedFight.cpp b/src/peds/PedFight.cpp index c03d492a..8625f23e 100644 --- a/src/peds/PedFight.cpp +++ b/src/peds/PedFight.cpp @@ -29,30 +29,30 @@ RpClump *flyingClumpTemp; // This is beta fistfite.dat array. Not used anymore since they're being fetched from fistfite.dat. FightMove tFightMoves[NUM_FIGHTMOVES] = { - {ANIM_STD_NUM, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_PUNCH, 0.2f, 8.0f / 30.0f, 0.0f, 0.3f, HITLEVEL_HIGH, 1, 0}, - {ANIM_STD_FIGHT_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_FIGHT_SHUFFLE_F, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_FIGHT_KNEE, 4.0f / 30.0f, 0.2f, 0.0f, 0.6f, HITLEVEL_LOW, 2, 0}, - {ANIM_STD_FIGHT_HEAD, 4.0f / 30.0f, 0.2f, 0.0f, 0.7f, HITLEVEL_HIGH, 3, 0}, - {ANIM_STD_FIGHT_PUNCH, 4.0f / 30.0f, 7.0f / 30.0f, 10.0f / 30.0f, 0.4f, HITLEVEL_HIGH, 1, 0}, - {ANIM_STD_FIGHT_LHOOK, 8.0f / 30.0f, 10.0f / 30.0f, 0.0f, 0.4f, HITLEVEL_HIGH, 3, 0}, - {ANIM_STD_FIGHT_KICK, 8.0f / 30.0f, 10.0f / 30.0f, 0.0f, 0.5, HITLEVEL_MEDIUM, 2, 0}, - {ANIM_STD_FIGHT_LONGKICK, 8.0f / 30.0f, 10.0f / 30.0f, 0.0f, 0.5, HITLEVEL_MEDIUM, 4, 0}, - {ANIM_STD_FIGHT_ROUNDHOUSE, 8.0f / 30.0f, 10.0f / 30.0f, 0.0f, 0.6f, HITLEVEL_MEDIUM, 4, 0}, - {ANIM_STD_FIGHT_BODYBLOW, 5.0f / 30.0f, 7.0f / 30.0f, 0.0f, 0.35f, HITLEVEL_LOW, 2, 0}, - {ANIM_STD_KICKGROUND, 10.0f / 30.0f, 14.0f / 30.0f, 0.0f, 0.4f, HITLEVEL_GROUND, 1, 0}, - {ANIM_STD_HIT_FRONT, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_HIT_BACK, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_HIT_RIGHT, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_HIT_LEFT, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_HIT_BODYBLOW, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_HIT_CHEST, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_HIT_HEAD, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_HIT_WALK, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_HIT_FLOOR, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_HIT_BEHIND, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, - {ANIM_STD_FIGHT_2IDLE, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {NUM_ANIMS, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_PUNCH_R, 0.2f, 8.0f / 30.0f, 0.0f, 0.3f, HITLEVEL_HIGH, 1, 0}, + {ANIM_FIGHT_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_FIGHT_SH_F, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_FIGHT_KNEE, 4.0f / 30.0f, 0.2f, 0.0f, 0.6f, HITLEVEL_LOW, 2, 0}, + {ANIM_FIGHT_HEAD, 4.0f / 30.0f, 0.2f, 0.0f, 0.7f, HITLEVEL_HIGH, 3, 0}, + {ANIM_FIGHT_PUNCH, 4.0f / 30.0f, 7.0f / 30.0f, 10.0f / 30.0f, 0.4f, HITLEVEL_HIGH, 1, 0}, + {ANIM_FIGHT_LHOOK, 8.0f / 30.0f, 10.0f / 30.0f, 0.0f, 0.4f, HITLEVEL_HIGH, 3, 0}, + {ANIM_FIGHT_KICK, 8.0f / 30.0f, 10.0f / 30.0f, 0.0f, 0.5, HITLEVEL_MEDIUM, 2, 0}, + {ANIM_FIGHT_LONGKICK, 8.0f / 30.0f, 10.0f / 30.0f, 0.0f, 0.5, HITLEVEL_MEDIUM, 4, 0}, + {ANIM_FIGHT_ROUNDHOUSE, 8.0f / 30.0f, 10.0f / 30.0f, 0.0f, 0.6f, HITLEVEL_MEDIUM, 4, 0}, + {ANIM_FIGHT_BODYBLOW, 5.0f / 30.0f, 7.0f / 30.0f, 0.0f, 0.35f, HITLEVEL_LOW, 2, 0}, + {ANIM_KICK_FLOOR, 10.0f / 30.0f, 14.0f / 30.0f, 0.0f, 0.4f, HITLEVEL_GROUND, 1, 0}, + {ANIM_HIT_FRONT, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_HIT_BACK, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_HIT_RIGHT, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_HIT_LEFT, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_HIT_BODYBLOW, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_HIT_CHEST, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_HIT_HEAD, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_HIT_WALK, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_FLOOR_HIT, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_HIT_BEHIND, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, + {ANIM_FIGHT2_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, HITLEVEL_NULL, 0, 0}, }; static PedOnGroundState @@ -247,7 +247,7 @@ CPed::SetAttack(CEntity *victim) if (victim && victim->IsPed()) victimPed = (CPed*)victim; - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_BIGGUN); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_ARMED); if (animAssoc) { animAssoc->blendDelta = -1000.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -256,12 +256,12 @@ CPed::SetAttack(CEntity *victim) if (m_attackTimer > CTimer::GetTimeInMilliseconds() || m_nWaitState == WAITSTATE_SURPRISE) return; - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HGUN_RELOAD)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_HGUN_RELOAD)) { bIsAttacking = false; return; } - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_AK_RELOAD)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_AK_RELOAD)) { if (!IsPlayer() || m_nPedState != PED_ATTACK || ((CPlayerPed*)this)->m_bHaveTargetSelected) bIsAttacking = false; else @@ -351,7 +351,7 @@ CPed::SetAttack(CEntity *victim) SetPedState(PED_ATTACK); SetMoveState(PEDMOVE_NONE); if (bCrouchWhenShooting) { - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_RBLOCK_SHOOT, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_RBLOCK_CSHOOT, 4.0f); } else { float animDelta = 8.0f; if (curWeapon->m_eWeaponFire == WEAPON_FIRE_MELEE) @@ -418,7 +418,7 @@ CPed::ClearAttackByRemovingAnim(void) weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), weapon->m_Anim2ToPlay); if (!weaponAssoc && weapon->IsFlagSet(WEAPONFLAG_THROW)) - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_THROW_UNDER); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_THROWU); if (!weaponAssoc) { ClearAttack(); @@ -440,27 +440,27 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) if (attackAssoc) { switch (attackAssoc->animId) { - case ANIM_STD_START_THROW: + case ANIM_WEAPON_START_THROW: // what?! if ((!ped->IsPlayer() || ((CPlayerPed*)ped)->m_bHaveTargetSelected) && ped->IsPlayer()) { attackAssoc->blendDelta = -1000.0f; - newAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_THROW_UNDER); + newAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_WEAPON_THROWU); } else { attackAssoc->blendDelta = -1000.0f; - newAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_WEAPON_THROW); + newAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_WEAPON_THROW); } newAnim->SetFinishCallback(FinishedAttackCB, ped); return; - case ANIM_STD_PARTIAL_PUNCH: + case ANIM_FIGHT_PPUNCH: attackAssoc->blendDelta = -8.0f; attackAssoc->flags |= ASSOC_DELETEFADEDOUT; ped->ClearAttack(); return; - case ANIM_STD_WEAPON_THROW: - case ANIM_STD_THROW_UNDER: + case ANIM_WEAPON_THROW: + case ANIM_WEAPON_THROWU: if (ped->GetWeapon()->m_nAmmoTotal > 0) { currentWeapon = CWeaponInfo::GetWeaponInfo(ped->GetWeapon()->m_eWeaponType); ped->AddWeaponModel(currentWeapon->m_nModelId); @@ -535,16 +535,16 @@ CPed::Attack(void) weaponAnimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ourWeapon->m_AnimToPlay); attackShouldContinue = bIsAttacking; reloadAnimAssoc = nil; - reloadAnim = ANIM_STD_NUM; + reloadAnim = NUM_ANIMS; delayBetweenAnimAndFire = ourWeapon->m_fAnimFrameFire; weaponAnim = ourWeapon->m_AnimToPlay; - if (weaponAnim == ANIM_STD_WEAPON_HGUN_BODY) - reloadAnim = ANIM_STD_HGUN_RELOAD; - else if (weaponAnim == ANIM_STD_WEAPON_AK_BODY) - reloadAnim = ANIM_STD_AK_RELOAD; + if (weaponAnim == ANIM_WEAPON_HGUN_BODY) + reloadAnim = ANIM_HGUN_RELOAD; + else if (weaponAnim == ANIM_WEAPON_AK_BODY) + reloadAnim = ANIM_AK_RELOAD; - if (reloadAnim != ANIM_STD_NUM) + if (reloadAnim != NUM_ANIMS) reloadAnimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), reloadAnim); if (bIsDucking) @@ -566,7 +566,7 @@ CPed::Attack(void) // Long throw granade, molotov if (!weaponAnimAssoc && ourWeapon->IsFlagSet(WEAPONFLAG_THROW)) { - weaponAnimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_THROW_UNDER); + weaponAnimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_THROWU); delayBetweenAnimAndFire = 0.2f; } @@ -619,7 +619,7 @@ CPed::Attack(void) firePos = GetMatrix() * firePos; } else if (GetWeapon()->m_eWeaponType != WEAPONTYPE_UNARMED) { - TransformToNode(firePos, weaponAnimAssoc->animId == ANIM_STD_KICKGROUND ? PED_FOOTR : PED_HANDR); + TransformToNode(firePos, weaponAnimAssoc->animId == ANIM_KICK_FLOOR ? PED_FOOTR : PED_HANDR); } else { firePos = GetMatrix() * firePos; } @@ -636,7 +636,7 @@ CPed::Attack(void) if (GetWeapon()->m_eWeaponState != WEAPONSTATE_MELEE_MADECONTACT) { // If reloading just began, start the animation // Last condition will always return true, even IDA hides it - if (GetWeapon()->m_eWeaponState == WEAPONSTATE_RELOADING && reloadAnim != ANIM_STD_NUM /* && !reloadAnimAssoc*/) { + if (GetWeapon()->m_eWeaponState == WEAPONSTATE_RELOADING && reloadAnim != NUM_ANIMS /* && !reloadAnimAssoc*/) { CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, reloadAnim, 8.0f); ClearLookFlag(); ClearAimFlag(); @@ -646,9 +646,9 @@ CPed::Attack(void) return; } } else { - if (weaponAnimAssoc->animId == ANIM_STD_WEAPON_BAT_V || weaponAnimAssoc->animId == ANIM_STD_WEAPON_BAT_H) { + if (weaponAnimAssoc->animId == ANIM_WEAPON_BAT_V || weaponAnimAssoc->animId == ANIM_WEAPON_BAT_H) { DMAudio.PlayOneShot(m_audioEntityId, SOUND_WEAPON_BAT_ATTACK, 1.0f); - } else if (weaponAnimAssoc->animId == ANIM_STD_PARTIAL_PUNCH) { + } else if (weaponAnimAssoc->animId == ANIM_FIGHT_PPUNCH) { DMAudio.PlayOneShot(m_audioEntityId, SOUND_FIGHT_PUNCH_39, 0.0f); } @@ -712,7 +712,7 @@ CPed::Attack(void) weaponAnim = weaponAnimAssoc->animId; if (ourWeapon->m_eWeaponFire != WEAPON_FIRE_MELEE || CheckForPedsOnGroundToAttack(this, nil) < PED_ON_THE_FLOOR) { - if (weaponAnim != ourWeapon->m_Anim2ToPlay || weaponAnim == ANIM_STD_RBLOCK_SHOOT) { + if (weaponAnim != ourWeapon->m_Anim2ToPlay || weaponAnim == ANIM_RBLOCK_CSHOOT) { weaponAnimAssoc->Start(ourWeapon->m_fAnimLoopStart); } else { CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ourWeapon->m_AnimToPlay, 8.0f); @@ -785,16 +785,16 @@ CPed::StartFightAttack(uint8 buttonPressure) SetPedState(PED_FIGHT); m_fightButtonPressure = 0; RpAnimBlendClumpRemoveAssociations(GetClump(), ASSOC_REPEAT); - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_STARTWALK); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WALK_START); if (animAssoc) { animAssoc->flags |= ASSOC_DELETEFADEDOUT; animAssoc->blendDelta = -1000.0f; } - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP1); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP2); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP_R); if (animAssoc) { animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -805,7 +805,7 @@ CPed::StartFightAttack(uint8 buttonPressure) SetMoveState(PEDMOVE_NONE); m_nStoredMoveState = PEDMOVE_NONE; - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FIGHT_IDLE)->blendAmount = 1.0f; + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_IDLE)->blendAmount = 1.0f; CPed *pedOnGround = nil; if (IsPlayer() && CheckForPedsOnGroundToAttack(this, &pedOnGround) > PED_IN_FRONT_OF_ATTACKER) { @@ -845,7 +845,7 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) if (hitLevel == HITLEVEL_GROUND) { CAnimBlendAssociation *floorHitAssoc; if (RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL)) { - floorHitAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR_FRONT, 8.0f); + floorHitAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT_F, 8.0f); } else { floorHitAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, tFightMoves[FIGHTMOVE_HITONFLOOR].animId, 8.0f); } @@ -867,8 +867,8 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) } else if (m_nPedState == PED_FALL) { if (hitLevel == HITLEVEL_GROUND && !IsPedHeadAbovePos(-0.3f)) { CAnimBlendAssociation *floorHitAssoc = RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL) ? - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR_FRONT, 8.0f) : - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR, 8.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT_F, 8.0f) : + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT, 8.0f); if (floorHitAssoc) { floorHitAssoc->flags &= ~ASSOC_FADEOUTWHENDONE; floorHitAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -887,16 +887,16 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) AnimationId shotAnim; switch (direction) { case 1: - shotAnim = ANIM_STD_HITBYGUN_LEFT; + shotAnim = ANIM_SHOT_LEFT_PARTIAL; break; case 2: - shotAnim = ANIM_STD_HITBYGUN_BACK; + shotAnim = ANIM_SHOT_BACK_PARTIAL; break; case 3: - shotAnim = ANIM_STD_HITBYGUN_RIGHT; + shotAnim = ANIM_SHOT_RIGHT_PARTIAL; break; default: - shotAnim = ANIM_STD_HITBYGUN_FRONT; + shotAnim = ANIM_SHOT_FRONT_PARTIAL; break; } CAnimBlendAssociation *shotAssoc = RpAnimBlendClumpGetAssociation(GetClump(), shotAnim); @@ -914,16 +914,16 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) #ifndef VC_PED_PORTS switch (direction) { case 1: - SetFall(500, ANIM_STD_HIGHIMPACT_LEFT, false); + SetFall(500, ANIM_KO_SPIN_R, false); break; case 2: - SetFall(500, ANIM_STD_HIGHIMPACT_BACK, false); + SetFall(500, ANIM_KO_SKID_BACK, false); break; case 3: - SetFall(500, ANIM_STD_HIGHIMPACT_RIGHT, false); + SetFall(500, ANIM_KO_SPIN_L, false); break; default: - SetFall(500, ANIM_STD_KO_SHOT_STOMACH, false); + SetFall(500, ANIM_KO_SHOT_STOM, false); break; } #else @@ -931,30 +931,30 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) AnimationId hitAnim; switch (direction) { case 1: - hitAnim = ANIM_STD_HIGHIMPACT_LEFT; + hitAnim = ANIM_KO_SPIN_R; break; case 2: if (CGeneral::GetRandomNumber() & 1) { fall = false; - hitAnim = ANIM_STD_HIT_BACK; + hitAnim = ANIM_HIT_BACK; } else { - hitAnim = ANIM_STD_HIGHIMPACT_BACK; + hitAnim = ANIM_KO_SKID_BACK; } break; case 3: - hitAnim = ANIM_STD_HIGHIMPACT_RIGHT; + hitAnim = ANIM_KO_SPIN_L; break; default: if (hitLevel == HITLEVEL_LOW) { - hitAnim = ANIM_STD_KO_SHOT_STOMACH; + hitAnim = ANIM_KO_SHOT_STOM; } else if (CGeneral::GetRandomNumber() & 1) { fall = false; - hitAnim = ANIM_STD_HIT_WALK; + hitAnim = ANIM_HIT_WALK; } else if (CGeneral::GetRandomNumber() & 1) { fall = false; - hitAnim = ANIM_STD_HIT_HEAD; + hitAnim = ANIM_HIT_HEAD; } else { - hitAnim = ANIM_STD_KO_SHOT_FACE; + hitAnim = ANIM_KO_SHOT_FACE; } break; } @@ -981,15 +981,15 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) case HITLEVEL_LOW: #ifndef VC_PED_PORTS if (direction == 2) { - SetFall(1000, ANIM_STD_HIGHIMPACT_BACK, false); + SetFall(1000, ANIM_KO_SKID_BACK, false); return; } #else if (direction == 2 && (!IsPlayer() || ((CGeneral::GetRandomNumber() & 1) && m_fHealth < 30.0f))) { - SetFall(1000, ANIM_STD_HIGHIMPACT_BACK, false); + SetFall(1000, ANIM_KO_SKID_BACK, false); return; } else if (direction != 2 && !IsPlayer() && (CGeneral::GetRandomNumber() & 1) && m_fHealth < 30.0f) { - SetFall(1000, ANIM_STD_KO_SHOT_STOMACH, false); + SetFall(1000, ANIM_KO_SHOT_STOM, false); return; } #endif @@ -1061,14 +1061,14 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) SetPedState(PED_FIGHT); m_fightButtonPressure = 0; RpAnimBlendClumpRemoveAssociations(GetClump(), ASSOC_REPEAT); - CAnimBlendAssociation *walkStartAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_STARTWALK); + CAnimBlendAssociation *walkStartAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WALK_START); if (walkStartAssoc) { walkStartAssoc->flags |= ASSOC_DELETEFADEDOUT; walkStartAssoc->blendDelta = -1000.0f; } - CAnimBlendAssociation *walkStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP1); + CAnimBlendAssociation *walkStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP); if (!walkStopAssoc) - walkStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP2); + walkStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP_R); if (walkStopAssoc) { walkStopAssoc->flags |= ASSOC_DELETEFADEDOUT; walkStopAssoc->blendDelta = -1000.0f; @@ -1076,7 +1076,7 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) } SetMoveState(PEDMOVE_NONE); m_nStoredMoveState = PEDMOVE_NONE; - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FIGHT_IDLE)->blendAmount = 1.0f; + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_IDLE)->blendAmount = 1.0f; CAnimBlendAssociation *moveAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, tFightMoves[m_curFightMove].animId, 8.0f); moveAssoc->SetFinishCallback(FinishFightMoveCB, this); m_fightState = FIGHTSTATE_NO_MOVE; @@ -1445,22 +1445,22 @@ CPed::EndFight(uint8 endType) m_curFightMove = FIGHTMOVE_NULL; RestorePreviousState(); - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FIGHT_IDLE); if (animAssoc) animAssoc->flags |= ASSOC_DELETEFADEDOUT; switch (endType) { case ENDFIGHT_NORMAL: - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 8.0f); - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FIGHT_2IDLE, 8.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 8.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT2_IDLE, 8.0f); break; case ENDFIGHT_WITH_A_STEP: - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 1.0f); - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_STARTWALK, 8.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 1.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_WALK_START, 8.0f); break; case ENDFIGHT_FAST: - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 8.0f); - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FIGHT_2IDLE, 8.0f)->speed = 2.0f; + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 8.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT2_IDLE, 8.0f)->speed = 2.0f; break; default: break; @@ -1656,7 +1656,7 @@ CPed::FightStrike(CVector &touchedNodePos) || GetWeapon()->m_eWeaponType != WEAPONTYPE_UNARMED && IsPlayer() || nearPed->m_pedStats->m_flags & STAT_ONE_HIT_KNOCKDOWN)) { - nearPed->SetFall(0, (AnimationId)(direction + ANIM_STD_HIGHIMPACT_FRONT), 0); + nearPed->SetFall(0, (AnimationId)(direction + ANIM_KO_SKID_FRONT), 0); if (nearPed->m_nPedState == PED_FALL) nearPed->bIsStanding = false; } @@ -1778,7 +1778,7 @@ CPed::LoadFightData(void) animAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, animName); tFightMoves[moveId].animId = (AnimationId)animAssoc->animId; } else { - tFightMoves[moveId].animId = ANIM_STD_WALK; + tFightMoves[moveId].animId = ANIM_WALK; } moveId++; } @@ -1802,7 +1802,7 @@ CPed::SetInvestigateEvent(eEventType event, CVector2D pos, float distanceToCount if (m_eventType >= EVENT_ICECREAM) m_lookTimer = 0; else - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HANDSCOWER, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_HANDSCOWER, 4.0f); } @@ -1842,7 +1842,7 @@ CPed::InvestigateEvent(void) case EVENT_HIT_AND_RUN_COP: if (CTimer::GetTimeInMilliseconds() > m_lookTimer) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROADCROSS); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ROAD_CROSS); if (animAssoc) { animAssoc->blendDelta = -8.0f; @@ -1854,7 +1854,7 @@ CPed::InvestigateEvent(void) } else if (CGeneral::GetRandomNumber() & 3) { ClearLookFlag(); - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ROADCROSS, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_ROAD_CROSS, 4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(1000, 2500)); Say(SOUND_PED_CHAT_EVENT); @@ -1868,16 +1868,16 @@ CPed::InvestigateEvent(void) case EVENT_EXPLOSION: if (bHasACamera && CTimer::GetTimeInMilliseconds() > m_lookTimer) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_CAM); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_CAM); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); - if (animAssoc && animAssoc->animId == ANIM_STD_IDLE_CAM) { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); + if (animAssoc && animAssoc->animId == ANIM_IDLE_CAM) { + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(1000, 2500)); } else if (CGeneral::GetRandomNumber() & 3) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_CAM, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_CAM, 4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(2500, 5000)); Say(SOUND_PED_CHAT_EVENT); @@ -1886,30 +1886,30 @@ CPed::InvestigateEvent(void) } } else if (CTimer::GetTimeInMilliseconds() > m_lookTimer) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_HBHB); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_HBHB); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_XPRESS_SCRATCH); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_XPRESS_SCRATCH); - if (animAssoc && animAssoc->animId == ANIM_STD_IDLE) { + if (animAssoc && animAssoc->animId == ANIM_IDLE_STANCE) { if (CGeneral::GetRandomNumber() & 1) - animToPlay = ANIM_STD_IDLE_HBHB; + animToPlay = ANIM_IDLE_HBHB; else - animToPlay = ANIM_STD_XPRESS_SCRATCH; + animToPlay = ANIM_XPRESS_SCRATCH; CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, animToPlay, 4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(1500, 4000)); - } else if (animAssoc && animAssoc->animId == ANIM_STD_IDLE_HBHB) { + } else if (animAssoc && animAssoc->animId == ANIM_IDLE_HBHB) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; if (CGeneral::GetRandomNumber() & 1) { - animToPlay = ANIM_STD_IDLE; + animToPlay = ANIM_IDLE_STANCE; animGroup = m_animGroup; } else { - animToPlay = ANIM_STD_XPRESS_SCRATCH; + animToPlay = ANIM_XPRESS_SCRATCH; animGroup = ASSOCGRP_STD; } @@ -1918,10 +1918,10 @@ CPed::InvestigateEvent(void) } else { if (CGeneral::GetRandomNumber() & 1) { - animToPlay = ANIM_STD_IDLE; + animToPlay = ANIM_IDLE_STANCE; animGroup = m_animGroup; } else { - animToPlay = ANIM_STD_IDLE_HBHB; + animToPlay = ANIM_IDLE_HBHB; animGroup = ASSOCGRP_STD; } @@ -1938,26 +1938,26 @@ CPed::InvestigateEvent(void) if (CTimer::GetTimeInMilliseconds() > m_lookTimer) { if (m_lookTimer) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROADCROSS); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ROAD_CROSS); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; if (m_eventType == EVENT_ICECREAM) - animToPlay = ANIM_STD_CHAT; + animToPlay = ANIM_IDLE_CHAT; else - animToPlay = ANIM_STD_XPRESS_SCRATCH; + animToPlay = ANIM_XPRESS_SCRATCH; CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, animToPlay,4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(2000, 5000)); } else { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CHAT); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_CHAT); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; ClearInvestigateEvent(); } else { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_XPRESS_SCRATCH); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_XPRESS_SCRATCH); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -1966,7 +1966,7 @@ CPed::InvestigateEvent(void) } } } else { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ROADCROSS, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_ROAD_CROSS, 4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(1000, 2500)); } } @@ -2009,13 +2009,13 @@ CPed::InvestigateEvent(void) void CPed::ClearInvestigateEvent(void) { - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROADCROSS); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ROAD_CROSS); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_XPRESS_SCRATCH); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_XPRESS_SCRATCH); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_HBHB); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_HBHB); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CHAT); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_CHAT); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -2037,7 +2037,7 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi CPlayerPed *player = FindPlayerPed(); float dieDelta = 4.0f; float dieSpeed = 0.0f; - AnimationId dieAnim = ANIM_STD_KO_FRONT; + AnimationId dieAnim = ANIM_KO_SHOT_FRONT1; bool headShot = false; bool willLinger = false; int random; @@ -2069,14 +2069,14 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (m_nPedState == PED_FALL || m_nPedState == PED_GETUP) { if (!IsPedHeadAbovePos(-0.3f)) { if (RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL)) - dieAnim = ANIM_STD_HIT_FLOOR_FRONT; + dieAnim = ANIM_FLOOR_HIT_F; else - dieAnim = ANIM_STD_HIT_FLOOR; + dieAnim = ANIM_FLOOR_HIT; dieDelta *= 2.0f; dieSpeed = 0.5f; detectDieAnim = false; } else if (m_nPedState == PED_FALL) { - dieAnim = ANIM_STD_NUM; + dieAnim = NUM_ANIMS; detectDieAnim = false; } } @@ -2088,28 +2088,28 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (m_nPedState == PED_FALL) { if (IsPedHeadAbovePos(-0.3f)) { - dieAnim = ANIM_STD_NUM; + dieAnim = NUM_ANIMS; } else { if (RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL)) - dieAnim = ANIM_STD_HIT_FLOOR_FRONT; + dieAnim = ANIM_FLOOR_HIT_F; else - dieAnim = ANIM_STD_HIT_FLOOR; + dieAnim = ANIM_FLOOR_HIT; dieDelta = dieDelta * 2.0f; dieSpeed = 0.5f; } } else { switch (direction) { case 0: - dieAnim = ANIM_STD_HIGHIMPACT_FRONT; + dieAnim = ANIM_KO_SKID_FRONT; break; case 1: - dieAnim = ANIM_STD_HIGHIMPACT_LEFT; + dieAnim = ANIM_KO_SPIN_R; break; case 2: - dieAnim = ANIM_STD_HIGHIMPACT_BACK; + dieAnim = ANIM_KO_SKID_BACK; break; case 3: - dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; + dieAnim = ANIM_KO_SPIN_L; break; default: break; @@ -2122,28 +2122,28 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (m_nPedState == PED_FALL) { if (IsPedHeadAbovePos(-0.3f)) { - dieAnim = ANIM_STD_NUM; + dieAnim = NUM_ANIMS; } else { if (RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL)) - dieAnim = ANIM_STD_HIT_FLOOR_FRONT; + dieAnim = ANIM_FLOOR_HIT_F; else - dieAnim = ANIM_STD_HIT_FLOOR; + dieAnim = ANIM_FLOOR_HIT; dieDelta = dieDelta * 2.0f; dieSpeed = 0.5f; } } else { switch (direction) { case 0: - dieAnim = ANIM_STD_HIGHIMPACT_FRONT; + dieAnim = ANIM_KO_SKID_FRONT; break; case 1: - dieAnim = ANIM_STD_HIGHIMPACT_LEFT; + dieAnim = ANIM_KO_SPIN_R; break; case 2: - dieAnim = ANIM_STD_HIGHIMPACT_BACK; + dieAnim = ANIM_KO_SKID_BACK; break; case 3: - dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; + dieAnim = ANIM_KO_SPIN_L; break; default: break; @@ -2183,56 +2183,56 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (method == WEAPONTYPE_SHOTGUN) { switch (direction) { case 0: - dieAnim = ANIM_STD_HIGHIMPACT_FRONT; + dieAnim = ANIM_KO_SKID_FRONT; break; case 1: - dieAnim = ANIM_STD_HIGHIMPACT_LEFT; + dieAnim = ANIM_KO_SPIN_R; break; case 2: - dieAnim = ANIM_STD_HIGHIMPACT_BACK; + dieAnim = ANIM_KO_SKID_BACK; break; case 3: - dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; + dieAnim = ANIM_KO_SPIN_L; break; default: break; } } else - dieAnim = ANIM_STD_KO_FRONT; + dieAnim = ANIM_KO_SHOT_FRONT1; willLinger = false; } else { switch (pedPiece) { case PEDPIECE_TORSO: willLinger = false; - dieAnim = ANIM_STD_KO_FRONT; + dieAnim = ANIM_KO_SHOT_FRONT1; break; case PEDPIECE_MID: willLinger = false; - dieAnim = ANIM_STD_KO_SHOT_STOMACH; + dieAnim = ANIM_KO_SHOT_STOM; break; case PEDPIECE_LEFTARM: - dieAnim = ANIM_STD_KO_SHOT_ARM_L; + dieAnim = ANIM_KO_SHOT_ARML; RemoveBodyPart(PED_UPPERARML, direction); willLinger = true; break; case PEDPIECE_RIGHTARM: - dieAnim = ANIM_STD_KO_SHOT_ARM_R; + dieAnim = ANIM_KO_SHOT_ARMR; RemoveBodyPart(PED_UPPERARMR, direction); willLinger = true; break; case PEDPIECE_LEFTLEG: - dieAnim = ANIM_STD_KO_SHOT_LEG_L; + dieAnim = ANIM_KO_SHOT_LEGL; RemoveBodyPart(PED_UPPERLEGL, direction); willLinger = true; break; case PEDPIECE_RIGHTLEG: - dieAnim = ANIM_STD_KO_SHOT_LEG_R; + dieAnim = ANIM_KO_SHOT_LEGR; RemoveBodyPart(PED_UPPERLEGR, direction); willLinger = true; break; case PEDPIECE_HEAD: - dieAnim = ANIM_STD_KO_SHOT_FACE; + dieAnim = ANIM_KO_SHOT_FACE; RemoveBodyPart(PED_HEAD, direction); headShot = true; willLinger = true; @@ -2272,16 +2272,16 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi switch (direction) { case 0: - dieAnim = ANIM_STD_HIGHIMPACT_FRONT; + dieAnim = ANIM_KO_SKID_FRONT; break; case 1: - dieAnim = ANIM_STD_HIGHIMPACT_LEFT; + dieAnim = ANIM_KO_SPIN_R; break; case 2: - dieAnim = ANIM_STD_HIGHIMPACT_BACK; + dieAnim = ANIM_KO_SKID_BACK; break; case 3: - dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; + dieAnim = ANIM_KO_SPIN_L; break; default: break; @@ -2291,7 +2291,7 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (bFireProof) return false; - dieAnim = ANIM_STD_KO_FRONT; + dieAnim = ANIM_KO_SHOT_FRONT1; break; case WEAPONTYPE_RAMMEDBYCAR: case WEAPONTYPE_RUNOVERBYCAR: @@ -2306,36 +2306,36 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (pedPiece == PEDPIECE_RIGHTARM && random > 1 || pedPiece == PEDPIECE_MID && random == 2) - dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; + dieAnim = ANIM_KO_SPIN_L; else - dieAnim = ANIM_STD_HIGHIMPACT_FRONT; + dieAnim = ANIM_KO_SKID_FRONT; } else - dieAnim = ANIM_STD_HIGHIMPACT_LEFT; + dieAnim = ANIM_KO_SPIN_R; break; case 1: if (m_nPedState == PED_DIVE_AWAY) - dieAnim = ANIM_STD_SPINFORWARD_LEFT; + dieAnim = ANIM_KD_LEFT; else - dieAnim = ANIM_STD_HIGHIMPACT_LEFT; + dieAnim = ANIM_KO_SPIN_R; break; case 2: if ((pedPiece != PEDPIECE_LEFTARM || random <= 1) && (pedPiece != PEDPIECE_MID || random != 1)) { if ((pedPiece != PEDPIECE_RIGHTARM || random <= 1) && (pedPiece != PEDPIECE_MID || random != 2)) { - dieAnim = ANIM_STD_HIGHIMPACT_BACK; + dieAnim = ANIM_KO_SKID_BACK; } else { - dieAnim = ANIM_STD_SPINFORWARD_RIGHT; + dieAnim = ANIM_KD_RIGHT; } } else - dieAnim = ANIM_STD_SPINFORWARD_LEFT; + dieAnim = ANIM_KD_LEFT; break; case 3: if (m_nPedState == PED_DIVE_AWAY) - dieAnim = ANIM_STD_SPINFORWARD_RIGHT; + dieAnim = ANIM_KD_RIGHT; else - dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; + dieAnim = ANIM_KO_SPIN_L; break; default: break; @@ -2353,7 +2353,7 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi } break; case WEAPONTYPE_DROWNING: - dieAnim = ANIM_STD_DROWN; + dieAnim = ANIM_DROWN; break; case WEAPONTYPE_FALL: if (bCollisionProof) @@ -2361,16 +2361,16 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi switch (direction) { case 0: - dieAnim = ANIM_STD_HIGHIMPACT_FRONT; + dieAnim = ANIM_KO_SKID_FRONT; break; case 1: - dieAnim = ANIM_STD_HIGHIMPACT_LEFT; + dieAnim = ANIM_KO_SPIN_R; break; case 2: - dieAnim = ANIM_STD_HIGHIMPACT_BACK; + dieAnim = ANIM_KO_SKID_BACK; break; case 3: - dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; + dieAnim = ANIM_KO_SPIN_L; break; default: break; @@ -2460,7 +2460,7 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (player == this) m_pMyVehicle->SetStatus(STATUS_PLAYER_DISABLED); - SetDie(ANIM_STD_NUM, 4.0f, 0.0f); + SetDie(NUM_ANIMS, 4.0f, 0.0f); return true; } else { m_fHealth = 0.0f; @@ -2663,7 +2663,7 @@ CPed::ApplyHeadShot(eWeaponType weaponType, CVector pos, bool evenOnPlayer) // BUG: This condition will always return true. Even fixing it won't work, because these states are unused. // if (m_nPedState != PED_PASSENGER || m_nPedState != PED_TAXI_PASSENGER) { - SetDie(ANIM_STD_KO_FRONT, 4.0f, 0.0f); + SetDie(ANIM_KO_SHOT_FRONT1, 4.0f, 0.0f); // } bBodyPartJustCameOff = true; @@ -2887,7 +2887,7 @@ CPed::CollideWithPed(CPed *collideWith) } else { SetLookFlag(collideWith, false); TurnBody(); - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_PARTIAL_PUNCH, 8.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_PPUNCH, 8.0f); animAssoc->flags |= ASSOC_FADEOUTWHENDONE; #ifdef VC_PED_PORTS m_nPedStateTimer = CTimer::GetTimeInMilliseconds() + 2000; @@ -2912,22 +2912,22 @@ CPed::CollideWithPed(CPed *collideWith) moveForce.z += 0.1f; ApplyMoveForce(moveForce); if (collideWith->m_nMoveState != PEDMOVE_RUN && collideWith->m_nMoveState != PEDMOVE_SPRINT) - animToPlay = ANIM_STD_HIT_LEFT; + animToPlay = ANIM_HIT_LEFT; else - animToPlay = ANIM_STD_HITBYGUN_LEFT; + animToPlay = ANIM_SHOT_LEFT_PARTIAL; } else if (heLooksToUs) { CVector moveForce = GetRight() * -1.0f; moveForce.z += 0.1f; ApplyMoveForce(moveForce); if (collideWith->m_nMoveState != PEDMOVE_RUN && collideWith->m_nMoveState != PEDMOVE_SPRINT) - animToPlay = ANIM_STD_HIT_RIGHT; + animToPlay = ANIM_HIT_RIGHT; else - animToPlay = ANIM_STD_HITBYGUN_RIGHT; + animToPlay = ANIM_SHOT_RIGHT_PARTIAL; } else { if (collideWith->m_nMoveState != PEDMOVE_RUN && collideWith->m_nMoveState != PEDMOVE_SPRINT) - animToPlay = ANIM_STD_HIT_BACK; + animToPlay = ANIM_HIT_BACK; else - animToPlay = ANIM_STD_HITBYGUN_BACK; + animToPlay = ANIM_SHOT_BACK_PARTIAL; } if (collideWith->IsPedInControl() && CTimer::GetTimeInMilliseconds() > collideWith->m_nPedStateTimer) { @@ -2944,17 +2944,17 @@ CPed::CollideWithPed(CPed *collideWith) moveForce.z += 0.1f; ApplyMoveForce(moveForce); if (heLooksToUs) - animToPlay = ANIM_STD_HIGHIMPACT_RIGHT; + animToPlay = ANIM_KO_SPIN_L; else - animToPlay = ANIM_STD_SPINFORWARD_RIGHT; + animToPlay = ANIM_KD_RIGHT; } else { CVector moveForce = GetRight(); moveForce.z += 0.1f; ApplyMoveForce(moveForce); if (heLooksToUs) - animToPlay = ANIM_STD_HIGHIMPACT_LEFT; + animToPlay = ANIM_KO_SPIN_R; else - animToPlay = ANIM_STD_SPINFORWARD_LEFT; + animToPlay = ANIM_KD_LEFT; } if (m_nPedState == PED_ATTACK && collideWith->IsPedInControl()) @@ -3209,7 +3209,7 @@ CPed::KillPedWithCar(CVehicle *car, float impulse) damage = 30.0f; InflictDamage(car, WEAPONTYPE_RAMMEDBYCAR, damage, PEDPIECE_TORSO, fallDirection); - SetFall(1000, (AnimationId)(fallDirection + ANIM_STD_HIGHIMPACT_FRONT), true); + SetFall(1000, (AnimationId)(fallDirection + ANIM_KO_SKID_FRONT), true); if (OnGround() && !m_pCollidingEntity && (!IsPlayer() || bHasHitWall || car->GetModelIndex() == MI_TRAIN || m_vecDamageNormal.z < -0.8f)) { diff --git a/src/peds/PlayerPed.cpp b/src/peds/PlayerPed.cpp index 53187d0b..ae981d1d 100644 --- a/src/peds/PlayerPed.cpp +++ b/src/peds/PlayerPed.cpp @@ -206,7 +206,7 @@ CPlayerPed::MakeChangesForNewWeapon(int8 weapon) void CPlayerPed::ReApplyMoveAnims(void) { - static AnimationId moveAnims[] = { ANIM_STD_WALK, ANIM_STD_RUN, ANIM_STD_RUNFAST, ANIM_STD_IDLE, ANIM_STD_STARTWALK }; + static AnimationId moveAnims[] = { ANIM_WALK, ANIM_RUN, ANIM_SPRINT, ANIM_IDLE_STANCE, ANIM_WALK_START }; for(int i = 0; i < ARRAY_SIZE(moveAnims); i++) { CAnimBlendAssociation *curMoveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), moveAnims[i]); @@ -262,13 +262,13 @@ CPlayerPed::SetInitialState(void) void CPlayerPed::SetRealMoveAnim(void) { - CAnimBlendAssociation *curWalkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_WALK); - CAnimBlendAssociation *curRunAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUN); - CAnimBlendAssociation *curSprintAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNFAST); - CAnimBlendAssociation *curWalkStartAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_STARTWALK); - CAnimBlendAssociation *curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); - CAnimBlendAssociation *curRunStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP1); - CAnimBlendAssociation *curRunStopRAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP2); + CAnimBlendAssociation *curWalkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WALK); + CAnimBlendAssociation *curRunAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN); + CAnimBlendAssociation *curSprintAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_SPRINT); + CAnimBlendAssociation *curWalkStartAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WALK_START); + CAnimBlendAssociation *curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); + CAnimBlendAssociation *curRunStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP); + CAnimBlendAssociation *curRunStopRAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP_R); if (bResetWalkAnims) { if (curWalkAssoc) curWalkAssoc->SetCurrentTime(0.0f); @@ -280,9 +280,9 @@ CPlayerPed::SetRealMoveAnim(void) } if (!curIdleAssoc) - curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); + curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED); if (!curIdleAssoc) - curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); + curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FIGHT_IDLE); if (!((curRunStopAssoc && curRunStopAssoc->IsRunning()) || (curRunStopRAssoc && curRunStopRAssoc->IsRunning()))) { @@ -301,10 +301,10 @@ CPlayerPed::SetRealMoveAnim(void) if (!curIdleAssoc) { if (m_fCurrentStamina < 0.0f && !CWorld::TestSphereAgainstWorld(GetPosition(), 0.5f, nil, true, false, false, false, false, false)) { - curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_TIRED, 8.0f); + curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TIRED, 8.0f); } else { - curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 8.0f); + curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 8.0f); } m_nWaitTimer = CTimer::GetTimeInMilliseconds() + CGeneral::GetRandomNumberInRange(2500, 4000); } @@ -315,25 +315,25 @@ CPlayerPed::SetRealMoveAnim(void) if (!curIdleAssoc) { if (m_fCurrentStamina < 0.0f && !CWorld::TestSphereAgainstWorld(GetPosition(), 0.5f, nil, true, false, false, false, false, false)) { - curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_TIRED, 4.0f); + curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TIRED, 4.0f); } else { - curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); + curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); } m_nWaitTimer = CTimer::GetTimeInMilliseconds() + CGeneral::GetRandomNumberInRange(2500, 4000); } - if (m_fCurrentStamina > 0.0f && curIdleAssoc->animId == ANIM_STD_IDLE_TIRED) { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); + if (m_fCurrentStamina > 0.0f && curIdleAssoc->animId == ANIM_IDLE_TIRED) { + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); } else if (m_nPedState != PED_FIGHT) { - if (m_fCurrentStamina < 0.0f && curIdleAssoc->animId != ANIM_STD_IDLE_TIRED + if (m_fCurrentStamina < 0.0f && curIdleAssoc->animId != ANIM_IDLE_TIRED && !CWorld::TestSphereAgainstWorld(GetPosition(), 0.5f, nil, true, false, false, false, false, false)) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_TIRED, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TIRED, 4.0f); - } else if (curIdleAssoc->animId != ANIM_STD_IDLE) { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); + } else if (curIdleAssoc->animId != ANIM_IDLE_STANCE) { + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); } } m_nMoveState = PEDMOVE_STILL; @@ -344,7 +344,7 @@ CPlayerPed::SetRealMoveAnim(void) curWalkStartAssoc->blendAmount = 1.0f; curWalkStartAssoc->blendDelta = 0.0f; } else { - curWalkStartAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_STD_STARTWALK); + curWalkStartAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_WALK_START); } if (curWalkAssoc) curWalkAssoc->SetCurrentTime(0.0f); @@ -352,8 +352,8 @@ CPlayerPed::SetRealMoveAnim(void) curRunAssoc->SetCurrentTime(0.0f); delete curIdleAssoc; - delete RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); - delete RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); + delete RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED); + delete RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FIGHT_IDLE); delete curSprintAssoc; curSprintAssoc = nil; @@ -368,11 +368,11 @@ CPlayerPed::SetRealMoveAnim(void) RestoreHeadingRate(); } if (!curWalkAssoc) { - curWalkAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_STD_WALK); + curWalkAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_WALK); curWalkAssoc->blendAmount = 0.0f; } if (!curRunAssoc) { - curRunAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_STD_RUN); + curRunAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_RUN); curRunAssoc->blendAmount = 0.0f; } if (curWalkStartAssoc && !(curWalkStartAssoc->IsRunning())) { @@ -399,9 +399,9 @@ CPlayerPed::SetRealMoveAnim(void) if (m_fMoveSpeed < 0.4f) { AnimationId runStopAnim; if (curSprintAssoc->currentTime / curSprintAssoc->hierarchy->totalLength < 0.5) // double - runStopAnim = ANIM_STD_RUNSTOP1; + runStopAnim = ANIM_RUN_STOP; else - runStopAnim = ANIM_STD_RUNSTOP2; + runStopAnim = ANIM_RUN_STOP_R; CAnimBlendAssociation* newRunStopAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, runStopAnim); newRunStopAssoc->blendAmount = 1.0f; newRunStopAssoc->SetDeleteCallback(RestoreHeadingRateCB, this); @@ -444,7 +444,7 @@ CPlayerPed::SetRealMoveAnim(void) // Transition between run-sprint curWalkAssoc->blendAmount = 0.0f; curRunAssoc->blendAmount = 1.0f; - curSprintAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_RUNFAST, 2.0f); + curSprintAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_SPRINT, 2.0f); } UseSprintEnergy(); } else { @@ -539,14 +539,14 @@ CPlayerPed::DoesTargetHaveToBeBroken(CVector target, CWeapon *weaponUsed) void CPlayerPed::RunningLand(CPad *padUsed) { - CAnimBlendAssociation *landAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL_LAND); + CAnimBlendAssociation *landAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_LAND); if (landAssoc && landAssoc->currentTime == 0.0f && m_fMoveSpeed > 1.5f && padUsed && (padUsed->GetPedWalkLeftRight() != 0.0f || padUsed->GetPedWalkUpDown() != 0.0f)) { landAssoc->blendDelta = -1000.0f; landAssoc->flags |= ASSOC_DELETEFADEDOUT; - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_JUMP_LAND)->SetFinishCallback(FinishJumpCB, this); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_JUMP_LAND)->SetFinishCallback(FinishJumpCB, this); if (m_nPedState == PED_JUMP) RestorePreviousState(); @@ -1009,7 +1009,7 @@ CPlayerPed::ProcessPlayerWeapon(CPad *padUsed) TheCamera.SetNewPlayerWeaponMode(CCam::MODE_M16_1STPERSON, 0, 0); m_fMoveSpeed = 0.0f; - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE, 1000.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_STANCE, 1000.0f); } if (GetWeapon()->m_eWeaponType == WEAPONTYPE_ROCKETLAUNCHER || GetWeapon()->m_eWeaponType == WEAPONTYPE_SNIPERRIFLE || TheCamera.PlayerWeaponMode.Mode == CCam::MODE_M16_1STPERSON) @@ -1280,24 +1280,24 @@ CPlayerPed::ProcessControl(void) } if (m_nPedState == PED_DRIVING && m_objective != OBJECTIVE_LEAVE_CAR) { if (m_pMyVehicle->IsCar() && ((CAutomobile*)m_pMyVehicle)->Damage.GetDoorStatus(DOOR_FRONT_LEFT) == DOOR_STATUS_SWINGING) { - CAnimBlendAssociation *rollDoorAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS); + CAnimBlendAssociation *rollDoorAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_ROLLDOOR); - if (m_pMyVehicle->m_nGettingOutFlags & CAR_DOOR_FLAG_LF || rollDoorAssoc || (rollDoorAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS))) { + if (m_pMyVehicle->m_nGettingOutFlags & CAR_DOOR_FLAG_LF || rollDoorAssoc || (rollDoorAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_ROLLDOOR_LOW))) { if (rollDoorAssoc) - m_pMyVehicle->ProcessOpenDoor(CAR_DOOR_LF, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS, rollDoorAssoc->currentTime); + m_pMyVehicle->ProcessOpenDoor(CAR_DOOR_LF, ANIM_CAR_ROLLDOOR, rollDoorAssoc->currentTime); } else { // These comparisons are wrong, they return uint16 if (padUsed && (padUsed->GetAccelerate() != 0.0f || padUsed->GetSteeringLeftRight() != 0.0f || padUsed->GetBrake() != 0.0f)) { if (rollDoorAssoc) - m_pMyVehicle->ProcessOpenDoor(CAR_DOOR_LF, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS, rollDoorAssoc->currentTime); + m_pMyVehicle->ProcessOpenDoor(CAR_DOOR_LF, ANIM_CAR_ROLLDOOR, rollDoorAssoc->currentTime); } else { m_pMyVehicle->m_nGettingOutFlags |= CAR_DOOR_FLAG_LF; if (m_pMyVehicle->bLowVehicle) - rollDoorAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS); + rollDoorAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ROLLDOOR_LOW); else - rollDoorAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS); + rollDoorAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ROLLDOOR); rollDoorAssoc->SetFinishCallback(PedAnimDoorCloseRollingCB, this); } diff --git a/src/peds/Population.cpp b/src/peds/Population.cpp index a0bf8be6..053cf5e4 100644 --- a/src/peds/Population.cpp +++ b/src/peds/Population.cpp @@ -847,7 +847,7 @@ CPopulation::AddPedInCar(CVehicle* car) } #else { - newPed->m_pVehicleAnim = CAnimManager::BlendAnimation(newPed->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT, 100.0f); + newPed->m_pVehicleAnim = CAnimManager::BlendAnimation(newPed->GetClump(), ASSOCGRP_STD, ANIM_CAR_SIT, 100.0f); } #endif diff --git a/src/render/Clouds.cpp b/src/render/Clouds.cpp index 684f5d74..b5af6619 100644 --- a/src/render/Clouds.cpp +++ b/src/render/Clouds.cpp @@ -273,8 +273,8 @@ CClouds::Render(void) for(i = 0; i < 37; i++){ RwV3d pos = { 2.0f*CoorsOffsetX[i], 2.0f*CoorsOffsetY[i], 40.0f*CoorsOffsetZ[i] + 40.0f }; - worldpos.x = pos.x*rot_cos + pos.y*rot_sin + campos.x; - worldpos.y = pos.x*rot_sin - pos.y*rot_cos + campos.y; + worldpos.x = campos.x*rot_cos + campos.y*rot_sin + pos.x; + worldpos.y = campos.x*rot_sin + campos.y*rot_cos + pos.y; worldpos.z = pos.z; if(bCloudOnScreen[i] && CSprite::CalcScreenCoors(worldpos, &screenpos, &szx, &szy, false)){ // BUG: this is stupid....would have to do this for each cloud individually diff --git a/src/render/Font.cpp b/src/render/Font.cpp index 6a9944e1..7eed0933 100644 --- a/src/render/Font.cpp +++ b/src/render/Font.cpp @@ -348,26 +348,11 @@ CFont::Initialise(void) SetDropShadowPosition(0); CTxdStore::PopCurrentTxd(); -#if !defined(GAMEPAD_MENU) && defined(BUTTON_ICONS) - // loaded in CMenuManager with GAMEPAD_MENU defined - LoadButtons("MODELS/X360BTNS.TXD"); -#endif -} - #ifdef BUTTON_ICONS -void -CFont::LoadButtons(const char* txdPath) -{ - if (int file = CFileMgr::OpenFile(txdPath)) { + if (int file = CFileMgr::OpenFile("MODELS/X360BTNS.TXD")) { CFileMgr::CloseFile(file); - if (ButtonsSlot == -1) - ButtonsSlot = CTxdStore::AddTxdSlot("buttons"); - else { - for (int i = 0; i < MAX_BUTTON_ICONS; i++) - ButtonSprite[i].Delete(); - CTxdStore::RemoveTxd(ButtonsSlot); - } - CTxdStore::LoadTxd(ButtonsSlot, txdPath); + ButtonsSlot = CTxdStore::AddTxdSlot("buttons"); + CTxdStore::LoadTxd(ButtonsSlot, "MODELS/X360BTNS.TXD"); CTxdStore::AddRef(ButtonsSlot); CTxdStore::PushCurrentTxd(); CTxdStore::SetCurrentTxd(ButtonsSlot); @@ -389,16 +374,8 @@ CFont::LoadButtons(const char* txdPath) ButtonSprite[BUTTON_R3].SetTexture("r3"); CTxdStore::PopCurrentTxd(); } - else { - if (ButtonsSlot != -1) { - for (int i = 0; i < MAX_BUTTON_ICONS; i++) - ButtonSprite[i].Delete(); - CTxdStore::RemoveTxdSlot(ButtonsSlot); - ButtonsSlot = -1; - } - } -} #endif // BUTTON_ICONS +} #ifdef MORE_LANGUAGES void @@ -451,7 +428,6 @@ CFont::Shutdown(void) for (int i = 0; i < MAX_BUTTON_ICONS; i++) ButtonSprite[i].Delete(); CTxdStore::RemoveTxdSlot(ButtonsSlot); - ButtonsSlot = -1; } #endif Sprite[0].Delete(); diff --git a/src/render/Font.h b/src/render/Font.h index 9316ed34..621375d6 100644 --- a/src/render/Font.h +++ b/src/render/Font.h @@ -109,7 +109,6 @@ public: static CSprite2d ButtonSprite[MAX_BUTTON_ICONS]; static int PS2Symbol; - static void LoadButtons(const char *txdPath); static void DrawButton(float x, float y); #endif // BUTTON_ICONS diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp index 4991e024..2f7b9001 100644 --- a/src/render/Hud.cpp +++ b/src/render/Hud.cpp @@ -1150,18 +1150,18 @@ void CHud::Draw() if (IntroRect.m_nTextureId >= 0) { CRect rect ( IntroRect.m_sRect.left, - IntroRect.m_sRect.bottom, + IntroRect.m_sRect.top, IntroRect.m_sRect.right, - IntroRect.m_sRect.top ); + IntroRect.m_sRect.bottom ); CTheScripts::ScriptSprites[IntroRect.m_nTextureId].Draw(rect, IntroRect.m_sColor); } else { CRect rect ( IntroRect.m_sRect.left, - IntroRect.m_sRect.bottom, + IntroRect.m_sRect.top, IntroRect.m_sRect.right, - IntroRect.m_sRect.top ); + IntroRect.m_sRect.bottom ); CSprite2d::DrawRect(rect, IntroRect.m_sColor); } diff --git a/src/render/Shadows.cpp b/src/render/Shadows.cpp index d7eccbfd..8c892be3 100644 --- a/src/render/Shadows.cpp +++ b/src/render/Shadows.cpp @@ -21,8 +21,8 @@ #include "Shadows.h" #ifdef DEBUGMENU -//SETTWEAKPATH("Shadows"); -//TWEAKBOOL(gbPrintShite); +SETTWEAKPATH("Shadows"); +TWEAKBOOL(gbPrintShite); #endif RwImVertexIndex ShadowIndexList[24]; diff --git a/src/render/WaterCannon.cpp b/src/render/WaterCannon.cpp index 5cc9d0b8..f54b31b9 100644 --- a/src/render/WaterCannon.cpp +++ b/src/render/WaterCannon.cpp @@ -231,7 +231,7 @@ void CWaterCannon::PushPeds(void) ped->m_vecMoveSpeed.x = (0.6f * m_avecVelocity[j].x + ped->m_vecMoveSpeed.x) * 0.5f; ped->m_vecMoveSpeed.y = (0.6f * m_avecVelocity[j].y + ped->m_vecMoveSpeed.y) * 0.5f; - ped->SetFall(2000, AnimationId(ANIM_STD_HIGHIMPACT_FRONT + localDir), 0); + ped->SetFall(2000, AnimationId(ANIM_KO_SKID_FRONT + localDir), 0); CFire *fire = ped->m_pFire; if ( fire ) diff --git a/src/skel/crossplatform.h b/src/skel/crossplatform.h index e5f4c7ba..8c4fb14c 100644 --- a/src/skel/crossplatform.h +++ b/src/skel/crossplatform.h @@ -71,7 +71,7 @@ void CapturePad(RwInt32 padID); void joysChangeCB(int jid, int event); #endif -#ifdef DETECT_JOYSTICK_MENU +#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS extern char gSelectedJoystickName[128]; #endif diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp index baed9000..9643c63b 100644 --- a/src/skel/glfw/glfw.cpp +++ b/src/skel/glfw/glfw.cpp @@ -52,11 +52,6 @@ long _dwOperatingSystemVersion; #define MAX_SUBSYSTEMS (16) -#ifdef _WIN32 -#define GLFW_EXPOSE_NATIVE_WIN32 -#include -#endif - rw::EngineOpenParams openParams; @@ -86,7 +81,7 @@ static psGlobalType PsGlobal; size_t _dwMemAvailPhys; RwUInt32 gGameState; -#ifdef DETECT_JOYSTICK_MENU +#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS char gSelectedJoystickName[128] = ""; #endif @@ -209,7 +204,6 @@ psGrabScreen(RwCamera *pCamera) } #else rw::Image *image = RwCameraGetRaster(pCamera)->toImage(); - image->removeMask(); if(image) return image; #endif @@ -847,7 +841,7 @@ void joysChangeCB(int jid, int event); bool IsThisJoystickBlacklisted(int i) { -#ifndef DETECT_JOYSTICK_MENU +#ifndef DONT_TRUST_RECOGNIZED_JOYSTICKS return false; #else if (glfwJoystickIsGamepad(i)) @@ -912,7 +906,7 @@ void _InputInitialiseJoys() if (PSGLOBAL(joy1id) != -1) { int count; glfwGetJoystickButtons(PSGLOBAL(joy1id), &count); -#ifdef DETECT_JOYSTICK_MENU +#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS strcpy(gSelectedJoystickName, glfwGetJoystickName(PSGLOBAL(joy1id))); #endif ControlsManager.InitDefaultControlConfigJoyPad(count); @@ -1565,15 +1559,6 @@ main(int argc, char *argv[]) return 0; } -#ifdef _WIN32 - HWND wnd = glfwGetWin32Window(PSGLOBAL(window)); - - HICON icon = LoadIcon(instance, MAKEINTRESOURCE(IDI_MAIN_ICON)); - - SendMessage(wnd, WM_SETICON, ICON_BIG, (LPARAM)icon); - SendMessage(wnd, WM_SETICON, ICON_SMALL, (LPARAM)icon); -#endif - psPostRWinit(); ControlsManager.InitDefaultControlConfigMouse(MousePointerStateHelper.GetMouseSetUp()); @@ -2165,7 +2150,7 @@ void joysChangeCB(int jid, int event) if (event == GLFW_CONNECTED && !IsThisJoystickBlacklisted(jid)) { if (PSGLOBAL(joy1id) == -1) { PSGLOBAL(joy1id) = jid; -#ifdef DETECT_JOYSTICK_MENU +#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS strcpy(gSelectedJoystickName, glfwGetJoystickName(jid)); #endif // This is behind LOAD_INI_SETTINGS, because otherwise the Init call below will destroy/overwrite your bindings. diff --git a/src/skel/win/gta3.ico b/src/skel/win/gta3.ico index d0a47713..2017c811 100644 Binary files a/src/skel/win/gta3.ico and b/src/skel/win/gta3.ico differ diff --git a/src/skel/win/win.cpp b/src/skel/win/win.cpp index 86b0b214..3bda4e9d 100644 --- a/src/skel/win/win.cpp +++ b/src/skel/win/win.cpp @@ -121,10 +121,6 @@ DWORD _dwOperatingSystemVersion; RwUInt32 gGameState; CJoySticks AllValidWinJoys; -#ifdef DETECT_JOYSTICK_MENU -char gSelectedJoystickName[128] = ""; -#endif - // What is that for anyway? #ifndef IMPROVED_VIDEOMODE static RwBool defaultFullscreenRes = TRUE; @@ -259,7 +255,6 @@ psGrabScreen(RwCamera *pCamera) } #else rw::Image *image = RwCameraGetRaster(pCamera)->toImage(); - image->removeMask(); if(image) return image; #endif @@ -1330,11 +1325,7 @@ InitApplication(HANDLE instance) windowClass.cbClsExtra = 0; windowClass.cbWndExtra = 0; windowClass.hInstance = (HINSTANCE)instance; -#ifdef FIX_BUGS - windowClass.hIcon = LoadIcon((HINSTANCE)instance, MAKEINTRESOURCE(IDI_MAIN_ICON)); -#else windowClass.hIcon = nil; -#endif windowClass.hCursor = LoadCursor(nil, IDC_ARROW); windowClass.hbrBackground = nil; windowClass.lpszMenuName = NULL; diff --git a/src/text/Text.cpp b/src/text/Text.cpp index 08ab0e1e..fe37d0f1 100644 --- a/src/text/Text.cpp +++ b/src/text/Text.cpp @@ -8,7 +8,7 @@ #include "Messages.h" #include "Text.h" -wchar WideErrorString[25]; +static wchar WideErrorString[25]; CText TheText; diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp index 4863b945..7e8c4702 100644 --- a/src/vehicles/Automobile.cpp +++ b/src/vehicles/Automobile.cpp @@ -3058,21 +3058,21 @@ CAutomobile::DoDriveByShootings(void) if(lookingLeft || lookingRight){ if(lookingLeft){ - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_RIGHT); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_LEFT); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); if(anim == nil || anim->blendDelta < 0.0f) - CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVEBY_LEFT); + CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_DRIVEBY_L); else anim->SetRun(); }else if(pDriver->m_pMyVehicle->pPassengers[0] == nil || TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_1STPERSON){ - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_LEFT); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_RIGHT); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); if(anim == nil || anim->blendDelta < 0.0f) - CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVEBY_RIGHT); + CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_DRIVEBY_R); else anim->SetRun(); } @@ -3083,10 +3083,10 @@ CAutomobile::DoDriveByShootings(void) } }else{ weapon->Reload(); - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_LEFT); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_RIGHT); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); if(anim) anim->blendDelta = -1000.0f; } @@ -3094,11 +3094,11 @@ CAutomobile::DoDriveByShootings(void) // TODO: what is this? if(!lookingLeft && m_weaponDoorTimerLeft > 0.0f){ m_weaponDoorTimerLeft = Max(m_weaponDoorTimerLeft - CTimer::GetTimeStep()*0.1f, 0.0f); - ProcessOpenDoor(CAR_DOOR_LF, ANIM_STD_NUM, m_weaponDoorTimerLeft); + ProcessOpenDoor(CAR_DOOR_LF, NUM_ANIMS, m_weaponDoorTimerLeft); } if(!lookingRight && m_weaponDoorTimerRight > 0.0f){ m_weaponDoorTimerRight = Max(m_weaponDoorTimerRight - CTimer::GetTimeStep()*0.1f, 0.0f); - ProcessOpenDoor(CAR_DOOR_RF, ANIM_STD_NUM, m_weaponDoorTimerRight); + ProcessOpenDoor(CAR_DOOR_RF, NUM_ANIMS, m_weaponDoorTimerRight); } } @@ -3736,55 +3736,55 @@ CAutomobile::ProcessOpenDoor(uint32 component, uint32 anim, float time) return; switch(anim){ - case ANIM_STD_QUICKJACK: - case ANIM_STD_CAR_OPEN_DOOR_LHS: - case ANIM_STD_CAR_OPEN_DOOR_RHS: + case ANIM_CAR_QJACK: + case ANIM_CAR_OPEN_LHS: + case ANIM_CAR_OPEN_RHS: ProcessDoorOpenAnimation(this, component, door, time, 0.66f, 0.8f); break; - case ANIM_STD_CAR_CLOSE_DOOR_LHS: - case ANIM_STD_CAR_CLOSE_DOOR_LO_LHS: - case ANIM_STD_CAR_CLOSE_DOOR_RHS: - case ANIM_STD_CAR_CLOSE_DOOR_LO_RHS: + case ANIM_CAR_CLOSEDOOR_LHS: + case ANIM_CAR_CLOSEDOOR_LOW_LHS: + case ANIM_CAR_CLOSEDOOR_RHS: + case ANIM_CAR_CLOSEDOOR_LOW_RHS: ProcessDoorCloseAnimation(this, component, door, time, 0.2f, 0.63f); break; - case ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS: - case ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS: + case ANIM_CAR_ROLLDOOR: + case ANIM_CAR_ROLLDOOR_LOW: ProcessDoorOpenCloseAnimation(this, component, door, time, 0.1f, 0.6f, 0.95f); break; - case ANIM_STD_GETOUT_LHS: - case ANIM_STD_GETOUT_LO_LHS: - case ANIM_STD_GETOUT_RHS: - case ANIM_STD_GETOUT_LO_RHS: + case ANIM_CAR_GETOUT_LHS: + case ANIM_CAR_GETOUT_LOW_LHS: + case ANIM_CAR_GETOUT_RHS: + case ANIM_CAR_GETOUT_LOW_RHS: ProcessDoorOpenAnimation(this, component, door, time, 0.06f, 0.43f); break; - case ANIM_STD_CAR_CLOSE_LHS: - case ANIM_STD_CAR_CLOSE_RHS: + case ANIM_CAR_CLOSE_LHS: + case ANIM_CAR_CLOSE_RHS: ProcessDoorCloseAnimation(this, component, door, time, 0.1f, 0.23f); break; - case ANIM_STD_CAR_PULL_OUT_PED_RHS: - case ANIM_STD_CAR_PULL_OUT_PED_LO_RHS: + case ANIM_CAR_PULLOUT_RHS: + case ANIM_CAR_PULLOUT_LOW_RHS: OpenDoor(component, door, 1.0f); break; - case ANIM_STD_COACH_OPEN_LHS: - case ANIM_STD_COACH_OPEN_RHS: + case ANIM_COACH_OPEN_L: + case ANIM_COACH_OPEN_R: ProcessDoorOpenAnimation(this, component, door, time, 0.66f, 0.8f); break; - case ANIM_STD_COACH_GET_OUT_LHS: + case ANIM_COACH_OUT_L: ProcessDoorOpenAnimation(this, component, door, time, 0.0f, 0.3f); break; - case ANIM_STD_VAN_OPEN_DOOR_REAR_LHS: - case ANIM_STD_VAN_OPEN_DOOR_REAR_RHS: + case ANIM_VAN_OPEN_L: + case ANIM_VAN_OPEN: ProcessDoorOpenAnimation(this, component, door, time, 0.37f, 0.55f); break; - case ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS: - case ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS: + case ANIM_VAN_CLOSE_L: + case ANIM_VAN_CLOSE: ProcessDoorCloseAnimation(this, component, door, time, 0.5f, 0.8f); break; - case ANIM_STD_VAN_GET_OUT_REAR_LHS: - case ANIM_STD_VAN_GET_OUT_REAR_RHS: + case ANIM_VAN_GETOUT_L: + case ANIM_VAN_GETOUT: ProcessDoorOpenAnimation(this, component, door, time, 0.5f, 0.6f); break; - case ANIM_STD_NUM: + case NUM_ANIMS: OpenDoor(component, door, time); break; } @@ -3879,7 +3879,7 @@ CAutomobile::BlowUpCar(CEntity *culprit) if(!pDriver->IsPlayer()) pDriver->FlagToDestroyWhenNextProcessed(); }else - pDriver->SetDie(ANIM_STD_KO_FRONT, 4.0f, 0.0f); + pDriver->SetDie(ANIM_KO_SHOT_FRONT1, 4.0f, 0.0f); } for(i = 0; i < m_nNumMaxPassengers; i++){ if(pPassengers[i]){ @@ -3889,7 +3889,7 @@ CAutomobile::BlowUpCar(CEntity *culprit) if(!pPassengers[i]->IsPlayer()) pPassengers[i]->FlagToDestroyWhenNextProcessed(); }else - pPassengers[i]->SetDie(ANIM_STD_KO_FRONT, 4.0f, 0.0f); + pPassengers[i]->SetDie(ANIM_KO_SHOT_FRONT1, 4.0f, 0.0f); } } diff --git a/src/vehicles/Vehicle.h b/src/vehicles/Vehicle.h index fcfa3401..a6a4f815 100644 --- a/src/vehicles/Vehicle.h +++ b/src/vehicles/Vehicle.h @@ -182,7 +182,7 @@ public: float m_fMapObjectHeightBehind; // rear Z? eCarLock m_nDoorLock; int8 m_nLastWeaponDamage; // see eWeaponType, -1 if no damage - uint8 m_nRadioStation; + int8 m_nRadioStation; uint8 m_bRainAudioCounter; uint8 m_bRainSamplesCounter; uint8 m_nCarHornTimer; @@ -276,7 +276,7 @@ public: #endif CVehicleModelInfo* GetModelInfo() { return (CVehicleModelInfo*)CModelInfo::GetModelInfo(GetModelIndex()); } bool IsTaxi(void) { return GetModelIndex() == MI_TAXI || GetModelIndex() == MI_CABBIE || GetModelIndex() == MI_BORGNINE; } - AnimationId GetDriverAnim(void) { return IsCar() && bLowVehicle ? ANIM_STD_CAR_SIT_LO : (IsBoat() && GetModelIndex() != MI_SPEEDER ? ANIM_STD_BOAT_DRIVE : ANIM_STD_CAR_SIT); } + AnimationId GetDriverAnim(void) { return IsCar() && bLowVehicle ? ANIM_CAR_LSIT : (IsBoat() && GetModelIndex() != MI_SPEEDER ? ANIM_DRIVE_BOAT : ANIM_CAR_SIT); } static bool bWheelsOnlyCheat; static bool bAllDodosCheat; diff --git a/src/weapons/BulletInfo.cpp b/src/weapons/BulletInfo.cpp index bfe27e18..e87a7407 100644 --- a/src/weapons/BulletInfo.cpp +++ b/src/weapons/BulletInfo.cpp @@ -121,7 +121,7 @@ void CBulletInfo::Update(void) if (pPed->DoesLOSBulletHitPed(point)) { if (pPed->IsPedInControl() && !pPed->bIsDucking) { pPed->ClearAttackByRemovingAnim(); - CAnimBlendAssociation* pAnim = CAnimManager::AddAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HITBYGUN_FRONT); + CAnimBlendAssociation* pAnim = CAnimManager::AddAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_SHOT_FRONT_PARTIAL); pAnim->SetBlend(0.0f, 8.0f); } pPed->InflictDamage(pBullet->m_pSource, pBullet->m_eWeaponType, pBullet->m_nDamage, (ePedPieceTypes)point.pieceB, pPed->GetLocalDirection(pPed->GetPosition() - point.point)); @@ -146,9 +146,9 @@ void CBulletInfo::Update(void) if (pPed->GetPedState() == PED_DEAD) { CAnimBlendAssociation* pAnim; if (RpAnimBlendClumpGetFirstAssociation(pPed->GetClump(), ASSOC_FRONTAL)) - pAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR_FRONT, 8.0f); + pAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT_F, 8.0f); else - pAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR, 8.0f); + pAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT, 8.0f); if (pAnim) { pAnim->SetCurrentTime(0.0f); pAnim->flags |= ASSOC_RUNNING; diff --git a/src/weapons/Weapon.cpp b/src/weapons/Weapon.cpp index dab510be..a987a4c7 100644 --- a/src/weapons/Weapon.cpp +++ b/src/weapons/Weapon.cpp @@ -473,9 +473,9 @@ CWeapon::FireMelee(CEntity *shooter, CVector &fireSource) victimPed->ApplyMoveForce(posOffset.x*-5.0f, posOffset.y*-5.0f, 3.0f); if ( isBat && victimPed->IsPlayer() ) - victimPed->SetFall(3000, AnimationId(ANIM_STD_HIGHIMPACT_FRONT + localDir), false); + victimPed->SetFall(3000, AnimationId(ANIM_KO_SKID_FRONT + localDir), false); else - victimPed->SetFall(1500, AnimationId(ANIM_STD_HIGHIMPACT_FRONT + localDir), false); + victimPed->SetFall(1500, AnimationId(ANIM_KO_SKID_FRONT + localDir), false); shooterPed->m_pSeekTarget = victimPed; shooterPed->m_pSeekTarget->RegisterReference(&shooterPed->m_pSeekTarget); @@ -904,7 +904,7 @@ CWeapon::DoBulletImpact(CEntity *shooter, CEntity *victim, victimPed->bIsStanding = false; victimPed->ApplyMoveForce(posOffset.x*-5.0f, posOffset.y*-5.0f, 5.0f); - victimPed->SetFall(1500, AnimationId(ANIM_STD_HIGHIMPACT_FRONT + localDir), false); + victimPed->SetFall(1500, AnimationId(ANIM_KO_SKID_FRONT + localDir), false); victimPed->InflictDamage(shooter, m_eWeaponType, info->m_nDamage, (ePedPieceTypes)point->pieceB, localDir); } @@ -917,7 +917,7 @@ CWeapon::DoBulletImpact(CEntity *shooter, CEntity *victim, { victimPed->ClearAttackByRemovingAnim(); - CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_STD_HITBYGUN_FRONT + localDir)); + CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_SHOT_FRONT_PARTIAL + localDir)); ASSERT(asoc!=nil); asoc->blendAmount = 0.0f; @@ -933,7 +933,7 @@ CWeapon::DoBulletImpact(CEntity *shooter, CEntity *victim, { victimPed->ClearAttackByRemovingAnim(); - CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_STD_HITBYGUN_FRONT + localDir)); + CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_SHOT_FRONT_PARTIAL + localDir)); ASSERT(asoc!=nil); asoc->blendAmount = 0.0f; @@ -983,9 +983,9 @@ CWeapon::DoBulletImpact(CEntity *shooter, CEntity *victim, { CAnimBlendAssociation *asoc; if ( RpAnimBlendClumpGetFirstAssociation(victimPed->GetClump(), ASSOC_FRONTAL) ) - asoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR_FRONT, 8.0f); + asoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT_F, 8.0f); else - asoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR, 8.0f); + asoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT, 8.0f); if ( asoc ) { @@ -1248,7 +1248,7 @@ CWeapon::FireShotgun(CEntity *shooter, CVector *fireSource) victimPed->ApplyMoveForce(posOffset.x*-2.0f, posOffset.y*-2.0f, 0.0f); if ( cantStandup ) - victimPed->SetFall(1500, AnimationId(ANIM_STD_HIGHIMPACT_FRONT + localDir), false); + victimPed->SetFall(1500, AnimationId(ANIM_KO_SKID_FRONT + localDir), false); victimPed->InflictDamage(shooter, m_eWeaponType, info->m_nDamage, (ePedPieceTypes)point.pieceB, localDir); @@ -1719,7 +1719,7 @@ CWeapon::FireInstantHitFromCar(CAutomobile *shooter, bool left) victimPed->ReactToAttack(FindPlayerPed()); victimPed->ClearAttackByRemovingAnim(); - CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_STD_HITBYGUN_FRONT + localDir)); + CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_SHOT_FRONT_PARTIAL + localDir)); ASSERT(asoc!=nil); asoc->blendAmount = 0.0f; asoc->blendDelta = 8.0f; @@ -2089,7 +2089,7 @@ FireOneInstantHitRound(CVector *source, CVector *target, int32 damage) victimPed->ClearAttackByRemovingAnim(); - CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_STD_HITBYGUN_FRONT + localDir)); + CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_SHOT_FRONT_PARTIAL + localDir)); ASSERT(asoc!=nil); asoc->blendAmount = 0.0f; asoc->blendDelta = 8.0f; diff --git a/src/weapons/WeaponInfo.cpp b/src/weapons/WeaponInfo.cpp index ba872454..10737acb 100644 --- a/src/weapons/WeaponInfo.cpp +++ b/src/weapons/WeaponInfo.cpp @@ -37,8 +37,8 @@ CWeaponInfo::Initialise(void) debug("Initialising CWeaponInfo...\n"); for (int i = 0; i < WEAPONTYPE_TOTALWEAPONS; i++) { aWeaponInfo[i].m_eWeaponFire = WEAPON_FIRE_INSTANT_HIT; - aWeaponInfo[i].m_AnimToPlay = ANIM_STD_PUNCH; - aWeaponInfo[i].m_Anim2ToPlay = ANIM_STD_NUM; + aWeaponInfo[i].m_AnimToPlay = ANIM_PUNCH_R; + aWeaponInfo[i].m_Anim2ToPlay = NUM_ANIMS; aWeaponInfo[i].m_Flags = WEAPONFLAG_USE_GRAVITY | WEAPONFLAG_SLOWS_DOWN | WEAPONFLAG_RAND_SPEED | WEAPONFLAG_EXPANDS | WEAPONFLAG_EXPLODES; } debug("Loading weapon data...\n"); @@ -96,7 +96,7 @@ CWeaponInfo::LoadWeaponData(void) fireType[0] = '\0'; fireOffsetY = 0.0f; fireOffsetZ = 0.0f; - animId = ANIM_STD_WALK; + animId = ANIM_WALK; sscanf( &line[lp], "%s %s %f %d %d %d %d %f %f %f %f %f %f %f %s %s %f %f %f %f %d %d", diff --git a/utils/gxt/american.txt b/utils/gxt/american.txt index cf71c958..95e9d280 100644 --- a/utils/gxt/american.txt +++ b/utils/gxt/american.txt @@ -2221,11 +2221,11 @@ Car bombs are $1000 each [GA_5] Your car is already fitted with a bomb. -[GA_6] { re3 change } -Park it, prime it by pressing the ~h~~k~~VEHICLE_FIREWEAPON~ button~w~ and LEG IT! +[GA_6] +Park it, prime it by pressing the ~h~~k~~PED_FIREWEAPON~ button~w~ and LEG IT! -[GA_7] { re3 change } -Arm with ~h~~k~~VEHICLE_FIREWEAPON~ button~w~. Bomb will go off when engine is started. +[GA_7] +Arm with ~h~~k~~PED_FIREWEAPON~ button~w~. Bomb will go off when engine is started. [GA_8] Use the detonator to activate the bomb. @@ -2440,6 +2440,33 @@ Accelerate [FEC_SMT] Special mission trigger +[FEC_CCF] +Configuration: + +[FEC_CF1] +Setup1 + +[FEC_CF2] +Setup2 + +[FEC_CF3] +Setup3 + +[FEC_CF4] +Setup4 + +[FEC_CDP] +Controller Display: + +[FEC_ONF] +On Foot + +[FEC_INC] +In Car + +[FEC_VIB] +Vibration: + [FEA_OUT] Output: @@ -3565,11 +3592,11 @@ Alright? [JM6_1] Get to the bank on the main drag. -[GA_6B] { re3 change } -Park it, prime it by pressing the ~h~~k~~VEHICLE_FIREWEAPON~ button~w~ and LEG IT! +[GA_6B] +Park it, prime it by pressing the ~h~~k~~PED_FIREWEAPON~ button~w~ and LEG IT! -[GA_7B] { re3 change } -Arm with ~h~~k~~VEHICLE_FIREWEAPON~ button~w~. Bomb will go off when engine is started. +[GA_7B] +Arm with ~h~~k~~PED_FIREWEAPON~ button~w~. Bomb will go off when engine is started. [BAT1] ~g~Pick up the bat! @@ -4000,11 +4027,11 @@ Drive your vehicle into the spray shop to lose your ~h~wanted level~w~, ~h~repai [HM1_1] ~g~Ice 20 Purple Nines in 2 minutes 30 seconds. -[KM1_8A] { re3 change } -Press the~h~ ~k~~VEHICLE_FIREWEAPON~ button~w~ to ~h~activate the bomb,~w~ remember to get out of the way. +[KM1_8A] +Press the~h~ ~k~~PED_FIREWEAPON~ button~w~ to ~h~activate the bomb,~w~ remember to get out of the way. -[KM1_8D] { re3 change } -Press the~h~ ~k~~VEHICLE_FIREWEAPON~ button~w~ to ~h~activate the bomb,~w~ remember to get out of the way. +[KM1_8D] +Press the~h~ ~k~~PED_FIREWEAPON~ button~w~ to ~h~activate the bomb,~w~ remember to get out of the way. [KM1_12] ~g~Get him to the dojo but get rid of the cops first! @@ -4141,11 +4168,11 @@ I don't need to see any I.D. you look trustworthy. [DETON] DETONATION: -[DRIVE_A] { re3 change } -Have an Uzi selected when entering a vehicle then look left or right and press the ~h~~k~~VEHICLE_FIREWEAPON~ button~w~ to fire. +[DRIVE_A] +Have an Uzi selected when entering a vehicle then look left or right and press the ~h~~k~~PED_FIREWEAPON~ button~w~ to fire. -[DRIVE_B] { re3 change } -Have an Uzi selected when entering a vehicle then look left or right and press the ~h~~k~~VEHICLE_FIREWEAPON~ button~w~ to fire. +[DRIVE_B] +Have an Uzi selected when entering a vehicle then look left or right and press the ~h~~k~~PED_FIREWEAPON~ button~w~ to fire. [RECORD] ~g~NEW RECORD!! @@ -4153,11 +4180,11 @@ Have an Uzi selected when entering a vehicle then look left or right and press t [NRECORD] ~r~NO NEW RECORD! -[RCHELP] { re3 change } -Press ~k~~VEHICLE_FIREWEAPON~, or drive the RC car into a vehicle's wheels to detonate. +[RCHELP] +Press ~k~~PED_FIREWEAPON~, or drive the RC car into a vehicle's wheels to detonate. -[RCHELPA] { re3 change } -Press the ~k~~VEHICLE_FIREWEAPON~ button, or drive the RC car into a vehicle's wheels to detonate. +[RCHELPA] +Press the ~k~~PED_FIREWEAPON~ button, or drive the RC car into a vehicle's wheels to detonate. [RC_1] You have 2 minutes to blow up as many Diablo Gang Cars as possible! @@ -4657,11 +4684,11 @@ LOVE'S DISAPPEARANCE [RM5_6] ~g~He's bailed out!! Smash his bodycast with a vehicle or an explosion!! -[PBOAT_1] { re3 change } -Press the ~h~~k~~VEHICLE_FIREWEAPON~ button~w~ to fire the boat cannons. +[PBOAT_1] +Press the ~h~~k~~PED_FIREWEAPON~ button~w~ to fire the boat cannons. -[PBOAT_2] { re3 change } -Press the ~h~~k~~VEHICLE_FIREWEAPON~ button~w~ to fire the boat cannons. +[PBOAT_2] +Press the ~h~~k~~PED_FIREWEAPON~ button~w~ to fire the boat cannons. [DIAB1_B] This is El Burro of the Diablos. @@ -4675,11 +4702,11 @@ There's a street race starting by the old school hall near the Callahan Bridge. [DIAB1_F] Get yourself some wheels and first through all the checkpoints wins the prize. -[HM2_1] { re3 change } -Use the RC buggies to destroy the armored cars. Press the ~h~~k~~VEHICLE_FIREWEAPON~ button ~w~to detonate. +[HM2_1] +Use the RC buggies to destroy the armored cars. Press the ~h~~k~~PED_FIREWEAPON~ button ~w~to detonate. -[HM2_1A] { re3 change } -Use the RC buggies to destroy the armored cars. Press the ~h~~k~~VEHICLE_FIREWEAPON~ button ~w~to detonate. +[HM2_1A] +Use the RC buggies to destroy the armored cars. Press the ~h~~k~~PED_FIREWEAPON~ button ~w~to detonate. [HM2_2] ~r~You failed to destroy all the armored cars! @@ -6490,11 +6517,11 @@ This Memory Card (PS2) is already formatted. [FEDSAS4] ;=<> - CHANGE SELECTION -[SPRAY_4] { re3 change } -Use the ~h~~k~~VEHICLE_FIREWEAPON~ button ~w~to fire the water cannon. +[SPRAY_4] +Use the ~h~~k~~PED_FIREWEAPON~ button ~w~to fire the water cannon. -[SPRAY_1] { re3 change } -Use the ~h~~k~~VEHICLE_FIREWEAPON~ button ~w~to fire the water cannon. +[SPRAY_1] +Use the ~h~~k~~PED_FIREWEAPON~ button ~w~to fire the water cannon. [LITTLE] LITTLE T @@ -7216,6 +7243,9 @@ CONNECTION [FET_AUD] AUDIO SETUP +[FET_GFX] +GFX SETUP + [FET_DIS] DISPLAY SETUP @@ -7927,7 +7957,7 @@ POLISH RUSSIAN { new display menus } -[FET_GFX] +[FET_GRA] GRAPHICS SETUP [FED_MIP] @@ -7992,7 +8022,6 @@ REPLAY MISSION [FESZ_RM] RETRY? -{ more graphics } [FED_VPL] VEHICLE PIPELINE @@ -8032,68 +8061,15 @@ PS2 [FEM_XBX] XBOX -[FEM_AUT] { aspect ratio related } +[FEM_AUT] AUTO -{ controls } [FEC_IVP] INVERT PAD VERTICALLY -{ map } [FEM_TWP] Toggle Waypoint -[FEA_FMN] -RADIO OFF - -[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 - -[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 - -[FET_AGS] -GAMEPAD SETTINGS - { end of file } [DUMMY] diff --git a/utils/gxt/build.bat b/utils/gxt/build.bat index a674850e..17eb7983 100644 --- a/utils/gxt/build.bat +++ b/utils/gxt/build.bat @@ -4,5 +4,4 @@ gxt -g III -i "french.txt" -o "../../gamefiles/TEXT/french.gxt" gxt -g III -i "german.txt" -o "../../gamefiles/TEXT/german.gxt" gxt -g III -i "italian.txt" -o "../../gamefiles/TEXT/italian.gxt" gxt -g III -i "spanish.txt" -o "../../gamefiles/TEXT/spanish.gxt" -gxt -g III -r -i "russian.txt" -o "../../gamefiles/TEXT/russian.gxt" -gxt -g III -p -i "polish.txt" -o "../../gamefiles/TEXT/polish.gxt" +gxt -g III -r -i "russian.txt" -o "../../gamefiles/TEXT/russian.gxt" \ No newline at end of file diff --git a/utils/gxt/french.txt b/utils/gxt/french.txt index 09a1f5c2..c2c125f0 100644 --- a/utils/gxt/french.txt +++ b/utils/gxt/french.txt @@ -1,11 +1,4 @@ -{ - 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. -} - -[LETTER1] +[LETTER1] abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789"$,.'-?!!SDBF [DEFNAM] @@ -2240,11 +2233,11 @@ Une voiture piégée coûte 1000$ pièce! [GA_5] Ta voiture est déjà équipée d'une bombe. -[GA_6] { re3 change } -Gare-la, arme la bombe avec la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ et CASSE-TOI! +[GA_6] +Gare-la, arme la bombe avec la ~h~touche ~k~~PED_FIREWEAPON~~w~ et CASSE-TOI! -[GA_7] { re3 change } -Arme la bombe avec la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~. Elle explose au démarrage. +[GA_7] +Arme la bombe avec la ~h~touche ~k~~PED_FIREWEAPON~~w~. Elle explose au démarrage. [GA_8] Utilise le détonateur pour armer la bombe. @@ -2459,6 +2452,33 @@ Accélérateur [FEC_SMT] Déclencheur de mission spéciale +[FEC_CCF] +Configuration: + +[FEC_CF1] +Config1 + +[FEC_CF2] +Config2 + +[FEC_CF3] +Config3 + +[FEC_CF4] +Config4 + +[FEC_CDP] +Affichage de la manette: + +[FEC_ONF] +A pied + +[FEC_INC] +Dans un véhicule + +[FEC_VIB] +Vibrations: + [FEA_OUT] Sortie audio: @@ -3491,11 +3511,11 @@ D'accord ? [JM6_1] Va à la banque par la rue principale. -[GA_6B] { re3 change } -Tu la gares, tu l'amorces en appuyant sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ et tu te barres! +[GA_6B] +Tu la gares, tu l'amorces en appuyant sur la ~h~touche ~k~~PED_FIREWEAPON~~w~ et tu te barres! -[GA_7B] { re3 change } -Pour armer la bombe, appuie sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~. Elle explosera au démarrage. +[GA_7B] +Pour armer la bombe, appuie sur la ~h~touche ~k~~PED_FIREWEAPON~~w~. Elle explosera au démarrage. [BAT1] ~g~Ramasse la batte! @@ -3926,11 +3946,11 @@ Amène ton véhicule à l'atelier de peinture pour annuler ton ~h~indice de rech [HM1_1] ~G~Refroidis 20 Nines violets en 2 minutes et 30 secondes. -[KM1_8A] { re3 change } -Appuie sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ pour ~h~activer la bombe~w~, n'oublie pas de t'éloigner. +[KM1_8A] +Appuie sur la ~h~touche ~k~~PED_FIREWEAPON~~w~ pour ~h~activer la bombe~w~, n'oublie pas de t'éloigner. -[KM1_8D] { re3 change } -Appuie sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ pour ~h~activer la bombe~w~, n'oublie pas de t'éloigner. +[KM1_8D] +Appuie sur la ~h~touche ~k~~PED_FIREWEAPON~~w~ pour ~h~activer la bombe~w~, n'oublie pas de t'éloigner. [KM1_12] ~g~Amène-le au dojo mais débarrasse-toi des flics d'abord! @@ -4067,11 +4087,11 @@ J'ai pas besoin de tes papiers d'identité. Je pense qu'on peut te faire confian [DETON] DETONATION : -[DRIVE_A] { re3 change } -Selectionne un Uzi quand tu montes dans la voiture, regarde à gauche ou à droite et appuie sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ pour tirer. +[DRIVE_A] +Selectionne un Uzi quand tu montes dans la voiture, regarde à gauche ou à droite et appuie sur la ~h~touche ~k~~PED_FIREWEAPON~~w~ pour tirer. -[DRIVE_B] { re3 change } -Selectionne un Uzi quand tu montes dans la voiture, regarde à gauche ou à droite et appuie sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ pour tirer. +[DRIVE_B] +Selectionne un Uzi quand tu montes dans la voiture, regarde à gauche ou à droite et appuie sur la ~h~touche ~k~~PED_FIREWEAPON~~w~ pour tirer. [RECORD] ~g~NOUVEAU RECORD! @@ -4079,11 +4099,11 @@ Selectionne un Uzi quand tu montes dans la voiture, regarde à gauche ou à droi [NRECORD] ~r~PAS DE RECORD! -[RCHELP] { re3 change } -Appuie sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ ou heurte une roue de voiture avec le véhicule télécommandé pour le faire exploser. +[RCHELP] +Appuie sur la ~h~touche ~k~~PED_FIREWEAPON~~w~ ou heurte une roue de voiture avec le véhicule télécommandé pour le faire exploser. -[RCHELPA] { re3 change } -Appuie sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ ou heurte une roue de voiture avec le véhicule télécommandé pour le faire exploser. +[RCHELPA] +Appuie sur la ~h~touche ~k~~PED_FIREWEAPON~~w~ ou heurte une roue de voiture avec le véhicule télécommandé pour le faire exploser. [RC_1] Tu as 2 minutes pour faire péter autant de voitures de Diablo que tu peux! @@ -4583,11 +4603,11 @@ LA DISPARITION DE LOVE [RM5_6] ~g~Il s'est enfui! Bousille-lui son plâtre avec une bagnole ou une explosion! -[PBOAT_1] { re3 change } -Appuie sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ pour tirer avec les canons du bateau. +[PBOAT_1] +Appuie sur la ~h~touche ~k~~PED_FIREWEAPON~~w~ pour tirer avec les canons du bateau. -[PBOAT_2] { re3 change } -Appuie sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ pour tirer avec les canons du bateau. +[PBOAT_2] +Appuie sur la ~h~touche ~k~~PED_FIREWEAPON~~w~ pour tirer avec les canons du bateau. [DIAB1_B] C'est El Burro des Diablos. @@ -4601,11 +4621,11 @@ Il y a une course de bagnoles qui va partir de la vieille école près du pont d [DIAB1_F] Trouve-toi une caisse et le premier qui franchit tous les points de passage, gagne le gros lot. -[HM2_1] { re3 change } -Utilise les buggies télécommandés pour détruire les voitures blindées. Appuie sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ pour les faire exploser. +[HM2_1] +Utilise les buggies télécommandés pour détruire les voitures blindées. Appuie sur la ~h~touche ~k~~PED_FIREWEAPON~~w~ pour les faire exploser. -[HM2_1A] { re3 change } -Utilise les buggies télécommandés pour détruire les voitures blindées. Appuie sur la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ pour les faire exploser. +[HM2_1A] +Utilise les buggies télécommandés pour détruire les voitures blindées. Appuie sur la ~h~touche ~k~~PED_FIREWEAPON~~w~ pour les faire exploser. [HM2_2] ~r~T'as pas réussi à détruire toutes leurs voitures blindées! @@ -6617,11 +6637,11 @@ Cette memory card (PS2) est déjà formatée. [FEDSAS4] ;=<> - CHANGER SELECTION -[SPRAY_4] { re3 change } -Utilise la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ pour tirer à l'aide du canon à eau. +[SPRAY_4] +Utilise la ~h~touche ~k~~PED_FIREWEAPON~~w~ pour tirer à l'aide du canon à eau. -[SPRAY_1] { re3 change } -Utilise la ~h~touche ~k~~VEHICLE_FIREWEAPON~~w~ pour tirer à l'aide du canon à eau. +[SPRAY_1] +Utilise la ~h~touche ~k~~PED_FIREWEAPON~~w~ pour tirer à l'aide du canon à eau. [AM1_10] ~g~Salvatore Leone partira de chez Luigi vers 0~1~:~1~. @@ -7484,6 +7504,9 @@ CONNEXION [FET_AUD] CONFIG. AUDIO +[FET_GFX] +CONFIG. EFFETS SPECIAUX + [FET_DIS] CONFIG. AFFICHAGE @@ -8183,187 +8206,6 @@ MATERIEL INDISPONIBLE - PARAMETRE D'ORIGINE RETABLI [CRED270] MIKE HONG -{ re3 updates } -{ new languages } -[FEL_JAP] -JAPONAIS - -[FEL_POL] -POLONAIS - -[FEL_RUS] -RUSSE - -{ new display menus } -[FET_GFX] { this probably needs to be retranslated } -CONFIG. EFFETS SPECIAUX - -[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? - -{ more graphics } -[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 - -[FEM_AUT] { aspect ratio related } -AUTO - -{ controls } -[FEC_IVP] -INVERT PAD VERTICALLY - -{ map } -[FEM_TWP] -Toggle Waypoint - -[FEA_FMN] -RADIO ETEINTE - -[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 - -[FEC_CCF] -CONFIGURATION - -[FEC_CF1] -CONFIGURATION 1 - -[FEC_CF2] -CONFIGURATION 2 - -[FEC_CF3] -CONFIGURATION 3 - -[FEC_CF4] -CONFIGURATION 4 - -[FEC_CDP] -AFFICHAGE DE LA MANETTE - -[FEC_ONF] -A PIED - -[FEC_INC] -DANS UN VÉHICULE - -[FEC_VIB] -VIBRATIONS - -[FET_AGS] -GAMEPAD SETTINGS - -{ 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/german.txt b/utils/gxt/german.txt index 2ab4df6a..8f3f207e 100644 --- a/utils/gxt/german.txt +++ b/utils/gxt/german.txt @@ -1,11 +1,4 @@ -{ - 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. -} - -[LETTER1] +[LETTER1] abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789"$,.'-?!!SDBF [DEFNAM] @@ -2276,11 +2269,11 @@ Autobomben kosten $1000 pro Stück. [GA_5] In deinem Wagen ist schon eine Autobombe. -[GA_6] { re3 change } -Park die Karre, mach sie durch Drücken der ~h~~k~~VEHICLE_FIREWEAPON~-Taste~w~ scharf, und dann nichts wie weg! +[GA_6] +Park die Karre, mach sie durch Drücken der ~h~~k~~PED_FIREWEAPON~-Taste~w~ scharf, und dann nichts wie weg! -[GA_7] { re3 change } -Mach die Bombe mit der ~h~~k~~VEHICLE_FIREWEAPON~-Taste~w~ scharf. Dann geht sie hoch, wenn der Wagen angelassen wird. +[GA_7] +Mach die Bombe mit der ~h~~k~~PED_FIREWEAPON~-Taste~w~ scharf. Dann geht sie hoch, wenn der Wagen angelassen wird. [GA_8] Benutze den Zünder, um die Bombe hochgehen zu lassen. @@ -2495,6 +2488,33 @@ Beschleunigen [FEC_SMT] Spezialmission aktivieren +[FEC_CCF] +Konfiguration: + +[FEC_CF1] +Konfig1 + +[FEC_CF2] +Konfig2 + +[FEC_CF3] +Konfig3 + +[FEC_CF4] +Konfig4 + +[FEC_CDP] +Controller-Anzeige: + +[FEC_ONF] +Zu Fuß + +[FEC_INC] +Im Auto + +[FEC_VIB] +Vibration: + [FEA_OUT] Tonausgabe: @@ -3635,11 +3655,11 @@ Okay? [JM6_1] Fahr zu der Bank auf dem Boulevard. -[GA_6B] { re3 change } -Park die Karre, mach sie durch Drücken der ~h~~k~~VEHICLE_FIREWEAPON~-Taste~w~ scharf, und dann HAU AB! +[GA_6B] +Park die Karre, mach sie durch Drücken der ~h~~k~~PED_FIREWEAPON~-Taste~w~ scharf, und dann HAU AB! -[GA_7B] { re3 change } -Mach die Bombe mit der ~h~~k~~VEHICLE_FIREWEAPON~-Taste~w~ scharf. Sie geht hoch, wenn der Wagen angelassen wird. +[GA_7B] +Mach die Bombe mit der ~h~~k~~PED_FIREWEAPON~-Taste~w~ scharf. Sie geht hoch, wenn der Wagen angelassen wird. [BAT1] ~g~Nimm dir den Schlãger! @@ -4073,11 +4093,11 @@ Fahre deinen Wagen in die Lackiererei, um deinen ~h~Fahndungslevel~w~ loszuwerde [HM1_1] ~g~Fertige 20 Purple Nines in 2 Min. 30 Sek. ab. -[KM1_8A] { re3 change } -Drücke die~h~ ~k~~VEHICLE_FIREWEAPON~-Taste~w~ zum ~h~Zünden der Bombe~w~. Aber geh vorher in Deckung! +[KM1_8A] +Drücke die~h~ ~k~~PED_FIREWEAPON~-Taste~w~ zum ~h~Zünden der Bombe~w~. Aber geh vorher in Deckung! -[KM1_8D] { re3 change } -Drücke die~h~ ~k~~VEHICLE_FIREWEAPON~-Taste~w~ zum ~h~Zünden der Bombe~w~. Aber geh vorher in Deckung! +[KM1_8D] +Drücke die~h~ ~k~~PED_FIREWEAPON~-Taste~w~ zum ~h~Zünden der Bombe~w~. Aber geh vorher in Deckung! [KM1_12] ~g~Bring ihm zum Dojo, aber hãng vorher die Cops ab! @@ -4214,11 +4234,11 @@ Auf den Ausweis verzichte ich. Du siehst vertrauenswürdig aus. [DETON] DETONATION: -[DRIVE_A] { re3 change } -Halt eine Uzi im Anschlag, wenn du in ein Fahrzeug steigst. Schau dann nach links oder rechts und drücke die ~h~~k~~VEHICLE_FIREWEAPON~-Taste~w~, um zu feuern. +[DRIVE_A] +Halt eine Uzi im Anschlag, wenn du in ein Fahrzeug steigst. Schau dann nach links oder rechts und drücke die ~h~~k~~PED_FIREWEAPON~-Taste~w~, um zu feuern. -[DRIVE_B] { re3 change } -Halt eine Uzi im Anschlag, wenn du in ein Fahrzeug steigst. Schau dann nach links oder rechts und drücke die ~h~~k~~VEHICLE_FIREWEAPON~-Taste~w~, um zu feuern. +[DRIVE_B] +Halt eine Uzi im Anschlag, wenn du in ein Fahrzeug steigst. Schau dann nach links oder rechts und drücke die ~h~~k~~PED_FIREWEAPON~-Taste~w~, um zu feuern. [RECORD] ~g~NEUER REKORD!! @@ -4226,11 +4246,11 @@ Halt eine Uzi im Anschlag, wenn du in ein Fahrzeug steigst. Schau dann nach link [NRECORD] ~r~KEIN NEUER REKORD! -[RCHELP] { re3 change } -Drücke die ~k~~VEHICLE_FIREWEAPON~-Taste oder fahre das ferngesteuerte Auto in die Rãder eines Fahrzeugs, um es zu sprengen. +[RCHELP] +Drücke die ~k~~PED_FIREWEAPON~-Taste oder fahre das ferngesteuerte Auto in die Rãder eines Fahrzeugs, um es zu sprengen. -[RCHELPA] { re3 change } -Drücke die ~k~~VEHICLE_FIREWEAPON~-Taste oder fahre das ferngesteuerte Auto in die Rãder eines Fahrzeugs, um es zu sprengen. +[RCHELPA] +Drücke die ~k~~PED_FIREWEAPON~-Taste oder fahre das ferngesteuerte Auto in die Rãder eines Fahrzeugs, um es zu sprengen. [RC_1] Du hast 2 Minuten, um so viele Diablo-Autos wie möglich zu sprengen! @@ -4730,11 +4750,11 @@ LOVES VERSCHWINDEN [RM5_6] ~g~Er ist abgehauen! Zerstöre seine Panzerung mit einem Auto oder einer Explosion!! -[PBOAT_1] { re3 change } -Drücke die ~h~~k~~VEHICLE_FIREWEAPON~-Taste~w~, um die Bordkanonen abzufeuern. +[PBOAT_1] +Drücke die ~h~~k~~PED_FIREWEAPON~-Taste~w~, um die Bordkanonen abzufeuern. -[PBOAT_2] { re3 change } -Drücke die ~h~~k~~VEHICLE_FIREWEAPON~-Taste~w~, um die Bordkanonen abzufeuern. +[PBOAT_2] +Drücke die ~h~~k~~PED_FIREWEAPON~-Taste~w~, um die Bordkanonen abzufeuern. [DIAB1_B] Hier El Burro, von den Diablos. @@ -4748,11 +4768,11 @@ Bei der alten Schulhalle nahe der Callahan Bridge findet ein Rennen statt. [DIAB1_F] Besorg dir 'nen fahrbaren Untersatz. Wer als erster alle Checkpoints abfãhrt, ist Sieger. -[HM2_1] { re3 change } -Zerstöre die gepanzerten Fahrzeuge mit den Buggies. Zur Zündung drücke die ~h~~k~~VEHICLE_FIREWEAPON~-Taste~w~. +[HM2_1] +Zerstöre die gepanzerten Fahrzeuge mit den Buggies. Zur Zündung drücke die ~h~~k~~PED_FIREWEAPON~-Taste~w~. -[HM2_1A] { re3 change } -Zerstöre die gepanzerten Fahrzeuge mit den Buggies. Zur Zündung drücke die ~h~~k~~VEHICLE_FIREWEAPON~-Taste~w~. +[HM2_1A] +Zerstöre die gepanzerten Fahrzeuge mit den Buggies. Zur Zündung drücke die ~h~~k~~PED_FIREWEAPON~-Taste~w~. [HM2_2] ~r~Du hast nicht alle gepanzerten Fahrzeuge zerstört! @@ -6575,11 +6595,11 @@ Diese Memory Card (PS2) ist bereits formatiert. [FEDSAS4] ;=<> - AUSWAHL ÃNDERN -[SPRAY_4] { re3 change } -~h~~k~~VEHICLE_FIREWEAPON~-Taste ~w~benutzen, um die Wasserkanone abzufeuern. +[SPRAY_4] +~h~~k~~PED_FIREWEAPON~-Taste ~w~benutzen, um die Wasserkanone abzufeuern. -[SPRAY_1] { re3 change } -~h~~k~~VEHICLE_FIREWEAPON~-Taste ~w~benutzen, um die Wasserkanone abzufeuern. +[SPRAY_1] +~h~~k~~PED_FIREWEAPON~-Taste ~w~benutzen, um die Wasserkanone abzufeuern. [LITTLE] LITTLE T @@ -7307,6 +7327,9 @@ VERBINDUNG [FET_AUD] AUDIO-SETUP +[FET_GFX] +GRAFIK-SETUP + [FET_DIS] ANZEIGEN-SETUP @@ -8000,185 +8023,6 @@ HARDWARE NICHT VERFÜGBAR - ORIGINAL-EINSTELLG. WIEDERHERGESTELLT [CRED270] MIKE HONG -{ re3 updates } -{ new languages } -[FEL_JAP] -JAPANISCH - -[FEL_POL] -POLNISCH - -[FEL_RUS] -RUSSISCH - -{ new display menus } -[FET_GFX] -GRAFIK-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? - -{ more graphics } -[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 - -[FEM_AUT] { aspect ratio related } -AUTO - -{ controls } -[FEC_IVP] -INVERT PAD VERTICALLY - -{ map } -[FEM_TWP] -Toggle Waypoint - -[FEA_FMN] -RADIO AUS - -[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 - -[FEC_CCF] -KONFIGURATION - -[FEC_CF1] -KONFIGURATION 1 - -[FEC_CF2] -KONFIGURATION 2 - -[FEC_CF3] -KONFIGURATION 3 - -[FEC_CF4] -KONFIGURATION 4 - -[FEC_CDP] -CONTROLLER-ANZEIGE - -[FEC_ONF] -ZU FUß - -[FEC_INC] -IM AUTO - -[FEC_VIB] -VIBRATION - -[FET_AGS] -GAMEPAD SETTINGS - [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/italian.txt b/utils/gxt/italian.txt index 54c9fee8..822a30b8 100644 --- a/utils/gxt/italian.txt +++ b/utils/gxt/italian.txt @@ -1,11 +1,4 @@ -{ - 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. -} - -[LETTER1] +[LETTER1] abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789"$,.'-?!!SDBFàèéìòùÀÈÉÌÒÙ [DEFNAM] @@ -2267,11 +2260,11 @@ Le bombe per le macchine costano 1000$ [GA_5] La tua macchina ha già una bomba installata. -[GA_6] { re3 change } -Parcheggiala, attivala premendo il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ e DATTELA A GAMBE! +[GA_6] +Parcheggiala, attivala premendo il ~h~tasto ~k~~PED_FIREWEAPON~~w~ e DATTELA A GAMBE! -[GA_7] { re3 change } -Arma la bomba con il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~: esploderà non appena qualcuno cercherà di avviarla. +[GA_7] +Arma la bomba con il ~h~tasto ~k~~PED_FIREWEAPON~~w~: esploderà non appena qualcuno cercherà di avviarla. [GA_8] Usa il detonatore per attivare la bomba. @@ -2486,6 +2479,33 @@ Accelera [FEC_SMT] Attivatore missione speciale +[FEC_CCF] +Configurazione: + +[FEC_CF1] +Config1 + +[FEC_CF2] +Config2 + +[FEC_CF3] +Config3 + +[FEC_CF4] +Config4 + +[FEC_CDP] +Schermata controller: + +[FEC_ONF] +A piedi + +[FEC_INC] +In macchina + +[FEC_VIB] +Vibrazione: + [FEA_OUT] Uscita: @@ -3626,11 +3646,11 @@ OK? [JM6_1] Raggiungi la banca sulla strada principale. -[GA_6B] { re3 change } -Parcheggiala, innesca la bomba schiacciando il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ e BATTITELA! +[GA_6B] +Parcheggiala, innesca la bomba schiacciando il ~h~tasto ~k~~PED_FIREWEAPON~~w~ e BATTITELA! -[GA_7B] { re3 change } -Innescala col ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~. La bomba esploderà quando si tenterà di avviare il motore. +[GA_7B] +Innescala col ~h~tasto ~k~~PED_FIREWEAPON~~w~. La bomba esploderà quando si tenterà di avviare il motore. [BAT1] ~g~Prendi la mazza! @@ -4064,11 +4084,11 @@ Porta l'auto dal carrozziere per perdere il ~h~livello di sospetto~w~, ~h~ripara [HM1_1] ~g~Fredda 20 Purple Nine in 2 minuti e 30 secondi. -[KM1_8A] { re3 change } -Premi il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ per ~h~attivare la bomba~w~: ricorda di toglierti di mezzo! +[KM1_8A] +Premi il ~h~tasto ~k~~PED_FIREWEAPON~~w~ per ~h~attivare la bomba~w~: ricorda di toglierti di mezzo! -[KM1_8D] { re3 change } -Premi il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ per ~h~attivare la bomba~w~: e ricorda di toglierti di mezzo! +[KM1_8D] +Premi il ~h~tasto ~k~~PED_FIREWEAPON~~w~ per ~h~attivare la bomba~w~: e ricorda di toglierti di mezzo! [KM1_12] ~g~Portalo nel dojo, ma prima sbarazzati degli sbirri! @@ -4205,11 +4225,11 @@ Non mi serve che mi mostri i documenti, hai una faccia fidata. [DETON] DETONAZIONE: -[DRIVE_A] { re3 change } -Seleziona un Uzi quando entri in un veicolo, poi guarda a destra o a sinistra e premi il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ per sparare. +[DRIVE_A] +Seleziona un Uzi quando entri in un veicolo, poi guarda a destra o a sinistra e premi il ~h~tasto ~k~~PED_FIREWEAPON~~w~ per sparare. -[DRIVE_B] { re3 change } -Seleziona un Uzi quando entri in un veicolo, poi guarda a destra o a sinistra e premi il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ per sparare. +[DRIVE_B] +Seleziona un Uzi quando entri in un veicolo, poi guarda a destra o a sinistra e premi il ~h~tasto ~k~~PED_FIREWEAPON~~w~ per sparare. [RECORD] ~g~NUOVO RECORD!!! @@ -4217,11 +4237,11 @@ Seleziona un Uzi quando entri in un veicolo, poi guarda a destra o a sinistra e [NRECORD] ~r~NESSUN NUOVO RECORD! -[RCHELP] { re3 change } -Premi il tasto ~k~~VEHICLE_FIREWEAPON~ o dirigi l'auto radiocomandata contro i pneumatici di un veicolo per provocarne la detonazione. +[RCHELP] +Premi il tasto ~k~~PED_FIREWEAPON~ o dirigi l'auto radiocomandata contro i pneumatici di un veicolo per provocarne la detonazione. -[RCHELPA] { re3 change } -Premi il tasto ~k~~VEHICLE_FIREWEAPON~ o dirigi l'auto radiocomandata contro i pneumatici di un veicolo per provocarne la detonazione. +[RCHELPA] +Premi il tasto ~k~~PED_FIREWEAPON~ o dirigi l'auto radiocomandata contro i pneumatici di un veicolo per provocarne la detonazione. [RC_1] Hai 2 minuti per far esplodere quante più auto dei Diablo possibile! @@ -4724,11 +4744,11 @@ LA SCOMPARSA DI LOVE [RM5_6] ~g~Ci è scappato! Spaccagli la corazza con un veicolo o con una bella esplosione! -[PBOAT_1] { re3 change } -Premi il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ per sparare con i cannoni della barca. +[PBOAT_1] +Premi il ~h~tasto ~k~~PED_FIREWEAPON~~w~ per sparare con i cannoni della barca. -[PBOAT_2] { re3 change } -Premi il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ per sparare con i cannoni della barca. +[PBOAT_2] +Premi il ~h~tasto ~k~~PED_FIREWEAPON~~w~ per sparare con i cannoni della barca. [DIAB1_B] Sono El Burro dei Diablo. @@ -4742,11 +4762,11 @@ C'e una corsa d'auto con inizio alla vecchia scuola vicino al ponte Callahan. [DIAB1_F] Procurati un mezzo, il primo che attraversa tutti i posti di blocco vince il premio. -[HM2_1] { re3 change } -Usa i maggiolini radiocomandati per distruggere le auto blindate. Premi il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ per farli esplodere. +[HM2_1] +Usa i maggiolini radiocomandati per distruggere le auto blindate. Premi il ~h~tasto ~k~~PED_FIREWEAPON~~w~ per farli esplodere. -[HM2_1A] { re3 change } -Usa i maggiolini radiocomandati per distruggere le auto blindate. Premi il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ per farli esplodere. +[HM2_1A] +Usa i maggiolini radiocomandati per distruggere le auto blindate. Premi il ~h~tasto ~k~~PED_FIREWEAPON~~w~ per farli esplodere. [HM2_2] ~r~Non sei riuscito a distruggere tutte le auto blindate! @@ -6572,11 +6592,11 @@ Questa memory card (PS2) è già formattata. [FEDSAS4] ;=<> - CAMBIA SELEZIONE -[SPRAY_4] { re3 change } -Usa il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ per sparare col cannone ad acqua. +[SPRAY_4] +Usa il ~h~tasto ~k~~PED_FIREWEAPON~~w~ per sparare col cannone ad acqua. -[SPRAY_1] { re3 change } -Usa il ~h~tasto ~k~~VEHICLE_FIREWEAPON~~w~ per sparare col cannone ad acqua. +[SPRAY_1] +Usa il ~h~tasto ~k~~PED_FIREWEAPON~~w~ per sparare col cannone ad acqua. [LITTLE] LITTLE T @@ -7313,6 +7333,9 @@ CONNESSIONE [FET_AUD] IMPOSTAZIONI AUDIO +[FET_GFX] +IMPOSTAZIONI GRAFICA + [FET_DIS] IMPOSTAZIONI VIDEO @@ -8012,185 +8035,6 @@ RIPRISTINATE IMPOSTAZIONI ORIGINALI [FET_RSC] HARDWARE NON DISPONIBILE - RIPRISTINATE IMPOSTAZIONI ORIGINALI -{ re3 updates } -{ new languages } -[FEL_JAP] -GIAPPONESE - -[FEL_POL] -POLACCO - -[FEL_RUS] -RUSSO - -{ new display menus } -[FET_GFX] -IMPOSTAZIONI GRAFICA - -[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? - -{ more graphics } -[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 - -[FEM_AUT] { aspect ratio related } -AUTO - -{ controls } -[FEC_IVP] -INVERT PAD VERTICALLY - -{ map } -[FEM_TWP] -Toggle Waypoint - -[FEA_FMN] -RADIO SPENTA - -[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 - -[FEC_CCF] -CONFIGURAZIONE - -[FEC_CF1] -CONFIGURAZIONE 1 - -[FEC_CF2] -CONFIGURAZIONE 2 - -[FEC_CF3] -CONFIGURAZIONE 3 - -[FEC_CF4] -CONFIGURAZIONE 4 - -[FEC_CDP] -SCHERMATA CONTROLLER - -[FEC_ONF] -A PIEDI - -[FEC_INC] -IN MACCHINA - -[FEC_VIB] -VIBRAZIONE - -[FET_AGS] -GAMEPAD SETTINGS - [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/polish.txt b/utils/gxt/polish.txt deleted file mode 100755 index 39727554..00000000 --- a/utils/gxt/polish.txt +++ /dev/null @@ -1,8108 +0,0 @@ -{ - 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. -} - -[LETTER1] -abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789'$,.'-?!!SDBF - -[DEFNAM] -Claude---------------------- - -[IN_VEH] -~g~Hej! Wracaj do samochodu! - -[IN_VEH2] -~g~Do tej roboty jest ci potrzebna jakaś gablota! - -[IN_BOAT] -~g~Do tej roboty jest ci potrzebna łódź! - -[HEY] -~g~Nie idź sam, trzymaj się całej paczki! - -[HEY2] -~g~Nie rozdzielajcie się, niech cała grupa porusza się razem! - -[HEY3] -~g~Straciłeś z oczu swojego podopiecznego - wracaj i odszukaj 8-Balla! - -[HEY4] -~g~Jeżeli stracisz Misty, to Luigi zadba, abyś stracił życie! Wracaj po nią! - -[HEY5] -~g~One of the girls is AWOL, Go back and round her up! - -[HEY6] -~g~Twój honor jest związany z osobą Kanbu z Yakuzy. Musisz go chronić! - -[HEY7] -~g~Przydałaby się dodatkowa spluwa. Wracaj i zabierz ze sobą swój kontakt! - -[HEY8] -~g~Ochrona oznacza właśnie to, co podejrzewasz - ochraniaj starego dżentelmena z dalekiego wschodu! - -[HEY9] -~g~Chcesz posłuchać, co się dzieje w mieście? Odszukaj swój kontakt! - -[HELP2_A] -Jeżeli w trakcie biegu chcesz ~h~przyspieszyć~h~, naciśnij klawisz ~h~/~w~. - -[HELP3] -Sprintem można pokonywać wyłącznie krótkie odcinki, dopóki postać ma zapas sił. - -[HELP4_A] -Aby ~h~przyspieszyć~w~, naciśnij klawisz ~h~ ~k~~VEHICLE_ACCELERATE~~w~. - -[HELP4_D] -Aby ~h~przyspieszyć~w~, popchnij ~h~prawy drążek analogowy~w~ do góry. - -[HELP5_A] -Naciśnij klawisz ~h~ ~k~~VEHICLE_BRAKE~~w~, aby ~h~zahamować~w~ lub włączyć ~h~wsteczny bieg~w~, jeżeli pojazd już stoi. - -[HELP5_D] -Pociągnij ~h~prawy drążek analogowy~w~ do tyłu, aby ~h~zahamować~w~ lub włączyć ~h~wsteczny bieg~w~, jeżeli pojazd już stoi. - -[HELP6_A] -Aby skorzystać z ~h~hamulca ręcznego~w~, naciśnij klawisz ~h~ ~k~~VEHICLE_HANDBRAKE~~w~. - -[HELP6_C] -Aby skorzystać z ~h~hamulca ręcznego~w~, naciśnij klawisz ~h~ ~k~~VEHICLE_HANDBRAKE~~w~. - -[HELP6_D] -Aby skorzystać z ~h~hamulca ręcznego~w~, naciśnij klawisz ~h~ ~k~~VEHICLE_HANDBRAKE~~w~. - -[HELP7_A] -Aby ~h~wycelować~w~ karabin snajperski, naciśnij i przytrzymaj klawisz~h~ ~k~~PED_LOCK_TARGET~~w~. - -[HELP7_D] -Aby ~h~wycelować~w~ karabin snajperski, naciśnij i przytrzymaj klawisz~h~ ~k~~PED_LOCK_TARGET~~w~. - -[HELP8_A] -Naciśnij klawisz~h~ ~k~~PED_SNIPER_ZOOM_IN~~w~, aby ~h~przybliżyć ~w~widok przez lunetkę karabinu oraz klawisz~h~ ~k~~PED_SNIPER_ZOOM_OUT~~w~, aby ~h~oddalić~w~ widok. - -[HELP9_A] -Naciśnij klawisz~h~ ~k~~PED_FIREWEAPON~~w~, aby oddać ~h~strzał~w~ z karabinu snajperskiego. - -[HELP10] -Gwiazda szeryfa oznacza, że jesteś poszukiwany przez policję. - -[HELP11] -Im więcej gwiazdek, tym wyższy jest poziom twojej złej sławy. - -[HELP13] -Niekiedy trzeba będzie skorzystać z tras, które nie są zaznaczone na radarze. - -[TIMER] -Jest to misja na czas - musisz ją wykonać, zanim licznik czasu osiągnie zero. - -[MISTY1] -~r~Misty nadaje się już tylko na łóżko w kostnicy! - -[OUT_VEH] -~g~Wysiądź z samochodu! - -[GARAGE] -Wprowadź samochód do garażu, a potem wyjdź na zewnątrz. - -[WANTED1] -~g~Zgub gliniarzy i obniż swój poziom złej sławy! - -[NODOORS] -~g~To nie są sardynki! Załatw furę, która pomieści więcej osób. - -[TRASH] -~g~Doprowadziłeś gablotę do ruiny! Połataj ją trochę! - -[WRECKED] -~r~Samochód jest zniszczony! - -[HORN] -~g~Naciśnij klakson. - -[NOMONEY] -~g~Masz za mało forsy! - -[OUTTIME] -~r~Za wolno, koleś, za wolno! - -[SPOTTED] -~r~Gonią cię! - -[REWARD] -NAGRODA $~1~ - -[GAMEOVR] -KONIEC GRY - -[Z] -Wartość osi Z: ~1~ - -[M_FAIL] -MISJA NIEUDANA! - -[M_PASS] -MISJA ZALICZONA! $~1~ - -[O_PASS] -ROBOTA ZAKOŃCZONA - -[O_FAIL] -ROBOTA NIEUDANA - -[DEAD] -KONIEC Z TOBĄ! - -[BUSTED] -WPADKA! - -[S_PROMP] -Kiedy nie jesteś w trakcie misji, możesz w tym miejscu ~h~zapisać stan gry~w~. Wiąże się to z upływem sześciu godzin w grze. - -[NUMBER] -~1~ - -[SCORE] -$~1~ - -[LOADCAR] -ŁADOWANIE POJAZDU (NACIŚNIJ L1, ABY ANULOWAĆ) - -[CARSOFF] -Wyłączone samochody: - -[CARS_ON] -Uruchomione samochody: - -[TEXTXYZ] -Zapisywanie współrzędnych w pliku... - -[CHEATON] -Tryb ułatwień WŁĄCZONY - -[CHEATOF] -Tryb ułatwień WYŁĄCZONY - -[UZI_IN] -Amu-Nacja zaczyna sprzedawać uzi! - -[IMPORT1] -Wyjdź na zewnątrz i poczekaj na swój samochód. - -[PAGEB1] -Pistolet dostarczony do kryjówki - -[PAGEB2] -Uzi dostarczone do kryjówki - -[PAGEB3] -Pancerz dostarczony do kryjówki - -[PAGEB4] -Obrzyn dostarczony do kryjówki - -[PAGEB5] -Granaty dostarczone do kryjówki - -[PAGEB6] -Koktajle Mołotowa dostarczone do kryjówki - -[PAGEB7] -AK 47 dostarczony do kryjówki - -[PAGEB8] -Karabin snajperski dostarczony do kryjówki - -[PAGEB9] -M16 dostarczony do kryjówki - -[PAGEB10] -Wyrzutnia rakiet dostarczona do kryjówki - -[PAGEB11] -Miotacz ognia dostarczony do kryjówki - -[WANT_A] -Aresztowanie grozi ci dopiero wtedy, kiedy posiadasz ~h~złą sławę. - -[WANT_B] -Twój ~h~poziom złej sławy~w~ przedstawia rząd gwiazdek znajdujących się w prawym górnym rogu ekranu. - -[WANT_C] -W tym momencie twój ~h~poziom złej sławy~w~ wynosi jeden... - -[WANT_D] -dwa... - -[WANT_E] -trzy... - -[WANT_F] -W miarę wzrostu ~h~złej sławy~w~ ścigać cię będą coraz potężniejsze siły policyjne. - -[WANT_G] -Kiedy zaliczysz ~h~'wpadkę'~w~, zostajesz odwieziony na najbliższy posterunek policji. - -[WANT_H] -Gliniarze zarekwirują ci całą broń i będziesz musiał wypłacić im małą łapówkę. - -[WANT_I] -Misja, którą właśnie wykonywałeś, zostanie uznana za nieudaną. - -[WANT_J] -W miarę rozwoju gry odkryjesz sposoby zmniejszania swojego poziomu złej sławy. - -[WANT_K] -Jeżeli jesdziesz samochodem, ~h~WARSZTATY LAKIERNICZE~w~ umożliwiają ~h~usunięcie złej sławy. - -[HEAL_B] -Kiedy zostajesz ~h~'załatwiony'~w~, trafiasz do najbliższego szpitala. - -[HEAL_C] -Tracisz całą broń oraz musisz zapłacić lekarzom trochę forsy za ich wysiłki. - -[HEAL_E] -W trakcie gry poznasz rozmaite metody leczenia bądź chronienia głównego bohatera. - -[DAM] -USZKODZENIA: - -[KILLS] -OFIARY: - -[FARES] -PRZEJAZDY: - -[BULL] -SZTABKI: - -[EVID] -DOWODY: - -[HEALTH] -STAN POJAZDU: - -[COLLECT] -ZEBRANO: - -[BOMB] -Wprowadź samochód do garażu, aby przymocować do niego ~h~bombę~w~. Cena - ~h~$1000. - -[SAVE1] -Aby ~h~zapisać stan gry~w~, przejdź przez drzwi. Jeżeli jesteś w trakcie misji, nie można zapisać gry. - -[SAVE2] -Samochody pozostawione w tym garażu zostaną zachowane wraz z zapisem stanu gry. - -[AMMU] -Wejdź do Amu-nacji, aby zakupić broń. - -[BRIDGE1] -Kiedy naprawa Mostu Callahan zostanie ukończona, będziesz mógł przejechać nim na Wyspę Staunton. - -[TUNNEL] -Kiedy Tunel Porter zostanie otwarty, będziesz mógł przejechać na Wyspę Staunton. - -[LUIGI] -MISJE LUIGIEGO - -[TONI] -MISJE TONIEGO - -[JOEY] -MISJE JOEYA - -[FRANK] -MISJE SALVATORE - -[DIABLO] -MISJE DIABLO - -[ASUKA] -MISJE ASUKI - -[B_SITE] -MISJE PODMIEJSKIE ASUKI - -[KENJI] -MISJE KENJIEGO - -[RAY] -MISJE RAYA - -[LOVE] -MISJE LOVE'A - -[YARDIE] -MISJE DLA GANGU YARDIE - -[HOOD] -MISJE DLA GANGU HOOD - -[CITYZON] -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] -Plaza Portland - -[LITTLEI] -Saint Mark's - -[REDLIGH] -Dz. Czerwonych Świateł - -[TOWERS] -Wzgórza Hepburn - -[HARWOOD] -Harwood - -[ROADBR1] -Most Callahan - -[ROADBR2] -Most Callahan - -[TUNNELP] -Tunel Porter - -[BOMB1] -Warsztat 8-Balla. - -[COM_ZON] -Wyspa Staunton - -[STADIUM] -Aspatria - -[HOSPI_2] -Rockford - -[UNIVERS] -Kampus Liberty - -[CONSTRU] -Fort Staunton - -[PARK] -Park Belleville - -[COM_EAS] -Newport - -[SHOPING] -Bedford Point - -[YAKUSA] -Torrington - -[SUB_ZON] -Shoreside Vale - -[AIRPORT] -Port Lotniczy Francis - -[PROJECT] -Wichita Gardens - -[SUB_IND] -Pike Creek - -[SWANKS] -Cedar Grove - -[BIG_DAM] -Tama Cochrane - -[SUB_ZO2] -Shoreside Vale - -[SUB_ZO3] -Shoreside Vale - -[CAR_1] -Karetka - -[CAR_2] -Straż pożarna - -[CAR_3] -Radiowóz - -[CAR_4] -Enforcer - -[CAR_5] -Barracks - -[CAR_6] -Hipcio - -[CAR_7] -Samochód FBI - -[CAR_8] -Konwojowóz - -[CAR_9] -Moonbeam - -[CAR_10] -Autokar - -[CAR_11] -Flatbed - -[CAR_12] -Linerunner - -[CAR_13] -Śmieciożer - -[CAR_14] -Patriot - -[CAR_15] -Pan Smakołyk - -[CAR_16] -Muł - -[CAR_17] -Yankee - -[CAR_18] -Pony - -[CAR_19] -Bobcat - -[CAR_20] -Rumpo - -[CAR_21] -Blista - -[CAR_22] -Dodo - -[CAR_23] -Autobus - -[CAR_24] -Sentinel - -[CAR_25] -Cheetah - -[CAR_26] -Demon - -[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] -Ogier - -[CAR_37] -Taksówka - -[CAR_38] -Taksówka - -[CAR_39] -Buggy - -[LUIGIS] -Lokal Luigiego - -[GOAWAY] -~g~Już podjąłeś się jednej misji! - -[LUIGGO] -~g~Luigi sprawdza nowe dziewczyny. Przyjdź później! - -[JOEYGO] -~g~Joey wyszedł do miasta z Misty. Przyjdź później. - -[TONIGO] -~g~Toni zabrał swoją Mamuśkę do opery - wpadnij kiedy indziej! - -[KEMUGO] -~g~Maria i Kemuri mają chwilowo inne obowiązki - wpadnij później! - -[KENJGO] -~g~Kenji jest na naradzie Yakuzy. Wpadnij innym razem! - -[RAYGO] -~g~Ray kręci się przy innych kiblach - wpadnij później! - -[LOVEGO] -~g~Donald Love chwilowo zajmuje się innymi sprawami. Umów się z nim na późniejszą godzinę! - -[KENSGO] -~g~Kenji jest zajęty! Wpadnij później! - -[HOODGO] -~g~Hoods są aktualnie niedostępni! - -[WRONGT1] -~g~Jeżeli szukasz zajęcia, wróć między 5:00 a 21:00. - -[WRONGT2] -~g~Jeżeli szukasz zajęcia, wróć między 6:00 a 14:00. - -[WRONGT3] -~g~Jeżeli szukasz zajęcia, wróć między 15:00 a 00:00. - -[GUN_1A] -Użyj klawiszy ~h~~k~~PED_CYCLE_WEAPON_RIGHT~~w~ oraz ~h~~k~~PED_CYCLE_WEAPON_LEFT~ ~w~, aby przełączać się między kolejnymi rodzajami broni. - -[GUN_2A] -Przytrzymaj klawisz ~h~~k~~PED_LOCK_TARGET~ ~w~, aby ~h~wykonać autocelowanie~w~ i naciśnij klawisz ~h~ ~k~~PED_FIREWEAPON~ ~w~, aby ~h~otworzyć ogień! Spróbuj postrzelać do celu... - -[GUN_2C] -Przytrzymaj klawisz ~h~~k~~PED_LOCK_TARGET~ ~w~, aby ~h~wykonać autocelowanie~w~ i naciśnij klawisz ~h~ ~k~~PED_FIREWEAPON~ ~w~, aby ~h~otworzyć ogień! Spróbuj postrzelać do celu... - -[GUN_2D] -Przytrzymaj klawisz ~h~~k~~PED_LOCK_TARGET~ ~w~, aby ~h~wykonać autocelowanie~w~ i naciśnij klawisz ~h~ ~k~~PED_FIREWEAPON~ ~w~, aby ~h~otworzyć ogień! Spróbuj postrzelać do celu... - -[GUN_3A] -Trzymając wciśnięty klawisz ~h~~k~~PED_LOCK_TARGET~,~w~ naciśnij klawisz ~h~~k~~PED_CYCLE_TARGET_LEFT~~w~ lub klawisz ~h~~k~~PED_CYCLE_TARGET_RIGHT~ , aby przełączać się między celami. - -[GUN_3B] -Trzymając wciśnięty klawisz ~h~~k~~PED_LOCK_TARGET~,~w~ naciśnij klawisz ~h~~k~~PED_CYCLE_TARGET_LEFT~~w~ lub klawisz ~h~~k~~PED_CYCLE_TARGET_RIGHT~ , aby przełączać się między celami. - -[GUN_4A] -Trzymając wciśnięty klawisz ~h~~k~~PED_LOCK_TARGET~~w~, możesz chodzić lub biegać, a celownik cały czas pozostanie zablokowany na wybranym celu. - -[GUN_4B] -Trzymając wciśnięty klawisz ~h~~k~~PED_LOCK_TARGET~~w~, możesz chodzić lub biegać, a celownik cały czas pozostanie zablokowany na wybranym celu. - -[GUN_5] -Możesz przećwiczyć wybieranie celów i prowadzenie ognia na tych papierowych celach. Po treningu wróć do wykonywania misji. - -[TAXI1] -~g~Poszukaj pasażera. - -[FARE1] -~g~Cel podróży ~w~'Klub Seksownego Kociaka Miauu'~g~ w Dzielnicy Czerwonych Świateł. - -[FARE2] -~g~Cel podróży ~w~Super Przecena~g~ w Portland View. - -[FARE3] -~g~Cel podróży ~w~'stara szkoła'~g~ w Chinatown. - -[FARE4] -~g~Cel podróży ~w~'kawiarenka Tłustego Joe'~g~ w Callahan Point. - -[FARE5] -~g~Cel podróży ~w~'Amu-Nacja'~g~ w Dzielnicy Czerwonych Świateł. - -[FARE6] -~g~Cel podróży ~w~'Auta na Kredyt'~g~ w Saint Mark's. - -[FARE7] -~g~Cel podróży ~w~'bar topless 'U Woody'ego''~g~ w Dzielnicy Czerwonych Świateł. - -[FARE8] -~g~Cel podróży ~w~'Bistro Marcos'~g~ w Saint Mark's. - -[FARE9] -~g~Cel podróży ~w~'warsztat importowo-eksportowy'~g~ w Portland Harbor. - -[FARE10] -~g~Cel podróży ~w~'Smażony Makaron'~g~ w Chinatown. - -[FARE12] -~g~Cel podróży ~w~'stadion piłkarski'~g~ w Aspatrii. - -[FARE13] -~g~Cel podróży ~w~'kościół'~g~ w Bedford Point. - -[FARE14] -~g~Cel podróży ~w~'kasyno'~g~ w Torrington. - -[FARE15] -~g~Cel podróży ~w~biblioteka Liberty~g~ w Kampusie Liberty. - -[FARE16] -~g~Cel podróży ~w~galeria handlowa~g~ w okolicach Belville Park. - -[FARE17] -~g~Cel podróży ~w~muzeum~g~ w Newport. - -[FARE18] -~g~Cel podróży ~w~siedziba AmCo~g~ w Torrington. - -[FARE19] -~g~Cel podróży ~w~Bolt Burgers~g~ w Bedford Point. - -[FARE20] -~g~Cel podróży ~w~park~g~ w Belville. - -[FARE21] -~g~Cel podróży ~w~Port Lotniczy im. Francisa. - -[FARE22] -~g~Cel podróży ~w~'Tama Cochrane'. - -[FARE24] -~g~Cel podróży ~w~'szpital' ~g~w Pike Creek. - -[FARE25] -~g~Cel podróży ~w~'park'~g~ w Soherside Vale. - -[FARE26] -~g~Cel podróży ~w~'North West Towers'~g~ w Wichita Gardens. - -[NEW_TAX] -WIĘKSZE! SZYBSZE! MOCNIEJSZE! Nowe taksówki Borgnine rozpoczynają pracę w Harwood. Dzwoń już dziś: 555-BORGNINE. - -[TSCORE2] -$~1~ - -[IN_ROW] -~1~Premia za SEKWENCJĘ! $~1~ - -[TTUTOR] -Naciśnij klawisz ~h~~k~~TOGGLE_SUBMISSIONS~~w~, aby włączyć lub wyłączyć misje w taksówce. - -[TTUTOR2] -Naciśnij klawisz ~h~~k~~TOGGLE_SUBMISSIONS~~w~, aby włączyć lub wyłączyć misje taksówkarskie. - -[A_TIME] -+~1~ sekund - -[A_FULL] -~r~Karetka jest pełna! - -[A_RANGE] -~g~Radiostacja w karetce ma zbyt mały zasięg, zbliż się bardziej w stronę szpitala! - -[FTUTOR] -Naciśnij klawisz ~h~~k~~TOGGLE_SUBMISSIONS~~w~, aby włączyć lub wyłączyc misje strażackie. - -[FTUTOR2] -Naciśnij klawisz ~h~~k~~TOGGLE_SUBMISSIONS~~w~, aby włączyć lub wyłączyc misje strażackie. - -[F_PASS1] -Pożar ugaszony! - -[F_RANGE] -~g~Radiostacja w samochodzie strażackim ma zbyt mały zasięg - zbliż się bardziej w stronę remizy! - -[C_BREIF] -~g~Podejrzany ostatnio widziany był w rejonie ~a~. - -[C_RANGE] -~g~Radiostacja w samochodzie ma zbyt mały zasięg, zbliż się bardziej w stronę komisariatu! - -[DODO_FT] -Leciałeś przez ~1~ sekund! - -[EBAL_A] -Znam takie miejsce na skraju Dzielnicy Czerwonych Świateł, w którym możemy się zamelinować na jakiś czas, - -[EBAL_A1] -ale moje ręce są do niczego, więc lepiej ty prowadź, brachu. - -[EBAL_1] -Naciśnij klawisz ~h~ ~k~~VEHICLE_ENTER_EXIT~~w~, aby ~h~wsiąść ~w~lub ~h~wysiąść~w~ z pojazdu. - -[EBAL_1B] -Naciśnij klawisz ~h~ ~k~~VEHICLE_ENTER_EXIT~~w~, aby ~h~wsiąść ~w~lub ~h~wysiąść~w~ z pojazdu. - -[EBAL_2] -~g~Wracaj do samochodu! - -[EBAL_3] -To jest ~h~radar~w~. Korzystaj z niego podczas poruszania się po mieście. Jedź za ~h~kropką~w~ na ~h~radarze~w~, aby dotrzeć do kryjówki! - -[EBAL_D] -Jest tu taki jeden gość, który zna kogo trzeba. Nazywa się Luigi. - -[EBAL_D1] -Niejedno razem przeszliśmy. Dla ciebie też pewnie znajdzie się jakaś robota. Zajrzyjmy do niego! - -[EBAL_E] -Wpadniemy tam, a ja przedstawię cię komu trzeba. - -[EBAL_I] -Szef zaraz wyjdzie do ciebie... - -[EBAL_J] -8-Ball ma jakiś interes na górze. - -[EBAL_K] -Może zrobisz coś dla mnie? - -[EBAL_L] -Trzeba podwieźć jedną z moich dziewczynek. Załatw gablotę i odbierz Misty z kliniki. Przywieź ją tutaj. - -[EBAL_N] -I lepiej cały czas gap się tylko na drogę! - -[EBAL_4] -~r~8-Ball nie żyje~! - -[EBAL_5] -~g~Załatw samochód! - -[EBAL_6] -~g~Zabierz Misty! - -[LM1] -'DZIEWCZYNKI LUIGIEGO' - -[LM2] -'MOJE DZIWKI NIE ĆPAJĄ!' - -[LM3] -'WOŻĄC PANNĘ MISTY' - -[LM5] -'ACH, CÓŻ TO BYŁ ZA BAL...' - -[LM1_2] -~g~Zabierz Misty do klubu 'U Luigiego'. - -[LM1_3] -~g~Naciśnij klakson, aby zaprosić dziewczynę do samochodu. - -[LM1_6] -~g~Wracaj do samochodu! - -[LM1_7] -Zatrzymaj samochód obok Misty i poczekaj, aż wsiądzie. - -[LM1_8] -Możesz wrócić do Luigiego i zapytać go o pracę albo pozwiedzać Liberty City. - -[LM2_A] -Na ulicy pojawił się nowy towar, HEROINA. - -[LM2_E] -Jakiś mądrala wciska ten syf moim dziewczynkom na Portland Harbor. - -[LM2_B] -Jedź tam i zapoznaj jego twarz z bejsbolem! - -[LM2_G] -Należy mi się jakaś rekompensata za tę zniewagę! - -[LM2_1] -~g~Weź jego samochód i przemaluj go. - -[LM2_2A] -Użyj klawisza ~h~ ~k~~PED_FIREWEAPON~~w~, aby zadawać ciosy ~h~pięścią ~w~i ~h~nogą~w~ lub ~h~uderzyć kijem ~w~! - -[LM2_2C] -Użyj klawisza ~h~ ~k~~PED_FIREWEAPON~~w~, aby zadawać ciosy ~h~pięścią ~w~i ~h~nogą~w~ lub ~h~uderzyć kijem ~w~! - -[LM2_2D] -Użyj klawisza ~h~ ~k~~PED_FIREWEAPON~~w~, aby zadawać ciosy ~h~pięścią ~w~i ~h~nogą~w~ lub ~h~uderzyć kijem ~w~! - -[LM2_3] -~g~Schowaj samochód w kryjówce Luigiego! - -[LM2_4] -~g~Przemaluj samochód! - -[LM3_A] -Ej, muszę z tobą pogadać... Spoko, Mick, dokończymy później. - -[LM3_B] -Jak leci, młody? - -[LM3_C] -Syn Dona, Joey, chce się zabawić ze swoją ulubioną dziewczynką, Misty. - -[LM3_D] -Jedź po nią na Wzgórza Hepburn... - -[LM3_E] -ale uważaj, to terytorium gangu Diablo. - -[LM3_F] -Potem odwieź ją do warsztatu Joeya w Trenton, byle szybko. - -[LM3_H] -więc gap się na drogę, a nie na cycki Misty! - -[LM3_2] -~g~Zabierz Misty do Joeya. - -[LM3_4] -~g~Jedź po Misty! - -[LM3_5] -To ty pracujesz teraz jako szoferak dla Luigiego, co? Najwyższy czas, od dawna potrzebujemy zaufanego kierowcy! - -[LM3_7] -Zajmę się tobą za chwilkę, iskierko. - -[LM3_10] -~g~Zdobądź samochód! - -[LM4_B] -Jedź tam i załatw dla mnie ten problem. - -[LM4_C] -Jeżeli potrzebujesz spluwy, wpadnij na zaplecze sklepu Amu-Nacja, naprzeciwko stacji metra. - -[LM5_A] -Przy Moście Callahan, w budynku starej szkoły trwa Bal Policjanta. - -[LM5_B] -Skoro budynek jest stary, to i goście zapewne będą szukać rozrywek 'w starym stylu'. - -[LM5_C] -Moje dziewczyny pracują na ulicach w całym mieście. - -[LM5_D] -Zawieź je na bal, aby mogły solidnie popracować. - -[LM5_1] -~g~Jeżeli zabierzesz za dużo dziewczyn, to się poobijają w środku!~g~ Najpierw wysadź te, które już masz, potem wróć po następne. - -[LM5_2] -~r~Jedna z dziewczyn Luigiego jest już tylko kupą padliny! - -[LM5_3] -~g~Jest ci potrzebny samochód! - -[LM5_4] -~g~Zgarnij dziewczyny pracujące w St. Mark's. - -[LM5_5] -~g~Zawieź dziewczyny na Bal Policjanta! - -[LM5_8] -~g~Dziewczyny na balu: ~1~ - -[JM2] -'ŻEGNAJ 'OKRĄGŁY' LEE CHONG' - -[JM4] -'SZOFER CIPRIANIEGO' - -[JM5] -'TRUP W BAGAŻNIKU' - -[JM1_1] -~g~Zabierz samochód Forelliego do warsztatu 8-Balla na północ stąd, zaraz za salonem 'Auta na Kredyt'. - -[JM1_2] -~g~Potem zaparkuj wózek z powrotem na właściwym miejscu pod Bistro Marcos. - -[JM1_3] -~g~Uaktywnij bombę i spadaj stamtąd! - -[JM1_4] -~g~Niszczysz samochód! Napraw go! - -[JM1_5] -~g~Bomba w samochodzie nie została uzbrojona! - -[JM1_6] -~g~Zaparkuj samochód we właściwej pozycji. - -[JM1_8A] -~y~Hej, przecież to mój kumpel! - -[JM1_8B] -~y~Warsztat jest zautomatyzowany. Po prostu wjedź do środka, zatrzymaj samochód, a obsługa załatwi całą resztę. - -[JM1_8C] -~y~Pierwszy raz montujemy ładunek za darmo, ale za każdym następnym razem będziesz musiał zapłacić. - -[JM2_A] -'Okrągły' Lee Chong handluje prochami dla jakiegoś nowego gangu z Kolumbii... Czy z Kolorado... Nieważne... - -[JM2_B] -Nie pamiętam. Zresztą, kogo to obchodzi. - -[JM2_D] -Ten szczurek właśnie sprzedaje ostatnie sajgonki, rozumiesz? - -[JM2_E] -Masz go zdmuchnąć! - -[JM2_G] -Załatw sobie dziewiątkę. Znajdziesz ten sklep, nie? - -[JM2_H] -Tylko pamiętaj, w Chinatown lepiej dobrze pilnować własnego dupska. To terytorium Triady. - -[JM3_A] -W porządku, mam zamiar skubnąć ciężarówkę z wypłatami. - -[JM3_B] -Codziennie wyjeżdża na miasto z okolic Chinatown. - -[JM3_C] -Zwykłe kule nawet nie zarysują jej pancerza, więc musisz po prostu zdobyć ciężki samochód i zepchnąć ją z drogi. - -[JM3_D] -Jak mocno walniesz, to ci tchórze z ochrony zwieją, gdzie pieprz rośnie. - -[JM3_E] -Wtedy zabierz ciężarówkę do magazynu w dokach - moi ludzie już się nią tam zajmą. - -[JM3_F] -Ciężarówka nie będzie na ciebie czekać, dlatego lepiej się streszczaj. - -[JM3_1] -~g~Zabierz ciężarówkę do kryjówki. - -[JM3_2] -~g~Taranuj ciężarówkę dopóki poziom jej uszkodzeń nie przekroczy 70 procent. - -[JM4_B] -O, to jest ten gość, o którym ci mówiłem! - -[JM4_C] -Posłuchaj, on nie jest Włochem i żaden z niego mechanik, ale potrafi radzić sobie z problemami. - -[JM4_D] -To jest Pops Capo, a to Tony Cipriani. - -[JM4_E] -Tak, Tony Cipriani to ja. - -[JM4_F] -Podrzuć go do restauracji Mamuśki w St. Marks. - -[JM4_G] -Jeszcze jedno. Posłuchaj, planuję taką robótkę, do której potrzebny jest dobry kierowca. Wpadnij później, to pogadamy, OK? - -[JM4_2] -Zaczekaj tutaj. Nie gaś silnika - to nie jest wizyta towarzyska. - -[JM4_3] -To pułapka Triad! Zabierz nas stąd, młody! - -[JM4_4] -Triady myślą, że mogą ze mną zadzierać... ZE MNĄ! - -[JM4_6] -Ostrożnie z tym wozem! Mówiłem, bez numerów! - -[JM4_7] -~g~Zabierz Toniego do restauracji jego matki. - -[JM4_8] -~r~Toni został załatwiony! - -[JM5_A] -Pięknie! Po prostu pięknie. - -[JM5_B] -Oto i facet, którego mi potrzeba! - -[JM5_D] -Jeden z braci Forelli myślał, że jest bystrzejszy niż woda w kiblu, a więc doczekał się odpowiedniej kary. - -[JM5_E] -Zabierz samochód z ciałem do zgniatarki w Harwood, OK? - -[JM5_1] -~g~Zabierz samochód do zgniatarki! - -[JM5_2] -~g~To bracia Forelli! - -[JM6_A] -Ale z niej sztuka, co? - -[JM6_B] -W porząsiu, posłuchaj. Załatw sobie gablotę i jedź do kryjówki w St. Marks. Tam zabierzesz paru moich kumpli. - -[JM6_C] -Robią napad na bank i potrzebują kierowcy. - -[JM6_D] -Dałem im słowo, że znasz się na tym fachu, więc nie spieprz sprawy, dobra? - -[JM6_E] -Dowieź ich do banku przed godziną piątą i nie waż się spóźnić nawet minutę. - -[JM6_2] -Nie gaś silnika, zaraz wracamy. - -[JM6_3] -Zabierz nas stąd!! - -[JM6_4] -Zgub gliniarzy i dowież nas do kryjówki! - -[JM6_6] -~g~Skombinuj jakiś samochód, który będzie trochę mniej rzucał się w oczy. - -[JM6_7] -~g~Musisz zabrać wszystkich 3 bandytów, aby móc przeprowadzić skok! - -[TM1] -'ZABIERZ BRUDY DO PRALNI' - -[TM2] -'HARACZ' - -[TM3] -'SALVATORE ZWOŁUJE NARADĘ' - -[TM4] -'TRIADY I TROSKI' - -[TM5] -'SMAŻONE RYBY' - -[TONI_P] -Mam dla ciebie pilną pracę, Toni! - -[TM1_A] -~w~Siadaj, synu! Siadaj, zamknij jadaczkę i słuchaj. - -[TM1_B] -~w~Więc pralnie nie chcą płacić haraczu, co? - -[TM1_C] -~w~Triady myślą, że mogą mi podskakiwać? - -[TM1_D] -~w~Nauczymy tych dmuchanych twardzieli, co to znaczy być prawdziwym twardzielem. - -[TM1_E] -~w~Tak, damy im lekcję pokory. Mój syn nie będzie znosić upokorzeń od jakiejś Triady! - -[TM1_F] -~w~Twój ojciec, Panie świeć nad jego duszą, jeszcze na Sycylii trzymał ich krótko i nie pozwalał, żeby Triady wciskały mu kit.v - -[TM1_G] -~w~Przepraszam, Mamo. Tak jest, Mamo. - -[TM1_H] -~w~Chcę, żebyś zniszczył ciężarówki z pralni - -[TM1_I] -~w~i rozdeptał każdego sługusa Triad, który wejdzie ci w drogę. - -[TM1_J] -~w~8-Ball załatwi ci wszystko, co jest potrzebne do tej roboty. - -[TM2_A] -~w~TONI gdzieś polazł, znowu będzie straszyć ludzi albo przynajmniej usiłować kogoś przestraszyć. - -[TM2_AA] -~w~Nigdy nie będzie nawet w połowie takim twardzielem jak jego Papa. Zostawił dla ciebie kartkę na stole. - -[TM2_B] -~w~Pralnie zgodziły się zapłacić - spisałeś się dobrze, synu! - -[TM2_C] -~w~Odbierz forsę i przywieź ją tutaj. Uważaj na Triady. - -[TM2_D] -~w~Możliwe, że będą chcieli podłożyć nam świnię, ale nie daj sobie wciskać żadnego gówna. - -[TM2_E] -~w~Nikt, powtarzam, nikt nie zadziera z TONIM CIPRIANI! - -[TM2_1] -~g~Odwieź forsę Toniemu!!! - -[TM2_2] -~g~Zdmuchnąłeś ich wszystkich! - -[TM3_MA] -~w~Nie wiem, gdzie on się podziewa! - -[TM3_MB] -~w~Jak pragnę zdrowia, ten mój chłopak czasami jest taki głupi. - -[TM3_MC] -~w~Jego ojciec był zupełnie inny. Zawsze silny, męski, u steru wydarzeń... - -[TM3_A] -~w~Don Salvatore zwołał naradę. - -[TM3_B] -~w~Masz odebrać z warsztatu limuzynę i jego chłopaka, Joeya. - -[TM3_C] -~w~Potem zabierz Luigiego z klubu i wróć tutaj po mnie. - -[TM3_D] -~w~Razem pojedziemy do domu szefa. - -[TM3_E] -~w~Triady nie znają umiaru. - -[TM3_F] -~w~Chcą wojny, będą mieli wojnę. - -[TM3_G] -~w~Teraz zmykaj. - -[TM3_1] -~g~Odbierz limuzynę od Joeya. - -[TM3_2] -~g~Teraz jedź po Luigiego. - -[TM3_3] -~g~Teraz jedź po Toniego. - -[TM3_4] -~g~Zawieź ferajnę do rezydencji Salvatore. - -[TM3_5] -~y~Triady przygotowały zasadzkę! - -[TM4_B] -~w~A więc WOJNA! Triady używają jako przykrywki fabryki przetwórstwa ryb. - -[TM4_C] -~w~Większość ich interesów odbywa się na targu rybnym w chińskiej dzielnicy. - -[TM4_D] -~w~Pralnie nadal wiszą nam haracz za ochronę. - -[TM4_E] -~w~Żółtki myślą, że Triady ich obronią, więc czas wymierzyć im stosowną karę. - -[TM4_F] -~w~Weź tych dwóch chłopaków i załatwcie szefów Triady! - -[TM4_G] -~w~Tam, u diabła, jeżeli nadarzy się okazja, to załatwcie też paru żołnierzy Triady. - -[TM4_GAT] -~g~Do środka może wjechać tylko ciężarówka Triad. - -[TM5_B] -~w~Wystarczy już tego pitolenia. - -[TM5_C] -~w~Czas wykończyć Triady w Liberty raz na zawsze! - -[TM5_D] -8-Ball założył ładunek wybuchowy w śmieciarce. - -[TM5_E] -~w~To jest bomba z zegarem czasowym, więc jak się spóźnisz, nie pozostanie po tobie żaden ślad. Jedź po śmieciarkę. - -[TM5_F] -~w~Tylko ostrożnie, 8-Ball mówi, że mechanizm jest cholernie czuły i byle wstrząs może spowodować wybuch! - -[TM5_G] -~w~Zaparkuj między cysternami z benzyną i znikaj stamtąd! - -[TM5_H] -~w~Zaparkuj pomiędzy zbiornikami z gazem i spadaj gdzie pieprz rośnie! - -[TM5_I] -~w~Chcę, żeby na miasto spadł deszcz makreli. - -[TM5_J] -~w~Zobaczysz, tym razem to nie żadne wielkanocne bum-bum, tylko prawdziwa plaga biblijna! - -[FM2] -'RÓWNO Z TRAWĄ' - -[FM4] -'OSTATNIE PROŚBY' - -[FM1_A] -~w~Ja i moi ludzie musimy obgadać parę kwestii, - -[FM1_B] -~w~a więc ty zapewnisz mojej dziewczynie rozrywkę na wieczór. - -[FM1_C] -~w~HEJ, MARIA! RUSZ DUPĘ! - -[FM1_D] -~w~Głupia suka, zawsze się tak zachowuje. - -[FM1_E] -~w~A oto i ona, jedyna w swoim rodzaju królowa piękności! - -[FM1_F] -~w~Co tam robiłaś tyle czasu? - -[FM1_G] -~w~Cokolwiek to było, na pewno straciłem na tym jakieś pieniądze. - -[FM1_H] -~w~Chyba nie myślisz, że jestem tu, bo lubię z tobą gadać? - -[FM1_I] -~w~Wsiadaj do samochodu i zamknij swoją wielką gębę. - -[FM1_J] -~w~Możesz zabrać limuzynę, ale przyprowadź ją z powrotem w jednym kawałku, zrozumiano? - -[FM1_K] -~w~I uważaj na nią! Ona lubi pakować się w kłopoty! - -[FM1_L] -~w~Dość! Twój nowy piesek gończy na pewno zna już te historyjki, - -[FM1_M] -~w~a poza tym to przecież kawał chłopa! - -[FM1_N] -~w~Hej, piesku! Odwiedzimy Chico i załatwimy jakieś dopalacze na imprezę. - -[FM1_P] -~g~To właśnie Chico, podjedź do niego. - -[FM1_S] -~w~Jak sobie życzysz, moja pani. - -[FM1_TT] -~w~NALOT POLICYJNY! - -[FM1_1] -~g~Wracaj do limuzyny! - -[FM1_2] -~g~Wsiadaj do limuzyny! - -[FM1_3] -~r~Jeżeli zostawisz Marię, Salvatore każe cię obić jak psa! Zawróćj i zabierz ją ze sobą! - -[FM1_4] -~g~Zostawiłeś kobietę Dona! Wracaj do magazynu i zaczekaj na Marię! - -[FM1_5] -~g~Zawieź Marię do domu Salvatore tak, aby włos jej z głowy nie spadł! - -[FM1_6] -~g~Chico nie będzie czekał wiecznie - zabierz Marię na wybrzeże! - -[FM1_7] -~r~Maria nie żyje! Salvatore nie ucieszy się z tej wiadomości... - -[FM1_8] -~r~Załatwiłeś dostawcę Marii!!! - -[FM2_J] -Zostaw nas na chwilkę samych. - -[FM2_A] -Kartel Kolumbijski produkuje HEROINĘ gdzieś na terenie Liberty. - -[FM2_K] -ale nadal nie wiemy, gdzie, a oni działają tak, jakby z góry znali wszystkie nasze posunięcia. - -[FM2_L] -Za barem 'U Luigiego' pracuje pewien gość. Nazywa się Kudłaty Bob. - -[FM2_M] -Ostatnio wydaje więcej kasy niż mógłby zarobić. - -[FM2_N] -Zazwyczaj po pracy wraca do domu taksówką. Jedź za nim. - -[FM2_O] -A jeżeli okaże się, że to nasz kret... Zabij go! - -[FM2_F] -Oto nasz mały przyjaciel, pan wielka gęba we własnej osobie. - -[FM2_G] -Ktoś cię śledził? Wiesz, że to, co się tu dzieje, to nasz mały sekret. - -[FM2_H] -Nie, nikt mnie nie śledził. Masz mój towar? - -[FM2_I] -Masz swoje prochy, śmieciu, a teraz mów. - -[FM2_P] -A więc rodzina Leone prowadzi teraz wojnę na dwa fronty. - -[FM2_Q] -Z Triadami toczą wojnę o terytorium i wygląda na to, że żadna ze stron nie ma zamiaru się poddać. - -[FM2_R] -Z drugiej strony, Joey Leone wplątał się w krwawe porachunki z rodziną Forellich. - -[FM2_S] -Rodzina Leone z każdym dniem traci ludzi i wpływy w mieście. - -[FM2_T] -Salvatore zaczyna zachowywać się jak niebezpieczny dla otoczenia paranoik. Podejrzewa wszystkich i wszędzie wietrzy spisek. - -[FM2_U] -Ale jeżeli wszyscy są tak lojalni jak ty, to nie ma się o co martwić, prawda? - -[FM2_1] -~g~To Kudłaty Bob! - -[FM2_2] -~g~Kudłaty wyszedł z klubu - śledź go! - -[FM2_5] -~g~Zabierz go do Portland Harbor. - -[FM2_6] -~r~Kudłaty nie wsiądzie do porozbijanej taksówki! - -[FM2_7] -~r~Kudłaty zwiał! Spotkanie odwołane! - -[FM2_8] -~g~Walnij Kudłatego Boba! - -[FM2_9] -~r~Kudłaty Bob nie żyje! - -[FM2_10] -~r~Kudłaty ucieka! - -[FM2_11] -~g~Zaparkuj przed klubem 'U Luigiego'! Kudłaty Bob powinien niedługo wyjść. - -[FM2_12] -~r~Zgubiłeś go! - -[FM3_A] -~w~Powinniśmy sprzątnąć tych łajdaków z Kartelu, - -[FM3_B] -~w~ale dopóki mamy na głowie wojnę z Triadami, nie mamy na to dość sił. - -[FM3_C] -~w~Kartel zarabia ogromne pieniądze na sprzedaży tej syfiastej HEROINY. - -[FM3_D] -~w~Jeżeli przypuścimy otwarty atak, rozsmarują nas na miazgę. - -[FM3_E] -~w~Zapewne produkują prochy na tym wielkim statku, do którego doprowadził cię Kudłaty. - -[FM3_F] -~w~Dlatego właśnie musimy działać z głową. I to z twoją głową. - -[FM3_G] -~w~Chciałbym prosić cię, abyś zrobił mi osobistą przysługę i zniszczył tę fabrykę HERY, Salvatore. - -[FM3_H] -~w~Jeżeli to ci się uda, spędzisz resztę życia w dostatku. - -[FM3_I] -~w~Spotkaj się z 8-Ballem. On zna się na dynamicie jak nikt inny - będziesz potrzebował jego doświadczenia. - -[FM3_8A] -~w~Mój czarnuch! Salvatore już dzwonił, - -[FM3_8B] -~w~ale do takiej roboty potrzeba będzie sporo fajerwerków. - -[FM3_8D] -~w~ale chyba wiesz, że żaden dolar z tej sumy nie zostanie zmarnowany. - -[FM3_8E] -~w~W porządku, zróbmy to! - -[FM3_8F] -~w~Mogę nastawić to maleństwo na wybuch, ale rany na moich łapskach jeszcze się nie wygoiły i nie poradzę sobię z giwerą. - -[FM3_8G] -~w~Weź karabin i rozwal parę łbów. - -[FM3_4] -~g~Zatrzymaj samochód i wypuść 8-Balla! - -[FM3_7] -~r~Zgubiłeś 8-Balla! - -[FM3_8] -~r~Strażnicy podnieśli alarm! - -[FM4_A] -~w~To mój ulubiony czyściciel. - -[FM4_B] -~w~Jestem z ciebie dumny, chłopcze Wybiłeś tym tępakom to ich gówno z głów. - -[FM4_C] -~w~Zanim będziemy mogli uczcić twój sukces, mam dla ciebie jeszcze jedną małą robótkę. - -[FM4_D] -~w~Na następnej przecznicy stoi samochód z klubu Lugiego. - -[FM4_E] -~w~W środku jest cały upaćkany mózgiem. - -[FM4_F] -~w~Musieliśmy pomóc jednemu gościowi namyślić się nad paroma sprawami i wyszedł z tego niezły bałagan. - -[FM4_H] -~w~Zabierz ten samochód do zgniatacza, zanim wypatrzą go gliniarze. - -[AM3] -'PAPARAZZO NA DNIE' - -[AM4] -'WYPŁATA DLA RAYA' - -[AM5] -DWULICOWY TANNER - -[AM1_A] -Zanim przejdziemy do jakichkolwiek interesów, musimy wyjaśnić sobie - -[AM1_B] -pewne kwestie. Wyłóżmy nasze karty na stół. - -[AM1_C] -Należę do Yakuzy i wiem, że pracowałeś dla rodziny Salvatore Leone. - -[AM1_D] -Myślę, że znajdzie się dla ciebie miejsce w naszej organiacji. - -[AM1_E] -Ale najpierw musisz udowodnić, że naprawdę zerwałeś wszystkie związki z Mafią. - -[AM1_G] -Zadbaj, aby nie dotarł do celu żywy. - -[AM1_H] -W międzyczasie, ja i Maria pogawędzimy o starych dobrych czasach. - -[AM1_I] -Asuka, przyszedł twój masażysta. - -[AM1_J] -To nie żaden masażysta. - -[AM1_1] -~g~Salvatore wychodzi z knajpy 'U Luigiego'! - -[AM1_2] -~r~Zostałeś zauważony! - -[AM1_3] -~r~Spudłowałeś do Salvatore! - -[AM1_4] -~r~Znakomicie, wystraszyłeś cel! I ty uważasz się za zawodowca? - -[AM1_5] -~g~Jedź do Dzielnicy Czerwonych Świateł i poczekaj, aż Salvatore wyjdzie z klubu. - -[AM1_7] -~r~Salvatore siedzi sobie bezpiecznie w domu i sączy swój koktajl. Nie spodziewaj się, że ktoś nazwie cię 'Szakalem'! - -[AM1_8] -~g~Salvatore będzie wychodzić z klubu Luigiego około ~1~:~1~ - -[AM2_4] -~g~Skradałeś się z gracją słonia w składzie porcelany! - -[AM3_A] -Jakiś nieproszony reporter wtykał tu swój nos - -[AM3_B] -Maria i ja jedziemy razem na małe wakacje, a ty pozbądź się tego zboczonego podglądacza. - -[AM4_A] -A oto i mój ulubiony człowiek do każdej roboty! - -[AM4_B] -Maria chciałaby cię widzieć, ale... nie może podejść. Powiem jej, że pytałeś. - -[AM4_C] -Kto tam? Asuka? Wiem, że byłam niegrzeczną dziewczynką, ale naprawdę muszę do toalety! OK? - -[AM4_D] -Czas, abyś poznał naszą wtyczkę w tutejszej policji. - -[AM4_E] -Tu masz zapłatę za ostatnią robótkę, jaką dla nas wykonał. - -[AM4_F] -Facet jest bardzo ostrożny, to chyba jasne. - -[AM4_G] -Jak najszybciej odszukaj budkę telefoniczną w Torrington i czekaj na instrukcje. - -[AM5_A] -Maria i ja wyszliśmy na zakupy. - -[AM5_B] -Nasze źródło w policji donosi, że jeden z naszych kierowców to policyjny tajniak. - -[AM5_C] -Bez samochodu nie jest groźny. Przyczepiliśmy do jego gabloty nadajnik. - -[AM5_D] -Niech się dowie, czym grozi taka zabawa. - -[AM5_1] -Tanner chyba ma coś do ciebie! - -[AS1] -'PRZYNĘTA' - -[AS2] -'ESPRESSO NA WYNOS!' - -[AS4] -'OKUP' - -[AS1_A] -~w~Miguel chyba uważa, że źle go traktuję. - -[AS1_B] -~w~Mimo to zdradził mi, jak bardzo Catalina obawia się twojej zemsty. - -[AS2_A] -~w~Nie doceniliśmy planów, jakie Catalina wiąże ze swoją heroiną. - -[AS2_B] -~w~Marzy jej się coś więcej niż banda Yardies sprzedająca prochy na rogu. - -[AS2_D] -~w~Sprzedają herę w swojej sieci budek ulicznych. - -[AS2_1] -~g~Wszystkie budki z espresso w Portland zostałyzniszczone!! - -[AS2_2] -~g~Wszystkie budki z espresso na Wyspie Staunton zostały zniszczone!! - -[AS2_3] -~g~Wszystkie budki z espresso w Shoreside Vale zostały zniszczone!! - -[AS2_4] -~r~Kartel ostrzegł swoich dilerów!! - -[AS2_5] -~g~W Shoreside Vale i na Wyspie Staunton nadal stoi kilka budek z espresso! - -[AS2_6] -~g~W Shoreside Vale nadal stoi kilka budek z espresso! - -[AS2_7] -~g~Na Wyspie Staunton nadal stoi kilka budek z espresso! - -[AS2_8] -~g~W Portland nadal stoi kilka budek z espresso - -[AS2_9] -~g~W Portland i Shoreside Vale nadal stoi kilka budek z espresso - -[AS2_10] -~g~W Portland i na Wyspie Staunton nadal stoi kilka budek z espresso - -[AS2_12] -~g~Badaj dzielnice miasta i szukaj budek Espresso-2-Go! - -[AS3_A] -~W~Przyciskamy już teraz czy poczekamy, aż trochę osłabnie? - -[AS3_B] -~w~Popieść go trochę... - -[AS3_D] -~w~Mój Człowiek do Każdej Roboty! - -[AS3_E] -~w~Nudziłam się, więc wpadłam żeby dotrzymać Asuce towarzystwa. - -[AS3_1] -~g~Odszukaj ~r~łódź~g~ i dopłyń do ~b~boi! - -[AS3_3] -~g~Odczekaj, aż ~y~samolot~g~ rozpocznie podejście!! - -[AS3_5] -~g~Zbierz ładunek! - -[AS3_4] -~g~Użyj wyrzutni rakietowej aby zestrzelić ~y~samolot~g~!! - -[AS3_2] -~b~Płyń do boi wyznaczających lądowisko! ~y~Samolot wykonuje już ostatnie podejście!! - -[AS3_6] -~g~~1~ Z 8! - -[KM1] -'UCIECZKA KANBU' - -[KM3] -'ZDUSIĆ UKŁADY' - -[KM4] -'SHIMA' - -[KM5] -'UDERZENIE' - -[KM1_A] -Moja siostra ma o tobie dobre mniemanie, - -[KM1_E] -choć nie mogę sobie wyobrazić, żeby gaijin mógł dać nam coś innego niż rozczarowania. - -[KM1_B] -Być może mógłbyś pomóc w rozwiązaniu problemu, który leży mi na sercu. - -[KM1_F] -Rzecz jasna, porażka oznacza utratę honoru. - -[KM1_C] -Kanbu, członek Yakuzy, przebywa w areszcie, gdzie czeka na proces. - -[KM1_G] -To ceniony członek rodziny. - -[KM1_H] -Odbij go z aresztu i przywieź do dojo w Bedford Point. - -[KM1_D] -Dziękujemy ci za twoje bezinteresowne działania. Jeżeli kiedykolwiek będziesz potrzebował pomocy, dojo z radością przydzieli ci dwóch wojowników, którzy staną u twego boku. - -[KM1_1] -~g~Ukradnij radiowóz! - -[KM1_2] -~g~Załóż bombę w samochodzie! - -[KM1_3] -~g~Teraz zawieź go do dojo Yakuzy. - -[KM1_5] -~g~W porządku, teraz jazda na posterunek. - -[KM1_6] -~g~Zamontuj w samochodzie ładunek wybuchowy! - -[KM1_7] -~g~Tylko dla pojazdów policyjnych! - -[KM1_9] -~r~Nie użyłeś bomby samochodowej, aby zniszczyć mur. - -[KM1_10] -~r~Kanbu z Yakuzy jest trupem - tak samo jak twój honor! - -[KM1_11] -~r~Ściągnąłeś sobie na głowę kłopoty! - -[KM2_A] -Nie sposób przecenić znaczenia etykiety w tej branży. - -[KM2_B] -Na moją hańbę, pewien człowiek oddał mi kiedyś przysługę, a ja nigdy nie miałem okazji, aby mu się odwdzięczyć. - -[KM2_C] -Konikiem tego człowieka są samochody. Poprosił mnie, abym zgromadził pewne modele aut do jego kolekcji. - -[KM2_F] -Od tego zależy mój honor. - -[KM2_2] -~g~Samochód dostarczony. - -[KM3_A] -Kiedy nadciągają ciemne chmury, głupiec odwraca wzrok, a mędrzec stawia im czoła. - -[KM3_B] -Kartel Kolumbijski zignorował liczne prośby, aby nie naruszać naszych interesów w Liberty City. - -[KM3_C] -Teraz negocjują układ z Jamajczykami, aby jeszcze bardziej nas upokorzyć. - -[KM3_D] -Właśnie finalizują układ o podziale wpływów w mieście. - -[KM3_F] -Weź jednego z moich ludzi, ukradnij samochód gangu Yardie i jedź przekazać Kolumbijczykom nasze wyrazy szacunku. - -[KM3_E] -Nasz honor wymaga, aby wszyscy umarli. - -[KM3_2] -~g~Jedź po swój kontakt. - -[KM3_3] -~g~Spotkanie odbędzie się na parkingu szpitalnym w Rockford! - -[KM3_4] -~r~Uciekają! - -[KM3_6] -~g~Zabij ich, zabij ich wszystkich! - -[KM3_8] -~g~Aby wykonać zadanie, potrzebujesz samochodu gangu Yardie. - -[KM3_9] -~r~Jeden z Kolumbiczyków nie żyje, układ odwołany. - -[KM3_10] -~r~Twój kontakt nie żyje! - -[KM4_A] -Jeżeli chcesz być naprawdę silny, nie możesz nigdy okazywać słabości. - -[KM4_C] -Jak najszybciej odbierz pieniądze, abyśmy mogli wpłacić je na konto kasyna. - -[KM4_1] -Nie mam wam czym zapłacić, ale nawet gdybym miał, to i tak bym tego nie zrobił! - -[KM4_9] -Jakaś banda szczeniaków właśnie stąd uciekła! Zabrali wszystko! - -[KM4_2] -Nie ma z was żadnego pożytku. - -[KM4_10] -A czy ty w ogóle należysz do Yakuzy...? - -[KM4_3] -Nie za to wam płacę, obwiesie. Gdybym chciał takiej ochrony, to zaprosiłbym cholerną policję. - -[KM4_4] -~g~Wymierz karę gangowi odpowiedzialnemu za napad i odzyskaj ~b~opłatę za ochronę~g~! - -[KM4_7] -~r~Sklepikarz wydał ostatnie tchnienie! - -[KM4_5] -Donald Love zaprasza cię do swojego ogrodu herbacianego na rozmowę. - -[KM4_6] -Tam są pieniądze! - -[KM4_8] -~r~Teczka odebrana! - -[KM5_A] -TO TY! Wybrałeś najwłaściwszy moment, aby pokazać swoją bezwartościową postać! - -[KM5_B] -Zdaje się, że twoje marne próby, aby odwieść Jamajczyków - -[KM5_B1] -od skumplowania się z Kartelem były całkowicie chybione! - -[KM5_C] -Handlarze Yardie krążą po ulicach Liberty, sprzedając woreczki HERY tak, jakby sprzedawali hotdogi! - -[KM5_D] -Te wieprze z Kartelu śmieją się z nas, ze mnie! - -[KM5_E] -Dam ci ostatnią szansę, abyś mógł dowieść, że zaufanie, jakim obdarzyła cię moja siostra, nie było bezpodstawne. - -[KM5_F] -Rozjedź tych śmieci i spłucz swoją hańbę w potokach krwi naszych wrogów!!! - -[KM5_3] -~r~Nie udało ci się zabić co najmniej ~1~ członków gangu Yardie. - -[KM5_4] -~g~Gratulacje, zabiłeś ~1~ członków gangu Yardie. - -[KM5_5] -~g~Gratulacje, zabiłeś ~1~ członków gangu Yardie. PREMIA $~1~. - -[RM1] -'UCISZYĆ KAPUSIA' - -[RM3] -'GONIĄC DOWODY' - -[RM4] -'NA RYBY' - -[RM5] -'DOKOŃCZYĆ DZIEŁO' - -[RM1_D] -Siedzi pod ochroną policji w budynku WitSec w Newport, w którymś z mieszkań za parkingiem. - -[RM1_E] -Podpal tę budę, to powinno ich wypłoszyć. Wtedy na nich zapoluj - zadbaj, aby McAffrey już nigdy z nikim nie rozmawiał! - -[RM1_1] -~g~Znajdź miejsce, w którym przebywa chroniony świadek. - -[RM1_2] -~g~Wykończ McAffrey'a! - -[RM2_A1] -Hej, synu, chodź tutaj! - -[RM2_A] -Mój stary kumpel z wojska prowadzi sklepik w Rockford. - -[RM2_D] -Potrzeba mu wsparcia. W zamian możesz liczyć na spore obniżki cen na spluwy, które ma na składzie. - -[RM2_E] -Ray wspominał, że ktoś przyjdzie... ale nie myślałem, że przyśle takiego szczeniaka. - -[RM2_F] -No cóż, trzy ramiona to zawsze więcej niż jedno, więc bierz broń według życzenia. - -[RM2_G] -~g~Zasuwaj i pilnuj Phila! - -[RM2_H] -~r~Phil zginął! - -[RM2_L] -No, no! Gdybyś był z nami wtedy w Nikaragui, może jeszcze miałbym swoją rękę! - -[RM2_N] -Zostaw forsę. Teraz lepiej znikaj, sam zajmę się policją. - -[RM3_D] -Dowody będą przewożone przez miasto. - -[RM3_E] -Musisz staranować ten samochód i zebrać wszystkie dowody, co do jednego! - -[RM3_F] -Kiedy już je zbierzesz, zostaw je w samochodzie i podpal go. - -[RM3_G] -Obaj będziemy mieć sporo korzyści, chłopcze. - -[RM3_1] -~g~Zostaw dowody w samochodzie i podpal wóz. - -[RM3_4] -~g~Samochód prokuratury zgubił dowody! - -[RM3_6] -~r~Teraz te fotografie obejrzy całe miasto! - -[RM3_7] -~g~Podpal samochód! - -[RM4_A] -Podejrzewam, że mój wspólnik to kret. - -[RM4_C] -On każdego wieczoru wypływa na morze, w okolice latarni przy Portland Rock, aby łowić ryby. - -[RM4_D] -Podwędź policyjną łódź i dopilnuj, aby poszedł na dno razem ze swoimi zdradzieckimi planami! - -[RM4_1] -~g~Ukradnij łódź policyjną! - -[RM4_2] -~g~Płyń do latarni morskiej i załatw kolegę Raya! - -[RM5_A] -Ty nieudaczny łajdaku! - -[RM5_A1] -Schrzaniłeś robotę! Moja dupa już się zaczyna smażyć, a ty nie potrafisz zabić nawet cholernej muchy. - -[RM5_B] -Zapłaciłem ci kupę szmalu, żebyś sprzątnął świadka, a on dalej żyje! - -[RM5_B1] -Dzisiaj będzie składał pierwsze zeznania w Sądzie Federalnym! - -[RM5_C] -Lada chwila będzie wyjeżdżał ze Szpitala Ogólnego Carson w Rockford. - -[RM5_D] -Jeżeli on zacznie sypać, koniec ze mną... - -[RM5_E] -więc lepiej zrób to, za co ci zapłaciłem! - -[RM5_1] -~g~Przechwyć karetkę. - -[RM5_2] -~g~Zostałeś rozpoznany! - -[RM5_3] -~g~To była tylko przynęta! - -[RM5_4] -~g~Kule nie przebiją pancernego kadłuba! - -[RM5_5] -~g~Pancerna karoseria jest ognioodporna! - -[RM5_7] -~r~Świadek dotarł na miejsce! - -[RM5_8] -~g~Świadek poszedł na dno! - -[LOVE2] -'SPRZĄTNĄĆ WAKA-GASHIRĘ' - -[LOVE3] -'KROPLA W OCEANIE' - -[LOVE1_A] -Przede wszystkim pozwól mi podziękować, że zechciałeś zająć się tą sprawą o charakterze osobistym. - -[LOVE1_F] -W dzisiejszych czasach ludzie nie szanują żadnych porozumień. - -[LOVE1_D] -Usiłują wymusić na mnie dodatkowe pieniądze, ale ja nie wierzę w renegocjacje. - -[LOVE1_E] -Umowa to umowa, więc nie powinni spodziewać się ode mnie nawet grosza. - -[LOVE1_G] -Uratuj mojego przyjaciela, zrób wszystko, co będzie trzeba. - -[LOVE1_2] -~g~Uratuj starego pana z dalekiego wschodu. - -[LOVE1_3] -~g~Zabierz starego pana z dalekiego wschodu do budynku Donalda Love'a. - -[LOVE1_4] -~g~Stary pan z dalekiego wschodu musi się znajdować w jednym z tych garaży... - -[LOVE1_6] -~r~Flaki starego pana z dalekiego wschodu zostały rozsmarowane po całej ulicy! - -[LOVE1_7] -~g~Brama otworzy się wyłącznie przed samochodem gangu kolumbijskiego. - -[LOVE2_A] -Nic tak nie wpływa na spadek cen nieruchomości, jak stara dobra wojna gangów. - -[LOVE2_B] -No, może z wyjątkiem wybuchu epidemii... ale w tym wypadku nie trzeba się posuwać aż tak daleko. - -[LOVE2_C] -Zauważyłem, że Yakuza i Kolumbijczycy nie są do siebie przyjaźnie nastawieni. - -[LOVE2_D] -Skorzystajmy z tej szansy. - -[LOVE2_E] -Masz zabić Waka-gashirę gangu Yakuzy, Kenji'ego Kasena. - -[LOVE2_F] -Kenji właśnie jest na spotkaniu na szczycie parkingu piętrowego w Newport. - -[LOVE2_G] -Załatw sobie samochód Kartelu i rozsmaruj go na ścianie! - -[LOVE2_H] -Zrób to tak, aby Yakuza obciążyła Kartel za ten akt. - -[LOVE2_1] -~g~Jedź do Fort Staunton i zwędź samochód gangu kolumbijskiego! - -[LOVE2_2] -~g~Teraz jedź na ~p~parking wielopiętrowy w Newport~p~ i załatw Kenjiego! - -[LOVE2_3] -~r~Jeżeli pojedziesz tam bez samochodu Kartelu, zostaniesz rozpoznany! - -[LOVE2_4] -~r~Członkowie Yakuzy cię rozpoznali! - -[LOVE2_6] -~r~Zabiłeś wszystkich świadków!!! - -[LOVE3_A] -W czasach hipokryzji moralnej ciężko jest zdobyć niektóre cenne towary z zagranicy. - -[LOVE3_C] -Pilot zrzuci do wody kilka pakunków. - -[LOVE3_D] -Zbierz je, zanim wpadną w niepowołane ręce. - -[LOVE3_1] -~g~Załatw sobie ~r~łódź~g~ i płyń za ~y~samolotem~g~! - -[LOVE4] -'GRAND THEFT AERO' - -[LOVE5] -'KONWOJENT' - -[LOVE4_A] -Dziękuję za odzyskanie paczek. Przykro mi to mówić, ale była to jedynie przynęta. - -[LOVE4_B] -Nie chciałem cię urazić, po prostu czasami w interesach trzeba tak postąpić. - -[LOVE4_C] -Mój prawdziwy cel przez cały czas był ukryty w samolocie. - -[LOVE4_F] -Przekupiłem kogo trzeba. - -[LOVE4_1] -~r~Są tu ludzie z Kartelu Kolumbijskiego! - -[LOVE4_2] -~g~Pakunek zniknął! Wyśledź Kolumbijczyków i odzyskaj ładunek. - -[LOVE4_3] -~g~Firma budowlana Panlantic Construction? - -[LOVE4_5] -~g~Paczka powinna nadal być w samolocie... - -[LOVE4_6] -~g~Wjedź windą na wieżę! - -[LOVE5_B] -Mój orientalny przyjaciel potrzebuje eskorty, kiedy będze wiózł mój najnowszy nabytek do specjalistów. - -[LOVE5_1] -~g~Ruszamy! - -[LOVE5_2] -~g~Potrzebujesz samochodu! - -[LOVE5_3] -~g~Jedź przodem i zbadaj wylot tunelu! - -[LOVE5_4] -~r~Osłaniaj ciężarówkę! - -[RM6] -'NA WIDELCU' - -[RM6_A] -Nikt cię nie śledził? To dobrze. - -[RM6_B] -To już koniec. Jestem po uszy w gównie i nadal się zapadam. - -[RM6_D] -Jestem na widelcu, więc postanowiłem zniknąć. - -[RM6_E] -Zawieź mnie na mój samolot, a dobrze ci się odwdzięczę! - -[RM6_666] -Zatroszcz się o mojego kuloodpornego Patriota. Do zobaczenia w Miami, Ray. - -[CAT1] -'OKUP' - -[CAT2] -'WYMIANA' - -[CAT1_A] -Mam twoją słodziutką Marię. Jeżeli nie chcesz, żeby jej twarz wyglądała jak po randce z rzeźnikiem, - -[CAT2_F] -Złamałam paznokieć i cała jestem potargana. Nie do wiary! Ta fryzura kosztowała mnie pięćdziesiąt dolców! - -[CAT2_G] -Strasznie się bałam, ale w końcu powiedziałam sobie: jesteś już przecież dużą dziewczyną. - -[CAT2_H] -Och, będziemy się wspaniale bawić, bo moja siostra powiedziała, że chciałaby wpaść do nas ze swoimi dziećmi, - -[CAT2_I] -bo jej mąż znowu się gdzieś szwenda i... - -[CAT1_E] -XXXX - -[CAT1_F] -Dotrzyj do Cataliny sprzed upływem wyznaczonego czasu! - -[CAT_MON] -~g~Nie masz jeszcze tyle pieniędzy. Potrzebujesz $500.000 - -[BITCH_D] -~g~Maria nie żyje! - -[WEATHER] -POGODA WYMUSZONA - -[WEATHE2] -ZWYKŁA POGODA - -[8001] -Marnie kończysz!! - -[1000] -JESTEŚ MARTWY - -[1001] -JESTEŚ MARTWY - -[1002] -JESTEŚ MARTWY - -[1003] -JESTEŚ MARTWY - -[1004] -JESTEŚ MARTWY - -[1005] -WPADKA - -[1006] -WPADKA - -[1007] -WPADKA - -[1008] -WPADKA - -[1009] -WPADKA - -[GA_4] -Bomby samochodowe kosztują 1000 dolarów za sztukę. - -[GA_5] -W twoim samochodzie bomba już została zainstalowana. - -[GA_6] { re3 change } -Zaparkuj wóz, włącz mechanizm klawiszem ~h~~k~~VEHICLE_FIREWEAPON~~w~ i W NOGI! - -[GA_7] { re3 change } -Uaktywnij bombę za pomocą klawisza ~h~~k~~VEHICLE_FIREWEAPON~~w~. Bomba wybuchnie w momencie włączenia silnika. - -[GA_8] -Użyj detonatora, aby aktywować bombę. - -[GA_9] -Zgromadziłeś ~1~ z 10 samochodów specjalnych. - -[GA_10] -Ładne cacko. Oto twoje ~1~$. - -[GA_11] -Mamy już taki wózek. Dla nas jest on bez wartości. - -[GA_12] -Bomba uzbrojona - -[GA_13] -Robota zawodowca. Skombinuj dla mnie wszystkie wózki z listy, a czeka cię premia. - -[GA_14] -Wszystkie samochody? DOSKONALE! Oto niespodzianka dla ciebie! - -[GA_15] -Mam nadzieję, że podoba ci się nowy kolor. - -[GA_16] -Lakierowanie zakończone. - -[GA_19] -Nie interesuje nas ten model. - -[GA_20] -Mamy tego więcej, niż możemy zepchnąć. Sorry, facet, ale nie wchodzę w to. - -[CR_1] -Dźwig nie jest w stanie podnieść tego pojazdu. - -[PU_MONY] -Nie masz dość forsy. - -[CO_ALL] -Masz już wszystkie. Oto mała niespodzianka... - -[PAUSED] -GRA ZATRZYMANA - -[HEALTH1] -Spadaj stąd! Jesteś zdrów jak ryba. - -[HEALTH2] -Koszty opieki medycznej. - -[HEALTH3] -Trochę cię połatam. - -[HEALTH4] -To kosztuje 250 dolarów. - -[FEB_STA] -Statystyki - -[FEB_BRI] -Zadania - -[FEB_CON] -Sterowanie - -[FEB_AUD] -Audio - -[FEB_DIS] -Ekran - -[FEB_LAN] -Język - -[FEP_STA] -STATYSTYKI - -[FEP_BRI] -CELE - -[FEP_CON] -STEROWANIE - -[FEP_AUD] -DŹWIĘK - -[FEP_DIS] -EKRAN - -[FEP_LAN] -JĘZYK - -[FEF_ST1] -Kto tu jest złym facetem? - -[FEF_ST2] -Ile paniki dzisiaj wzbudziłeś? - -[FEF_BR1] -Straciłeś wątek? - -[FEF_CO1] -Potrzebujesz lepszej kontroli, perfekcjonisto? - -[FEF_CO2] -Określ taką konfigurację klawiszy sterujących, która najlepiej odpowiada preferowanemu stylowi gry. - -[FEF_SA1] -Trzymaj wszystko na kupie! - -[FEF_SA2] -Zapisuj i wczytuj swoje gry - -[FEF_AU1] -Więcej czadu! - -[FEF_AU2] -Wybierz stację radiową oraz efekty dźwiękowe - -[FEF_DI1] -Zmień grę! - -[FEF_DI2] -Dostosuj grę do odbiornika TV - -[FEF_LA1] -O czym gadasz? - -[FEF_LA2] -Wybierz preferowany język - -[FEB_PMB] -Cele poprzednich misji: - -[FEC_NA] -N.D. - -[FEC_CWL] -Przełącz rodzaj broni w lewo - -[FEC_CWR] -Przełącz rodzaj broni w prawo - -[FEC_LOF] -Spójrz do przodu - -[FEC_TAR] -Cel - -[FEC_MOV] -Ruch - -[FEC_CAM] -Tryby kamery - -[FEC_PAU] -Pauza - -[FEC_ENV] -Wsiadanie do pojazdu - -[FEC_JUM] -Skok - -[FEC_ATT] -Atak lub strzał z broni - -[FEC_RUN] -Bieg - -[FEC_FPC] -Kamera - widok z oczu postaci - -[FEC_LL] -Spójrz w lewo - -[FEC_LB1] -Spójrz - -[FEC_LB2] -do tyłu - -[FEC_LB] -Spójrz do tyłu - -[FEC_LR] -Spójrz w prawo - -[FEC_HOR] -Klakson - -[FEC_VES] -Sterowanie w pojeździe - -[FEC_RSC] -Przełącz stacje radiowe - -[FEC_BRA] -Hamulec lub wsteczny - -[FEC_HAB] -Hamulec ręczny - -[FEC_CAW] -Broń w samochodzie - -[FEC_ACC] -Przyspieszenie - -[FEC_SMT] -Włączenie misji specjalnych - -[FEA_OUT] -Wyjście: - -[FEA_ST] -stereo - -[FEA_MNO] -mono - -[FEA_NON] -Brak - -[FEA_FM0] -HEAD RADIO - -[FEA_FM1] -DOUBLE CLEFF FM - -[FEA_FM2] -JAH RADIO - -[FEA_FM3] -RISE FM - -[FEA_FM4] -LIPS 106 - -[FEA_FM5] -GAME FM - -[FEA_FM6] -MSX FM - -[FEA_FM7] -FLASHBACK 95.6 - -[FEA_FM8] -GADUŁA 109 - -[FED_DBG] -Menu debugowania - -[FED_RID] -Ponowne wczytanie IDE - -[FED_RIP] -Ponowne wczytanie 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] -Żądania przetworzenia w trybie debugowania - -[FED_SCP] -gbShowCollisionPolys - -[FEM_MCM] -Menu karty pamięci - -[FEM_RMC] -Register MemCard One - -[FEM_TFM] -Próbne formatowanie karty pamięci 1 - -[FEM_TUM] -Próbne odformatowanie karty pamięci 1 - -[FEM_CRD] -Utwórz katalog główny - -[FEM_CLI] -Twórz i wczytuj ikony - -[FEM_FFF] -Fill First File with Guff - -[FEM_SOG] -Zapisz tylko grę - -[FEM_CES] -Check Every 0kB4 Save - -[FEM_STG] -Zapisz grę - -[FEM_STS] -Zapisz grę pod nazwą GTA3 - -[FEM_CPD] -Utwórz chroniony katalog magazynowy - -[FEM_MC2] -Menu karty pamięci 2 - -[FEM_TS] -Próbne zapisywanie: - -[FEM_TL] -Próbne wczytywanie: - -[FEM_TD] -Próbne kasowanie: - -[PL_STAT] -Statystyki gracza - -[PE_WAST] -Ludzie załatwieni przez gracza - -[PE_WSOT] -Ludzie załatwieni przez innych - -[CAR_EXP] -Wysadzone samochody: - -[TM_BUST] -Liczba wpadek - -[M_WASTE] -Załatwieni mężczyźni-cywile - -[F_WASTE] -Załatwione kobiety-cywile: - -[PIG_WST] -Załatwieni gliniarze - -[GNG_WST] -Członkowie gangu załatwieni. - -[MED_WST] -Załatwieni lekarze - -[FIRE_WS] -Strażak załatwiony - -[DED_CRI] -Załatwieni przestępcy: - -[DED_DED] -Załatwione lumpy: - -[DED_HOK] -Załatwione dziwki: - -[HEL_DST] -Zniszczone helikoptery - -[PER_COM] -Procent ukończenia gry - -[KGS_EXP] -Użyte materiały wybuchowe (kg) - -[ACCURA] -Dokładność - -[ELBURRO] -Najlepsze czasy wyścigu w sekundach: - -[CAR_CRU] -Zmiażdżone samochody: - -[HED_EX] -Rozbite głowy - -[TM_DED] -Wizyty w szpitalu - -[DAYSPS] -Liczba dni, które upłynęły w grze: - -[MMRAIN] -mm deszczu - -[MXCARD] -Maks. odległość SZALONEGO skoku (w stopach) - -[MXCARJ] -Maks. wysokość SZALONEGO skoku (w stopach) - -[MXCARDM] -Maks. odległość SZALONEGO skoku (w metrach) - -[MXCARJM] -Maks. wysokość SZALONEGO skoku (w metrach) - -[MXFLIP] -Maks. liczba salt w SZALONYM skoku - -[MXJUMP] -Maks. liczba obrotów w SZALONYM skoku - -[BSTSTU] -Najlepszy SZALONY skok do tej pory: - -[INSTUN] -Szalony skok - -[PRINST] -Bezbłędny szalony skok - -[DBINST] -Podwójny szalony skok - -[DBPINS] -Bezbłędny podwójny szalony skok - -[TRINST] -Potrójny szalony skok - -[PRTRST] -Bezbłędny potrójny szalony skok - -[QUINST] -Poczwórny szalony skok - -[PQUINS] -Bezbłędny poczwórny szalony skok - -[NOSTUC] -Nie wykonano żadnych SZALONYCH skoków - -[NOUNIF] -Wyjątkowe skoki wykonane - -[NOUNGM] -Wyjątkowe skoki razem - -[NMISON] -Próby wykonania misji - -[NMMISP] -Wykonane misje - -[PASDRO] -Zgubieni pasażerowie - -[MONTAX] -Forsa zarobiona w taksówce - -[DAYPLC] -Dzienne wydatki policji: - -[CRIMRA] -Ranking zbrodni: - -[GMSTOR] -Zachowanie gry - -[PREBRF] -Poprzednie zapisy - -[CNTLS] -Sterowanie - -[MUSMEN] -Muzyka/dźwięki - -[GAMSET] -Ustawienia gry - -[LANGUA] -Język - -[DSPLAY] -Ekran - -[DEBUGM] -Menu funkcji debugowania - -[QUITOP] -Wyjście z menu opcji - -[CONTRL] -Konfiguracja sterowania - -[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] -Wróć - -[SOUND] -DŹWIĘK - -[MUSVOL] -Głośność muzyki - -[SFXVOL] -Głośność efektów dźwiękowych - -[SCROPT] -OPCJE EKRANU - -[CTRSCR] -Wyśrodkowanie Ekranu - -[SCRFOR] -Format ekranu - -[GMSVLQ] -WCZYTAJ-ZAPISZ-WYJDŹ Z GRY - -[GMREST] -Ponowne uruchomienie gry - -[NOGMSV] -Zapisywanie stanu gry jest możliwe tylko w kryjówce. - -[DLFILE] -Skasować pliki Grand Theft Auto III - -[CHFILE] -WYBIERZ PLIK, KTÓRY MA ZOSTAĆ WCZYTANY - -[CHFIDL] -WYBIERZ PLIK, KTÓRY MA ZOSTAĆ SKASOWANY - -[SVCONF] -POTWIERDZENIE ZAPISU - -[LANGSL] -WYBÓR JĘZYKA - -[ENGLIS] -Polski - -[GERMAN] -Niemiecki - -[ITALIA] -Włoski - -[FRENCH] -Francuski - -[SPAIN] -Hiszpański - -[RELIDE] -ReLoadIde - -[RELIPE] -ReLoadIpl - -[PARSHP] -Parse Heap - -[DBGFON] -CTheScripts::DbgFlag On - -[DBFOFF] -CTheScripts::DbgFlag Off - -[BGWHON] -Big White Debug Light - włączony - -[BGWOFF] -Big White Debug Light - wyłączony - -[DSTRON] -Debug Streaming Requests On - -[DSTROFF] -Debug Streaming Requests Off - -[PDRGON] -ShowPedRoadGroups On - -[PRGOFF] -ShowPedRoadGroups Off - -[CRRGON] -ShowCarRoad Group Włączone - -[CRGOFF] -ShowCarRoadGroups Wyłączone - -[CLZOON] -Wyłączone pokazywanie stref zniszczeń - -[CLZOOF] -Włączone pokazywanie stref zniszczeń - -[SHPLON] -gbShowCollisionPolys On - -[SHPLOF] -gbShowCollisionPolys Off - -[CULREC] -CCullZones::RecalculateCullZoneData() - -[FORMM1] -FormatMemCard 1 (element testowy) - -[UNFRM1] -UnFormatMemCard 1 (element próbny) - -[GORLEV] -Poziom 'Krwawy' - -[SICASS] -Sick Fuck - -[SICSIC] -Sick Fucker - -[SCASSL] -Sick Fuck wybrany - -[SCSCSL] -Sick Fucker wybrany - -[PRVMEN] -Cele poprzednich misji - -[FORMEN] -Menu formatu - -[MEMTST] -Ekran TestKartPamięci - -[REGCAR] -Rejestracja KartaPamięci Jeden - -[TEFONE] -Próbne formatowanie karty pamięci 1 - -[TEUFON] -Próbne odformatowanie karty pamięci 1 - -[CRROOT] -Utwórz Katalog Główny - -[CRLDIC] -Tworzenie i wczytywanie ikon - -[FLFSGF] -Fill First File With Guff - -[PUSAVE] -Zapisz tylko grę - -[CHEVOK] -CheckEveryOkB4Save - -[SVGMON] -Zapisz grę - -[CNTSAV] -Nie można zapisać stanu gry. Jesteś w trakcie misji. - -[CNCSAV] -Nie można zapisać stanu gry. Jesteś w samochodzie. - -[CRMGSV] -Utwórz chroniony katalog magazynowy - -[MGSVCN] -Katalog magazynowy utworzony - -[MGSVNC] -Katalog magazynowy nieutworzony - -[YES] -Tak - -[NO] -Nie - -[X] -x - -[LAST] -Ostatnia wiadomość - -[FEDS_XB] -Wybierz - -[FEDS_ST] -klawisz START - WZNÓW - -[FEST_OO] -z - -[FEC_TUC] -Sterowanie wieżyczką - -[FEC_SM3] -Włączenie misji specjalnych (klawisz R3) - -[FEC_RS3] -Przełącz stacje radiowe (klawisz L3) - -[FEC_HO3] -Klakson (klawisz lewy SHIFT) - -[DIAB1] -'WYŚCIG' - -[DIAB2] -'PRZEŁAMAĆ LODY' - -[DIAB3] -'PRÓBA OGNIA' - -[DIAB4] -'WIELKI I ŻYLASTY' - -[DIAB1_A] -El Burro ma dla ciebie propozycję. Jeżeli jesteś zainteresowany, odszukaj budkę telefoniczną w Hepburn Heights. - -[DIAB1_C] -Niezły z ciebie kierowca! Jedź do wskazanej budki telefonicznej, a może El Burro da ci jakieś zajęcie. - -[DIAB1_1] -~g~3... 2... 1... NAPRZÓD! NAPRZÓD! NAPRZÓD! - -[DIAB1_4] -~g~Załatw sobie szybki wóz i jedź na miejsce startu. - -[DIAB1_3] -~r~Nie wygrałbyś nawet z własną babcią, LESZCZU! - -[DIAB1_2] -~g~Gratulacje, wygrywasz, uzyskując niesamowity czas: ~1~sekund. - -[FIRST] -~g~pierwszy - -[SECOND] -~g~drugi - -[THIRD] -~g~trzeci - -[FOURTH] -~g~4 - -[DIAB2_1] -~g~Zabierz teczkę z Harwood. - -[DIAB2_2] -~g~Odszukaj półciężarówkę lodziarza. - -[DIAB2_3] -~g~Zaparkuj samochód lodziarza na Atlantic Quays. - -[DIAB2_4] -~g~Naciśnij klawisz ~w~~k~~VEHICLE_HORN~~g~, aby włączyć sygnał reklamujący lody. - -[DIAB2_6] -~g~Naciśnij klawisz ~w~~k~~VEHICLE_HORN~~g~, aby włączyć sygnał reklamujący lody. - -[DIAB2_7] -~g~Naciśnij klawisz ~w~~k~~VEHICLE_HORN~~g~, aby włączyć sygnał reklamujący lody. - -[DIAB2_5] -~g~Wysiądź z samochodu, a następnie zdetonuj go za pomocą nadajnika. - -[YD1] -'SZUKAJ PUNKTÓW!' - -[YD2] -'RUCHOMY CEL' - -[YD3] -'KOLEKCJONER WOZÓW' - -[YD4] -'KRÓLESTWO NIEBIESKIE' - -[YD_P] -King Courtney prosi cię na słówko. Znajdź budkę telefoniczną w Aspatrii!! - -[YD1_A] -~w~Z tej strony King Courtney. - -[YD1_A1] -~w~Moja paczka, Yardies, potrzebuje kierowcy, a ty masz reputację bystrego faceta. - -[YD1_B] -~w~Jedź na wysypisko naprzeciwko stadionu i poczekaj na innych zawodników. - -[YD1_C] -~w~Moi ludzie pilnują punktów kontrolnych w całym Staunton. - -[YD1_D] -~w~Kierowca, który pierwszy dotrze do takiego miejsca, otrzymuje jeden punkt. Potem ścigamy się do następnego przystanku. - -[YD1_D1] -~w~Jeżeli zaliczysz więcej punktów niż inni kierowcy, być może będę miał dla ciebie zadanie. - -[YD1_E] -~g~Gotowi do wyścigu! - -[YD1_F] -~g~Minąłeś punkt startu - podoba mi się twój styl!!! - -[YD1_G] -~r~To jest WYŚCIG SAMOCHODOWY. Masz jechać SAMOCHODEM, IDIOTO! - -[YD1GO] -~g~START! - -[YD1_1] -~r~1 - -[YD1_2] -~r~2 - -[YD1_3] -~r~3 - -[YD1_BON] -$1000!! - -[Y1_1ST] -~g~Kończysz na pierwszym miejscu i pomyślnie zaliczasz ~1~ punktów kontrolnych! - -[Y1_2ND] -~y~Jesteś drugi, pomyślnie zaliczyłeś ~1~ punktów kontrolnych. ~r~Było blisko, ale trochę ci jeszcze brakuje. - -[Y1_3RD] -~r~Jesteś trzeci, pomyślnie zaliczyłeś ~1~ punktów kontrolnych. ~r~A mówiłeś, że jesteś niezły! - -[Y1_LAST] -~r~Jesteś ostatni! ~r~Tylko marnujesz mój czas, IDIOTO! - -[Y1_J1ST] -~y~Pierwsze miejsce ex aequo, pomyślnie zaliczyłeś ~1~ punktów kontrolnych. ~y~Nieźle, ale musisz być najlepszy z najlepszych, aby móc jeździć dla Królowej Lizzy! - -[Y1_J2ND] -~r~Drugie miejsce ex aequo, pomyślnie zaliczyłeś ~1~ punktów kontrolnych. Jechałeś jak wściekły goryl! - -[Y1JLAST] -~r~Ostatnie miejsce ex aequo! Wymądrzałeś się jak stary kierowca, ale kierowałeś jak stary przemądrzalec! - -[Y1_TEST] -SAMOCHÓD W WODZIE!! - -[YD2_A] -~w~Muszę sprawdzić, czy dajesz sobie radę z mokrą robotą. - -[YD2_A1] -~w~Zobaczymy, czy można ci zaufać. - -[YD2_B] -~w~Dwóch moich chłopców zaraz po ciebie przyjedzie, żeby zabrać cię na przejażdżkę - -[YD2_B1] -~w~i sprawdzić, czy naprawdę umiesz tyle, ile twierdzisz. - -[YD2_C] -~w~Jedziemy na mały wypad na Wzgórza Hepburn, żeby sprzątnąc paru śmierdziuchów z gangu Diablo, którzy wkurzali Królową Lizzy. - -[YD2_CC] -~w~Będziesz potrzebował gnata, trzymaj. - -[YD2_D] -~w~Ty kierujesz i strzelasz. My zadbamy, żeby nie zabrakło ci odwagi. - -[YD2_E] -~w~Jazda! - -[YD2_F] -~w~Oszukał nas! Dorwać jego zdradliwą dupę! - -[YD2_G1] -~w~Wzgórza Hepburn. Zabijmy paru śmierdzących Diablo... - -[YD2_G2] -~w~Tylko pamiętaj, ~r~ masz nie wysiadać z samochodu!!! - -[YD2_H] -~w~W porządku, wracamy na terytorium Yardies! JAZDA, SZYBCIEJ!! - -[YD2_L] -~w~Dobrze się spisałeś, żniwiarzu! - -[YD2_M] -~r~Rozwalił mój samochód! Załatwić go! - -[YD2_N] -~w~Posadź tyłek z powrotem w samochodzie! - -[YD3_A] -Masz porwać dla mnie kilka samochodów gangów tak, - -[YD3_A1] -abyśmy mogli uderzyć we wrogów na ich własnym terytorium. - -[YD3_B] -Potrzebuję mafijnego Sentinela, - -[YD3_B1] -Stingera Yakuzy oraz - -[YD3_B2] -Ogiera gangu Diablo. Wtedy będzie można uderzyć na każdego w Liberty. - -[YD3_C] -Zostaw je przy garażu w Newport, ale pamiętaj, - -[YD3_C1] -potrzebujemy tylko fury w dobrym stanie!!! - -[YD3_D] -Wolne miejsce na tekst - -[YD3_E] -~r~Już zdobyłeś samochód gangu Diablo! - -[YD3_F] -~r~Już zdobyłeś samochód mafii! - -[YD3_G] -~r~Już zdobyłeś samochód Yakuzy! - -[YD3_H] -~r~Zdobyłeś samochód gangu Diablo! - -[YD3_I] -~r~Zdobyłeś samochód mafii! - -[YD3_J] -~r~Zdobyłeś samochód Yakuzy! - -[YD3_K] -~r~Ten samochód to ruina! Musisz go naprawić! - -[YD3_L] -~g~Zabierz samochód do garażu! - -[YD3_M] -~r~Straciłeś wóz! Musisz zdobyć jeszcze jeden! - -[YD4_A] -Posłuchaj! - -[YD4_A1] -Jedź do Bedford Point. - -[YD4_A2] -W starym samochodzie jest coś, czego potrzebuję, pronto! - -[YD4_B] -LIST: Słyszałam, że ostatnio byłeś pilnym uczniem. Cóż, ja byłam pilną uczennicą. - -[YD4_C] -Czas, abyś poznał prawdziwą siłę HEROINY! Besos y fuderes, Catalina, xxx. - -[YD4_D] -PS. ZDYCHAJ KUNDLU! - -[YD4_1] -~g~Naćpani szaleńcy! - -[YD4_2] -~g~Zniszcz ciężarówki wariatów! - -[HM_1] -'AGRESYWNA JAZDA' - -[HM_2] -'ZABAWKOWY ZABÓJCA' - -[HM_3] -'ZDĄŻYĆ PRZED WYBUCHEM'v - -[HM_5] -'ROZRÓBA' - -[HOOD1_A] -Znajdź budkę telefoniczną w Wichita Gardens, to pogadamy o interesach. - -[HM1_A] -Yo! Z tej strony D-Ice z gangu Red Jacks! - -[HM1_C] -Te szczeniaki wyłażą na ulice i myślą tylko o tym, kogo by tu zastrzelić i co zaćpać. - -[HM1_3] -~g~'Dziewiątki' mają swoje terytorium w Wichita Gardens. - -[HM2_3] -Jeżeli uderzysz zdalnie sterowanym samochodzikiem w koła pojazdu, ładunek wybuchnie! - -[HM2_4] -Jeżeli samochodzik wyjedzie poza zasięg nadajnika, ładunek wybuchnie! - -[HM2_5] -~r~Samochodzik poza zasięgiem! - -[HM3_1] -~g~Zabierz samochód do warsztatu, ale uważaj! Jeżeli samochód zostanie mocno uszkodzony, ładunek może wybuchnąć! - -[HM3_2] -~g~Zwróć samochód właścicielowi. Jedź ostrożnie, wóz musi być w doskonałym stanie! - -[HM3_3] -~g~Napraw samochód! - -[HM4_D] -~g~Zdobądź samochód! - -[HM4_E] -TEKST NIEPOTRZEBNY - -[HM4_1] -~g~Jedź do miejsca, w któym rozsypał się ładunek. Musisz zebrać 30 sztabek. - -[HM4_2] -~g~Pamiętaj, kiedy samochód zrobi się ciężki, poturlaj się do garażu i wysyp ładunek. - -[HM5_3] -~r~Miałeś używać wyłącznie kija bejsbolowego! - -[HM5_4] -~r~Twój kontakt nie żyje! - -[MEA1] -'CWANIAK' - -[MEA2] -'ZŁODZIEJE' - -[MEA3] -'ŻONA' - -[MEA4] -'KOCHANEK' - -[MEAT1_A] -Znajomy powiedział mi, że potrafisz rozwiązywać problemy. Jeżeli chcesz zająć się moimi kłopotami, znajdź budkę telefoniczną w Trenton. - -[MEA1_B3] -~g~Spotkaj się z kierownikiem banku. - -[MEA1_B6] -~g~Zabierz samochód do zgniatarki, aby pozbyć się dowodów. Wysiądź z samochodu, a dźwig już się wszystkim zajmie. - -[MEA1_1] -~r~Kierownik banku nie żyje! - -[MEA1_2] -~r~Miałeś zniszczyć ten pojazd! - -[MEA1_3] -~g~Wysiądź z samochodu! - -[MEA1_4] -~r~Zgubiłeś kierownika banku! - -[MEA2_B3] -~g~Jedź po złodziei. - -[MEA2_B4] -~g~Zabierz ich do fabryki Delikatesów Pod Psem. - -[MEA2_B6] -~g~Przemaluj samochód, aby zatrzeć ślady. - -[MEA2_1] -~r~Miałeś zniszczyć ten pojazd! - -[MEA2_2] -~r~Złodziej nie żyje! - -[MEA2_4] -~r~Zgubiłeś jednego ze złodziei! - -[MEA3_B3] -~g~Jedź po panią Chonks. - -[MEA3_B6] -~g~Zabierz samochód i wrzuć go do wody, aby pozbyć się dowodów. - -[MEA3_1] -~r~Żona nie żyje! - -[MEA3_2] -~r~Miałeś wrzucić samochód do wody! - -[MEA3_3] -~r~Zgubiłeś żonę Marty'ego! - -[MEA4_B3] -~g~Zabierz kochanka żony. - -[MEA4_B6] -Na to już za późno, Marty. Miałeś szansę, ale teraz przejmuję twoją budę... - -[MEA4_1] -~r~Carlos nie żyje! - -[MEA4_3] -~r~Zgubiłeś Carlosa lichwiarza! - -[LOOK_A] -Naciśnij i przytrzymaj klawisz ~h~~k~~VEHICLE_LOOKLEFT~ ~w~lub klawisz ~h~~k~~VEHICLE_LOOKRIGHT~ ~w~, aby spojrzeć ~h~w lewo~w~ lub ~h~w prawo~w~ przez szyby pojadu. Naciśnij oba klawisze naraz, aby spojrzeć ~h~do tyłu~w~. - -[LOVE6_1] -~g~Teraz odciągnij gliniarzy od magazynu! - -[LOVE6_2] -~r~Nie udało ci się odciągnąć glin na wystarczającą odległość! - -[RM4_3] -~r~Kumpel Raya zwiał! - -[RM6_C] -Zdaje się, że CIA ma jakiś swój interes w utrzymaniu handlu PROCHAMI - -[RM6_C1] -i nie spodobało im się, że zadarliśmy z Kartelem. - -[C_PASS] -ZAGROŻENIE ZLIKWIDOWANE - -[CTUTOR] -Naciśnij klawisz ~h~~k~~TOGGLE_SUBMISSIONS~, aby włączyć lub wyłączyć misje patrolowe. - -[CTUTOR2] -Naciśnij klawisz ~h~~k~~TOGGLE_SUBMISSIONS~, aby włączyć lub wyłączyć misje patrolowe. - -[COPCART] -~g~Masz ~1~ sekund na powrót do radiowozu albo misja zakończy się. - -[C_FAIL] -Misja patrolowa zakończona! - -[C_CANC] -~r~Misja patrolowa anulowana! - -[C_ESCP] -~r~Podejrzany uciekł! - -[C_TIME] -~r~Twój czas w roli stróża prawa minął! - -[C_VIGIL] -PREMIA PATROLOWA!! - -[A_FAIL2] -~r~Twoje ślamazarność kosztowała pacjenta życie! - -[A_FAIL3] -~r~Pacjent nie żyje! - -[A_PASS] -Uratowany! - -[F_FAIL2] -~r~Spóźniłeś się! - -[A_COMP2] -Ty chyba nigdy się nie męczysz! - -[RM2_M] -Jak będziesz potrzebował spluwy, wpadaj do mnie jak w dym i bierz z szafek, co ci się podoba. - -[HEAL_A] -Twój ~h~poziom życia~w~ jest wyświetlony na pomarańczowo w prawym górnym narożniku ekranu. - -[YD1_CNT] -~1~ z 15! - -[FM1_9] -~g~Przed nami miejsce imprezy - wysadź Marię przed budynkiem. - -[FM1_Y] -~w~Wiesz, dawno się tak dobrze nie bawiłam, a ty traktowałeś mnie naprawdę dobrze. Z szacunkiem i w ogóle.. - -[FM1_AA] -~w~Chyba już pójdę. W takim razie - do zobaczenia! - -[NOCONTE] -Aby kontynuować, proszę ponownie umieścić wtyczki kontrolera analogowego (DUALSHOCK@) lub kontrolera analogowego (DUALSHOCK@2) w porcie kontrolerów gry nr 1. - -[WRCONT] -Kontroler w porcie nr 1 nie jest rozpoznany. Gra Grand Theft Auto III wymaga kontrolera analogowego (DUALSHOCK@) lub kontrolera analogowego (DUALSHOCK@2). - -[WRCONTE] -Kontroler w porcie nr 2 nie jest rozpoznany. Gra Grand Theft Auto III wymaga kontrolera analogowego (DUALSHOCK@) lub kontrolera analogowego (DUALSHOCK@2). - -[WRONGCD] -Niewłaściwa płyta. Proszę włożyć właściwą płytę. - -[NOCD] -Nie znaleziono GTAIII CD w czytniku. - -[OPENCD] -Taca napędu jest wysunięta. Wsuń tacę napędu CD-ROM. - -[CDERROR] -Błąd w odczycie płyty Grand Theft Auto III. - -[RESTART] -Trwa rozpoczynanie nowej gry - -[GA_3] -Koniec z promocjami. 1000 dolców za malowanie! - -[GA_1] -Coś ty! Nawet nie dotknę takiego trefnego towaru! - -[GA_1A] -Wróć, kiedy będziesz miał chwilę wolnego czasu... - -[S_PROM2] -Garaż znajdujący się za sąsiednimi drzwiami służy do przechowywania pojazdów podczas zapisywania stanu gry. - -[STOCK] -brak towaru - -[FM1_O] -~w~Myślę, że znajdziemy go nad brzegiem morza, w okolicach Chinatown. - -[EBAL_B] -To właśnie tu. Zjedźmy z ulicy i poszukajmy jakichś ciuchów, żeby zmienić te więzienne łachy! - -[EBAL_G] -To jest właśnie klub 'U Luigiego'. Obejdziemy tę budę i skorzystamy z tylnych drzwi. - -[AM4_3] -A więc to ty jesteś nowym chłopcem na posyłki Asuki? - -[AM4_4] -Masz forsę? Mam nadzieję, że wszystko jest jak trzeba? - -[AM4_5] -Wiem, co sobie myślisz, następny sprzedajny gliniarz. - -[AM4_6] -Cóż, każdy orze jak może. - -[AM4_7] -Straciłem ostatnio paru partnerów i ci frajerzy z wydziału wewnetrznego zaczęli coś przewąchiwać. - -[AM4_8] -Żeby tylko nie wyniuchali moich śladów. - -[AM4_9] -To miasto to jeden wielki otwarty ściek. - -[AM4_10] -Przyda mi się pomoc kogoś niezrzeszonego. - -[AM4_11] -Jeżeli masz jakiś interes, wiesz gdzie mnie znaleźć. - -[CAM_A] -Wciskaj klawisz ~h~~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~~w~, aby zmieniać tryby pracy ~h~kamery ~w~, zarówno w samochodzie jak i poza nim. - -[CAM_B] -Wciskaj klawisz ~h~strzałki w gorę~w~ oraz ~h~strzałki w dół~w~, aby zmieniać tryby pracy ~h~kamery ~w~, zarówno w pojeździe jak i poza nim. - -[KM2_1] -~g~Napraw samochód. Wóz musi być w idealnym stanie. - -[LM3_6] -Joey... - -[LM3_6A] -Znowu będę mogła się pobawić twoim drągiem? - -[LM3_9A] -może będę miał dla ciebie jakieś zajęcie. - -[LM3_9B] -W porządku? - -[AWAY2] -~r~Uciekli. - -[AWAY] -~r~Zwiał stąd, gdzie pieprz rośnie! - -[JM6_1] -Jedź do banku na głównej ulicy. - -[GA_6B] { re3 change } -Zaparkuj wóz, włącz mechanizm klawiszem ~h~~k~~VEHICLE_FIREWEAPON~~w~ i W NOGI! - -[GA_7B] { re3 change } -Uaktywnij bombę za pomocą klawisza ~h~~k~~VEHICLE_FIREWEAPON~~w~. Bomba wybuchnie w momencie włączenia silnika. - -[BAT1] -~g~Podnieś kij bejsbolowy! - -[EBAL_O] -Jeśli nic nie schrzanisz, może znajdzie się dla ciebie jakaś praca. A teraz zjeżdżaj! - -[HELP9_B] -Naciśnij klawisz~h~ ~k~~PED_FIREWEAPON~~w~, aby oddać ~h~strzał~w~ z karabinu snajperskiego. - -[HELP9_C] -Naciśnij klawisz~h~ ~k~~PED_FIREWEAPON~~w~, aby oddać ~h~strzał~w~ z karabinu snajperskiego. - -[JM6_8] -~r~Straciłeś wszystkich złodziei! - -[COLT_IN] -Ammu-nacja zaczyna sprzedaż pistoletów! - -[TAXI2] -~r~Koniec czasu! - -[TAXI3] -~r~Przerażony pasażer ucieka! - -[TAXI7] -~r~Twoja taksówka to ruina, połataj ją trochę. - -[TAXI4] -Kurs wykonany! - -[TAXI5] -PREMIA ZA SZYBKOŚĆ!!! - -[TAXI6] -Koniec misji w taksówce - -[FRANGO] -~g~Salvatore chce, abyś najpierw pomógł Toniemu załatwić porachunki z Triadami! - -[PAGEB12] -Łapówka policyjna dostarczona do kryjówki - -[PAGEB13] -Życie dostarczone do kryjówki - -[PAGEB14] -Adrenalina dostarczona do kryjówki - -[KM1_4] -~g~Do tej roboty przydałby się radiowóz! - -[CAT1_B] -przynieś 500.000 $ do Willi w Cedar Grove. - -[JM2_C] -Gość ma budę z makaronem w Chinatown. - -[RM6_1] -Tu masz klucz do dziupli. - -[RM6_2] -Znajdziesz tam trochę forsy i 'zapasów', które zbierałem na czarną godzinę. - -[RM6_3] -Trzymaj się. - -[FE_INIP] -Inicjalizacja i wczytywanie menu pauzy... Proszę czekać. - -[FESZ_CA] -Anuluj - -[FESZ_QU] -Wyjście - -[FESZ_L1] -Gra została pomyślnie zapisana. - -[FESZ_L2] -Gra została zapisana w pliku o nazwie: - -[FESZ_OK] -OK - -[FES_LGA] -Wczytaj grę - -[FES_NGA] -Nowa gra - -[FES_CAN] -Anuluj - -[FESZ_QL] -Wszelkie niezapisane osiągnięcia i zdobycze w trwającej grze zostaną utracone. Wczytać grę? - -[FESZ_QD] -Czy skasować ten zapis gry? - -[FESZ_QO] -Czy nadpisać tę grę na starszym pliku? - -[FESZ_QR] -Czy jesteś pewien, że chcesz rozpocząć nową grę? Wszelkie osiągnięcia i postępy poczynione od momentu ostatniego zapisu gry zostaną utracone. Kontynuować? - -[FESZ_QS] -KONTYNUOWAĆ ZAPIS? - -[T4X4_1] -'PLAC ZABAW PATRIOTÓW' - -[T4X4_2] -'PRZEJAŻDŻKA W PARKU' - -[T4X4_3] -'W POTRZASKU!' - -[MM_1] -'KOSZMAR WIELU PIĘTER' - -[T4X4_1A] -~g~Masz ~y~5 minut~g~ na zaliczenie ~y~15~g~ punktów kontrolnych. ~g~Możesz zaliczać je w ~y~DOWOLNEJ KOLEJNOŚCI. - -[T4X4_1B] -~1~ z 15! - -[T4X4_1C] -~y~PRZEJEDŹ PRZEZ~g~ pierwszy punkt kontrolny, aby uruchomić odliczanie czasu. ~g~Zaliczenie każdego punktu jest premiowane dodatkowymi ~y~20 SEKUNDAMI~g~ - -[T4X4_2A] -~g~Masz ~y~2 minuty~g~ na zaliczenie ~y~12~g~ punktów kontrolnych. ~g~Możesz zaliczać je w ~y~DOWOLNEJ KOLEJNOŚCI. - -[T4X4_2B] -~1~ z 12! - -[T4X4_2C] -~y~PRZEJEDŹ PRZEZ~g~ pierwszy punkt kontrolny, aby uruchomić odliczanie czasu. ~g~Zaliczenie każdego punktu jest premiowane dodatkowymi ~y~10 SEKUNDAMI~g~ - -[T4X4_3A] -~g~Masz ~y~5 minut~g~ na zaliczenie ~y~20~g~ punktów kontrolnych. ~g~Możesz zaliczać je w ~y~DOWOLNEJ KOLEJNOŚCI. - -[T4X4_3B] -~y~PRZEJEDŹ PRZEZ~g~ pierwszy punkt kontrolny, aby uruchomić odliczanie czasu. ~g~Zaliczenie każdego punktu jest premiowane dodatkowymi ~y~15 SEKUNDAMI~g~ - -[T4X4_3C] -~1~ z 20! - -[T4X4_F] -~r~Wymiękasz! Może lepiej sprawdzisz się w wyścigach na hulajnodze?! - -[MM_1_A] -~g~Masz ~y~2 minuty~g~ na zaliczenie ~y~20 punktów kontrolnych~g~ w całym obiekcie! ~g~Możesz zaliczać punkty w ~y~DOWOLNEJ KOLEJNOŚCI. - -[MM_1_B] -~1~ z 20! - -[MM_1_C] -~g~To oznacza 20 sekund plus ~y~5 SEKUND~g~ premii za każdy zaliczony punkt. ~g~Zegar zaczyna odliczanie ~y~NATYCHMIAST. - -[FM2_14] -~r~Zbliżyłeś się za bardzo i wystraszyłeś Kudłatego! - -[FM2_15] -~g~Nie zbliżaj się zbytnio, bo Kudłaty zacznie coś podejrzewać! - -[UPSIDE] -~r~Przewróciłeś samochód! - -[FM2_16] -STRACHOMETR: - -[LM3_11] -~g~Misty nie będzie jeździć autobusem, załatw inny pojazd! - -[LANDSTK] -Landstalker - -[IDAHO] -Idaho - -[STINGER] -Stinger - -[LINERUN] -Linerunner - -[PEREN] -Perennial - -[SENTINL] -Sentinel - -[PATRIOT] -Patriot - -[FIRETRK] -Wóz strażacki - -[TRASHM] -Śmieciożer - -[STRETCH] -Stretch - -[MANANA] -Manana - -[INFERNS] -Infernus - -[BLISTA] -Blista - -[PONY] -Pony - -[MULE] -Muł - -[CHEETAH] -Cheetah - -[AMBULAN] -Karetka pogotowia - -[FBICAR] -Samochód FBI: - -[MOONBM] -Moonbeam - -[ESPERAN] -Esperanto - -[TAXI] -Taksówka - -[KURUMA] -KURUMA - -[BOBCAT] -Bobcat - -[WHOOPEE] -Pan Smakołyk - -[BFINJC] -Zastrzyk BF - -[POLICAR] -Policja - -[ENFORCR] -Enforcer - -[SECURI] -Konwojowóz - -[BANSHEE] -Demon - -[PREDATR] -Predator - -[BUS] -Autobus - -[RHINO] -Hipcio - -[BARRCKS] -Koszary OL - -[TRAIN] -Pociąg - -[HELI] -Helikopter - -[DODO] -Dodo - -[COACH] -Autokar - -[CABBIE] -Taksówka - -[STALION] -Ogier - -[RUMPO] -Rumpo - -[RCBANDT] -Bandziorek - -[BELLYUP] -Ciężarówka Triady - -[MRWONGS] -Mr Wongs - -[MAFIACR] -Sentinel mafii - -[YARDICR] -Lobo gangu Yardie - -[YAKUZCR] -Stinger gangu Yakuza - -[DIABLCR] -Ogier gangu Diablo - -[COLOMCR] -Krążownik Kartelu - -[HOODSCR] -Rumpo XL gangu Hoods - -[AEROPL] -Samolot - -[SPEEDER] -Speeder - -[REEFER] -Reefer - -[PANLANT] -Panlantic - -[FLATBED] -Flatbed - -[YANKEE] -Yankee - -[BORGNIN] -Borgnine - -[TOYZ] -ZABAWKI - -[FEST_DF] -Odległość przebyta pieszo (w milach) - -[FEST_DC] -Odległość przebyta samochodem (w milach) - -[FESTDFM] -Odległość przebyta pieszo (w metrach) - -[FESTDCM] -Odległość przebyta samochodem (w metrach) - -[FEST_R1] -Plac Zabaw Patriotów w sekundach - -[FEST_R2] -Przejażdżka w parku w sekundach - -[FEST_R3] -W Potrzasku! w sekundach - -[FEST_RM] -Koszmar Wielu Pięter w sekundach - -[FEST_LS] -Ludzie uratowani przez karetkę - -[FEST_CC] -Przestępcy zabici podczas misji patrolowych - -[FEST_FE] -Liczba ugaszonych pożarów - -[FEST_LF] -Najdłuższy lot dodo - -[FEST_BD] -Najlepszy czas rozbrojenia bomby - -[FEST_RP] -Wykonane rozwałki: - -[FEST_MP] -Wykonane misje - -[FEST_BB] -Szukaj Punktów - -[FEST_H0] -Najwięcej punktów kontrolnych - -[FEST_GC] -Łączna liczba pojazdów gangów: - -[FEST_H1] -Diabelska demolka - -[FEST_H2] -Mafijna masakra - -[FEST_H3] -Krwawe kasyno - -[FEST_H4] -Rumpo-rozróba - -[USJI1] -TEKST DŁUŻEJ NIEPOTRZEBNY - -[USJI2] -TEKST DŁUŻEJ NIEPOTRZEBNY - -[USJI3] -TEKST DŁUŻEJ NIEPOTRZEBNY - -[USJ] -PREMIA ZA NIETYPOWY SKOK! - -[SPRAY] -Wprowadź samochód do warsztatu lakierniczego, aby obniżyć swój ~h~poziom złek sławy~w~, ~h~naprawić~h~ oraz przemalować~w~ swój wóz. Koszt - ~h~$1000. - -[HM1_1] -~g~Załatw 20 Purpurowych Dziewiątek w 2 minuty 30 sekund. - -[KM1_8A] { re3 change } -Naciśnij klawisz ~h~ ~k~~VEHICLE_FIREWEAPON~ ~w~, aby ~h~aktywować bombę.~w~ Nie zapomnij oddalić się od miejsca eksplozji. - -[KM1_8D] { re3 change } -Naciśnij klawisz ~h~ ~k~~VEHICLE_FIREWEAPON~ ~w~, aby ~h~aktywować bombę.~w~ Nie zapomnij oddalić się od miejsca eksplozji. - -[KM1_12] -~g~Odwieź go do dojo, ale najpierw pozbądź się gliniarzy! - -[RATNG1] -Kieszonkowiec - -[RATNG2] -Mięśniak - -[RATNG3] -Łotr - -[RATNG4] -Hazardzista - -[RATNG5] -Zbir - -[RATNG6] -Kierowca - -[RATNG7] -Twardziel do wynajęcia - -[RATNG8] -Oszust - -[RATNG9] -Współpracownik - -[RATNG10] -Sprzątacz - -[RATNG11] -Zabójca - -[RATNG12] -Złota rączka - -[RATNG13] -Egzekutor - -[RATNG14] -Capo - -[RATNG15] -Szef - -[1010] -~r~Twój pojazd dachował - -[1011] -~r~Twój pojazd dachował - -[1012] -~r~Twój pojazd dachował - -[1013] -~r~Twój pojazd dachował - -[1014] -~r~Twój pojazd dachował - -[JM4_10] -Słuchaj, młody! Najpierw zawieź mnie do pralni w chińskiej dzielnicy. Mam małą sprawę do załatwienia. - -[JM4_11] -Praczki przestały płacić haracz za ochronę. - -[JM4_12] -Tylko uważaj na wóz, Joey dopiero poskładał ten szmelc. - -[JM4_13] -Więc bez żadnych numerów, OK? - -[KM4_11] -~g~Odwieź pieniądze do kasyna! - -[FEF_BR2] -Możesz przypomnieć sobie fabułę gry, czytając zebrane dotąd streszczenia celów misji. - -[TRAIN_1] -Stacja Kurowski - -[TRAIN_2] -Stacja Rothwell - -[TRAIN_3] -Stacja Baillie - -[SUBWAY1] -Portland Station - -[SUBWAY2] -Rockford Station - -[SUBWAY3] -Staunton South Station - -[SUBWAY4] -Shoreside Terminal - -[MEA4_2] -~r~Marty Chonks nie żyje! - -[SPRAY1] -Wprowadź samochód do warsztatu lakierniczego, aby obniżyć swój ~h~poziom złej sławy~w~, ~h~naprawić~h~ oraz przemalować~w~ swój wóz. Koszt - ~h~$1000~w~. Tym razem zrobimy to za darmo. - -[JM4_A] -Tak, wiem Toni, naprawdę nieźle ją sobie wychowałem. Aż mruczy z zadowolenia, kapujesz? - -[JM4_5] -Wpadnij później to damy im coś do prania - ich własne pokrwawione gacie! - -[AMMU_A] -Luigi mówił, że potrzebujesz gnata... - -[AMMU_B] -Joey wspominał, że potrzebna ci artyleria... - -[AMMU_C] -Idź na tył sklepu. Na podwórzu zostawiłem dla ciebie dziewiątkę. - -[AMMU_D] -Mam wszystko, co potrzeba do obrony własnego gospodarstwa domowego. - -[AMMU_E] -Chcesz jeszcze pozwolenie? - -[AMMU_F] -Nie musisz pokazywać dowodu, wyglądasz na wiarygodnego gościa. - -[DETON] -DETONACJA: - -[DRIVE_A] { re3 change } -Wybierz jako broń uzi i wsiądź do pojazdu. Następnie spójrz w lewo lub w prawo - aby otworzyć ogień, naciśnij klawisz ~h~~k~~VEHICLE_FIREWEAPON~~w~. - -[DRIVE_B] { re3 change } -Wybierz jako broń uzi i wsiądź do pojazdu. Następnie spójrz w lewo lub w prawo - aby otworzyć ogień, naciśnij klawisz ~h~~k~~VEHICLE_FIREWEAPON~~w~. - -[RECORD] -~g~NOWY REKORD! - -[NRECORD] -~r~NIE MA NOWEGO REKORDU! - -[RCHELP] { re3 change } -Naciśnij klawisz ~k~~VEHICLE_FIREWEAPON~ lub uderz zdalnie sterowanym samochodzikiem w koła pojazdu, aby spowodować eksplozję. - -[RCHELPA] { re3 change } -Naciśnij klawisz ~k~~VEHICLE_FIREWEAPON~ lub uderz zdalnie sterowanym samochodzikiem w koła pojazdu, aby spowodować eksplozję. - -[RC_1] -Masz 2 minuty, aby wysadzić tyle samochodów gangu Diablo, ile tylko się da! - -[RC_2] -Masz 2 minuty, aby wysadzić tyle samochodów mafii, ile tylko się da! - -[RC_3] -Masz 2 minuty, aby wysadzić tyle samochodów Yakuzy, ile tylko się da! - -[RC_4] -Masz 2 minuty, aby wysadzić tyle samochodów gangu Yardie, ile tylko się da! - -[RC_5] -Masz 2 minuty, aby wysadzić tyle samochodów gangu Hoods, ile tylko się da! - -[RC_6] -Masz 2 minuty, aby wysadzić tyle samochodów Kartelu, ile tylko się da! - -[RAMPAGE] -ROZWAŁKA!! - -[RAMP_P] -ROZWAŁKA WYKONANA! - -[RAMP_F] -ROZWAŁKA NIEUDANA! - -[PAGE_00] -. - -[PAGE_01] -Załatw ~1~ludzi z gangu Diablo w 120 sekund! - -[PAGE_02] -Zniszcz ~1~ pojazdów w ciągu 120 sekund! - -[PAGE_03] -Zabij ~1~ członków mafii w ciągu 120 sekund! - -[PAGE_04] -Zabij ~1~ członków Triady w ciągu 120 sekund! - -[PAGE_05] -Zabij ~1~ członków Triady w ciągu 120 sekund! - -[PAGE_06] -Zniszcz ~1~ pojazdów w ciągu 120 sekund! - -[PAGE_07] -Rozwal ~1~ łebków z gangu Yardie w ciągu 120 sekund! - -[PAGE_08] -Spal ~1~ członków Yakuzy w ciągu 120 sekund! - -[PAGE_09] -Zniszcz ~1~ pojazdów w ciągu 120 sekund! - -[PAGE_10] -Zniszcz ~1~ pojazdów w ciągu 120 sekund! - -[PAGE_11] -Skasuj ~1~ członków gangu Yardie w ciągu 120 sekund! - -[PAGE_12] -Podpal ~1~ członków Yakuzy w ciągu 120 sekund! - -[PAGE_13] -Wysadź w powietrze ~1~ członków gangu Yardie w ciągu 120 sekund! - -[PAGE_14] -Usmaż ~1~ Kolumbijczyków w ciągu 120 sekund. - -[PAGE_15] -Rozjedź ~1~ członków gangu Hoods w ciągu 120 sekund! - -[PAGE_16] -Zniszcz ~1~ pojazdów w ciągu 120 sekund! - -[PAGE_17] -Rozjedź samochodem ~1~ Kolumbijczyków w ciągu 120 sekund! - -[PAGE_18] -Rozjedź i zniszcz ~1~ pojazdów w ciągu 120 sekund! - -[PAGE_19] -Urwij ~1~ głów Kolumbijczyków w ciągu 120 sekund! - -[PAGE_20] -Obetnij głowy ~1~ członkom gangu Hoods w ciągu 120 sekund! - -[JM1_A] -Hej, umieram z nudów! Kiedy w końcu mnie przelecisz? - -[JM1_B] -Za chwileczkę, złotko! Muszę się zająć jedną drobną kwestią... - -[JM1_C] -Mam dla ciebie robótkę, kolego. - -[JM1_D] -Bracia Forelli od dawna wiszą mi kasę. Od zbyt dawna. - -[JM1_E] -Trzeba dać im lekcję szacunku. - -[JM1_F] -Buźka Forelli napycha właśnie swój bęben w Bistro w St. Marks, - -[JM1_G] -więc ukradnij jego samochód i zabierz go do warsztatu 8-Balla w Harwood. - -[JM1_H] -Znasz 8-Balla, nie? - -[JM1_I] -Kiedy 8-Ball założy w samochodzie ładunek, odprowadź furę na to samo miejsce, z którego ją wziąłeś. - -[JM1_J] -Potem usiądź w bezpiecznej odległości i podziwiaj fajerwerki. - -[JM1_K] -Tylko się pospiesz, grubas nie będzie przecież jadł cały dzień. - -[CAT2_A1] -Jazda, głupia dziwko! - -[CAT2_A] -Trzeba zadać sobie pytanie: czy przyjechałeś ratować Marię czy też żeby spotkać się ze mną? - -[CAT2_B] -Mam dla ciebie wiadomość: - -[CAT2_B2] -romans z tobą to był wyłącznie interes, za to zastrzelę cię dla przyjemności. - -[CAT2_C] -Jesteś muy peccino amigo! - -[CAT2_D] -Rzuć forsę. - -[CAT2_E] -Ostatnio byłeś bardzo pilnym uczniem! - -[CAT2_E2] -Ale nic się nie nauczyłeś. Mnie nie wolno ufać. - -[CAT2_E3] -Zabić tego idiotę. - -[CAT2_J] -Poderwij ten złom w powietrze! - -[HM5_1] -Yo, Ice mówił, że przyjdziesz. Teraz zasady: bierzemy tylko bejsbole - bez spluw i bez samochodów. - -[HM5_5] -To bitwa o honor, czaisz? - -[HELP14] -Aby podnieść broń, po prostu wejdź na nią. Nie możesz podnieść broni, jeżeli siedzisz w samochodzie. - -[CRUSH] -Zaparkuj w oznaczonym miejscu i wysiądź z pojazdu. Samochód zostanie zgnieciony. - -[DIAB2_B] -Gang brzydkich panów zagroził, że pozbawi mnie mojego gwiazdora, jeżeli nie odpalę im doli. - -[DIAB2_C] -Zatańczyli z niewłaściwym człowiekiem, amigo. - -[DIAB2_D] -Oni mają słabość do lodów. - -[DIAB2_E] -Odszukaj bombę, którą zostawiłem w Harwood, - -[DIAB2_F] -porwij jeden z samochodów sprzedających lody w całym mieście, - -[DIAB2_G] -a potem zwab tych idiotów reklamowym sygnałem lodziarza. - -[DIAB2_H] -Ukrywają się w magazynach przy Atlantic Quay. - -[DIAB3_A] -Jacyś niegrzeczni członkowie Triady ukradli wczoraj w nocy mój samochód, - -[DIAB3_B] -rozbili go i zostawili, aby się dopalił. - -[DIAB3_C] -W bagażniku miałem kilka wyjątkowo cennych pamiątek - - -[DIAB3_D] -prawdziwe rzadkie okazy, których nie da się niczym zastąpić, mój przyjacielu. - -[DIAB3_E] -Na granicy Chinatown ukryłem dla ciebie naprawdę potężną broń. - -[DIAB3_F] -Skorzystaj z niej i naucz wandali z Triady, co oznacza zasłużony gniew El Burro. - -[DIAB3_1] -ZABIJ 25 CZŁONKÓW TRIADY - -[DIAB4_A] -Jakiś marny złodziejaszek ukradł mi półciężarówkę z najnowszym wydaniem moich magazynów... Prosto z drukarni! - -[DIAB4_B] -Ale ten zaćpany idiota nie zamknął tylnych drzwi - -[DIAB4_C] -i teraz moja starannie opracowana literatura dla dorosłych, - -[DIAB4_D] -opatrzona wysmakowanymi zdjęciami, wala się po całym Liberty! - -[DIAB4_E] -Weź półciężarówkę i jedź śladem magazynów 'Donkey Daje Całemu Dallas' część 1, 2 i 3. - -[DIAB4_F] -Zbieraj wszystko, co znajdziesz. - -[DIAB4_G] -Kiedy dotrzesz po tropie do tego złodziejskiego ĆPUNA, załatw go! - -[DIAB4_H] -A potem zawieź moje książeczki z Donkey do Magazynów XXX w Dzielnicy Czerwonych Świateł. - -[DIAB4_1] -~g~Zabierz samochód na zaplecze Magazynów XXX. - -[HM1_E] -Pokaż tym zaćpanym siuśkom, na czym polega prawdziwa jazda samochodem. - -[HM1_H] -Usuń mi te 'Dziewiątki' z widoku! - -[HM2_A] -Te 'Dziewiątki' nadal nadeptują mi na odcisk. - -[HM2_B] -Szczeniaki załatwiły sobie samochody opancerzone i sprzedają PROCHY... - -[HM2_C] -...naszym niewinnym czarnym braciom. - -[HM2_D] -Zostawiłem dla ciebie samochód. - -[HM2_E] -W środku znajdziesz parę zabawek, które pomogą ci dać siuśkom nauczkę... - -[HM3_A] -Jakiś samobójca wsadził bombę do mojej gabloty. - -[HM3_B] -Jeżeli stracę tę furę, mogę pożegnać się z moją reputacją na ulicach. - -[HM3_C] -Weź mój wóz i zabierz go do warsztatu w St. Marks, brachu. - -[HM3_D] -Niech chłopaki się nim zajmą i rozbroją bombę. - -[HM3_E] -Zegar już odlicza czas, a bomba chyba jest uszkodzona. - -[HM3_F] -Wpadniesz w jedną dziurę za dużo i to cacko wyleci w powietrze. - -[HM3_G] -Na co jeszcze czekasz? - -[HM4_A] -Yo, na lotnisku im. Francisa właśnie roztrzaskał się samolot Banku Narodowego. - -[HM4_B] -Platyna wala się po całym pasie startowym. - -[HM4_C] -Załatw samochód i zgarnij tyle, ile tylko się da. - -[HM4_F] -Możesz wysypać platynę przy jednym z moich garaży. - -[HM4_G] -Platyna jest cholernie ciężka, więc nie zdziw się, kiedy przeciążysz gablotę i fura będzie się wlokła jak ślimak. - -[HM4_H] -Lepiej regularnie zrzucaj towar przy jakimś garażu. - -[HM5_A] -Z gangu 'Dziewiątek' zostały już tylko niedobitki... - -[HM5_B] -ale nadal chcą się pobawić. - -[HM5_C] -Zgodzili się na pojedynek twarzą w twarz. - -[HM5_D] -Ich banda przeciwko dwóm spośród nas, a raczej... - -[HM5_E] -przeciwko tobie i jeszcze komuś - -[HM5_F] -Poszedłbym z tobą, ale... - -[HM5_G] -jeszcze przez trzy miesiące mam wyrok w zawieszeniu i nie mogę rozrabiać, - -[HM5_H] -sam rozumiesz. - -[HM5_I] -Weźmiesz ze sobą mojego młodszego brata. - -[HM5_J] -On ci pokaże, gdzie jesteście umówieni. - -[MEA1_B] -Nazywam się Chonks, Marty Chonks. - -[MEA1_C] -Prowadzę Delikatesy Pod Psem, tuż za rogiem. - -[MEA1_D] -Mam kłopoty z kasą, ale kto ich dzisiaj nie ma? - -[MEA1_E] -Jestem umówiony z kierownikiem mojego banku. - -[MEA1_F] -Ten cwaniaczek cały czas podnosi odsetki mojego kredytu, żeby móc odkroić swoją działkę. - -[MEA1_G] -Weź mój samochód, jedź po niego i przywieź go tutaj. - -[MEA1_H] -Mam małą niespodziankę dla tego krwiopijcy!! - -[MEA2_A] -Wynająłem paru złodziejaszków, aby włamali się do mojego mieszkania - -[MEA2_C] -Te złodziejskie szumowiny grożą, że zakapują mnie w firmie ubezpieczeniowej, - -[MEA2_D] -jeżeli nie odpalę im doli. - -[MEA2_E] -To się po prostu w głowie nie mieści! - -[MEA2_F] -W fabryce zostawiłem samochód. - -[MEA2_G] -Skorzystaj z niego i zabierz złodziei z Dzielnicy Czerwonych Świateł. - -[MEA2_H] -Potem przywieź ich do fabryki. Tam wytłumaczę im mój punkt widzenia w tej sprawie. - -[MEA3_A] -Mój interes zbankrutuje, jeżeli szybko nie dostanę do rąk większej gotówki. - -[MEA3_B] -Moja żona ma sporą polisę ubezpieczeniową, a i tak przez całe życie tylko wyciągała ode mnie pieniądze. - -[MEA3_C] -Zostawiłem samochód w umówionym miejscu. - -[MEA3_D] -Jedź po moją żonę do pawilonu 'Klasyczny Manicure' i przywieź ją do fabryki. - -[MEA4_A] -Cholera, wpakowałem się w tarapaty! - -[MEA4_B] -Okazuje się, że moja żona romansowała z gościem, któremu wiszę pieniądze. - -[MEA4_C] -Jest mocno wkurzony i chce mi się zrewanżować! - -[MEA4_E] -on myśli, że chcę oddać mu kasę... - -[MEA4_F] -ale mnie się zdaje... - -[MEA4_G] -że do misek psów z Liberty jeszcze w tym miesiącu trafi kolejny rodzaj mięska! - -[WELCOME] -WITAMY W - -[HM1_2] -~g~Zdobądź samochód! Pamiętaj, że liczą się tylko kolesie rozjechani samochodem! - -[HELP8_B] -Naciśnij klawisz~h~ ~k~~PED_SNIPER_ZOOM_IN~~w~, aby ~h~przybliżyć ~w~widok przez lunetkę karabinu oraz klawisz~h~ ~k~~PED_SNIPER_ZOOM_OUT~~w~, aby ~h~oddalić~w~ widok. - -[LRQC_1] -Muszę, hm, porozmawiać z Asuką. - -[LRQC_2] -Może wyskoczysz na spacer po mieście? - -[LRQC_3] -Musisz znaleźć sobie jakąś kryjówkę. - -[LRQC_4] -W Belville jest magazyn, który powinien ci odpowiadać. - -[LRQC_5] -Kiedy będziesz gotowy, wróć do mojego apartamentu, - -[LRQC_6] -to pogadamy, co robić dalej. - -[JM6_5] -~g~Musisz załatwić pojazd, którym uciekniemy, idioto! - -[JM2_F] -Jeżeli potrzebujesz giwery, to idź na zaplecze Amu-Nacji naprzeciwko stacji metra. - -[LOVE4_7] -~g~Na Wyspie Staunton jest jakiś plac budowy, może to właśnie tam zabrali pakunek. - -[LOVE4_8] -~g~Aby otworzyć ten garaż, musisz mieć samochód. - -[TSCORE] -ZAROBEK: $~1~ - -[AM1_9] -~r~Salvatore uciekł z powrotem do klubu 'U Luigiego'! - -[AM1_6] -~g~Jeżeli będziesz kręcił się wokół klubu Luigiego, to mafia z pewnością cię wypatrzy! - -[TM2_3] -~g~To pułapka! Załatw ich!!! - -[FM4_1] -Tu mówi Maria. Ten samochód to pułapka! Spotkaj się ze mną na południowym końcu Mostu Callahan. - -[JM1_7] -~g~Zamknij drzwi samochodu! Mike może coś zwąchać! - -[KM5_1] -~g~DILER ROZJECHANY!!! - -[KM5_6] -~g~Musisz zamordować co najmniej 8 dilerów z gangu Yardie. - -[KM5_7] -~g~Zabijaj jak najszybciej! Kiedy sprzedadzą cały towar, pochowają się w swoich norach! - -[RM3_8] -~r~Ten samochód to tylko przynęta!! - -[LM3_8] -Cześć, jestem Joey. - -[LM3_9] -Luigi mówił, że można ci ufać, więc wpadnij później, - -[KM3_5] -~g~Naciśnij klakson, aby zacząć rozmowy. - -[LOVE7] -ZNIKNIĘCIE LOVE'A - -[LOVE2_5] -~g~Z Kenji'ego została już tylko kupa mięsa na twoje masce! Uciekaj z Newport i pozbądź się samochodu! - -[AS2_11] -~g~~1~ Z 9! - -[GARAGE1] -~g~Wysiądź z samochodu i wyjdź na zewnątrz. - -[KM3_11] -~g~Kartel został zaatakowany, a teczka nie została odzyskana. - -[KM3_12] -~g~Zabij wszystkich Kolumbijczyków, zniszcz pojazdy i odzyskaj teczkę. - -[KM3_13] -~g~Odwieź teczkę do kasyna. - -[RM5_6] -~g~Prawie go masz! Staranuj jego wóz swoim pojazdem albo rozwal materiałami wybuchowymi! - -[PBOAT_1] { re3 change } -Naciśnij klawisz ~h~~k~~VEHICLE_FIREWEAPON~~w~, aby otworzyć ogień z działek na łodzi. - -[PBOAT_2] { re3 change } -Naciśnij klawisz ~h~~k~~VEHICLE_FIREWEAPON~~w~, aby otworzyć ogień z działek na łodzi. - -[DIAB1_B] -Mówi El Burro z gangu Diablo. - -[DIAB1_D] -Jesteś nowy w Liberty, ale na ulicach już zaczyna być o tobie głośno. - -[DIAB1_E] -Organizuję dla rozrywki mały wyścig. Punkt startu znajduje się przy starej szkole w okolicach Mostu Callahan. - -[DIAB1_F] -Skołuj sobie gablotę. Wygrywa ten, kto pierwszy zaliczy wszystkie punkty na trasie. - -[HM2_1] { re3 change } -Użyj zdalnie sterowanych samochodzików, aby zniszczyć samochody opancerzone. Naciśnij klawisz ~h~~k~~VEHICLE_FIREWEAPON~~w~, aby zdetonować ładunek. - -[HM2_1A] { re3 change } -Użyj zdalnie sterowanych samochodzików, aby zniszczyć samochody opancerzone. Naciśnij klawisz ~h~~k~~VEHICLE_FIREWEAPON~~w~, aby zdetonować ładunek. - -[HM2_2] -~r~Nie udało ci się zniszczyć wszystkich samochodów opancerzonych! - -[HM2_6] -~g~Samochód opancerzony został zniszczony! - -[RM3_A] -Znam w tym mieście jednego bardzo ważnego faceta, prawdziwą grubą rybę, - -[RM3_H] -który słynie ze swych, jak to ująć, nietypowych upodobań i wielkiej fortuny, jaką na nie wydaje. - -[RM3_B] -Uwikłał się w proces sądowy, a prokuratura zdobyła kompromitujące go fotografie. - -[RM3_C] -Zrobili je na imprezie w kostnicy czy coś takiego. - -[LOVE6_A] -Przyjacielu, przyjmij ode mnie lekcję prowadzenia interesów. - -[LOVE6_E] -Jeżeli posiadasz przedmiot jedyny w swoim rodzaju, to dokładnie wszyscy, nawet ze swoimi żonami, będą się ze wszystkich sił starać ci go odebrać, - -[LOVE6_C] -Oddziały antyterrorystyczne otoczyły obszar, na którym znajduje się mój współpracownik wraz z pakunkiem. - -[LOVE6_D] -Jedź tam i weź ciężarówkę. Posłużysz jako przynęta. - -[LOVE6_F] -Odciągnij ich uwagę tak, aby mój przyjaciel mógł spokojnie opuścić to miejsce. - -[AM3_C] -Teraz najprawdopodobniej czyha na zatoce! Ukradnij łódź policyjną i raz na zawsze zakończ jego karierę! - -[FESZ_UC] -ANULUJ - -[FEDS_SM] -L1, R1 - ZMIANA MENU - -[FEDS_AS] -;= - ZMIANA WYBORU - -[FEDSAS2] -<> - ZMIANA WYBORU - -[FEDS_SS] -L1, R1 - ZMIANA WYBORU - -[FEDSSC1] -; - SZYBSZE PRZEWIJANIE - -[FEDSSC2] -Err:509 - -[MEA2_3] -~g~Odwieź samochód do fabryki. - -[RM1_3] -~r~McAffrey zwiał! - -[RM1_4] -~g~Zużyłeś wszystkie granaty! Wróć po nowy zapas do Amu-Nacji! - -[RM1_5] -~g~Wracaj i podpal ten dom! - -[RM6_4] -~g~Jedź do dziupli i zabierz rzeczy Raya. - -[RM6_5] -~g~CIA nieustannie obserwuje most, znajdź inną trasę. - -[HM2_F] -i sprzątnąć ich pancerny złom. - -[HM_4] -'W POGONI ZA KASĄ' - -[MEA2_B5] -TEKST JUŻ NIEPOTRZEBNY - -[MEA1_B5] -TEKST JUŻ NIEPOTRZEBNY - -[MEA3_B5] -TEKST JUŻ NIEPOTRZEBNY - -[MEA4_B7] -ale jeżeli zechcesz wpaść do mojego biura... - -[MEA3_B4] -Marty chce się ze mną widzieć? Lepiej niech się streszcza, bo muszę jeszcze zrobić sobie dzisiaj nową fryzurę. - -[KM3_7] -Ludzie, to pułapka Yakuzy! - -[FES_LOF] -Wczytywanie nieudane. - -[FES_SLO] -ZAPISZ PLIK - -[FES_ISC] -USZKODZONY - -[FESZ_TI] -ZAPISZ Z1 - -[FESZ_SA] -Zapis gry - -[MC_LDFL] -Wczytywanie nieudane! - -[MC_NWRE] -Trwa ponowne uruchamianie gry. - -[LOVE6_3] -~g~Masz ~1~ sekund na powrót do konwojowozu albo misja zakończy się porażką. - -[LOVE6_4] -~r~Straciłeś fałszywy konwojowóz! - -[HELP1] -Zatrzymaj się wewnątrz niebieskiego pola. - -[HELP12] -Stań na niebieskim polu, aby rozpocząć misję. - -[HJSTAT] -Odległość: ~1~,~1~m Wysokość:~1~,~1~m Salta: ~1~ Obroty: ~1~_ - -[HJSTATW] -Odległość: ~1~.~1~m Wysokość: ~1~.~1~m Salta: ~1~ Obroty: ~1~_ Plus doskonałe lądowanie! - -[DIAB1_5] -CZAS WYŚCIGU: - -[LOVE3_4] -~r~Zniszczyłeś samolot! - -[F_FAIL1] -Misja strażacka zakończona. - -[F_CANC] -~r~Misja strażacka anulowana! - -[F_EXTIN] -POŻARY: - -[A_COMP1] -Misja ratunkowa wykonana! - -[A_CANC] -~R~Misja ratunkowa anulowana! - -[A_COMP3] -Misja ratunkowa wykonana! Ty chyba nigdy się nie męczysz! - -[ATUTOR] -Wciśnij klawisz ~h~~k~~TOGGLE_SUBMISSIONS~~w~, aby włączyć lub wyłączyć misje ratunkowe. - -[ATUTOR3] -Wciśnij klawisz ~h~~k~~TOGGLE_SUBMISSIONS~~w~, aby włączyć lub wyłączyć misje ratunkowe. - -[ALEVEL] -Misja Ratunkowa, Poziom ~1~ - -[A_FAIL1] -Misja ratunkowa zakończona. - -[FEST_HA] -Najwyższy poziom misji ratunkowej - -[A_SAVES] -URATOWANI LUDZIE:~1~ - -[C_KILLS] -ZABICI PRZESTĘPCY: ~1~ - -[HM1_B] -Mam problem z paroma frajerami. - -[AM2_A] -Śmierć Salvatore to radosna wiadomość, - -[AM2_A2] -widać, że jesteś dobrym zabójcą. Lubię tę cechę u ludzi. - -[AM2_B] -To mój brat Kenji. - -[AM2_C] -Asuka ma dla ciebie małą robótkę. Kiedy skończysz, wpadnij do mojego kasyna, to pogadamy. - -[AM2_D] -Zupełnie jak Kenji, on też zawsze chce bawić się moimi zabawkami. - -[AM2_E] -Moja wtyczka w policji donosi, że Mafia obserwuje nasze lokale w całym mieście. - -[AM2_E2] -Prawdopodobnie usiłują cię wytropić. - -[AM2_F] -Dopóki nie załatwimy tej sprawy, nie możemy prowadzić zwykłej działalności. - -[AM2_G] -Załatw tych głupawych szpiegów i raz na zawsze zakończ tę wendettę. - -[F_START] -~g~W okolicach ~a~ zauważono płonący pojazd. Udaj się tam i ugaś pożar. - -[AM4_1A] -Odszukaj telefon na Park West Belleville. - -[AM4_1B] -Odszukaj telefon na kampusie Liberty. - -[AM4_1C] -Odszukaj telefon na Park South Belleville. - -[AM4_1D] -Spotkajmy się w parku przy toaletach. - -[HJSTATF] -Odległość: ~1~ stóp Wysokość: ~1~ stóp Salta: ~1~ Obroty: ~1~_ - -[HJSTAWF] -Odległość: ~1~.~1~ stóp Wysokość: ~1~.~1~ stóp Salta: ~1~ Obroty: ~1~_ Plus doskonałe lądowanie! - -[HM1_F] -Lepiej uważaj - na ulicach będą też ludzie z Jacks, którzy mogą uznać, że polujesz również na nich! - -[HM1_D] -Nazywają się 'Dziewiątki' i ubierają się na purpurowo. Każdy dzień, kiedy te leszcze obnoszą się ze swoim barwami, - -[HM1_G] -to dzień wstydu dla mojego gangu. - -[MEA2_B] -i ukradli parę rzeczy, co pozwoli mi wyciągnąć kasę z odszkodowania. - -[TM3_H] -~w~Dobrze się spisałeś, młody, naprawdę dobrze. - -[TM3_I] -~w~Chodź, Don chce cię poznać. - -[TM3_J] -~w~Heeeej, Luigi! - -[TM3_K] -~w~Moje dziewczynki tęsknią za tobą, Salvatore, dawno cię u nas nie było. - -[TM3_L] -~w~Przekaż im ode mnie, że kiedy załatwimy całą tę nieszczęsną sprawę, - -[TM3_M] -~w~razem pojedziemy do klubu i uczcimy zwycięstwo - -[TM3_N] -~w~Oto i mój chłopak. - -[TM3_N2] -~w~Jak się masz, tato? - -[TM3_O] -~w~Znalazłeś już sobie przyzwoitą kobietę? - -[TM3_P] -~w~Ech, twoja matka, wieczny odpoczynek racz jej dać Panie, przewraca się w grobie, - -[TM3_Q] -~w~bo jej syn jeszcze nie ma żony. - -[TM3_R] -~w~Wiem, tato. Pracuję nad tym. - -[TM3_S] -~w~TONI! Jak twoja Mamuśka? - -[TM3_T] -~w~To wspaniała kobieta. Silna. Firenze. - -[TM3_U] -~w~Mama ma się dobrze... Znakomicie. - -[TM3_V] -~w~Doskonale, doskonale. Posłuchajcie, panowie, rozgośćcie się w środku, a ja porozmawiam z naszym nowym przyjacielem. - -[TM3_W] -~w~Widzę przed tobą wielką przyszłość, chłopcze... - -[RM1_A] -Ta szuja McAffrey wziął więcej łapówek niż ktokolwiek inny. - -[RM1_B] -Teraz myśli, że zasłuży na wygodną emeryturę, jeżeli zakapuje nas policji. - -[RM1_C] -Właśnie nas wsypał! - -[RM4_B] -Trzeba go uciszyć raz na zawsze. - -[RM4_E] -Od jutra ma spać z rybami, a nie jadać je na kolację. - -[LOVE3_B] -Dziś w nocy mały samolot przeleci nad zatoką, podchodząc do lądowania. - -[LOVE4_D] -Niestety, władze lotniska przejęły samolot i zaczęły rozbierać go na części, - -[LOVE4_H] -dopóki nie rzuciłem na szalę całego swojego autorytetu. - -[LOVE4_E] -Przejedź przez most do Shoreside Vale i jedź na lotnisko im. Francisa. - -[GTAB_A] -Lepiej stąd znikajmy. Cholera wie, co to jest, - -[GTAB_B] -ale zdaje się, że temu facetowi bardzo na tym zależy, więc to z pewnością musi mieć jakąś wartość. - -[GTAB_C] -Co, u diabła! - -[GTAB_D] -TO TY! - -[GTAB_E] -Hej, spokojnie, amigo! De nada! De nada! - -[GTAB_F] -Kiedy ostatni raz cię widziałem, twoje truchło spływało do ścieków! - -[GTAB_G] -Nie strzelaj, amigo. Nie ma problemu. My przyjaciele. Proszę, weź to sobie. - -[GTAB_H] -Nie bądź taką ciotą! - -[GTAB_I] -Nie mamy wyboru, kotku! - -[GTAB_J] -Zawsze mamy wybór, tępaku! - -[GTAB_K] -Przepraszam za tę głupią sukę, one wszystkie są jednakowe... por favor? - -[GTAB_L] -Więc ta dziwka zwiała? - -[GTAB_M] -Ale zrobiłeś mi przysługę, - -[GTAB_N] -nie jesteś jedyną osobą, która ma rachunki do wyrównania z Kartelem. - -[GTAB_O] -Ten gnidy zabiły mi brata! - -[GTAB_P] -Nigdy nie zabiłem żadnego członka Yakuzy! - -[GTAB_Q] -KŁAMIESZ! Wszyscy widzieliśmy zabójcę z Kartelu. - -[GTAB_R] -Wytropimy i wytłuczemy was wszystkich, wy kolumbijskie kundle! - -[GTAB_S] -Pobawię się z twoim przyjacielem, aby wydobyć z niego jakieś informacje i troszkę się rozerwać. - -[GTAB_T] -Ej, wpadnij później, będe cię jeszcze potrzebował. - -[GTAB_U] -Proszę, amigo, nie zostawiaj mnie z nią! Ta chica to wariatka! Amigo? Hej, AMIGOOO!!!... Aaaaaa! - -[LOVE5_A] -Raz po raz dowodzisz, że warto w ciebie inwestować, a to rzadkość w dzisiejszych czasach kłamstwa i obłudy. - -[KM3_1] -~g~Kartel spodziewa się kolesia z Yardies, więc idź i ukradnij samochód gangu Yardie! Powinieneś znaleźć ich w Newport, na północy. - -[LOVE1_1] -~g~Podwędź samochód gangu kolumbijskiego, abyś mógł swobodnie przeniknąć do ich kryjówki. Samochód znajdziesz na północ stąd, w Fort Staunton. - -[FM1_Q1] -~w~Szukasz mocnych wrażeń? Może odrobinę... Hm? Odrobinę HEROINY? - -[FM1_R] -~w~Czołem, Chico. Nie, daj mi to, co zawsze. - -[FM1_T] -~w~Dzięki, Chico. Na razie! - -[FM1_W] -~w~W porządku, piesku! Posiedź tu i popilnuj samochodu, a ja wyskoczę i poruszam trochę tyłkiem. - -[FM1_X] -~w~OK, piesku! Znikajmy stąd. Hau hau! - -[FM1_Q] -~g~Cześć, Mario! Moja ulubiona klientka! - -[FM1_S1] -~w~Hej, może wpadniesz na imprezę w tej pustej hali magazynowej na wschodnim krańcu Atlantic Quays? - -[FM1_U] -~w~Gracias i życzę przyjemnych wrażeń. To niezły towar... - -[FM1_V] -~w~Jazda, piesku! Jedziemy zajrzeć na tę imprezę! - -[FM1_SS] -~r~NASŁUCH RADIOWY: ~g~Cztery-pięć do wszystkich jednostek: Zapewnić wsparcie akcji antynarkotykowej w Atlantic Quays... - -[LOVE6_B] -nawet jeżeli mają tylko blade pojęcie na temat jego rzeczywistej wartości. - -[TM3_A1] -~r~Joey się usmażył! - -[TM3_A2] -~r~Joey i Lugi spiekli się na węgiel! - -[TM3_A3] -~r~Joey, Luigi i Toni usmażeni! - -[FM4_2] -Posłuchaj, Salvatore podejrzewa, że kombinujemy coś za jego plecami, - -[FM4_3] -dlatego postanowił sprzedać cię Kartelowi. - -[FM4_4] -Nie mogę do tego dopuścić. Najgorsze w tym wszystkim jest to, - -[FM4_4B] -że to moja wina... To ja mu powiedziałam, że między nami coś jest... - -[FM4_5] -Nie pytaj mnie, po co. Sama nie wiem. - -[FM4_6] -Posłuchaj, na terytorium mafii jesteś poszukiwany, ja też chciałabym się stąd wyrwać. - -[FM4_6B] -Widziałam już za dużo śmierci, zbyt wiele krwi! - -[FM4_7] -Mam starą dobrą przyjaciółkę... Nazywa się Asuka. Możemy jej zaufać. - -[FM4_8] -Dobra, wystarczy już tych przemówień. - -[FM4_9] -Zbierajmy się stąd, zanim pojawią się tu całe wycieczki rozhisteryzowanych Włochów, którzy będą chcieli rozstrzygać z nami rodzinne zatargi. - -[CRED001] -ROCKSTAR STUDIOS - -[CRED002] -PRODUCENT - -[CRED003] -LESLIE BENZIES - -[CRED004] -KIEROWNIK ARTYSTYCZNY - -[CRED005] -AARON GARBUT - -[CRED006] -KIEROWNIK TECHNICZNY - -[CRED007] -OBBE VERMEIJ - -[CRED008] -ADAM FOWLER - -[CRED009] -PROJEKT - -[CRED010] -CRAIG FILSHIE - -[CRED011] -WILLIAM MILLS - -[CRED012] -CHRIS ROTHWELL - -[CRED013] -JAMES WORRALL - -[CRED014] -SCENARIUSZ - -[CRED015] -JAMES WORRALL - -[CRED016] -PAUL KUROWSKI - -[CRED017] -DAN HOUSER - -[CRED018] -POSTACI - -[CRED019] -IAN MCQUE - -[CRED020] -ANIMACJA & REŻYSERIA - -[CRED021] -ALEX HORTON - -[CRED022] -LEE MONTGOMERY - -[CRED023] -PROJEKTY POJAZDÓW - -[CRED024] -PAUL KUROWSKI - -[CRED025] -GRAFICY - -[CRED026] -KEIRAN BAILLIE - -[CRED027] -ADAM COCHRANE - -[CRED028] -GARY MCADAM - -[CRED029] -MICHAEL PIRSO - -[CRED030] -ANDREW SOOSAY - -[CRED031] -ALISDAIR WOOD - -[CRED032] -KODERZY - -[CRED033] -ALAN CAMPBELL - -[CRED034] -MARK HANLON - -[CRED035] -ANDRZEJ MADAJCZYK - -[CRED036] -ALEXANDER ROGER - -[CRED037] -GRAEME WILLIAMSON - -[CRED038] -MUZYKA - -[CRED039] -CRAIG CONNER - -[CRED040] -STUART ROSS - -[CRED041] -KONCEPCJA I MASTERING DŹWIĘKU - -[CRED042] -ALLAN WALKER - -[CRED043] -PROGRAMOWANIE AUDIO - -[CRED044] -RAYMOND USHER - -[CRED045] -KIEROWNIK TESTÓW - -[CRED046] -CRAIG ARBUTHNOTT - -[CRED047] -GŁÓWNI TESTERZY - -[CRED048] -ANDY DUTHIE - -[CRED049] -JOHN HAIME - -[CRED050] -NEIL CORBETT - -[CRD050A] -TESTERZY - -[CRED051] -GRAEME JENNINGS - -[CRED052] -DAVID MURDOCH - -[CRED053] -DAVID BEDDOES - -[CRED054] -EDWIN SMITH - -[CRED055] -MARK FLETT - -[CRED056] -MICHAEL SUTHERLAND - -[CRED057] -POMOC TECHNICZNA - -[CRED058] -LORRAINE ROY - -[CRED059] -CHRISTINE CHALMERS - -[CRED060] -ROCKSTAR - -[CRED061] -PRODUCENT WYKONAWCZY - -[CRED062] -SAM HOUSER - -[CRED063] -PRODUCENT - -[CRED064] -DAN HOUSER - -[CRED065] -DYREKTOR DS. ROZWOJU - -[CRED066] -JAMIE KING - -[CRED067] -PRODUCENT TECHNICZNY - -[CRED068] -GARY J. FOREMAN - -[CRED069] -PRODUCENT POMOCNICZY - -[CRED070] -JEREMY POPE - -[CRED071] -KOORDYNACJA MUZYCZNA - -[CRED072] -TERRY DONOVAN - -[CRED073] -ZESPÓŁ PRODUKCYJNY ROCKSTAR - -[CRED074] -TERRY DONOVAN - -[CRED075] -JENNIFER KOLBE - -[CRED076] -JENEFER GROSS - -[CRED077] -LAURA PATERSON - -[CRED078] -JEFF CASTANEDA - -[CRED079] -CHRIS CARRO - -[CRED080] -ADAM TEDMAN - -[CRED081] -JUNG KWAK - -[CRED082] -BRIAN WOOD - -[CRED083] -PAUL YEATES - -[CRED084] -STANTON SARJEANT - -[CRED085] -WICEPREZES DS. MARKETINGU - -[CRED086] -TERRY DONOVAN - -[CRED087] -KOORDYNACJA TECHNICZNA - -[CRED088] -BRANDON ROSE - -[CRED089] -KIEROWNIK DS. ZAPEWNIENIA JAKOŚCI - -[CRED090] -JEFF ROSA - -[CRED091] -GŁÓWNY ANALITYK - -[CRED092] -ADAM DAVIDSON - -[CRED093] -ANALITYK GRY - -[CRED094] -RICHARD HUIE - -[CRED095] -ZESPÓŁ TESTUJĄCY - -[CRED096] -LANCE WILLIAMS - -[CRED097] -JOE GREENE - -[CRED098] -BRIAN PLANER - -[CRED099] -OSWALD GREENE - -[CRED100] -REDAKCJA 'LIBERTY TREE' - -[CRED101] -JAMES WORRALL - -[CRED102] -DAN HOUSER - -[CRED103] -ADAM TEDMAN - -[CRED104] -PAUL YEATES - -[CRED105] -JENEFER GROSS - -[CRED106] -LAURA PATERSON - -[CRED107] -SEKWENCJE FILMOWE - -[CRED108] -SCENARIUSZ: DAN HOUSER I JAMES WORALL - -[CRED109] -REŻYSERIA DŹWIĘKU: DAN HOUSER - -[CRED110] -PRODUKCJA DŹWIĘKU: RENAUD SEBBANE - -[CRED111] -OBSADA - -[CRED112] -FRANK VINCENT JAKO SALVATORE LEONE - -[CRED113] -JOE PANTOLIANO JAKO LUIGI GOTERELLI - -[CRED114] -MICHAEL MADSEN JAKO TONI CIPRIANI - -[CRED115] -MICHAEL RAPAPORT JAKO JOEY LEONE - -[CRED116] -DEBBI MAZAR JAKO MARIA - -[CRED117] -KYLE MACLACHLAN JAKO DONALD LOVE - -[CRED118] -ROBERT LOGGIA JAKO RAY MACHOWSKI - -[CRED119] -GURU JAKO 8-BALL - -[CRED120] -SONDRA JAMES JAKO MAMUŚKA - -[CRED121] -LIANA PAI JAKO ASUKA - -[CRED122] -LES MAU JAKO KENJI - -[CRED123] -CYNTHIA FARRELL JAKO CATALINA - -[CRED124] -AL. ESPINOSA JAKO MIGUEL - -[CRED125] -CHRIS PHILLIPS JAKO EL BURRO - -[CRED126] -HUNTER PLATIN JAKO CHICO - -[CRED127] -WALTER MUDU JAKO D-ICE - -[CRED128] -CURTIS MCCLARIN JAKO CURTLY - -[CRED129] -BILL FIORE JAKO DARKEL - -[CRED130] -CHRIS PHILLIPS JAKO MARTY CHONKS - -[CRED131] -HUNTER PLATIN JAKO KUDŁATY BOB - -[CRED132] -WALTER MUDU JAKO KING COURTNEY - -[CRED133] -HUNTER PLATIN JAKO JEDNORĘKI PHIL - -[CRED134] -KIM GURNEY JAKO MISTY - -[CRED135] -MOTION CAPTURE - -[CRED136] -ANIMACJA - -[CRD136A] -ALEX HORTON - -[CRED137] -REŻYSERIA - -[CRD137A] -NAVID KHONSARI - -[CRED138] -PRODUKCJA - -[CRD138A] -JAMIE KING - -[CRD138B] -RENAUD SEBBANE - -[CRED139] -NAGRANIA PRZEPROWADZONO W MODERN UPRISINGS STUDIOS, BROOKLYN - -[CRED140] -AKTORZY - -[CRD140A] -MARTINEZ - -[CRD140B] -GISELLE JONES - -[CRD140C] -STEPHEN DANIELS - -[CRD140D] -ROBERT STIO - -[CRD140E] -JENNY GROSS. - -[CRED141] -DIALOGI PRZECHODNIÓW - -[CRED142] -TEKST: DAN HOUSER, NAVID KHONSARI I JAMES WORALL - -[CRED143] -REŻYSERIA: CRAIG CONNER, DAN HOUSER I LAZLOW - -[CRED144] -PRODUKCJA: RENAUD SEBBANE - -[CRED145] -OBSADA - -[CRED146] -HUNTER PLATIN - -[CRED147] -DAN HOUSER - -[CRED148] -RENAUD SEBBANE - -[CRED149] -MARIA CHAMBERS - -[CRED150] -JEFF STANTON - -[CRED151] -RYAN CROY - -[CRED152] -DEENA BERMAN - -[CRED153] -MARIA CHAMBERS - -[CRED154] -ALICE B. SALTZMAN - -[CRED155] -ALEX ANTHONY SIOUKAS - -[CRED156] -SEAN R. LYNCH - -[CRED157] -AMY SALZMAN - -[CRED158] -COLIN MCSHANE - -[CRED159] -COREY WADE - -[CRED160] -GERALD COSGROVE - -[CRED161] -STEPHANIE ROY - -[CRED162] -DORIS WOO - -[CRED163] -JOSEPH GREENE - -[CRED164] -LAZLOW JONES - -[CRED165] -HSIANG LIN - -[CRED166] -STEVE MICHAEL ROBERT - -[CRED167] -MATHEW MURRAY - -[CRED168] -RICHARD HUIE - -[CRED169] -GARVIN ATWELL - -[CRED170] -STEVE KNEZEVICH - -[CRED171] -YUKIMURA SATO - -[CRED172] -FRANK CHAVEZ - -[CRED173] -LIEZL JACINTO - -[CRED174] -CANAAN MCKOY - -[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] -STACJE RADIOWE ORAZ MUZYKA - -[CRED218] -PRODUKCJA DLA ROCKSTAR UK - -[CRD218A] -CRAIG CONNER - -[CRD218B] -STUART ROSS - -[CRED219] -KOORDYNATOR ŚCIEŻKI DŹWIĘKOWEJ - -[CRED220] -TERRY DONOVAN - -[CRED221] -PRODUKCJA DLA ROCKSTAR GAMES - -[CRED222] -DAN HOUSER - -[CRED223] -REDAKCJA - -[CRED224] -CRAIG CONNER - -[CRED225] -ALLAN WALKER - -[CRED226] -LAZLOW - -[CRED227] -TEKSTY I WIZERUNKI PREZENTERÓW: - -[CRED228] -DAN HOUSER - -[CRED229] -LAZLOW - -[CRED230] -SPECJALNE PODZIĘKOWANIA DLA: - -[CRED231] -ADAM TEDMAN - -[CRED232] -ALEX MASON - -[CRED233] -JUDY HENDERSON CASTING - -[CRED234] -HAMISH BROWN - -[CRED235] -CHRISSY HOBAN - -[CRED236] -INNES RICARD - -[CRED237] -LILION BROZSKA - -[CRED238] -BOB HILLARY - -[CRED239] -EMILY ANDERSON - -[CRED240] -RICHIE HENDERSON - -[CRED241] -CHRSTIAN CANTAMESSA - -[CRED242] -JERONIMO BARRERA - -[CRED243] -ALEXANDER ILLES - -[CRED244] -BARANE CHAN - -[CRED245] -DUNCAN SHIELDS - -[CRED246] -BARANE CHAN - -[CRED247] -DEREK PAYNE - -[CRED248] -KEVIN WONG - -[CRED249] -ROSS ELLIOTT - -[CRED250] -ROSS BEAZLEY - -[CRED251] -ALEX BAZLINTON - -[CRED252] -DAVE WATSON - -[CRED253] -MALCOLM SMITH - -[CRED255] -ANDREW SEMPLE - -[CRED256] -ARTYŚCI - -[CRED257] -STUART PETRI - -[CRED258] -JERONIMO BARRERA - -[CRED259] -CARLY SLATER - -[CRED260] -GREG LAU - -[CRED261] -STEVE KNEZEVICH - -[CRED262] -DEVIN WINTERBOTTOM - -[CRED263] -JAMEEL VEGA - -[CRED264] -LEE CUMMINGS - -[CRED265] -DEVIN BENNET - -[CRED266] -ELIZABETH SATTERWHITE - -[CRED267] -AARON RIGBY - -[CRED268] -STEVE K. - -[CRED269] -GREG LAU - -[CRED270] -MIKE HONG - -[CINCAM] -Kamera Filmowa - -[KM1_13] -Wprowadź samochód do garażu! - -[KM3_14] -~r~Zostałeś zauważony, układ odwołany! - -[EBAL_H] -Poczekaj tutaj, brachu, a ja pójdę do środka i pogadam z Luigim. - -[EBAL_M] -Tylko pamiętaj - nic nie kombinuj z moimi dziewczynami! - -[LM2_F] -Potem zabierz jego samochód i przemaluj go. - -[LM2_D] -proszę bardzo. - -[LM1_9] -Cześć, jestem Misty... - -[LM4_A] -Jakaś gnida z gangu Diablo nasyła swoje brudne dziwki na moje terytorium. - -[FM2_B] -Mamy kreta! - -[FM2_C] -Żaden z niego alfons czy diler, więc pewnie dorabia na boku sprzedając informacje. - -[FM3_CC] -~w~Bracie, wróć, kiedy będziesz miał pieniądze. - -[FEDS_AM] -<> - ZMIANA MENU - -[LOVE5_5] -~r~Nie udało cię się ochronić ciężarówki! - -[RM6_6] -~r~Ray nie żyje! - -[RM6_7] -~r~Ray spóźnił się na samolot. - -[RM6_8] -~r~Zgubiłeś Raya, wracaj po niego. - -[FM1_10] -~g~Zostawiłeś Marię - zawróć i ją zabierz. - -[LOVE4_9] -~r~Samolot został zniszczony! - -[LOV4_10] -~r~Jedyny ślad, który wskazywał, gdzie zniknęła paczka, został zniszczony! - -[KM2_D] -Nie muszę chyba dodawać, że przekażę mu te samochody w darze, aby spłacić dług, który u niego zaciągnąłem. - -[KM4_B] -Interes idzie na tyle dobrze, że dziś możemy odebrać należną nam opłatę za ochronę. - -[KM2_E] -Zdobądź samochody z tej listy i dostarcz je do warsztatu za parkingiem w Newport. - -[FM3_8I] -~w~Znajdź dobre stanowisko strzeleckie. Kiedy oddasz pierwszy strzał, ja zrobię to, co do mnie należy. - -[LOVE1_B] -Doświadczenie uczy mnie, że ludzie tacy jak ty potrafią być niezwykle lojalni za odpowiednią cenę. - -[LOVE1_H] -ale niektórzy ludzie robią się coraz bardziej chciwi. - -[LOVE1_C] -Znam pewnego starszego pana, pochodzącego z krajów Orientu, który jest dla mnie niezwykle cenny. - -[LOVE1_I] -Niestety został on porwany przez jakiś gang z Ameryki Południowej w okolicach Aspatrii. - -[MEA4_D] -Zgodziłem się z nim spotkać... - -[MEA4_B4] -Marty cię przysyła, co? W porząsiu, pokażę tej gliście, jak się robi interesy. - -[MEA4_B5] -Carl, cześć! Ee, potrzebuję jeszcze trochę czasu, żeby zebrać dla ciebie pieniądze. - -[MEA1_B4] -Ach, przysłał cię Chonks, prawda? Chodźmy odwiedzić naszego wspólnego przyjaciela. - -[HM5_6] -Trzeba rozłupać parę łbów... - -[LOVE1_5] -~g~Przestań się obijać, załatw samochód Kolumbijczyków i uratuj przyjaciela Love'a. - -[AS1_D] -~w~Posłuzysz jako przynęta i ściągniesz szwadrony śmierci za sobą do Pike Creek, - -[AS1_E] -~w~gdzie moi ludzie urzadzą im właściwe przyjęcie. - -[AS2_C] -~w~Kartel działa pod przykrywką firmy Dom Kawy Kappa. - -[AS2_E] -~w~Nie mamy wyjścia, trzeba wyłączyć z gry te punkty sprzedaży dragów. - -[AS2_F] -~w~Rozwal je w drzazgi!! - -[AS2_A1] -~w~Miguel to doskonały przykład słynnej latynoskiej odporności. - -[AS2_A2] -~w~Ręce opadają mi ze zmęczenia. - -[SIREN_3] -Aby włączyc syrenę pojazdu, naciśnij klawisz ~h~~k~~VEHICLE_HORN~ ~w~. - -[SIREN_4] -Aby włączyc syrenę pojazdu, naciśnij klawisz ~h~~k~~VEHICLE_HORN~ ~w~. - -[AS3_C] -~w~Eeej! Co to za lepkie żółte świństwo? - -[AS3_C1] -~w~O, cześć, kochanie. - -[AS3_F] -~w~Ta dziewczyna po prostu ma talent. - -[AS3_F1] -~w~Udało jej się wydobyć z naszego gościa ten oto klejnocik. - -[AS3_G] -~w~Za 2 godziny na Lotnisko Francisa przyleci pewien samolot. - -[AS3_G1] -~w~Jest on wyładowany trucizną Cataliny. - -[AS3_H] -~w~Możesz ominąć lotniskowe służby bezpieczeństwa, jeżeli popłyniesz łodzią - -[AS3_H1] -do boi wyznaczających lądowisko i zestrzelisz lądujący samolot. - -[AS3_I] -~w~Zabierz z wraku ładunek! - -[AS3_J] -~w~Tylko bądź ostrożny, dobrze, kochanie? - -[AS3_K] -~w~A teraz spróbujemy olejku chilli... - -[RM2_F1] -Kolumbijczycy będą tutaj lada chwila! - -[RM2_K] -Cholera, już tu są! OGNIA! - -[LOVE2_7] -~g~Teraz pozbądź się samochodu!v - -[LOVE2_8] -~g~Uciekaj z Newport! - -[AM1_F] -Za około trzy godziny (~1~:~1~), Salvatore Leone będzie wychodził z klubu 'U Luigiego'. - -[LOVE5_C] -Masz za nim jechać i pilnować, aby zarówno on, jak i mój pakunek dotarli do Pike Creek bez szwanku. - -[FESZ_SR] -Zapisywanie zakończone niepowodzeniem! Sprawdź kartę pamięci (PS2) w gnieździe KART PAMIĘCI nr 1 i ponów próbę. - -[FESZ_FO] -Czy chcesz sformatować kartę pamięci (PS2) w gnieździe KART PAMIĘCI nr 1? - -[FELZ_FO] -Karta pamięci (PS2) w gnieździe KART PAMIĘCI nr 1 nie jest sformatowana. - -[FES_NOC] -Brak karty pamięci (PS2) w gnieździe KART PAMIĘCI nr 1. - -[FES_LOE] -Wczytywanie zakończone niepowodzeniem! Sprawdź kartę pamięci (PS2) w gnieździe KART PAMIĘCI nr 1 i ponów próbę. - -[FES_DEE] -Kasowanie zakończone niepowodzeniem! Sprawdź kartę pamięci (PS2) w gnieździe KART PAMIĘCI nr 1 i ponów próbę. - -[SLONFM] -Błąd podczas formatowania karty pamięci (PS2) w gnieździe KART PAMIĘCI nr 1. - -[SLONDR] -Niewystarczająca ilość miejsca, aby zapisać stan gry. Proszę włożyć kartę pamięci (PS2) zawierającą co najmniej 500KB wolnego miejsca do gniazda KART PAMIĘCI nr 1. - -[SLNSP] -Niewystarczająca ilość miejsca, aby zapisać stan gry. Proszę włożyć kartę pamięci (PS2) zawierającą co najmniej 200KB wolnego miejsca do gniazda KART PAMIĘCI nr 1. - -[FEFD_WR] -Trwa formatowanie karty pamięci (PS2) w gnieździe KART PAMIĘCI nr 1. Proszę nie wyjmować karty pamięci (PS2), nie resetować ani nie wyłączać konsoli - -[FES_ISF] -NIEOBECNY - -[FES_SAG] -OBECNY - -[SLONNO] -No Memory Card (PS2) in MEMORY CARD slot 1. - -[SLONNF] -Brak karty pamięci (PS2) w gnieździe KART PAMIĘCI nr 1. - -[FESZ_FM] -Karta pamięci (PS2) w gnieździe KART PAMIĘCI nr 1 nie jest sformatowana. Czy chcesz sformatować kartę pamięci (PS2) w gnieździe KART PAMIĘCI nr 1? - -[FESZ_FF] -Formatowanie zakończone niepowodzeniem! Sprawdź kartę pamięci (PS2) w gnieździe KART PAMIĘCI nr 1 i ponów próbę. - -[MCDNSP] -Na karcie pamięci (PS2) w gnieździe KART PAMIĘCI nr 1 jest zbyt mało wolnego miejsca. Aby zapisać dane aplikacji wymagane jest co najmniej 500KB. Czy chcesz kontynuować? (TAK lub NIE) - -[MCGNSP] -Na karcie pamięci (PS2) w gnieździe KART PAMIĘCI nr 1 jest zbyt mało wolnego miejsca. Aby zapisać dane aplikacji wymagane jest co najmniej 200KB. Czy chcesz kontynuować? (TAK lub NIE) - -[FESZ_WR] -Trwa zapisywanie danych. Proszę nie wyjmować karty pamięci (PS2) z gniazda KART PAMIĘCI nr 1, nie resetować ani nie wyłączać konsoli. - -[FESZ_OW] -Trwa nadpisywanie danych. Proszę nie wyjmować karty pamięci (PS2) z gniazda KART PAMIĘCI nr 1, nie resetować ani nie wyłączać konsoli. - -[FELD_WR] -Trwa wczytywanie danych. Proszę nie wyjmować karty pamięci (PS2), nie resetować ani nie wyłączać konsoli. - -[FEDL_WR] -Trwa usuwanie danych. Proszę nie wyjmować karty pamięci (PS2) z gniazda KART PAMIĘCI nr 1, nie resetować ani nie wyłączać konsoli. - -[LM2_C] -Luigi kazał ci to przekazać, więc... - -[LM3_G] -Joey nie lubi czekać. Pamiętaj, to może być twoja szansa na karierę... - -[LM5_E] -Zawieź tam jak najwięcej dziewczyn, zanim gliniarze przepiją wszystkie pieniądze! - -[JM5_C] -Jest taka kwestia: przy kawiarni w Callahan Point stoi samochód z truposzem w środku. - -[RM2_B] -Powąchaliśmy razem prochu w Nikaragui, kiedy w tym kraju jeszcze rządzili ludzie, którzy wiedzieli, o co chodzi. - -[RM2_C] -Wczoraj groziły mu jakieś mendy z Kartelu. Powiedzieli, że wrócą i zabiorą mu towar. - -[RM2_D1] -Poszedłbym sam, ale moje korzonki znowu się odzywają - więc, ee... Powodzenia! - -[CATINF1] -~g~Dorwij Catalinę! - -[CATINF2] -~g~Śledź helikopter, aby odszukać Catalinę. - -[BOATIN1] -Wskakuj do łodzi i wciśnij klawisz ~h~~k~~VEHICLE_ENTER_EXIT~ button ~w~, aby zająć miejsce. - -[BOATIN2] -Jeżeli jesteś w pobliżu łodzi, możesz wcisnąć klawisz ~h~~k~~VEHICLE_ENTER_EXIT~~w~, aby zająć w niej miejsce. - -[BOATIN3] -Wskakuj do łodzi i wciśnij klawisz ~h~~k~~VEHICLE_ENTER_EXIT~ button ~w~, aby zająć miejsce. - -[BOATIN4] -Jeżeli jesteś w pobliżu łodzi, możesz wcisnąć klawisz ~h~~k~~VEHICLE_ENTER_EXIT~~w~, aby zająć w niej miejsce. - -[JM6] -'UCIECZKA' - -[FM1] -'NIAŃKA' - -[JM1] -'OSTATNI OBIAD MIKE'A BUŹKI' - -[FM21] -'CIOS W SERCE: AKT I' - -[FM3] -'CIOS W SERCE: AKT II' - -[AM1] -'SAYONARA SALVATORE' - -[AM2] -'POD OBSERWACJĄ' - -[KM2] -'GRAND THEFT AUTO' - -[AS3] -'WYRZUTNIA ZIEMIA-POWIETRZE' - -[RM2] -'TOWARZYSZE BRONI' - -[LOVE6] -'ZMYŁKA' - -[LOVE1] -'WYZWOLICIEL' - -[RC1] -'DIABELSKA DEMOLKA' - -[RC2] -'MAFIJNA MASAKRA' - -[RC3] -'KRWAWE KASYNO' - -[RC4] -'RUMPO-ROZRÓBA' - -[RM2_E1] -Nie mogę uwierzyć, że te żółte pokraki znowu zostawiły mnie bez ochrony. - -[GREN_1] -Im dłużej przytrzymasz klawisz ~h~~k~~PED_FIREWEAPON~~w~, tym dalej rzucisz granatem. - -[GREN_2] -Im dłużej przytrzymasz klawisz ~h~~k~~PED_FIREWEAPON~~w~, tym dalej rzucisz granatem. - -[GREN_3] -Im dłużej przytrzymasz klawisz ~h~~k~~PED_FIREWEAPON~~w~, tym dalej rzucisz granatem. - -[LOVE4_G] -Rzecz, która do mnie należy, będzie czekać na ciebie w hangarze celnym przy kadłubie samolotu. - -[KABOOM] -BUM! - -[SPLAT] -PLASK! - -[PANCAK] -UPIECZONY! - -[SOAKED] -DO SUCHEJ NITKI! - -[HEAD] -Head Radio - -[DBL_CLF] -Double Clef FM - -[FLASHB] -Flashback FM - -[RISE] -Rise FM - -[LIPS] -Lips 106 - -[CHAT] -Gaduła FM - -[K_JAH] -Radio K-Jah - -[GAM_FM] -Game Radio FM - -[MSX_FM] -MSX FM - -[TUBE1] -Kiedy metro zostanie otwarte, będziesz mógł przejechać pociągiem na Wyspę Staunton. - -[TUBE2] -Kiedy Shoreside Vale zostanie otwarte, będziesz mógł dotrzeć do stacji końcowej Shoreside Terminal i na Lotnisko Międzynarodowe im. Francisa. - -[TUBE_2] -Aby wsiąść do metra, naciśnij klawisz ~h~'wsiadania do pojazdu'~w~. - -[LEGAL] -~g~Wyeliminuj element przestępczy! - -[GA_2] -Nowy silnik i lakier. Masz spokój z gliniarzami! - -[LM1_8A] -Jeżeli chcesz trochę sobie dorobić, możesz spróbować 'pożyczyć' taksówkę... - -[TAXIH1] -Zatrzymaj się w pobliżu podświetlonego przechodnia i pozwól mu wsiąść, a potem zawieź go pod wskazany adres przed upływem wyznaczonego czasu. - -[LM5_7] -~g~Jeżeli na ~p~Balu Policjanta~g~ pojawią się mniej niż cztery dziewczyny, Luigi będzie niezadowolony! - -[KM2_3] -~g~Pamiętaj, ~r~samochody~g~ muszą być w idealnym stanie albo nie zostaną przyjęte w ~p~warsztacie~g~. - -[KM5_2] -~g~Yardies zniknęli z ulic. - -[BETRA_A] -Przykro mi, kotku. - -[BETRA_B] -Jestem ambitną dziewczyną, - -[BETRA_C] -a ty jesteś tylko małą płotką. - -[JAILB_C] -* - -[JAILB_D] -* - -[JAILB_E] -* - -[JAILB_F] -* - -[JAILB_G] -* - -[JAILB_H] -* - -[JAILB_I] -* - -[JAILB_J] -* - -[JAILB_P] -* - -[JAILB_Q] -Jazda! - -[JAILB_R] -Panie frajerze! - -[JAILB_S] -Zabiję cię bez najmniejszego problemu. - -[JAILB_T] -Pożałujesz tego. - -[JAILB_U] -Dobrze, dobrze! Znikaj stąd. - -[HELP15] -Jeżeli jesteś poza pojazdem i chcesz ~h~spojrzeć za siebie~w~, naciśnij klawisz ~h~~k~~PED_LOOKBEHIND~~w~. - -[FEC_LB3] -Spójrz do tyłu - -[FEC_R3] -(klawisz R3) - -[FES_AFO] -Ta karta pamięci (PS2) jest już sformatowana. - -[FEA_UP] -; - -[FEA_DO] -= - -[FEA_LE] -< - -[FEA_RI] -> - -[FEDSAS3] -- ZMIANA WYBORU - -[FEDSAS4] -;=<> - ZMIANA WYBORU - -[SPRAY_4] { re3 change } -Użyj klawisza ~h~~k~~VEHICLE_FIREWEAPON~~w~, aby strzelać z armatki wodnej. - -[SPRAY_1] { re3 change } -Użyj klawisza ~h~~k~~VEHICLE_FIREWEAPON~~w~, aby strzelać z armatki wodnej. - -[LITTLE] -MAŁY T - -[NICK] -NICK LOVE - -[AM1_10] -~g~Salvatore opuści knajpę 'U Luigiego' około 0~1~:~1~ - -[JAILB_V] -* - -[JAILB_A] -* - -[JAILB_B] -* - -[JAILB_W] -* - -[JAILB_K] -* - -[JAILB_L] -* - -[JAILB_M] -* - -[JAILB_N] -* - -[JAILB_O] -* - -[JAILB_X] -* - -[FEDS_SE] -klawisz / - WYBIERZ - -[FEDS_SB] -klawisz / - WYBIERZ klawisz ' - WSTECZ - -[TM4_A] -~w~Ach, to ty. TONIEGO nie ma. - -[TM4_A2] -~w~Ale zostawił na stole jeden ze swoich słodziutkich listów miłosnych do ciebie. - -[DIAB2_A] -Kiedy zaczynałem robić interesy w branży rozrywek egzotycznych, nie miałem nic oprócz pokaźnej zawartości mojego rozporka! - -[LM5_9] -DZIEWCZYNY: - -[PERPIC] -Znalezione ukryte paczki - -[CO_ONE] -Ukryta Paczka ~1~ z ~1~ - -[LOVE3_3] -~g~Samolot zrzucił ~1~ z 6 pakunków. - -[FARE11] -~g~Cel podróży ~w~'Teren budowy'~g~ w Fort Staunton. - -[GA_21] -W tym garażu nie możesz przechowywać więcej samochodów. - -[CHEAT1] -Ułatwienie uaktywnione - -[CHEAT2] -Ułatwienie - broń - -[CHEAT3] -Ułatwienie - życie - -[CHEAT4] -Ułatwienie - pancerz - -[CHEAT5] -Ułatwienie - poziom wanted - -[CHEAT6] -Ułatwienie - pieniądze - -[CHEAT7] -Ułatwienie - pogoda - -[AS1_H] -~w~Nie udało ci się wprowadzić Szwadronu Śmierci w pułapkę Yakuzy!! - -[FEDS_BA] -klawisz ' - WSTECZ - -[RAMP_A] -WSZYSTKIE ROZWAŁKI ZALICZONE! - -[USJ_ALL] -WSZYSTKIE NIETYPOWE SKOKI WYKONANE! - -[FARE23] -~g~Cel podróży ~w~'warsztat importowo-eksportowy'~g~ w okolicach Tamy Cochrane. - -[L_TRN_1] -Po Portland możesz się też poruszać kolejką. Naciśnij klawisz ~h~ ~k~~VEHICLE_ENTER_EXIT~~w~, aby ~h~wsiąść ~w~lub ~h~wysiąść~w~ z pociągu. - -[L_TRN_2] -Po Portland możesz się też poruszać kolejką. Naciśnij klawisz ~h~ ~k~~VEHICLE_ENTER_EXIT~~w~, aby ~h~wsiąść ~w~lub ~h~wysiąść~w~ z pociągu. - -[S_TRN_1] -Przez Liberty możesz także podróżować metrem. Naciśnij klawisz~h~ ~k~~VEHICLE_ENTER_EXIT~~w~, aby ~h~wsiąść ~w~lub ~h~wysiąść~w~ z pociągu. - -[S_TRN_2] -Przez Liberty możesz także podróżować metrem. Naciśnij klawisz~h~ ~k~~VEHICLE_ENTER_EXIT~~w~, aby ~h~wsiąść ~w~lub ~h~wysiąść~w~ z pociągu. - -[AS1_C] -~w~Rozmieściła w całym Liberty trzy szwadrony śmierci, których zadaniem jest wytropić twój tyłek. - -[AS1_G] -~w~Wszyscy członkowie Yakuzy nie żyją!! - -[JAN] -stycz. - -[FEB] -luty - -[MAR] -marzec - -[APR] -kwiec. - -[MAY] -maj - -[JUN] -czerw. - -[JUL] -lip. - -[AUG] -sierp. - -[SEP] -wrz. - -[OCT] -paźdz. - -[NOV] -listop. - -[DEC] -grudz. - -[DEFDT] ---:---:---- --:--:-- - -[BUGGY] -POZOSTAŁE GARBUSKI: - -[BONUS] -~g~PREMIA $~1~v - -[HORN1] -Naciśnij ~h~klawisz L3 ~w~, aby użyć ~h~klaksonu. - -[HORN2] -Naciśnij ~h~klawisz L1 ~w~, aby użyć ~h~klaksonu. - -[HORN3] -Naciśnij ~h~klawisz R1 ~w~, aby użyć ~h~klaksonu. - -[LM3_1A] -Naciśnij klawisz~h~ ~k~~VEHICLE_HORN~~w~, aby użyć ~h~klaksonu~w~ i zaprosić Misty do środka. - -[LM3_1B] -Naciśnij klawisz~h~ ~k~~VEHICLE_HORN~~w~, aby użyć ~h~klaksonu~w~ i zaprosić Misty do środka. - -[LM3_1C] -Naciśnij klawisz~h~ ~k~~VEHICLE_HORN~~w~, aby użyć ~h~klaksonu~w~ i zaprosić Misty do środka. - -[RADIO_A] -Naciśnij klawisz ~h~~k~~VEHICLE_CHANGE_RADIO_STATION~~w~, aby przełączać ~h~stacje radiowe. - -[RADIO_B] -Naciśnij klawisz ~h~~k~~VEHICLE_CHANGE_RADIO_STATION~~w~, aby przełączać ~h~stacje radiowe. - -[RADIO_C] -Naciśnij klawisz ~h~~k~~VEHICLE_CHANGE_RADIO_STATION~~w~, aby przełączać ~h~stacje radiowe.v - -[RADIO_D] -Naciśnij klawisz ~h~~k~~VEHICLE_CHANGE_RADIO_STATION~~w~, aby przełączać ~h~stacje radiowe. - -[FEC_EXV] -Wsiadanie i wysiadanie z pojazdu - -[TAXI_M] -'TAKSÓWKARZ' - -[COP_M] -'PATROL' - -[FIRE_M] -'STRAŻAK' - -[AMBUL_M] -'SANITARIUSZ' - -[HJ_IS] -PREMIA ZA SZALONY SKOK: $~1~ - -[HJ_PIS] -PREMIA ZA BEZBŁĘDNY SZALONY SKOK: $~1~ - -[HJ_DIS] -PREMIA ZA PODWÓJNY SZALONY SKOK: $~1~ - -[HJ_PDIS] -PREMIA ZA BEZBŁĘDNY PODWÓJNY SZALONY SKOK: $~1~ - -[HJ_TIS] -PREMIA ZA POTRÓJNY SZALONY SKOK: $~1~ - -[HJ_PTIS] -PREMIA ZA BEZBŁĘDNY POTRÓJNY SZALONY SKOK: $~1~ - -[HJ_QIS] -PREMIA ZA POCZWÓRNY SZALONY SKOK: $~1~ - -[HJ_PQIS] -PREMIA ZA BEZBŁĘDNY POCZWÓRNY SZALONY SKOK: $~1~ - -[AM1_K] -Za około trzy godziny (0~1~:~1~), Salvatore Leone będzie wychodził z klubu 'U Luigiego'. - -[IMPEXPP] -Warsztat import-eksport w Portland Harbor. Mamy zamówienia na różne pojazdy. Listę aktualnie skupowanych wozów znajdziesz na naszej tablicy ogłoszeniowej. - -[VANHSTP] -Chcesz rozbić konwojowóz? Przywieź go do naszego warsztatu w Portland Harbor! - -[EMVHPUP] -Doskonałe ceny za nowe i używane pojazdy służb miejskich! Skup odbywa się przy dźwigu na północny wschód od Portland Harbor. - -[STANDS] -ROZBITE BUDKI: - -[STASH] -~g~Odwieź PROCHY z powrotem na ~p~teren budowy! - -[MCSTNS] -W gnieździe KART PAMIĘCI nr 1 nie ma karty pamięci (PS2). Czy chcesz kontynuować? (TAK lub NIE) - -[LOVE3_5] -~g~Samolot jest w zasięgu. - -[LOVE3_6] -~r~Policja dotarła do pakunków przed tobą! - -[SIREN_1] -Aby włączyc syrenę pojazdu, naciśnij klawisz ~h~~k~~VEHICLE_HORN~ ~w~. - -[SIREN_2] -Aby włączyc syrenę pojazdu, naciśnij klawisz ~h~~k~~VEHICLE_HORN~ ~w~. - -[FM3_8C] -~w~Potrzebuję jakieś 100 000 dolarów na niezbędne wydatki, - -[MCLOAD] -Trwa wczytywanie danych. Proszę nie wyjmować karty pamięci (PS2) z gniazda KART PAMIĘCI nr 1, nie resetować ani nie wyłączać konsoli. - -[FES_GME] -Błąd odczytu danych z karty pamięci (PS2) w gnieździe KART PAMIĘCI nr 1. Sprawdź kartę i ponów próbę. - -[FESZ_QF] -Czy na pewno chcesz sformatować kartę pamięci (PS2) w gnieździe KART PAMIĘCI nr 1? - -[FESZ_LS] -Pomyślne wczytywanie - -[RM3_5] -~g~Masz już ~1~ z 6 pakietów dowodów. - -[LOVE3_2] -~g~Masz już wszystkie pakunki! Zawieź je do Donalda Love'a. - -[LOVE4_4] -~g~Zabierz pakunek do Donalda Love'a! - -[FEB_SAV] -Wczytanie - -[FEP_SAV] -WCZYTAJ GRĘ - -[AS2_12A] -~g~Od momentu rozwalenia pierwszej budki będziesz miał 8 minut, zanim Kartel ostrzeże swoich dilerów! - -[AS3_1A] -~g~Teraz płyń do ~b~boi ! - -[NOCONT] -Aby kontynuować, proszę ponownie podłączyć kontroler analogowy (DUALSHOCK@) lub kontroler analogowy (DUALSHOCK@2) do portu kontrolerów gry nr 1. - -[BET_JB] -CATALINA, JEGO KOCHANKA, ZDRADZIŁA GO I POZOSTAWIŁA NA PEWNĄ ŚMIERĆ. TERAZ, OSĄDZONY I SKAZANY, ROZPOCZYNA PODRÓŻ DO ZAKŁADU KARNEGO W LIBERTY CITY. ALE W JEGO ZBRODNICZYM UMYŚLE PŁONIE TYLKO JEDNA MYŚL......ZEMSTA! - -[END_A] -Mieszkańcy Cedar Grove nadal dochodzą do siebie - -[END_B] -po gwałtownych wydarzeniach, jakie rozegrały się wczoraj - -[END_C] -w tej dzielnicy, a przypominały regularną wojnę. - -[END_D] -Pan Clive Denver, mieszkający w tej okolicy od lat, opisał wczoraj policji - -[END_E] -samotnego strzelca, który uciekał z miejsca przestępstwa z ciemnowłosą kobietą. - -[END_F] -Och, będziemy się razem świetnie bawić! Bo... no, wiesz... - -[END_G] -Ja cię kocham, naprawdę... Bo jesteś taki silny i w ogóle... - -[END_H] -A właśnie kogoś takiego szukałam. - -[END_I] -Ale... o czym to ja mówiłam? - -[END_J] -Wyleciało mi z głowy! Ale wiesz, o co mi chodzi, prawda? - -[END_K] -Odgłosy eksplozji wstrząsały okolicznymi budynkami, z których wybiegali przerażeni ludzie. - -[END_L] -Kilkunastu obywateli doznało obrażań w wyniku wymiany ognia - -[END_M] -między bandytami na ziemi a helikopterem krążącym nad tamą. - -[END_N] -Tak, tutaj - z ogrodu - miałem na wszystko doskonały widok. - -[END_O] -Kiedy helikopter w końcu został trafiony, - -[END_P] -wyglądało to lepiej niż fajerwerki na Wielkanoc! - -[END_Q] -Liczba zabitych przekroczyła już dwadzieścia osób, - -[END_R] -ale policja ciągle odnajduje nowe ciała. - -[END_S] -Jak dotąd nie wydano żadnego oficjalnego komunikatu, który zaprzeczyłby pogłoskom, - -[END_T] -że ofiary to członkowie Kartelu Kolumbijskiego. - -[END_U] -Nadal nie ma też żadnych informacji na temat przyczyn tej masakry. - -[END_V] -Złamałam paznokieć i zrujnowałam sobie całą fryzurę. To skandal! - -[END_W] -Kosztowała mnie pięćdziesiąt dolców... - -[PAPER1] -* - -[PAPER2] -* - -[PAPER3] -* - -[FEB_CPC] -Konfiguracja klawiszy sterujących - -[FEC_PED] -Sterowanie postacią poza pojazdem - -[FEC_VEH] -Klawisze sterujące pojazdem - -[FEC_FPR] -Sterowanie dla trybu widoku z oczu postaci - -[FEC_CMM] -Standardowe sterowanie - -[FEC_PWL] -IDŹ w lewo - -[FEC_PWR] -Idź w prawo - -[FEC_PWF] -Idź do przodu - -[FEC_PWT] -Idź w stronę kamery - -[FEC_PLB] -Spójrz za siebie - -[FEC_PFR] -Strzał z broni - -[FEC_CLE] -Przełącz rodzaj broni w lewo - -[FEC_CRI] -Przełącz rodzaj broni w prawo - -[FEC_LKT] -Zablokuj cel - -[FEC_PJP] -Skok - -[FEC_PSP] -Szybki bieg - -[FEC_PSH] -Strzał - -[FEC_TLF] -Następny cel w lewo - -[FEC_TRG] -Następny cel w prawo - -[FEC_CCM] -Wyśrodkuj kamerę za graczem - -[FEC_SZI] -Karabin snajperski - przybliżenie - -[FEC_SZO] -Karabin snajperski - oddalenie - -[FEC_LKL] -Spójrz w lewo w trybie widoku z oczu postaci - -[FEC_LRT] -Spójrz w prawo w trybie widoku z oczu postaci - -[FEC_LUP] -Spójrz w górę w trybie widoku z oczu postaci - -[FEC_LDN] -Spójrz w dół w trybie widoku z oczu postaci - -[FEC_LBH] -Spójrz przez tylną szybę - -[FEC_LLF] -Spójrz przez lewą szybę - -[FEC_LRG] -Spójrz przez prawą szybę - -[FEC_HRN] -Klakson - -[FEC_HBR] -Hamulec ręczny pojazdu - -[FEC_ACL] -Przyspieszenie pojazdu - -[FEC_BRK] -Hamulec pojazdu - -[FEC_TSM] -Włącz podmisje - -[FEC_CRD] -Zmiana stacji radiowej - -[FEC_ENT] -Wsiadanie do pojazdu/wysiadanie z pojazdu - -[FEC_WPN] -Strzał z broni - -[FEC_PAS] -Pauza - -[FEC_FPO] -Broń w trybie widoku z oczu postaci - -[FEC_SMS] -Pokazuj kursor myszy - -[FEC_CMS] -Zmiana trybu kamery dla wszystkich sytuacji. - -[FEC_TSS] -Zapisz wygląd ekranu - -[FEN_NET] -Sieć - -[FEN_CON] -Połączenie - -[FEN_GAM] -Szukaj sesji gry - -[FEN_TYP] -Rodzaj gry - -[FEN_TY0] -Tryb Deathmatch - -[FEN_TY1] -Tryb Niewidzialny Deathmatch - -[FEN_TY2] -Zespołowy tryb Deathmatch - -[FEN_TY3] -Zespołowy tryb Niewidzialny Deathmatch - -[FEN_TY4] -Gromadź szmal - -[FEN_TY5] -Zdobądź flagę - -[FEN_TY6] -Wyścig szczurów - -[FEN_TY7] -Dominacja - -[FEN_NAM] -Nazwa: - -[FEN_GNA] -Nazwa gry: - -[FEM_MAP] -Wybierz mapę - -[FEN_PLS] -Ustawienia gracza - -[FEN_PLC] -Kolor gracza - -[FEM_MA0] -Liberty City - -[FEM_MA1] -Dz. Czerwonych Świateł - -[FEM_MA2] -Chinatown - -[FEM_MA3] -Wieża - -[FEM_MA4] -Kanały - -[FEM_MA5] -Park Przemysłowy - -[FEM_MA6] -Doki - -[FEM_MA7] -Staunton - -[FEC_EMS] -Tylko klawisze z klawiatur niestandardowych - -[FEC_DBG] -MENU DEBUGOWANIA - -[FEC_TGD] -Przełącznik gra/debugowanie - -[FEC_TDO] -Wyłącz kamerę trybu debugowania - -[FEC_IVH] -Odwróć osie myszy w poziomie: - -[FEC_MSL] -Lewy przycisk myszy - -[FEC_MSM] -Śr. przycisk myszy - -[FEC_MSR] -Prawy przycisk myszy - -[FEC_QUE] -??? - -[FEC_TWO] -Dozwolone są tylko dwa klawisze z klawiatury - -[FEC_UMS] -Tylko przyciski myszy niestandardowych - -[FEC_OMS] -Dozwolony jest tylko jeden przycisk myszy - -[FEC_UJS] -Tylko przyciski joysticków niestandardowych - -[FEC_OJS] -Dozwolony jest tylko jeden przycisk joysticka na daną czynność . - -[FEC_PTL] -Użyj blokowania celu oraz przełączenia broni w lewo - -[FEC_PTR] -Użyj blokowania celu oraz przełączenia broni w prawo - -[FEC_LBC] -Użyj klawiszy 'spójrz w lewo' oraz 'spójrz w prawo' - -[FEC_JBO] -JOY ~1~ - -[NO_PAUZ] -Nie można zatrzymać gry w trybie wieloosobowym. Dwukrotnie naciśnij klawisz, aby wyjść z gry! - -[FEM_SL1] -Gniazdo 1 jest wolne - -[FEM_SL2] -Gniazdo 2 jest wolne - -[FEM_SL3] -Gniazdo 3 jest wolne - -[FEM_SL4] -Gniazdo 4 jest wolne - -[FEM_SL5] -Gniazdo 5 jest wolne - -[FEM_SL6] -Gniazdo 6 jest wolne - -[FEM_SL7] -Gniazdo 7 jest wolne - -[FEM_SL8] -Gniazdo 8 jest wolne - -[FEM_MM] -MENU GŁÓWNE - -[FEQ_SRE] -Czy na pewno chcesz wyjść z gry? Efekty wszystkich działań podjętych od czasu ostatniego zapisu gry zostaną utracone. Kontynuować? - -[FEQ_SRW] -Czy na pewno chcesz wyjść z gry? - -[FEG_SRV] -SERWER - -[FEG_MAP] -MAPA - -[FEG_PLY] -GRACZE - -[FEG_TYP] -RODZAJ - -[FEG_PNG] -PING - -[FET_FG] -ODSZUKAJ SESJĘ GRY - -[FET_SP] -TRYB DLA JEDNEGO GRACZA - -[FET_MP] -TRYB WIELOOSOBOWY - -[FET_HG] -HOSTUJ GRĘ - -[FET_PS] -KONFIGURACJA GRACZA - -[FET_CON] -POŁĄCZENIE - -[FET_AUD] -KONFIGURACJA DŻWIĘKU - -[FET_DIS] -KONFIGURACJA EKRANU - -[FET_LAN] -OKREŚL JĘZYK - -[FET_LG] -WCZYTAJ GRĘ - -[FET_DG] -USUŃ GRĘ - -[FET_NG] -NOWA GRA - -[FET_SG] -ZAPISZ GRĘ - -[FET_MAP] -WYBIERZ MAPĘ - -[FET_GT] -RODZAJ GRY - -[FET_CTL] -KONFIGURACJA STEROWANIA - -[FET_OPT] -OPCJE - -[FET_QG] -WYJDŹ Z GRY - -[FET_STA] -STATYSTYKI - -[FET_BRE] -CELE - -[FEC_WAR] -Ostrzeżenie - -[FEC_OKK] -OK - -[FED_CON] -Potwierdzenie usunięcia pliku - -[FES_SSC] -Gra została pomyślnie zapisana. - -[DEL_FNM] -Plik został pomyślnie usunięty. - -[PCLOAD] -Wczytywanie danych z pliku - -[PCRESRT] -Trwa uruchamianie Grand Theft Auto III - -[FEC_DLF] -Kasowanie nieudane. - -[FEC_SVU] -Zapis nieudany. - -[FEC_LUN] -Wczytywanie nieudane. Plik uszkodzony. Proszę go usunąć. - -[FEN_PLA] -Liczba graczy: - -[FET_NON] -BRAK DOSTĘPNYCH GIER - -[FET_SFG] -WYSZUKIWANIE SESJI GRY... - -[FET_SRT] -SORTOWANIE SESJI GRY... - -[FEF_LAN] -LAN - -[FEF_INT] -INTERNET - -[FET_REF] -Odśwież - -[FET_FIL] -Filtr - -[FET_JG] -Dołącz - -[FEC_NTW] -Rozmowa przez sieć - -[FEC_ESR] -Klawisz ESC jest zastrzeżony - -[FEC_GSL] -Pokazuj wstrząsy głowy: - -[FIL_FLT] -FILTR LISTY SESJI GRY - -[FET_SAN] -ROZPOCZNIJ NOWĄ GRĘ - -[FIL_MAP] -Mapa: - -[FIL_SRV] -Serwer: - -[FIL_TYP] -Rodzaj gry: - -[FIL_SPC] -Gry z wolnym miejscem? - -[FIL_PNG] -Ping: - -[FEN_UKH] -Nieznany host - -[FEN_UKM] -Nie odnaleziono mapy - -[FEN_UKT] -Nie odnaleziono danego rodzaju gry - -[FEN_NCI] -BRAK POŁĄCZENIA Z INTERNETEM - -[FET_PAU] -MENU PAUZY - -[FET_SGA] -ROZPOCZNIJ GRĘ - -[FEC_SGJ] -Ustaw joystick do gry - -[FEC_PAD] -Gamepad - -[FEC_JOY] -Joystick - -[FEC_WHL] -Kierownica - -[FEC_CNT] -Typ sterownika: - -[FES_CSA] -Wybierz 'skórę' z poniższej listy: - -[FES_SKN] -NAZWA SKÓRY - -[FES_DAT] -DATA - -[FES_NON] -BRAK DOSTĘPNYCH 'SKÓR' - -[FEA_FM9] -ODTWARZACZ MP3 - -[FESZ_QZ] -Czy jesteś pewien, że chcesz zapisać grę? - -[FES_CGA] -Dostępne gniazda gry: - -[FES_SCG] -Zapisać bieżącą grę? - -[FES_LCG] -Wczytać grę i kontynuować rozgrywkę? - -[FEC_FIR] -Strzał - -[FEC_NWE] -Następna broń - -[FEC_PWE] -Poprzednia broń - -[FEC_FOR] -Do przodu - -[FEC_BAC] -Do tyłu - -[FEC_LEF] -W lewo - -[FEC_RIG] -W prawo - -[FEC_ZIN] -Przybliżenie - -[FEC_ZOT] -Oddalenie - -[FEC_EEX] -Wejście/wyjście - -[FEC_RAD] -Radio - -[FEC_SUB] -Podmisja - -[FEC_CMR] -Zmiana kamery - -[FEC_JMP] -Skok - -[FEC_SPN] -Sprint - -[FEC_HND] -Hamulec ręczny - -[FEC_TUL] -Wieżyczka w lewo - -[FEC_TUR] -Wieżyczka w prawo - -[FEC_LOL] -Spójrz w lewo - -[FEC_LOR] -Spójrz w prawo - -[FEC_NTR] -Następny cel - -[FEC_PTT] -Poprzedni cel - -[FEC_LBA] -Spójrz do tyłu - -[FEC_CEN] -Wyśrodkuj kamerę - -[FEC_UND] -(NIE) - -[FET_CFT] -PIESZO - -[FET_CCR] -W AUCIE - -[CVT_MSG] -Trwa konwersja tekstur do formatu optymalnego dla zainstalowanej karty graficznej. - -[FET_CAC] -CZYNNOŚĆ - -[FEC_IBT] -- - -[FEC_SPC] -SPACJA - -[FEC_MXO] -MXB1 - -[FEC_MXT] -MXB2 - -[FEC_UNB] -UNBOUND - -[FET_CME] -SPOSÓB STEROWANIA - -[FET_RDK] -ZMIANA KLAWISZY STERUJĄCYCH - -[FET_AMS] -USTAWIENIA MYSZY - -[FET_STI] -ZWYKŁA KONFIGURACJA STEROWANIA - -[FET_CTI] -STANDARDOWA KONFIGURACJA STEROWANIA - -[FET_MTI] -KONFIGURACJA STEROWANIA MYSZĄ - -[FET_DAM] -DYNAMICZNE MODELOWANIE AKUSTYCZNE - -[FEC_TFL] -Wieżyczka w lewo - -[FEC_TFR] -Wieżyczka w prawo - -[FEC_MWF] -KÓŁKO W GÓRĘ - -[FEC_MWB] -KÓŁKO W DÓŁ - -[FEC_ORR] -lub - -[FEC_NUS] -NIEUŻYWANY - -[FEC_LUD] -Spójrz w górę - -[FEC_LDU] -Spójrz w dół - -[FEC_CMP] -KOMBINACJA: SPÓJRZ W LEWO + SPÓJRZ W PRAWO - -[FEC_NTT] -Brak tekstu dla tego klawisza - -[FEC_FNC] -F~1~ - -[FEC_IRT] -INSERT - -[FEC_DLL] -DELETE - -[FEC_HME] -HOME - -[FEC_END] -END - -[FEC_PGU] -PAGE UP - -[FEC_PGD] -PAGE DOWN - -[FEC_UPA] -STRZAŁKA W GÓRĘ - -[FEC_DWA] -STRZAŁKA W DÓŁ - -[FEC_LFA] -W LEWO - -[FEC_RFA] -STRZAŁKA W PRAWO - -[FEC_NUM] -NUM - -[FEC_NMN] -NUM~1~ - -[FEC_FWS] -NUM / - -[FEC_PLS] -NUM + - -[FEC_MIN] -NUM - - -[FEC_DOT] -NUM . - -[FEC_NLK] -NUM LOCK - -[FEC_ETR] -ENTER - -[FEC_SLK] -SCROLL LOCK - -[FEC_PSB] -PAUSE BREAK - -[FEC_BSP] -BACKSPACE - -[FEC_TAB] -TAB - -[FEC_CLK] -CAPS LOCK - -[FEC_RTN] -RETURN - -[FEC_LSF] -LEWY SHIFT - -[FEC_RSF] -PRAWY SHIFT - -[FEC_LCT] -LEWY CTRL - -[FEC_RCT] -PRAWY CTRL - -[FEC_LAL] -LEWY ALT - -[FEC_RAL] -PRAWY ALT - -[FEC_LWD] -LEWY KLAWISZ WINDOWS - -[FEC_RWD] -PRAWY KLAWISZ WINDOWS - -[FEC_WRC] -WINCLICK - -[WIN_TTL] -Grand Theft Auto III - -[WIN_95] -Gra Grand Theft Auto III nie pracuje pod systemem Windows 95. - -[WIN_DX] -Gra Grand Theft Auto III wymaga bibliotek DirectX w wersji 8.1 lub nowszych. - -[WIN_VDM] -Gra Grand Theft Auto III wymaga karty graficznej z przynajmniej 12 MB RAM. - -[DIAB3_G] -Arriba! - -[FEM_RES] -WZNÓW GRĘ - -[FES_SNG] -ROZPOCZNIJ NOWĄ GRĘ - -[FEM_SP] -TRYB DLA JEDNEGO GRACZA - -[FEM_MP] -TRYB WIELOOSOBOWY - -[FEM_QT] -WYJDŹ Z GRY - -[FES_SG] -ROZPOCZNIJ NOWĄ GRĘ - -[FES_LG] -WCZYTAJ GRĘ - -[FEM_HST] -HOST GRY - -[FEM_OPT] -OPCJE - -[FEM_DBG] -DEBUGOWANIE - -[FET_PSU] -KONFIGURACJA GRACZA - -[FET_DEF] -PRZYWRÓĆ USTAWIENIA DOMYŚLNE - -[FED_BRI] -JASNOŚĆ - -[FED_TRA] -ŚLADY - -[FEM_LOD] -ODLEGŁOŚC RYSOWANIA - -[FEM_VSC] -SYNCHRONIZACJA KLATEK - -[FEM_FRM] -OGRANICZENIE KLATEK - -[FED_RES] -ROZDZIELCZOŚĆ EKRANU - -[FED_WIS] -SZEROKI EKRAN - -[FEDS_TB] -WSTECZ - -[FEA_MUS] -GŁOŚNOŚĆ MUZYKI - -[FEA_SFX] -GŁOŚNOŚĆ EFEKTÓW - -[FEA_RSS] -STACJA RADIOWA - -[FEL_ENG] -ANGIELSKI - -[FEL_FRE] -FRANCUSKI - -[FEL_GER] -NIEMIECKI - -[FEL_ITA] -WŁOSKI - -[FEL_SPA] -HISZPAŃSKI - -[FEA_3DH] -SPRZĘT AUDIO - -[FEA_SPK] -KONFIGURACJA GŁOŚNIKÓW - -[FEA_2SP] -DWA GŁOŚNIKI - -[FEA_4SP] -WIĘCEJ NIŻ DWA GŁOŚNIKI - -[FEA_EAR] -SŁUCHAWKI - -[FEA_NAH] -BRAK SPRZĘTU AUDIO - -[FET_SNG] -ROZPOCZNIJ NOWĄ GRĘ - -[FEN_STA] -ROZPOCZNIJ GRĘ - -[GMLOAD] -WCZYTAJ GRĘ - -[GMSAVE] -ZAPISZ GRĘ - -[FES_DGA] -USUŃ GRĘ - -[FEM_NON] -BRAK - -[FEC_IVV] -ODWRÓĆ OSIE MYSZY W PIONIE - -[FEC_MSH] -CZUŁOŚĆ MYSZY - -[FET_CCN] -STEROWANIE: STANDARDOWE - -[FET_SCN] -STEROWANIE: ZWYKŁE - -[FES_SET] -UŻYJ 'SKÓRY' - -[GHOST] -Ghost - -[WIN_RSZ] -Zmiana rozmiaru ekranu nieudana. - -[FEC_TFU] -Wież./dodo w górę - -[FEC_TFD] -Wież./dodo w dół - -[FET_APL] -ZASTOSUJ - -[FET_APP] -KLIKNIJ LPM LUB RETURN, ABY ZASTOSOWAĆ NOWE USTAWIENIA - -[FET_HRD] -PRZYWRÓCONO USTAWIENIA DOMYŚLNE - -[FET_MST] -STEROWANIE POJAZDAMI ZA POMOCĄ MYSZY - -[FEC_STR] -NUM * - -[FET_MIG] -STRZAŁKA W LEWO, W PRAWO, KÓŁKO MYSZY, ABY REGULOWAĆ - -[FET_CIG] -BACKSPACE: USUWANIE - LPM, RETURN - ZMIANA - -[FET_RIG] -WYBIERZ NOWY KLAWISZ LUB NACIŚNIJ ESC, ABY ANULOWAĆ - -[FET_EIG] -NIE MOŻNA PRZYPISAĆ KLAWISZA TEJ CZYNNOŚCI - -[NO_PCCD] -Włóż do napędu CD-ROM płytę z grą Grand Theft Auto III nr 2 albo naciśnij ESC, aby anulować. - -[CVT_ERR] -Na dysku twardym zabrakło wolnego miejsca. Przed dalszą pracą z programem zwolnij odpowiednią ilość pamięci. Aby wyjść, naciśnij ESC. - -[FED_SUB] -NAPISY - -[FET_DSN] -Skin gracza.bmp - -[JM3] -'SKOK NA KONWÓJ' - -[ATUTOR2] -~g~OSTROŻNIE przewoź pacjentów do Szpitala. Każde zderzenie zmniejsza ich szanse przeżycia. - -[EBAL] -'WOLNOŚĆ W LIBERTY' - -[LM4] -'ALFONS' - -[REPLAY] -POWTÓRKA - -[FEC_SFT] -SHIFT - -[CRED254] -KIEROWNIK STUDIA - -[CVT_CRT] -Nie można dokonać konwersji tekstur dla zainstalowanej karty graficznej. W tym celu należy zalogować się na konto Administratora. Aby wyjść, naciśnij ESC. - -[FEM_ON] -WŁ. - -[FEM_OFF] -WYŁ. - -[FEM_YES] -TAK - -[FEM_NO] -NIE - -[FES_WAR] -Trwa zapisywanie, proszę czekać... - -[FED_DLW] -Trwa kasowanie, proszę czekać... - -[FED_LDW] -Trwa wczytywanie, proszę czekać... - -[FEC_SLC] -Gniazdo jest uszkodzone - -[FED_LFL] -Nieudane wczytanie zapisanej gry. Za chwilę gra uruchomi się ponownie. - -[FET_RSO] -PRZYWRÓCONO PIERWOTNE USTAWIENIA - -[FET_RSC] -URZĄDZENIE NIEDOSTĘPNE - PRZYWRÓCONO PIERWOTNE USTAWIENIA - -{ re3 updates } -{ new languages } -[FEL_JAP] -JAPOŃSKI - -[FEL_POL] -POLSKI - -[FEL_RUS] -ROSYJSKI - -{ new display menus } -[FET_GFX] -USTAWIENIA GRAFIKI - -[FED_MIP] -MIPMAPPING - -[FED_AAS] -WYGŁADZANIE KRAWĘDZI - -[FED_FIL] -FILTROWANIE TEKSTUR - -[FED_BIL] -DWULINIOWE - -[FED_TRL] -TRÓJLINIOWE - -[FED_WND] -OKIENKOWY - -[FED_FLS] -PEŁNY EKRAN - -[FEM_CSB] -RAMKI CUTSCENEK - -[FEM_SCF] -FORMAT OBRAZU - -[FEM_ISL] -PRZYPISZ WYKORZYSTANIE PAMIĘCI - -[FEM_LOW] -NISKIE - -[FEM_MED] -ŚREDNIE - -[FEM_HIG] -WYSOKIE - -[FEM_2PR] -ALFA TEST PS2 - -[FEC_FRC] -SWOBODNA KAMERA - -{ Linux joy detection } -[FEC_JOD] -WYKRYJ PADA - -[FEC_JPR] -Naciśnij dowolny klawisz na padzie, którego chcesz użyć w grze. - -[FEC_JDE] -Wykryto pada - -{ mission restart } -[FET_RMS] -PONÓW MISJĘ - -[FESZ_RM] -PONOWIĆ? - -{ more graphics } -[FED_VPL] -POTOK POJAZDÓW - -[FED_PRM] -PODŚWIETLENIE PED - -[FED_RGL] -POŁYSK DROGI - -[FED_CLF] -FILTR KOLORU - -[FED_WLM] -LIGHTMAPY ŚWIATA - -[FED_MBL] -ROZMYCIE RUCHU - -[FEM_SIM] -PROSTE - -[FEM_NRM] -NORMALNY - -[FEM_MOB] -MOBILNY - -[FED_MFX] -MATFX - -[FED_NEO] -PODŚWIETLENIE - -[FEM_PS2] -PS2 - -[FEM_XBX] -XBOX - -[FEM_AUT] { aspect ratio related } -AUTO - -[FEC_IVP] -ODWRÓĆ OŚ PADA W PIONIE - -{ map } -[FEM_TWP] -Toggle Waypoint - -[FEA_FMN] -RADIO OFF - -[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 - -[FEC_CCF] -KONFIGURACJA - -[FEC_CF1] -SETUP1 - -[FEC_CF2] -SETUP2 - -[FEC_CF3] -SETUP3 - -[FEC_CF4] -SETUP4 - -[FEC_CDP] -STEROWNIK EKRANU - -[FEC_ONF] -PIESZO - -[FEC_INC] -W AUCIE - -[FEC_VIB] -WIBRACJA - -[FET_AGS] -GAMEPAD SETTINGS - -{ 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/russian.txt b/utils/gxt/russian.txt index 59fff069..4598dad5 100644 --- a/utils/gxt/russian.txt +++ b/utils/gxt/russian.txt @@ -1,11 +1,4 @@ -{ - 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. -} - -[1000] +[1000] ТЫ ПОКОЙНИК [1001] @@ -2036,11 +2029,11 @@ Double Clef FM [DODO_FT] Вы были в воздухе ~1~ секунд! -[DRIVE_A] { re3 change } -Садясь в машину, возьми в руки Узи. Посмотри вправо или влево и нажми ~h~~k~~VEHICLE_FIREWEAPON~~w~ для выстрела. +[DRIVE_A] +Садясь в машину, возьми в руки Узи. Посмотри вправо или влево и нажми ~h~~k~~PED_FIREWEAPON~~w~ для выстрела. -[DRIVE_B] { re3 change } -Садясь в машину, возьми в руки Узи. Посмотри вправо или влево и нажми ~h~~k~~VEHICLE_FIREWEAPON~~w~ для выстрела. +[DRIVE_B] +Садясь в машину, возьми в руки Узи. Посмотри вправо или влево и нажми ~h~~k~~PED_FIREWEAPON~~w~ для выстрела. [DSPLAY] Экран @@ -2432,12 +2425,30 @@ FLASHBACK 95.6 [FEC_CAW] Оружие в машине +[FEC_CCF] +Конфигурация: + [FEC_CCM] Поставить камеру сзади игрока. +[FEC_CDP] +Показ контроллера: + [FEC_CEN] Центровка камеры +[FEC_CF1] +Setup1 + +[FEC_CF2] +Setup2 + +[FEC_CF3] +Setup3 + +[FEC_CF4] +Setup4 + [FEC_CLE] Прокрутка оружия влево @@ -2558,6 +2569,9 @@ HOME [FEC_IBT] - +[FEC_INC] +В машине + [FEC_IRT] INS @@ -2729,6 +2743,8 @@ NUMLOCK [FEC_OMS] Для действия можно задать лишь одну кнопку мыши +[FEC_ONF] +Пешком [FEC_ORR] или @@ -2946,6 +2962,9 @@ Toggle Pad Game/Debug [FEC_VES] Управление машиной +[FEC_VIB] +Vibration: + [FEC_WAR] Внимание! @@ -3673,7 +3692,7 @@ No Memory Card (PS2) in MEMORY CARD slot 1. УДАЛЕНИЕ ИГРЫ [FET_DIS] -НАСТРОЙКА ДИСПЛЕЯ +НАСТРОЙКА ГРАФИКИ [FET_DSN] Обычная}одежда.bmp @@ -3687,6 +3706,9 @@ No Memory Card (PS2) in MEMORY CARD slot 1. [FET_FIL] Фильтр +[FET_GFX] +НАСТРОЙКА ГРАФИКИ + [FET_GT] ТИП ИГРЫ @@ -4287,17 +4309,17 @@ FormatMemCard 1 (teststuff) [GA_5] Я уже поставил в бомбу в эту тачку. -[GA_6] { re3 change } -Припаркуй тачку на место, нажми ~h~~k~~VEHICLE_FIREWEAPON~~w~ и ДЕЛАЙ НОГИ! +[GA_6] +Припаркуй тачку на место, нажми ~h~~k~~PED_FIREWEAPON~~w~ и ДЕЛАЙ НОГИ! -[GA_6B] { re3 change } -Припаркуй тачку на место, нажми ~h~~k~~VEHICLE_FIREWEAPON~~w~ и ДЕЛАЙ НОГИ! +[GA_6B] +Припаркуй тачку на место, нажми ~h~~k~~PED_FIREWEAPON~~w~ и ДЕЛАЙ НОГИ! -[GA_7] { re3 change } -Включи бомбу, нажав на ~h~~k~~VEHICLE_FIREWEAPON~~w~. Бомба взорвется как только заведется мотор. +[GA_7] +Включи бомбу, нажав на ~h~~k~~PED_FIREWEAPON~~w~. Бомба взорвется как только заведется мотор. -[GA_7B] { re3 change } -Включи бомбу, нажав на ~h~~k~~VEHICLE_FIREWEAPON~~w~. Бомба взорвется как только заведется мотор. +[GA_7B] +Включи бомбу, нажав на ~h~~k~~PED_FIREWEAPON~~w~. Бомба взорвется как только заведется мотор. [GA_8] Взорви бомбу с помощью детонатора. @@ -4644,11 +4666,11 @@ Pull the ~h~right analog stick~w~ back to ~h~brake~w~, or to ~h~reverse~w~ if th [HM1_H] Сделай так, чтобы этих Девяток здесь не было! -[HM2_1] { re3 change } -Используй радоуправляемые машинки, чтобы подорвать броневики. Взрыв бомбы - ~h~~k~~VEHICLE_FIREWEAPON~~w~. +[HM2_1] +Используй радоуправляемые машинки, чтобы подорвать броневики. Взрыв бомбы - ~h~~k~~PED_FIREWEAPON~~w~. -[HM2_1A] { re3 change } -Используй радоуправляемые машинки, чтобы подорвать броневики. Взрыв бомбы - ~h~~k~~VEHICLE_FIREWEAPON~~w~. +[HM2_1A] +Используй радоуправляемые машинки, чтобы подорвать броневики. Взрыв бомбы - ~h~~k~~PED_FIREWEAPON~~w~. [HM2_2] ~r~Ты так и не смог подорвать все броневики! @@ -5250,11 +5272,11 @@ Italian [KM1_7] ~g~Проезд только для полицейских! -[KM1_8A] { re3 change } -Чтобы ~h~подорвать бомбу~w~, нажми ~h~~k~~VEHICLE_FIREWEAPON~~w~, но не забудь отойти подальше от машины. +[KM1_8A] +Чтобы ~h~подорвать бомбу~w~, нажми ~h~~k~~PED_FIREWEAPON~~w~, но не забудь отойти подальше от машины. -[KM1_8D] { re3 change } -Чтобы ~h~подорвать бомбу~w~, нажми ~h~~k~~VEHICLE_FIREWEAPON~~w~, но не забудь отойти подальше от машины. +[KM1_8D] +Чтобы ~h~подорвать бомбу~w~, нажми ~h~~k~~PED_FIREWEAPON~~w~, но не забудь отойти подальше от машины. [KM1_9] ~r~Установленной в машине бомбой ты должен был взорвать стену! @@ -6498,11 +6520,11 @@ Parse Heap [PAUSED] ИГРА ОСТАНОВЛЕНА -[PBOAT_1] { re3 change } -Чтобы выстрелить из орудия катера нажми ~h~~k~~VEHICLE_FIREWEAPON~~w~. +[PBOAT_1] +Чтобы выстрелить из орудия катера нажми ~h~~k~~PED_FIREWEAPON~~w~. -[PBOAT_2] { re3 change } -Чтобы выстрелить из орудия катера нажми ~h~~k~~VEHICLE_FIREWEAPON~~w~. +[PBOAT_2] +Чтобы выстрелить из орудия катера нажми ~h~~k~~PED_FIREWEAPON~~w~. [PCLOAD] Loading File Data @@ -6678,11 +6700,11 @@ Quit Options [RCBANDT] Багги Бандит -[RCHELP] { re3 change } -Чтобы подорвать машинку, нажми ~k~~VEHICLE_FIREWEAPON~, или врежься в колесо жертвы. +[RCHELP] +Чтобы подорвать машинку, нажми ~k~~PED_FIREWEAPON~, или врежься в колесо жертвы. -[RCHELPA] { re3 change } -Чтобы подорвать машинку, нажми ~k~~VEHICLE_FIREWEAPON~, или врежься в колесо жертвы. +[RCHELPA] +Чтобы подорвать машинку, нажми ~k~~PED_FIREWEAPON~, или врежься в колесо жертвы. [RC_1] У тебя 2 минуты, чтобы подорвать как можно больше машин Дьяволов! @@ -7122,11 +7144,11 @@ Speeder [SPRAY1] В мастерской твою тачку ~h~отремонтируют~w~ и ~h~перекрасят~w~. Копы тебя больше ~h~не узнают~w~. Стоимость - ~h~$1000~w~. Первый раз это бесплатно. -[SPRAY_1] { re3 change } -Чтобы включить брандспойт, нажми на ~h~~k~~VEHICLE_FIREWEAPON~~w~. +[SPRAY_1] +Чтобы включить брандспойт, нажми на ~h~~k~~PED_FIREWEAPON~~w~. -[SPRAY_4] { re3 change } -Чтобы включить брандспойт, нажми на ~h~~k~~VEHICLE_FIREWEAPON~~w~. +[SPRAY_4] +Чтобы включить брандспойт, нажми на ~h~~k~~PED_FIREWEAPON~~w~. [STADIUM] Аспатрия @@ -7935,9 +7957,6 @@ PS: УМРИ, ПАРШИВЫЙ ПЕС, УМРИ! РУССКИЙ { new display menus } -[FET_GFX] -НАСТРОЙКА ГРАФИКИ - [FED_MIP] МИП-МАППИНГ @@ -7953,155 +7972,6 @@ PS: УМРИ, ПАРШИВЫЙ ПЕС, УМРИ! [FED_TRL] ТРИЛИНЕЙНАЯ -[FED_WND] -ОКОННЫЙ - -[FED_FLS] -ПОЛНОЭКРАННЫЙ - -[FEM_CSB] -CUTSCENE BORDERS - -[FEM_SCF] -ФОРМАТ ОКНА - -[FEM_ISL] -MAP MEMORY USAGE - -[FEM_LOW] -LOW - -[FEM_MED] -MEDIUM - -[FEM_HIG] -HIGH - -[FEM_2PR] -PS2 ALPHA TEST - -[FEC_FRC] -СВОБОДНАЯ КАМЕРА - -{ 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] -ПОВТОРИТЬ ЗАДАНИЕ - -[FESZ_RM] -НАЧАТЬ ЗАНОВО? - -{ more graphics } -[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 - -[FEM_AUT] { aspect ratio related } -АВТО - -{ controls } -[FEC_IVP] -ИНВЕРТИРОВАТЬ ВЕРТИКАЛЬНУЮ ОСЬ - -{ map } -[FEM_TWP] -Поставить метку - -[FEA_FMN] -РАДИО ВЫКЛ - -[FEC_DS2] -DUALSHOCK 2 - -[FEC_DS3] -DUALSHOCK 3 - -[FEC_DS4] -DUALSHOCK 4 - -[FEC_360] -КОНТРОЛЛЕР XBOX 360 - -[FEC_ONE] -КОНТРОЛЛЕР XBOX ONE - -[FEC_TYP] -ГЕЙМПАД - -[FEC_CCF] -КОНФИГУРАЦИЯ - -[FEC_CF1] -СХЕМА 1 - -[FEC_CF2] -СХЕМА 2 - -[FEC_CF3] -СХЕМА 3 - -[FEC_CF4] -СХЕМА 4 - -[FEC_CDP] -ТИП УПРАВЛЕНИЯ - -[FEC_ONF] -ПЕШКОМ - -[FEC_INC] -В МАШИНЕ - -[FEC_VIB] -ВИБРАЦИЯ - -[FET_AGS] -НАСТРОЙКИ ГЕЙМПАДА - { end of file } [DUMMY] diff --git a/utils/gxt/spanish.txt b/utils/gxt/spanish.txt index b2e418dd..b58fa845 100644 --- a/utils/gxt/spanish.txt +++ b/utils/gxt/spanish.txt @@ -1,16 +1,4 @@ -{ - 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. - - 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 III Spanish (Spain) Translation } +{ Grand Theft Auto III Spanish (Spain) Translation } { Contains some of the official fixes made by Rockstar for the iOS port } { Additional translation rewrites, corrections and fixes by IlDucci } @@ -384,7 +372,7 @@ Playa de Portland Saint Mark's [REDLIGH] -Red Light District +Barrio rojo [TOWERS] Cerros de Hepburn @@ -648,7 +636,7 @@ Puedes practicar disparando a estas dianas. Vuelve a la misión cuando hayas ter ~g~Busca un cliente. [FARE1] -~g~Ve al ~w~club Sex Kitten Meeouch ~g~en el Red Light District. +~g~Ve al ~w~club Sex Kitten Meeouch ~g~en el barrio rojo. [FARE2] ~g~Ve a ~w~Supa Save ~g~en Portland View. @@ -660,13 +648,13 @@ Puedes practicar disparando a estas dianas. Vuelve a la misión cuando hayas ter ~g~Ve a la ~w~cafetería Greasy Joe ~g~en Callahan Point. [FARE5] -~g~Ve a la ~w~tienda de armas Ammu-Nation ~g~en el Red Light District. +~g~Ve a la ~w~tienda de armas Ammu-Nation ~g~en el barrio rojo. [FARE6] ~g~Ve a ~w~Easy Credit Autos ~g~en Saint Mark's. [FARE7] -~g~Ve al ~w~bar de topless de Woody ~g~en el Red Light District. +~g~Ve al ~w~bar de topless de Woody ~g~en el barrio rojo. [FARE8] ~g~Ve al ~w~restaurante Marcos ~g~en Saint Mark's. @@ -768,7 +756,7 @@ Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para activar o desactivar las misiones del c ¡Has volado durante ~1~ segundos! [EBAL_A] -Conozco un lugar en las afueras del Red Light District donde podemos escondernos, +Conozco un lugar en las afueras del barrio rojo donde podemos escondernos, [EBAL_A1] pero mis manos están destrozadas, así que conduce tú, hermano. @@ -1565,7 +1553,7 @@ Eso no es un masajeador. ~r~Muy bonito, ¡has asustado al objetivo! ¿Y te consideras un asesino? [AM1_5] -~g~Ve al Red Light District y espera a que Salvatore salga del club. +~g~Ve al barrio rojo y espera a que Salvatore salga del club. [AM1_7] ~r~Salvatore está en su casita, sano y salvo, tomándose un cóctel. ¡Nadie te va a llamar ''Chacal''! @@ -2258,11 +2246,11 @@ Una bomba de coche vale 1.000 dólares. [GA_5] Tu coche ya tiene una bomba instalada. -[GA_6] { re3 change } -¡Apárcalo, actívala pulsando ~h~~k~~VEHICLE_FIREWEAPON~~w~ y SAL PITANDO! +[GA_6] +¡Apárcalo, actívala pulsando ~h~~k~~PED_FIREWEAPON~~w~ y SAL PITANDO! -[GA_7] { re3 change } -Activa la bomba pulsando ~h~~k~~VEHICLE_FIREWEAPON~~w~. Estallará cuando se arranque el motor. +[GA_7] +Activa la bomba pulsando ~h~~k~~PED_FIREWEAPON~~w~. Estallará cuando se arranque el motor. [GA_8] Utiliza el detonador para activar la bomba. @@ -2478,6 +2466,33 @@ Acelerar [FEC_SMT] Activar misión especial +[FEC_CCF] +Configuración: + +[FEC_CF1] +Ajuste1 + +[FEC_CF2] +Ajuste2 + +[FEC_CF3] +Ajuste3 + +[FEC_CF4] +Ajuste4 + +[FEC_CDP] +Controles a mostrar: + +[FEC_ONF] +A pie + +[FEC_INC] +En vehículos + +[FEC_VIB] +Vibración: + [FEA_OUT] Salida: @@ -3618,11 +3633,11 @@ que tendré trabajo para ti. [JM6_1] Llévanos al banco de la avenida principal. -[GA_6B] { re3 change } -¡Apárcalo, actívala pulsando ~h~~k~~VEHICLE_FIREWEAPON~~w~ y SAL PITANDO! +[GA_6B] +¡Apárcalo, actívala pulsando ~h~~k~~PED_FIREWEAPON~~w~ y SAL PITANDO! -[GA_7B] { re3 change } -Activa la bomba pulsando ~h~~k~~VEHICLE_FIREWEAPON~~w~. Estallará cuando se arranque el motor. +[GA_7B] +Activa la bomba pulsando ~h~~k~~PED_FIREWEAPON~~w~. Estallará cuando se arranque el motor. [BAT1] ~g~¡Coge el bate! @@ -4044,11 +4059,11 @@ Mete tu vehículo en el taller de pintura para perder tu ~h~nivel de búsqueda~w [HM1_1] ~g~Cepíllate a 20 Purple Nines en 2 minutos y 30 segundos. -[KM1_8A] { re3 change } -Pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~ para ~h~activar la bomba~w~. Acuérdate de alejarte de ella. +[KM1_8A] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~activar la bomba~w~. Acuérdate de alejarte de ella. -[KM1_8D] { re3 change } -Pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~ para ~h~activar la bomba~w~. Acuérdate de alejarte de ella. +[KM1_8D] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~activar la bomba~w~. Acuérdate de alejarte de ella. [KM1_12] ~g~¡Llévalo al dojo, pero deshazte primero de la policía! @@ -4185,11 +4200,11 @@ No necesito tu documentación, pareces de fiar. [DETON] DETONACIÓN: -[DRIVE_A] { re3 change } -Ten una Uzi seleccionada cuando entres en un vehículo, luego mira a la izquierda o a la derecha y pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~ para disparar. +[DRIVE_A] +Ten una Uzi seleccionada cuando entres en un vehículo, luego mira a la izquierda o a la derecha y pulsa ~h~~k~~PED_FIREWEAPON~~w~ para disparar. -[DRIVE_B] { re3 change } -Ten una Uzi seleccionada cuando entres en un vehículo, luego mira a la izquierda o a la derecha y pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~ para disparar. +[DRIVE_B] +Ten una Uzi seleccionada cuando entres en un vehículo, luego mira a la izquierda o a la derecha y pulsa ~h~~k~~PED_FIREWEAPON~~w~ para disparar. [RECORD] ~g~¡NUEVO RÉCORD! @@ -4197,11 +4212,11 @@ Ten una Uzi seleccionada cuando entres en un vehículo, luego mira a la izquierd [NRECORD] ~r~¡NO HAY UN NUEVO RÉCORD! -[RCHELP] { re3 change } -Pulsa ~k~~VEHICLE_FIREWEAPON~ o lleva el coche teledirigido hasta las ruedas de otro coche para detonarlo. +[RCHELP] +Pulsa ~k~~PED_FIREWEAPON~ o lleva el coche teledirigido hasta las ruedas de otro coche para detonarlo. -[RCHELPA] { re3 change } -Pulsa ~k~~VEHICLE_FIREWEAPON~ o lleva el coche teledirigido hasta las ruedas de otro coche para detonarlo. +[RCHELPA] +Pulsa ~k~~PED_FIREWEAPON~ o lleva el coche teledirigido hasta las ruedas de otro coche para detonarlo. [RC_1] ¡Tienes 2 minutos para destruir todos los coches de los Diablos que puedas! @@ -4432,7 +4447,7 @@ tomándolos por el camino. ¡Cuando alcances a ese bandido espaciado con SPANK, chíngatelo! [DIAB4_H] -Luego reparte mis revistas XXX por el Red Light District. +Luego reparte mis revistas XXX por el barrio rojo. [DIAB4_1] ~g~Lleva la furgoneta a la parte de atrás de Revistas XXX. @@ -4564,7 +4579,7 @@ si no les doy una parte. He dejado un coche dentro de la fábrica. [MEA2_G] -Ve a recogerles con él en su territorio, en el Red Light District. +Ve a recogerles con él en su territorio, en el barrio rojo. [MEA2_H] Luego tráelos a la fábrica para que conozcan la opinión de Marty. @@ -4701,11 +4716,11 @@ Luigi dijo que eras de fiar, así que vuelve más tarde, [RM5_6] ~g~¡Ha salido de la ambulancia! ¡Cárgate su escayola con un vehículo o una explosión! -[PBOAT_1] { re3 change } -Pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~ para disparar los cañones de la lancha. +[PBOAT_1] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para disparar los cañones de la lancha. -[PBOAT_2] { re3 change } -Pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~ para disparar los cañones de la lancha. +[PBOAT_2] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para disparar los cañones de la lancha. [DIAB1_B] Al habla El Burro, de los Diablos. @@ -4719,11 +4734,11 @@ Hay una carrera que empezará junto a la sala Clásica, cerca del puente Callaha [DIAB1_F] Consíguete un buen carro y el primero que pase por todos los puntos de control se llevará el premio. -[HM2_1] { re3 change } -Usa los coches teledirigidos para destruir los furgones blindados. Pulsa ~h~~k~~VEHICLE_FIREWEAPON~ ~w~para detonarlos. +[HM2_1] +Usa los coches teledirigidos para destruir los furgones blindados. Pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para detonarlos. -[HM2_1A] { re3 change } -Usa los coches teledirigidos para destruir los furgones blindados. Pulsa ~h~~k~~VEHICLE_FIREWEAPON~ ~w~para detonarlos. +[HM2_1A] +Usa los coches teledirigidos para destruir los furgones blindados. Pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para detonarlos. [HM2_2] ~r~¡No has destruido todos los furgones blindados! @@ -6530,11 +6545,11 @@ Esta Memory Card (PS2) ya está formateada. [FEDSAS4] ;=<> - CAMBIAR SELECCIÓN -[SPRAY_4] { re3 change } -Pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~ para disparar el cañón de agua. +[SPRAY_4] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para disparar el cañón de agua. -[SPRAY_1] { re3 change } -Pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~ para disparar el cañón de agua. +[SPRAY_1] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para disparar el cañón de agua. [LITTLE] LITTLE T @@ -7138,7 +7153,7 @@ Color del jugador Liberty City [FEM_MA1] -Red Light District +Barrio rojo [FEM_MA2] Chinatown @@ -7290,6 +7305,9 @@ CONEXIÓN [FET_AUD] AJUSTES DE AUDIO +[FET_GFX] +AJUSTES GRÁFICOS + [FET_DIS] AJUSTES DE PANTALLA @@ -7997,7 +8015,7 @@ POLACO RUSO { new display menus } -[FET_GFX] +[FET_GRA] AJUSTES GRÁFICOS [FED_MIP] @@ -8101,66 +8119,12 @@ PS2 [FEM_XBX] XBOX -[FEM_AUT] -AUTOM. - [FEC_IVP] INVERTIR VERTICALIDAD MANDO [FEM_TWP] Poner o quitar punto de referencia -[FEA_FMN] -RADIO APAGADA - -[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 - -[FEC_CCF] -CONFIGURACIÓN - -[FEC_CF1] -AJUSTE 1 - -[FEC_CF2] -AJUSTE 2 - -[FEC_CF3] -AJUSTE 3 - -[FEC_CF4] -AJUSTE 4 - -[FEC_CDP] -CONTROLES A MOSTRAR - -[FEC_ONF] -A PIE - -[FEC_INC] -EN VEHÍCULO - -[FEC_VIB] -VIBRACIÓN - -[FET_AGS] -AJUSTES DE MANDO - { end of file } [DUMMY] diff --git a/vendor/librw b/vendor/librw index 41ae7b9b..60a5ace1 160000 --- a/vendor/librw +++ b/vendor/librw @@ -1 +1 @@ -Subproject commit 41ae7b9b61c6736b34269df0f0350d1b5bcff4df +Subproject commit 60a5ace16309ccd3d174a3ec14a1062540934066