mirror of
				https://github.com/halpz/re3.git
				synced 2025-11-04 03:25:03 +00:00 
			
		
		
		
	Merge branch 'miami' into lcs
# Conflicts: # .github/workflows/reLCS_msvc_amd64.yml # .github/workflows/reLCS_msvc_x86.yml # premake5.lua # src/control/Script2.cpp # src/control/Script8.cpp
This commit is contained in:
		
						commit
						4bd7bafd7c
					
				
							
								
								
									
										116
									
								
								.github/workflows/build-cmake-conan.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								.github/workflows/build-cmake-conan.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,116 @@
 | 
			
		|||
name: reVC conan+cmake
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
  push:
 | 
			
		||||
  release:
 | 
			
		||||
    types: published
 | 
			
		||||
jobs:
 | 
			
		||||
  build-cmake:
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix:
 | 
			
		||||
        include:
 | 
			
		||||
          - os: 'windows-latest'
 | 
			
		||||
            platform: 'gl3'
 | 
			
		||||
            gl3_gfxlib: 'glfw'
 | 
			
		||||
            audio: 'openal'
 | 
			
		||||
#          - os: 'windows-latest'
 | 
			
		||||
#            platform: 'gl3'
 | 
			
		||||
#            gl3_gfxlib: 'sdl2'
 | 
			
		||||
#            audio: 'openal'
 | 
			
		||||
          - os: 'windows-latest'
 | 
			
		||||
            platform: 'd3d9'
 | 
			
		||||
            audio: 'openal'
 | 
			
		||||
#          - os: 'windows-latest'
 | 
			
		||||
#            platform: 'd3d9'
 | 
			
		||||
#            audio: 'miles'
 | 
			
		||||
          - os: 'ubuntu-latest'
 | 
			
		||||
            platform: 'gl3'
 | 
			
		||||
            gl3_gfxlib: 'glfw'
 | 
			
		||||
            audio: 'openal'
 | 
			
		||||
#          - os: 'ubuntu-latest'
 | 
			
		||||
#            platform: 'gl3'
 | 
			
		||||
#            gl3_gfxlib: 'sdl2'
 | 
			
		||||
#            audio: 'openal'
 | 
			
		||||
          - os: 'macos-latest'
 | 
			
		||||
            platform: 'gl3'
 | 
			
		||||
            gl3_gfxlib: 'glfw'
 | 
			
		||||
            audio: 'openal'
 | 
			
		||||
#          - os: 'macos-latest'
 | 
			
		||||
#            platform: 'gl3'
 | 
			
		||||
#            gl3_gfxlib: 'sdl2'
 | 
			
		||||
