mirror of
https://github.com/halpz/re3.git
synced 2025-07-23 06:39:48 +00:00
Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs
This commit is contained in:
@ -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);
|
||||
|
@ -1349,9 +1349,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command)
|
||||
CollectParameters(&m_nIp, 2);
|
||||
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
|
||||
script_assert(pPed);
|
||||
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1));
|
||||
CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1));
|
||||
pPed->bScriptObjectiveCompleted = false;
|
||||
pPed->SetObjective(OBJECTIVE_DESTROY_OBJECT, pVehicle);
|
||||
pPed->SetObjective(OBJECTIVE_DESTROY_OBJECT, pObject);
|
||||
return 0;
|
||||
}
|
||||
case COMMAND_SET_CHAR_OBJ_DESTROY_CAR:
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user