#            audio: 'openal'
 | 
			
		||||
    runs-on: ${{ matrix.os }}
 | 
			
		||||
    continue-on-error: ${{ matrix.platform == 'ps2' || matrix.gl3_gfxlib == 'sdl2' || matrix.audio == 'miles' }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: true
 | 
			
		||||
      - name: "Checkout Miles SDK Import Library project"
 | 
			
		||||
        uses: actions/checkout@v2
 | 
			
		||||
        if: ${{ matrix.audio == 'miles' }}
 | 
			
		||||
        with:
 | 
			
		||||
          repository: 'withmorten/re3mss'
 | 
			
		||||
          path: 're3mss'
 | 
			
		||||
      - uses: actions/setup-python@v2
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: '3.x'
 | 
			
		||||
      - name: "Use XCode 11 as default (conan-center-index does not provide XCode 12 binaries at the moment)"
 | 
			
		||||
        if: startsWith(matrix.os, 'macos')
 | 
			
		||||
        run: |
 | 
			
		||||
          sudo xcode-select --switch /Applications/Xcode_11.7.app
 | 
			
		||||
      - name: "Setup conan"
 | 
			
		||||
        run: |
 | 
			
		||||
          python -m pip install conan
 | 
			
		||||
          conan config init
 | 
			
		||||
          conan config set log.print_run_commands=True
 | 
			
		||||
          conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
 | 
			
		||||
          conan remote add madebr_ps2dev https://api.bintray.com/conan/madebr/ps2dev
 | 
			
		||||
      - name: "Add os=playstation2 + gcc.version=3.2 to .conan/settings.yml"
 | 
			
		||||
        shell: python
 | 
			
		||||
        run: |
 | 
			
		||||
          import os, yaml
 | 
			
		||||
          settings_path = os.path.expanduser("~/.conan/settings.yml")
 | 
			
		||||
          yml = yaml.safe_load(open(settings_path))
 | 
			
		||||
          yml["os"]["playstation2"] = None
 | 
			
		||||
          yml["compiler"]["gcc"]["version"].append("3.2")
 | 
			
		||||
          yml["compiler"]["gcc"]["version"].sort()
 | 
			
		||||
          yaml.safe_dump(yml, open(settings_path, "w"))
 | 
			
		||||
      - name: "Create host profile"
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          if test "${{ matrix.platform }}" = "ps2"; then
 | 
			
		||||
            cp vendor/librw/conan/playstation2 host_profile
 | 
			
		||||
          else
 | 
			
		||||
            cp ~/.conan/profiles/default host_profile
 | 
			
		||||
          fi
 | 
			
		||||
      - name: "Export Playstation 2 CMake toolchain conan recipe"
 | 
			
		||||
        run: |
 | 
			
		||||
          conan export vendor/librw/cmake/ps2toolchain ps2dev-cmaketoolchain/master@
 | 
			
		||||
      - name: "Export librw conan recipe"
 | 
			
		||||
        run: |
 | 
			
		||||
          conan export vendor/librw librw/master@
 | 
			
		||||
      - name: "Export Miles SDK conan recipe"
 | 
			
		||||
        if: ${{ matrix.audio == 'miles' }}
 | 
			
		||||
        run: |
 | 
			
		||||
          conan export re3mss miles-sdk/master@
 | 
			
		||||
      - name: "Download/build dependencies (conan install)"
 | 
			
		||||
        run: |
 | 
			
		||||
          conan install ${{ github.workspace }} reVC/master@ -if build -o reVC:audio=${{ matrix.audio }} -o librw:platform=${{ matrix.platform }} -o librw:gl3_gfxlib=${{ matrix.gl3_gfxlib || 'glfw' }} --build missing -pr:h ./host_profile -pr:b default -s reVC:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo
 | 
			
		||||
        env:
 | 
			
		||||
          CONAN_SYSREQUIRES_MODE: enabled
 | 
			
		||||
      - name: "Build reVC (conan build)"
 | 
			
		||||
        run: |
 | 
			
		||||
          conan build ${{ github.workspace }} -if build -bf build -pf package
 | 
			
		||||
      - name: "Package reVC (conan package)"
 | 
			
		||||
        run: |
 | 
			
		||||
          conan package ${{ github.workspace }} -if build -bf build -pf package
 | 
			
		||||
      - name: "Create binary package (cpack)"
 | 
			
		||||
        working-directory: ./build
 | 
			
		||||
        run: |
 | 
			
		||||
          cpack -C RelWithDebInfo
 | 
			
		||||
      - name: "Archive binary package (github artifacts)"
 | 
			
		||||
        uses: actions/upload-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name: "${{ matrix.os }}-${{ matrix.platform }}"
 | 
			
		||||
          path: build/*.tar.xz
 | 
			
		||||
          if-no-files-found: error
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/reLCS_msvc_amd64.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/reLCS_msvc_amd64.yml
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
name: reLCS_msvc_amd64
 | 
			
		||||
name: reLCS premake amd64
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								.github/workflows/reLCS_msvc_x86.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/reLCS_msvc_x86.yml
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
name: reLCS_msvc_x86
 | 
			
		||||
name: reLCS premake x86
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										44
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								.travis.yml
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -1,44 +0,0 @@
 | 
			
		|||
language: cpp
 | 
			
		||||
dist: focal
 | 
			
		||||
os: linux
 | 
			
		||||
jobs:
 | 
			
		||||
  include:
 | 
			
		||||
  - env: TARGET=release_linux-amd64-librw_gl3_glfw-oal
 | 
			
		||||
    os: linux
 | 
			
		||||
  - env: TARGET=debug_linux-amd64-librw_gl3_glfw-oal
 | 
			
		||||
    os: linux
 | 
			
		||||
  - env: TARGET=release_macosx-amd64-librw_gl3_glfw-oal PREMAKE5=premake-5.0.0-alpha15
 | 
			
		||||
    compiler: clang
 | 
			
		||||
    os: osx
 | 
			
		||||
    osx_image: xcode12u
 | 
			
		||||
  - env: TARGET=debug_macosx-amd64-librw_gl3_glfw-oal PREMAKE5=premake-5.0.0-alpha15
 | 
			
		||||
    compiler: clang
 | 
			
		||||
    os: osx
 | 
			
		||||
    osx_image: xcode12u
 | 
			
		||||
addons:
 | 
			
		||||
  apt:
 | 
			
		||||
    update: true
 | 
			
		||||
    packages:
 | 
			
		||||
      - linux-libc-dev
 | 
			
		||||
      - libopenal-dev
 | 
			
		||||
      - libglew-dev
 | 
			
		||||
      - libglfw3-dev
 | 
			
		||||
      - libsndfile1-dev
 | 
			
		||||
      - libmpg123-dev
 | 
			
		||||
      - gcc-8-multilib
 | 
			
		||||
      - g++-8-multilib
 | 
			
		||||
  homebrew:
 | 
			
		||||
    packages:
 | 
			
		||||
      - libsndfile
 | 
			
		||||
      - mpg123
 | 
			
		||||
      - glew
 | 
			
		||||
      - glfw
 | 
			
		||||
      - openal-soft
 | 
			
		||||
script:
 | 
			
		||||
  - mkdir -p "$TRAVIS_BUILD_DIR/build"
 | 
			
		||||
  - cd "$TRAVIS_BUILD_DIR"
 | 
			
		||||
  - if [ "$TRAVIS_OS_NAME" = linux ]; then ./premake5Linux --with-librw gmake2; fi
 | 
			
		||||
  - if [ "$TRAVIS_OS_NAME" = osx ]; then curl -L -o "${PREMAKE5}.zip" "https://github.com/premake/premake-core/releases/download/v5.0.0-alpha15/${PREMAKE5}-src.zip" && unzip -q "${PREMAKE5}.zip" && cd "$PREMAKE5" && make -f Bootstrap.mak osx && cd .. && "./${PREMAKE5}/bin/release/premake5" --with-librw gmake2; fi
 | 
			
		||||
  - cd build
 | 
			
		||||
  - if [ "$TRAVIS_OS_NAME" = linux ]; then env CC=gcc-8 CXX=g++-8 make config=$TARGET -j4 verbose=1; fi
 | 
			
		||||
  - if [ "$TRAVIS_OS_NAME" = osx ]; then make config=$TARGET -j4 verbose=1; fi
 | 
			
		||||
							
								
								
									
										34
									
								
								cmake/FindMilesSDK.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								cmake/FindMilesSDK.cmake
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,34 @@
 | 
			
		|||
# - Find Miles SDK
 | 
			
		||||
# Find the Miles SDK header + import library
 | 
			
		||||
#
 | 
			
		||||
#  MilesSDK_INCLUDE_DIR - Where to find mss.h
 | 
			
		||||
#  MilesSDK_LIBRARIES   - List of libraries when using MilesSDK.
 | 
			
		||||
#  MilesSDK_FOUND       - True if Miles SDK found.
 | 
			
		||||
#  MilesSDK::MilesSDK   - Imported library of Miles SDK
 | 
			
		||||
 | 
			
		||||
find_path(MilesSDK_INCLUDE_DIR mss.h
 | 
			
		||||
    PATHS "${MilesSDK_DIR}"
 | 
			
		||||
    PATH_SUFFIXES include
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
 | 
			
		||||
    set(_miles_sdk_libname mss64)
 | 
			
		||||
else()
 | 
			
		||||
    set(_miles_sdk_libname mss32)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
find_library(MilesSDK_LIBRARIES NAMES ${_miles_sdk_libname}
 | 
			
		||||
    PATHS "${MilesSDK_DIR}"
 | 
			
		||||
    PATH_SUFFIXES lib
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
include(FindPackageHandleStandardArgs)
 | 
			
		||||
find_package_handle_standard_args(MilesSDK DEFAULT_MSG MilesSDK_LIBRARIES MilesSDK_INCLUDE_DIR)
 | 
			
		||||
 | 
			
		||||
if(NOT TARGET MilesSDK::MilesSDK)
 | 
			
		||||
    add_library(MilesSDK::MilesSDK UNKNOWN IMPORTED)
 | 
			
		||||
    set_target_properties(MilesSDK::MilesSDK PROPERTIES
 | 
			
		||||
        IMPORTED_LOCATION "${MilesSDK_LIBRARIES}
 | 
			
		||||
        INTERFACE_INCLUDE_DIRECTORIES "${MilesSDK_INCLUDE_DIR}"
 | 
			
		||||
    )
 | 
			
		||||
endif()
 | 
			
		||||
							
								
								
									
										64
									
								
								cmake/Findopusfile.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								cmake/Findopusfile.cmake
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,64 @@
 | 
			
		|||
# - Try to find opusfile
 | 
			
		||||
# 
 | 
			
		||||
# Once done this will define
 | 
			
		||||
#
 | 
			
		||||
#  OPUSFILE_FOUND        - system has opusfile
 | 
			
		||||
#  OPUSFILE_INCLUDE_DIRS - the opusfile include directories
 | 
			
		||||
#  OPUSFILE_LIBRARIES    - Link these to use opusfile
 | 
			
		||||
#  OPUSFILE_CFLAGS       - Compile options to use opusfile
 | 
			
		||||
#  opusfile::opusfile    - Imported library of opusfile
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# FIXME: opusfile does not ship an official opusfile cmake script,
 | 
			
		||||
# rename this file/variables/target when/if it has.
 | 
			
		||||
 | 
			
		||||
find_package(PkgConfig QUIET)
 | 
			
		||||
if(PKG_CONFIG_FOUND)
 | 
			
		||||
    pkg_search_module(PKG_OPUSFILE "opusfile")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
find_path(OPUSFILE_INCLUDE_DIR
 | 
			
		||||
    NAMES
 | 
			
		||||
        opusfile.h
 | 
			
		||||
    PATH_SUFFIXES
 | 
			
		||||
        opusfile
 | 
			
		||||
    HINTS
 | 
			
		||||
        ${PKG_OPUSFILE_INCLUDE_DIRS}
 | 
			
		||||
    PATHS
 | 
			
		||||
        /usr/include
 | 
			
		||||
        /usr/local/include
 | 
			
		||||
        /opt/local/include
 | 
			
		||||
        /sw/include
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
find_library(OPUSFILE_LIBRARY
 | 
			
		||||
    NAMES
 | 
			
		||||
        opusfile
 | 
			
		||||
    HINTS
 | 
			
		||||
        ${PKG_OPUSFILE_LIBRARIES}
 | 
			
		||||
    PATHS
 | 
			
		||||
        /usr/lib
 | 
			
		||||
        /usr/local/lib
 | 
			
		||||
        /opt/local/lib
 | 
			
		||||
        /sw/lib
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
set(OPUSFILE_CFLAGS "${PKG_OPUSFILE_CFLAGS_OTHER}" CACHE STRING "CFLAGS of opusfile")
 | 
			
		||||
 | 
			
		||||
set(OPUSFILE_INCLUDE_DIRS "${OPUSFILE_INCLUDE_DIR}")
 | 
			
		||||
set(OPUSFILE_LIBRARIES "${OPUSFILE_LIBRARY}")
 | 
			
		||||
 | 
			
		||||
if (OPUSFILE_INCLUDE_DIRS AND OPUSFILE_LIBRARIES)
 | 
			
		||||
set(OPUSFILE_FOUND TRUE)
 | 
			
		||||
endif (OPUSFILE_INCLUDE_DIRS AND OPUSFILE_LIBRARIES)
 | 
			
		||||
 | 
			
		||||
include(FindPackageHandleStandardArgs)
 | 
			
		||||
find_package_handle_standard_args(opusfile DEFAULT_MSG OPUSFILE_INCLUDE_DIRS OPUSFILE_LIBRARIES)
 | 
			
		||||
 | 
			
		||||
if(NOT TARGET opusfile::opusfile)
 | 
			
		||||
    add_library(__opusfile INTERFACE)
 | 
			
		||||
    target_compile_options(__opusfile INTERFACE ${OPUSFILE_CFLAGS})
 | 
			
		||||
    target_include_directories(__opusfile INTERFACE ${OPUSFILE_INCLUDE_DIRS})
 | 
			
		||||
    target_link_libraries(__opusfile INTERFACE ${OPUSFILE_LIBRARIES})
 | 
			
		||||
    add_library(opusfile::opusfile ALIAS __opusfile)
 | 
			
		||||
endif()
 | 
			
		||||
							
								
								
									
										135
									
								
								conanfile.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								conanfile.py
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,135 @@
 | 
			
		|||
from conans import ConanFile, CMake, tools
 | 
			
		||||
from conans.errors import ConanException, ConanInvalidConfiguration
 | 
			
		||||
import os
 | 
			
		||||
import shutil
 | 
			
		||||
import textwrap
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ReVCConan(ConanFile):
 | 
			
		||||
    name = "reVC"
 | 
			
		||||
    version = "master"
 | 
			
		||||
    license = "???"  # FIXME: https://github.com/GTAmodding/re3/issues/794
 | 
			
		||||
    settings = "os", "arch", "compiler", "build_type"
 | 
			
		||||
    generators = "cmake", "cmake_find_package"
 | 
			
		||||
    options = {
 | 
			
		||||
        "audio": ["openal", "miles"],
 | 
			
		||||
        "with_libsndfile": [True, False],
 | 
			
		||||
        "with_opus": [True, False],
 | 
			
		||||
    }
 | 
			
		||||
    default_options = {
 | 
			
		||||
        "audio": "openal",
 | 
			
		||||
        "with_libsndfile": False,
 | 
			
		||||
        "with_opus": False,
 | 
			
		||||
        # "libsndfile:with_external_libs": False,
 | 
			
		||||
        # "mpg123:flexible_resampling": False,
 | 
			
		||||
        # "mpg123:network": False,
 | 
			
		||||
        # "mpg123:icy": False,
 | 
			
		||||
        # "mpg123:id3v2": False,
 | 
			
		||||
        # "mpg123:ieeefloat": False,
 | 
			
		||||
        # "mpg123:layer1": False,
 | 
			
		||||
        # "mpg123:layer2": False,
 | 
			
		||||
        # "mpg123:layer3": False,
 | 
			
		||||
        # "mpg123:moreinfo": False,
 | 
			
		||||
        # "sdl2:vulkan": False,
 | 
			
		||||
        # "sdl2:opengl": True,
 | 
			
		||||
        # "sdl2:sdl2main": True,
 | 
			
		||||
    }
 | 
			
		||||
    no_copy_source = True
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def _os_is_playstation2(self):
 | 
			
		||||
        try:
 | 
			
		||||
            return self.settings.os == "Playstation2"
 | 
			
		||||
        except ConanException:
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
    def configure(self):
 | 
			
		||||
        if self.options.audio != "openal":
 | 
			
		||||
            self.options.with_libsndfile = False
 | 
			
		||||
 | 
			
		||||
    def requirements(self):
 | 
			
		||||
        self.requires("librw/{}".format(self.version))
 | 
			
		||||
        self.requires("mpg123/1.26.4")
 | 
			
		||||
        if self.options.audio == "openal":
 | 
			
		||||
            self.requires("openal/1.21.0")
 | 
			
		||||
        elif self.options.audio == "miles":
 | 
			
		||||
            self.requires("miles-sdk/{}".format(self.version))
 | 
			
		||||
        if self.options.with_libsndfile:
 | 
			
		||||
            self.requires("libsndfile/1.0.30")
 | 
			
		||||
        if self.options.with_opus:
 | 
			
		||||
            self.requires("opusfile/0.12")
 | 
			
		||||
 | 
			
		||||
    def export_sources(self):
 | 
			
		||||
        for d in ("cmake", "src"):
 | 
			
		||||
            shutil.copytree(src=d, dst=os.path.join(self.export_sources_folder, d))
 | 
			
		||||
        self.copy("CMakeLists.txt")
 | 
			
		||||
 | 
			
		||||
    def validate(self):
 | 
			
		||||
        if self.options["librw"].platform == "gl3" and self.options["librw"].gl3_gfxlib != "glfw":
 | 
			
		||||
            raise ConanInvalidConfiguration("Only `glfw` is supported as gl3_gfxlib.")
 | 
			
		||||
        #if not self.options.with_opus:
 | 
			
		||||
        #    if not self.options["libsndfile"].with_external_libs:
 | 
			
		||||
        #        raise ConanInvalidConfiguration("reVC with opus support requires a libsndfile built with external libs (=ogg/flac/opus/vorbis)")
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def _reVC_audio(self):
 | 
			
		||||
        return {
 | 
			
		||||
            "miles": "MSS",
 | 
			
		||||
            "openal": "OAL",
 | 
			
		||||
        }[str(self.options.audio)]
 | 
			
		||||
 | 
			
		||||
    def build(self):
 | 
			
		||||
        if self.source_folder == self.build_folder:
 | 
			
		||||
            raise Exception("cannot build with source_folder == build_folder")
 | 
			
		||||
        try:
 | 
			
		||||
            os.unlink(os.path.join(self.install_folder, "Findlibrw.cmake"))
 | 
			
		||||
            tools.save("FindOpenAL.cmake",
 | 
			
		||||
                       textwrap.dedent(
 | 
			
		||||
                           """
 | 
			
		||||
                           set(OPENAL_FOUND ON)
 | 
			
		||||
                           set(OPENAL_INCLUDE_DIR ${OpenAL_INCLUDE_DIRS})
 | 
			
		||||
                           set(OPENAL_LIBRARY ${OpenAL_LIBRARIES})
 | 
			
		||||
                           set(OPENAL_DEFINITIONS ${OpenAL_DEFINITIONS})
 | 
			
		||||
                           """), append=True)
 | 
			
		||||
            if self.options["librw"].platform == "gl3" and self.options["librw"].gl3_gfxlib == "glfw":
 | 
			
		||||
                tools.save("Findglfw3.cmake",
 | 
			
		||||
                           textwrap.dedent(
 | 
			
		||||
                               """
 | 
			
		||||
                               if(NOT TARGET glfw)
 | 
			
		||||
                                 message(STATUS "Creating glfw TARGET")
 | 
			
		||||
                                 add_library(glfw INTERFACE IMPORTED)
 | 
			
		||||
                                 set_target_properties(glfw PROPERTIES
 | 
			
		||||
                                    INTERFACE_LINK_LIBRARIES CONAN_PKG::glfw)
 | 
			
		||||
                               endif()
 | 
			
		||||
                               """), append=True)
 | 
			
		||||
            tools.save("CMakeLists.txt",
 | 
			
		||||
                       textwrap.dedent(
 | 
			
		||||
                           """
 | 
			
		||||
                           cmake_minimum_required(VERSION 3.0)
 | 
			
		||||
                           project(cmake_wrapper)
 | 
			
		||||
    
 | 
			
		||||
                           include("{}/conanbuildinfo.cmake")
 | 
			
		||||
                           conan_basic_setup(TARGETS NO_OUTPUT_DIRS)
 | 
			
		||||
    
 | 
			
		||||
                           add_subdirectory("{}" reVC)
 | 
			
		||||
                           """).format(self.install_folder.replace("\\", "/"),
 | 
			
		||||
                                       self.source_folder.replace("\\", "/")))
 | 
			
		||||
        except FileNotFoundError:
 | 
			
		||||
            pass
 | 
			
		||||
        cmake = CMake(self)
 | 
			
		||||
        cmake.definitions["REVC_AUDIO"] = self._reVC_audio
 | 
			
		||||
        cmake.definitions["REVC_WITH_OPUS"] = self.options.with_opus
 | 
			
		||||
        cmake.definitions["REVC_INSTALL"] = True
 | 
			
		||||
        cmake.definitions["REVC_VENDORED_LIBRW"] = False
 | 
			
		||||
        env = {}
 | 
			
		||||
        if self._os_is_playstation2:
 | 
			
		||||
            cmake.definitions["CMAKE_TOOLCHAIN_FILE"] = self.deps_user_info["ps2dev-cmaketoolchain"].cmake_toolchain_file
 | 
			
		||||
            env["PS2SDK"] = self.deps_cpp_info["ps2dev-ps2sdk"].rootpath
 | 
			
		||||
 | 
			
		||||
        with tools.environment_append(env):
 | 
			
		||||
            cmake.configure(source_folder=self.build_folder)
 | 
			
		||||
        cmake.build()
 | 
			
		||||
 | 
			
		||||
    def package(self):
 | 
			
		||||
        cmake = CMake(self)
 | 
			
		||||
        cmake.install()
 | 
			
		||||
| 
						 | 
				
			
			@ -309,7 +309,7 @@ project "reLCS"
 | 
			
		|||
 | 
			
		||||
	filter {}
 | 
			
		||||
	if(os.getenv("GTA_LCS_RE_DIR")) then
 | 
			
		||||
		setpaths("$(GTA_LCS_RE_DIR)/", "%(cfg.buildtarget.name)", "")
 | 
			
		||||
		setpaths("$(GTA_LCS_RE_DIR)/", "%(cfg.buildtarget.name)")
 | 
			
		||||
	end
 | 
			
		||||
	
 | 
			
		||||
	filter "platforms:win*"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,7 +36,7 @@ target_compile_definitions(${EXECUTABLE}
 | 
			
		|||
    PRIVATE
 | 
			
		||||
        $<IF:$<CONFIG:DEBUG>,DEBUG,NDEBUG>
 | 
			
		||||
        LIBRW
 | 
			
		||||
        ${PROJECT}_NO_AUTOLINK
 | 
			
		||||
        CMAKE_NO_AUTOLINK
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
if(LIBRW_PLATFORM_D3D9)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4106,6 +4106,7 @@ cAudioManager::SetupJumboFlySound(uint8 emittingVol)
 | 
			
		|||
		m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
 | 
			
		||||
		m_sQueueSample.m_fSpeedMultiplier = 4.0f;
 | 
			
		||||
		m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY;
 | 
			
		||||
		m_sQueueSample.m_bReleasingSoundFlag = false;
 | 
			
		||||
		m_sQueueSample.m_nReleasingVolumeDivider = 5;
 | 
			
		||||
		m_sQueueSample.m_bReverbFlag = true;
 | 
			
		||||
		m_sQueueSample.m_bRequireReflection = false; // todo port fix to re3
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,7 @@
 | 
			
		|||
#include "stream.h"
 | 
			
		||||
#include "sampman.h"
 | 
			
		||||
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
#if defined _MSC_VER && !defined CMAKE_NO_AUTOLINK
 | 
			
		||||
#ifdef AUDIO_OAL_USE_SNDFILE
 | 
			
		||||
#pragma comment( lib, "libsndfile-1.lib" )
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,7 @@
 | 
			
		|||
//TODO: max channels
 | 
			
		||||
//TODO: loop count
 | 
			
		||||
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
#if defined _MSC_VER && !defined CMAKE_NO_AUTOLINK
 | 
			
		||||
#pragma comment( lib, "OpenAL32.lib" )
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -507,12 +507,14 @@ CCollision::TestLineOfSight(const CColLine &line, const CMatrix &matrix, CColMod
 | 
			
		|||
 | 
			
		||||
	for(i = 0; i < model.numSpheres; i++){
 | 
			
		||||
		if(ignoreSeeThrough && IsSeeThrough(model.spheres[i].surface)) continue;
 | 
			
		||||
		if(ignoreShootThrough && IsShootThrough(model.spheres[i].surface)) continue;
 | 
			
		||||
		if(TestLineSphere(*(CColLine*)newline, model.spheres[i]))
 | 
			
		||||
			return true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for(i = 0; i < model.numBoxes; i++){
 | 
			
		||||
		if(ignoreSeeThrough && IsSeeThrough(model.boxes[i].surface)) continue;
 | 
			
		||||
		if(ignoreShootThrough && IsShootThrough(model.boxes[i].surface)) continue;
 | 
			
		||||
		if(TestLineBox(*(CColLine*)newline, model.boxes[i]))
 | 
			
		||||
			return true;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -522,6 +524,7 @@ CCollision::TestLineOfSight(const CColLine &line, const CMatrix &matrix, CColMod
 | 
			
		|||
	VuTriangle vutri;
 | 
			
		||||
	for(i = 0; i < model.numTriangles; i++){
 | 
			
		||||
		if(ignoreSeeThrough && IsSeeThrough(model.triangles[i].surface)) continue;
 | 
			
		||||
		if(ignoreShootThrough && IsShootThrough(model.triangles[i].surface)) continue;
 | 
			
		||||
 | 
			
		||||
		CColTriangle *tri = &model.triangles[i];
 | 
			
		||||
		model.vertices[tri->a].Unpack(vutri.v0);
 | 
			
		||||
| 
						 | 
				
			
			@ -539,6 +542,7 @@ CCollision::TestLineOfSight(const CColLine &line, const CMatrix &matrix, CColMod
 | 
			
		|||
#endif
 | 
			
		||||
	for(; i < model.numTriangles; i++){
 | 
			
		||||
		if(ignoreSeeThrough && IsSeeThrough(model.triangles[i].surface)) continue;
 | 
			
		||||
		if(ignoreShootThrough && IsShootThrough(model.triangles[i].surface)) continue;
 | 
			
		||||
 | 
			
		||||
		CColTriangle *tri = &model.triangles[i];
 | 
			
		||||
		model.vertices[tri->a].Unpack(vutri.v0);
 | 
			
		||||
| 
						 | 
				
			
			@ -1333,6 +1337,7 @@ CCollision::ProcessLineOfSight(const CColLine &line,
 | 
			
		|||
	float coldist = 1.0f;
 | 
			
		||||
	for(i = 0; i < model.numSpheres; i++){
 | 
			
		||||
		if(ignoreSeeThrough && IsSeeThrough(model.spheres[i].surface)) continue;
 | 
			
		||||
		if(ignoreShootThrough && IsShootThrough(model.spheres[i].surface)) continue;
 | 
			
		||||
		if(ProcessLineSphere(*(CColLine*)newline, model.spheres[i], point, coldist))
 | 
			
		||||
			point.Set(0, 0, model.spheres[i].surface, model.spheres[i].piece);
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1348,6 +1353,7 @@ CCollision::ProcessLineOfSight(const CColLine &line,
 | 
			
		|||
	CColTriangle *lasttri = nil;
 | 
			
		||||
	for(i = 0; i < model.numTriangles; i++){
 | 
			
		||||
		if(ignoreSeeThrough && IsSeeThrough(model.triangles[i].surface)) continue;
 | 
			
		||||
		if(ignoreShootThrough && IsShootThrough(model.triangles[i].surface)) continue;
 | 
			
		||||
 | 
			
		||||
		CColTriangle *tri = &model.triangles[i];
 | 
			
		||||
		model.vertices[tri->a].Unpack(vutri.v0);
 | 
			
		||||
| 
						 | 
				
			
			@ -1367,6 +1373,7 @@ CCollision::ProcessLineOfSight(const CColLine &line,
 | 
			
		|||
	float dist;
 | 
			
		||||
	for(; i < model.numTriangles; i++){
 | 
			
		||||
		if(ignoreSeeThrough && IsSeeThrough(model.triangles[i].surface)) continue;
 | 
			
		||||
		if(ignoreShootThrough && IsShootThrough(model.triangles[i].surface)) continue;
 | 
			
		||||
 | 
			
		||||
		CColTriangle *tri = &model.triangles[i];
 | 
			
		||||
		model.vertices[tri->a].Unpack(vutri.v0);
 | 
			
		||||
| 
						 | 
				
			
			@ -1466,13 +1473,13 @@ CCollision::ProcessVerticalLine(const CColLine &line,
 | 
			
		|||
 | 
			
		||||
	float coldist = 1.0f;
 | 
			
		||||
	for(i = 0; i < model.numSpheres; i++){
 | 
			
		||||
		if(ignoreSeeThrough && IsSeeThrough(model.spheres[i].surface)) continue;
 | 
			
		||||
		if(ignoreSeeThrough && IsSeeThroughVertical(model.spheres[i].surface)) continue;
 | 
			
		||||
		if(ProcessLineSphere(*(CColLine*)newline, model.spheres[i], point, coldist))
 | 
			
		||||
			point.Set(0, 0, model.spheres[i].surface, model.spheres[i].piece);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for(i = 0; i < model.numBoxes; i++){
 | 
			
		||||
		if(ignoreSeeThrough && IsSeeThrough(model.boxes[i].surface)) continue;
 | 
			
		||||
		if(ignoreSeeThrough && IsSeeThroughVertical(model.boxes[i].surface)) continue;
 | 
			
		||||
		if(ProcessLineBox(*(CColLine*)newline, model.boxes[i], point, coldist))
 | 
			
		||||
			point.Set(0, 0, model.boxes[i].surface, model.boxes[i].piece);
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1484,7 +1491,7 @@ CCollision::ProcessVerticalLine(const CColLine &line,
 | 
			
		|||
		CColTriangle *lasttri = nil;
 | 
			
		||||
		VuTriangle vutri;
 | 
			
		||||
		for(i = 0; i < model.numTriangles; i++){
 | 
			
		||||
			if(ignoreSeeThrough && IsSeeThrough(model.triangles[i].surface)) continue;
 | 
			
		||||
			if(ignoreSeeThrough && IsSeeThroughVertical(model.triangles[i].surface)) continue;
 | 
			
		||||
 | 
			
		||||
			CColTriangle *tri = &model.triangles[i];
 | 
			
		||||
			model.vertices[tri->a].Unpack(vutri.v0);
 | 
			
		||||
| 
						 | 
				
			
			@ -1503,7 +1510,7 @@ CCollision::ProcessVerticalLine(const CColLine &line,
 | 
			
		|||
		CVuVector pnt, normal;
 | 
			
		||||
		float dist;
 | 
			
		||||
		for(; i < model.numTriangles; i++){
 | 
			
		||||
			if(ignoreSeeThrough && IsSeeThrough(model.triangles[i].surface)) continue;
 | 
			
		||||
			if(ignoreSeeThrough && IsSeeThroughVertical(model.triangles[i].surface)) continue;
 | 
			
		||||
 | 
			
		||||
			CColTriangle *tri = &model.triangles[i];
 | 
			
		||||
			model.vertices[tri->a].Unpack(vutri.v0);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -95,8 +95,8 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command)
 | 
			
		|||
		CollectParameters(&m_nIp, 2);
 | 
			
		||||
		CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]);
 | 
			
		||||
		script_assert(pPed);
 | 
			
		||||
		ScriptParams[0] = pPed->GetWeapon(ScriptParams[1]).m_eWeaponType;
 | 
			
		||||
		ScriptParams[1] = pPed->GetWeapon(ScriptParams[1]).m_nAmmoTotal;
 | 
			
		||||
		ScriptParams[0] = pPed->GetWeapon(ScriptParams[1] - 1).m_eWeaponType;
 | 
			
		||||
		ScriptParams[1] = pPed->GetWeapon(ScriptParams[1] - 1).m_nAmmoTotal;
 | 
			
		||||
		ScriptParams[2] = CPickups::ModelForWeapon((eWeaponType)ScriptParams[0]);
 | 
			
		||||
		StoreParameters(&m_nIp, 3);
 | 
			
		||||
		return 0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -66,7 +66,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command)
 | 
			
		|||
		return 0;
 | 
			
		||||
	case COMMAND_WANTED_STARS_ARE_FLASHING:
 | 
			
		||||
	{
 | 
			
		||||
		CWanted *pWanted = CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_pWanted;
 | 
			
		||||
		CWanted* pWanted = CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_pWanted;
 | 
			
		||||
		UpdateCompareFlag(pWanted->m_nMinWantedLevel - pWanted->m_nWantedLevel > 0);
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -136,7 +136,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command)
 | 
			
		|||
		CTheScripts::ReadTextLabelFromScript(&m_nIp, key);
 | 
			
		||||
		m_nIp += KEY_LENGTH_IN_SCRIPT;
 | 
			
		||||
		CVector pos = pPlayerInfo->GetPos();
 | 
			
		||||
		CZone *infoZone = CTheZones::FindInformationZoneForPosition(&pos);
 | 
			
		||||
		CZone* infoZone = CTheZones::FindInformationZoneForPosition(&pos);
 | 
			
		||||
		UpdateCompareFlag(strncmp(key, infoZone->name, 8) == 0); // original code doesn't seem to be using strncmp in here and compare 2 ints instead
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -352,7 +352,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command)
 | 
			
		|||
	case COMMAND_CREATE_DUST_EFFECT_FOR_CUTSCENE_HELI:
 | 
			
		||||
	{
 | 
			
		||||
		CollectParameters(&m_nIp, 3);
 | 
			
		||||
		CObject *pHeli = CPools::GetObjectPool()->GetAt(ScriptParams[0]);
 | 
			
		||||
		CObject* pHeli = CPools::GetObjectPool()->GetAt(ScriptParams[0]);
 | 
			
		||||
		bool found = false;
 | 
			
		||||
		float waterLevel = -1000.0f;
 | 
			
		||||
		CVector pos = pHeli->GetPosition();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4350,7 +4350,7 @@ CCam::ProcessArrestCamOne(void)
 | 
			
		|||
			((CPed*)TheCamera.pTargetEntity)->m_pedIK.GetComponentPosition(TargetPos, PED_MID);
 | 
			
		||||
			if(FindPlayerPed() && FindPlayerPed()->m_pArrestingCop)
 | 
			
		||||
				cop = FindPlayerPed()->m_pArrestingCop;
 | 
			
		||||
			if(cop && CGeneral::GetRandomNumberInRange(0.0f, 0.1f) > 0.5f){
 | 
			
		||||
			if(cop && CGeneral::GetRandomNumberInRange(0.0f, 1.0f) > 0.5f){
 | 
			
		||||
				ArrestModes[0] = ARRESTCAM_OVERSHOULDER;
 | 
			
		||||
				ArrestModes[1] = ARRESTCAM_ALONGGROUND;
 | 
			
		||||
				ArrestModes[2] = ARRESTCAM_OVERSHOULDER;
 | 
			
		||||
| 
						 | 
				
			
			@ -4372,7 +4372,7 @@ CCam::ProcessArrestCamOne(void)
 | 
			
		|||
 | 
			
		||||
			if(FindPlayerPed() && FindPlayerPed()->m_pArrestingCop)
 | 
			
		||||
				cop = FindPlayerPed()->m_pArrestingCop;
 | 
			
		||||
			if(cop && CGeneral::GetRandomNumberInRange(0.0f, 0.1f) > 0.65f){
 | 
			
		||||
			if(cop && CGeneral::GetRandomNumberInRange(0.0f, 1.0f) > 0.65f){
 | 
			
		||||
				ArrestModes[0] = ARRESTCAM_OVERSHOULDER;
 | 
			
		||||
				ArrestModes[1] = ARRESTCAM_LAMPPOST;
 | 
			
		||||
				ArrestModes[2] = ARRESTCAM_ALONGGROUND;
 | 
			
		||||
| 
						 | 
				
			
			@ -4442,6 +4442,7 @@ CCam::ProcessArrestCamOne(void)
 | 
			
		|||
				pStoredCopPed = nil;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		Source = CamSource;
 | 
			
		||||
		CVector OrigSource = Source;
 | 
			
		||||
		TheCamera.AvoidTheGeometry(OrigSource, TargetPos, Source, FOV);
 | 
			
		||||
		Front = TargetPos - Source;
 | 
			
		||||
| 
						 | 
				
			
			@ -4468,8 +4469,9 @@ CCam::ProcessArrestCamOne(void)
 | 
			
		|||
 | 
			
		||||
	if(nUsingWhichCamera == ARRESTCAM_OVERSHOULDER && pStoredCopPed){
 | 
			
		||||
		foundPos = GetLookOverShoulderPos(TheCamera.pTargetEntity, pStoredCopPed, TargetPos, CamSource);
 | 
			
		||||
		if(CamSource.z > Source.z + ARRESTCAM_S_ROTATION_UP*CTimer::GetTimeStep())
 | 
			
		||||
			CamSource.z = Source.z + ARRESTCAM_S_ROTATION_UP*CTimer::GetTimeStep();
 | 
			
		||||
		float newZ = Source.z + ARRESTCAM_S_ROTATION_UP*CTimer::GetTimeStep();
 | 
			
		||||
		if(CamSource.z > newZ)
 | 
			
		||||
			CamSource.z = newZ;
 | 
			
		||||
	}else if(nUsingWhichCamera >= ARRESTCAM_ALONGGROUND_RIGHT && nUsingWhichCamera <= ARRESTCAM_ALONGGROUND_LEFT_UP){
 | 
			
		||||
		CamSource = Source;
 | 
			
		||||
		Front = TargetPos - CamSource;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,6 +81,7 @@ inline bool
 | 
			
		|||
IsShootThrough(uint8 surfType)
 | 
			
		||||
{
 | 
			
		||||
	switch(surfType)
 | 
			
		||||
	case SURFACE_TRANSPARENT_CLOTH:
 | 
			
		||||
	case SURFACE_METAL_CHAIN_FENCE:
 | 
			
		||||
	case SURFACE_TRANSPARENT_STONE:
 | 
			
		||||
	case SURFACE_SCAFFOLD_POLE:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -449,10 +449,10 @@ void CHud::Draw()
 | 
			
		|||
		}
 | 
			
		||||
		if (m_WeaponState != FADED_OUT) {
 | 
			
		||||
			CWeapon *weapon = playerPed->GetWeapon();
 | 
			
		||||
			uint32 AmmoAmount = CWeaponInfo::GetWeaponInfo((eWeaponType)WeaponType)->m_nAmountofAmmunition;
 | 
			
		||||
			uint32 AmmoInClip = weapon->m_nAmmoInClip;
 | 
			
		||||
			uint32 TotalAmmo = weapon->m_nAmmoTotal;
 | 
			
		||||
			uint32 Ammo, Clip;
 | 
			
		||||
			int32 AmmoAmount = CWeaponInfo::GetWeaponInfo((eWeaponType)WeaponType)->m_nAmountofAmmunition;
 | 
			
		||||
			int32 AmmoInClip = weapon->m_nAmmoInClip;
 | 
			
		||||
			int32 TotalAmmo = weapon->m_nAmmoTotal;
 | 
			
		||||
			int32 Ammo, Clip;
 | 
			
		||||
 | 
			
		||||
			if (AmmoAmount <= 1 || AmmoAmount >= 1000)
 | 
			
		||||
				sprintf(sTemp, "%d", TotalAmmo);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -911,7 +911,7 @@ CWeapon::FireInstantHit(CEntity *shooter, CVector *fireSource)
 | 
			
		|||
				CWorld::bIncludeDeadPeds = true;
 | 
			
		||||
 | 
			
		||||
			CWorld::bIncludeBikers = true;
 | 
			
		||||
			CWorld::ProcessLineOfSight(*fireSource, target, point, victim, true, true, true, true, true, false, false, true);
 | 
			
		||||
			ProcessLineOfSight(*fireSource, target, point, victim, m_eWeaponType, shooter, true, true, true, true, true, false, false);
 | 
			
		||||
			CWorld::bIncludeDeadPeds = false;
 | 
			
		||||
			CWorld::bIncludeBikers = false;
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -924,7 +924,7 @@ CWeapon::FireInstantHit(CEntity *shooter, CVector *fireSource)
 | 
			
		|||
			shooterPed->TransformToNode(target, PED_HANDR);
 | 
			
		||||
 | 
			
		||||
			CWorld::bIncludeBikers = true;
 | 
			
		||||
			CWorld::ProcessLineOfSight(*fireSource, target, point, victim, true, true, true, true, true, false, false, true);
 | 
			
		||||
			ProcessLineOfSight(*fireSource, target, point, victim, m_eWeaponType, shooter, true, true, true, true, true, false, false);
 | 
			
		||||
			CWorld::bIncludeBikers = false;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -935,7 +935,7 @@ CWeapon::FireInstantHit(CEntity *shooter, CVector *fireSource)
 | 
			
		|||
		CWorld::bIncludeBikers = true;
 | 
			
		||||
		CWorld::bIncludeDeadPeds = true;
 | 
			
		||||
		CWorld::bIncludeCarTyres = true;
 | 
			
		||||
		CWorld::ProcessLineOfSight(source, target, point, victim, true, true, true, true, true, false, false, true);
 | 
			
		||||
		ProcessLineOfSight(source, target, point, victim, m_eWeaponType, shooter, true, true, true, true, true, false, false);
 | 
			
		||||
		CWorld::bIncludeBikers = false;
 | 
			
		||||
		CWorld::bIncludeDeadPeds = false;
 | 
			
		||||
		CWorld::bIncludeCarTyres = false;
 | 
			
		||||
| 
						 | 
				
			
			@ -981,7 +981,7 @@ CWeapon::FireInstantHit(CEntity *shooter, CVector *fireSource)
 | 
			
		|||
			target *= info->m_fRange;
 | 
			
		||||
			target += *fireSource;
 | 
			
		||||
			CWorld::pIgnoreEntity = shooter;
 | 
			
		||||
			CWorld::ProcessLineOfSight(*fireSource, target, point, victim, true, true, true, true, true, false, false, true);
 | 
			
		||||
			ProcessLineOfSight(*fireSource, target, point, victim, m_eWeaponType, shooter, true, true, true, true, true, true, false);
 | 
			
		||||
			CWorld::pIgnoreEntity = nil;
 | 
			
		||||
 | 
			
		||||
			int32 rotSpeed = 1;
 | 
			
		||||
| 
						 | 
				
			
			@ -1014,7 +1014,7 @@ CWeapon::FireInstantHit(CEntity *shooter, CVector *fireSource)
 | 
			
		|||
			}
 | 
			
		||||
 | 
			
		||||
			CWorld::bIncludeBikers = true;
 | 
			
		||||
			CWorld::ProcessLineOfSight(*fireSource, target, point, victim, true, true, true, true, true, false, false, true);
 | 
			
		||||
			ProcessLineOfSight(*fireSource, target, point, victim, m_eWeaponType, shooter, true, true, true, true, true, false, false);
 | 
			
		||||
			CWorld::bIncludeBikers = false;
 | 
			
		||||
 | 
			
		||||
			int32 rotSpeed = 1;
 | 
			
		||||
| 
						 | 
				
			
			@ -1683,7 +1683,7 @@ CWeapon::FireShotgun(CEntity *shooter, CVector *fireSource)
 | 
			
		|||
			CWorld::bIncludeCarTyres = true;
 | 
			
		||||
			CWorld::bIncludeBikers = true;
 | 
			
		||||
			CWorld::bIncludeDeadPeds = true;
 | 
			
		||||
			CWorld::ProcessLineOfSight(source, target, point, victim, true, true, true, true, true, false, false, true);
 | 
			
		||||
			ProcessLineOfSight(source, target, point, victim, m_eWeaponType, shooter, true, true, true, true, true, false, false);
 | 
			
		||||
			CWorld::bIncludeDeadPeds = false;
 | 
			
		||||
			CWorld::bIncludeCarTyres = false;
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -1716,7 +1716,7 @@ CWeapon::FireShotgun(CEntity *shooter, CVector *fireSource)
 | 
			
		|||
				CWorld::bIncludeDeadPeds = true;
 | 
			
		||||
 | 
			
		||||
			CWorld::bIncludeBikers = true;
 | 
			
		||||
			CWorld::ProcessLineOfSight(*fireSource, target, point, victim, true, true, true, true, true, false, false, true);
 | 
			
		||||
			ProcessLineOfSight(*fireSource, target, point, victim, m_eWeaponType, shooter, true, true, true, true, true, false, false);
 | 
			
		||||
			CWorld::bIncludeDeadPeds = false;
 | 
			
		||||
		}
 | 
			
		||||
		CWorld::bIncludeBikers = false;
 | 
			
		||||
| 
						 | 
				
			
			@ -2329,7 +2329,7 @@ CWeapon::FireM16_1stPerson(CEntity *shooter)
 | 
			
		|||
	CVector source = cam->Source;
 | 
			
		||||
	CVector target = cam->Front*info->m_fRange + source;
 | 
			
		||||
 | 
			
		||||
	if (CWorld::ProcessLineOfSight(source, target, point, victim, true, true, true, true, true, false, false, true)) {
 | 
			
		||||
	if (ProcessLineOfSight(source, target, point, victim, m_eWeaponType, shooter, true, true, true, true, true, true, false)) {
 | 
			
		||||
		CheckForShootingVehicleOccupant(&victim, &point, m_eWeaponType, source, target);
 | 
			
		||||
	}
 | 
			
		||||
	CWorld::pIgnoreEntity = nil;
 | 
			
		||||
| 
						 | 
				
			
			@ -3176,7 +3176,7 @@ CPed::IsPedDoingDriveByShooting(void)
 | 
			
		|||
bool
 | 
			
		||||
CWeapon::ProcessLineOfSight(CVector const &point1, CVector const &point2, CColPoint &point, CEntity *&entity, eWeaponType type, CEntity *shooter, bool checkBuildings, bool checkVehicles, bool checkPeds, bool checkObjects, bool checkDummies, bool ignoreSeeThrough, bool ignoreSomeObjects)
 | 
			
		||||
{
 | 
			
		||||
	return CWorld::ProcessLineOfSight(point1, point2, point, entity, checkBuildings, checkVehicles, checkPeds, checkObjects, checkDummies, ignoreSeeThrough, ignoreSomeObjects);
 | 
			
		||||
	return CWorld::ProcessLineOfSight(point1, point2, point, entity, checkBuildings, checkVehicles, checkPeds, checkObjects, checkDummies, false, ignoreSomeObjects, true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue