mirror of
https://git.rip/DMCA_FUCKER/re3.git
synced 2025-01-11 00:14:09 +00:00
Merge branch 'miami' into lcs
# Conflicts: # src/control/Script.cpp # src/control/Script3.cpp # src/extras/custompipes_d3d9.cpp # src/extras/custompipes_gl.cpp
This commit is contained in:
commit
cb4b4d584c
BIN
premake5.exe
BIN
premake5.exe
Binary file not shown.
13
premake5.lua
13
premake5.lua
|
@ -34,6 +34,11 @@ newoption {
|
||||||
description = "Build with opus"
|
description = "Build with opus"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
newoption {
|
||||||
|
trigger = "lto",
|
||||||
|
description = "Use link time optimization"
|
||||||
|
}
|
||||||
|
|
||||||
if(_OPTIONS["with-librw"]) then
|
if(_OPTIONS["with-librw"]) then
|
||||||
Librw = "vendor/librw"
|
Librw = "vendor/librw"
|
||||||
else
|
else
|
||||||
|
@ -61,6 +66,7 @@ end
|
||||||
workspace "reLCS"
|
workspace "reLCS"
|
||||||
language "C++"
|
language "C++"
|
||||||
configurations { "Debug", "Release" }
|
configurations { "Debug", "Release" }
|
||||||
|
startproject "reLCS"
|
||||||
location "build"
|
location "build"
|
||||||
symbols "Full"
|
symbols "Full"
|
||||||
staticruntime "off"
|
staticruntime "off"
|
||||||
|
@ -109,7 +115,10 @@ workspace "reLCS"
|
||||||
|
|
||||||
filter "configurations:Release"
|
filter "configurations:Release"
|
||||||
defines { "NDEBUG" }
|
defines { "NDEBUG" }
|
||||||
optimize "On"
|
optimize "Speed"
|
||||||
|
if(_OPTIONS["lto"]) then
|
||||||
|
flags { "LinkTimeOptimization" }
|
||||||
|
end
|
||||||
|
|
||||||
filter { "platforms:win*" }
|
filter { "platforms:win*" }
|
||||||
system "windows"
|
system "windows"
|
||||||
|
@ -167,7 +176,7 @@ workspace "reLCS"
|
||||||
scriptspath = scriptspath or ""
|
scriptspath = scriptspath or ""
|
||||||
if (gamepath) then
|
if (gamepath) then
|
||||||
postbuildcommands {
|
postbuildcommands {
|
||||||
'{COPY} "%{cfg.buildtarget.abspath}" "' .. gamepath .. scriptspath .. '%{cfg.buildtarget.name}"'
|
'{COPYFILE} "%{cfg.buildtarget.abspath}" "' .. gamepath .. scriptspath .. '%{cfg.buildtarget.name}"'
|
||||||
}
|
}
|
||||||
debugdir (gamepath)
|
debugdir (gamepath)
|
||||||
if (exepath) then
|
if (exepath) then
|
||||||
|
|
BIN
premake5Linux
BIN
premake5Linux
Binary file not shown.
|
@ -2961,7 +2961,7 @@ void CCarCtrl::SteerAICarWithPhysicsHeadingForTarget(CVehicle* pVehicle, CPhysic
|
||||||
*pHandbrake = true;
|
*pHandbrake = true;
|
||||||
float maxAngle = FindMaxSteerAngle(pVehicle);
|
float maxAngle = FindMaxSteerAngle(pVehicle);
|
||||||
steerAngle = Min(maxAngle, Max(-maxAngle, steerAngle));
|
steerAngle = Min(maxAngle, Max(-maxAngle, steerAngle));
|
||||||
float speedMultiplier = FindSpeedMultiplier(angleToTarget - angleForward,
|
float speedMultiplier = FindSpeedMultiplier(CGeneral::GetATanOfXY(targetX - pVehicle->GetPosition().x, targetY - pVehicle->GetPosition().y) - angleForward,
|
||||||
MIN_ANGLE_FOR_SPEED_LIMITING, MAX_ANGLE_FOR_SPEED_LIMITING, MIN_LOWERING_SPEED_COEFFICIENT);
|
MIN_ANGLE_FOR_SPEED_LIMITING, MAX_ANGLE_FOR_SPEED_LIMITING, MIN_LOWERING_SPEED_COEFFICIENT);
|
||||||
float speedTarget = pVehicle->AutoPilot.m_nCruiseSpeed * speedMultiplier;
|
float speedTarget = pVehicle->AutoPilot.m_nCruiseSpeed * speedMultiplier;
|
||||||
float currentSpeed = pVehicle->GetMoveSpeed().Magnitude() * GAME_SPEED_TO_CARAI_SPEED;
|
float currentSpeed = pVehicle->GetMoveSpeed().Magnitude() * GAME_SPEED_TO_CARAI_SPEED;
|
||||||
|
|
|
@ -1186,7 +1186,9 @@ CPickups::DoPickUpEffects(CEntity *entity)
|
||||||
CCoronas::REFLECTION_OFF,
|
CCoronas::REFLECTION_OFF,
|
||||||
CCoronas::LOSCHECK_OFF,
|
CCoronas::LOSCHECK_OFF,
|
||||||
CCoronas::STREAK_OFF,
|
CCoronas::STREAK_OFF,
|
||||||
0.0f);
|
0.0f,
|
||||||
|
false,
|
||||||
|
-0.5f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1253,7 +1255,7 @@ CPickups::DoCollectableEffects(CEntity *entity)
|
||||||
int32 color = (MAXDIST - dist) * (0.5f * s + 0.5f) / MAXDIST * 255.0f;
|
int32 color = (MAXDIST - dist) * (0.5f * s + 0.5f) / MAXDIST * 255.0f;
|
||||||
CShadows::StoreStaticShadow((uintptr)entity, SHADOWTYPE_ADDITIVE, gpShadowExplosionTex, &pos, 2.0f, 0.0f, 0.0f, -2.0f, 0, color, color, color, 4.0f,
|
CShadows::StoreStaticShadow((uintptr)entity, SHADOWTYPE_ADDITIVE, gpShadowExplosionTex, &pos, 2.0f, 0.0f, 0.0f, -2.0f, 0, color, color, color, 4.0f,
|
||||||
1.0f, 40.0f, false, 0.0f);
|
1.0f, 40.0f, false, 0.0f);
|
||||||
CCoronas::RegisterCorona((uintptr)entity, color, color, color, 255, pos, 0.6f, 40.0f, CCoronas::TYPE_RING, CCoronas::FLARE_NONE, CCoronas::REFLECTION_OFF, CCoronas::LOSCHECK_OFF, CCoronas::STREAK_OFF, 0.0f);
|
CCoronas::RegisterCorona((uintptr)entity, color, color, color, 255, pos, 0.6f, 40.0f, CCoronas::TYPE_HEX, CCoronas::FLARE_NONE, CCoronas::REFLECTION_OFF, CCoronas::LOSCHECK_OFF, CCoronas::STREAK_OFF, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
entity->GetMatrix().SetRotateZOnly((float)(CTimer::GetTimeInMilliseconds() & 0xFFF) * DEGTORAD(360.0f / 0x1000));
|
entity->GetMatrix().SetRotateZOnly((float)(CTimer::GetTimeInMilliseconds() & 0xFFF) * DEGTORAD(360.0f / 0x1000));
|
||||||
|
|
|
@ -331,7 +331,7 @@ void CSceneEdit::Draw(void)
|
||||||
#ifdef FIX_BUGS
|
#ifdef FIX_BUGS
|
||||||
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(COMMAND_NAME_X_RIGHT - SHADOW_OFFSET), SCREEN_SCALE_Y(COMMAND_NAME_Y + SHADOW_OFFSET + i * COMMAND_NAME_HEIGHT), wstr);
|
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(COMMAND_NAME_X_RIGHT - SHADOW_OFFSET), SCREEN_SCALE_Y(COMMAND_NAME_Y + SHADOW_OFFSET + i * COMMAND_NAME_HEIGHT), wstr);
|
||||||
#else
|
#else
|
||||||
CFont::PrintString(SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH-COMMAND_NAME_X_RIGHT) + SHADOW_OFFSET, SCREEN_SCALE_FROM_BOTTOM(DEFAULT_SCREEN_HEIGHT-COMMAND_NAME_Y) + SHADOW_OFFSET + i * COMMAND_NAME_HEIGHT), wstr);
|
CFont::PrintString(SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH-COMMAND_NAME_X_RIGHT) + SHADOW_OFFSET, SCREEN_SCALE_FROM_BOTTOM(DEFAULT_SCREEN_HEIGHT-COMMAND_NAME_Y) + SHADOW_OFFSET + i * COMMAND_NAME_HEIGHT, wstr);
|
||||||
#endif
|
#endif
|
||||||
if (nCommandDrawn == m_nCurrentCommand)
|
if (nCommandDrawn == m_nCurrentCommand)
|
||||||
CFont::SetColor(CRGBA(156, 91, 40, 255));
|
CFont::SetColor(CRGBA(156, 91, 40, 255));
|
||||||
|
@ -340,7 +340,7 @@ void CSceneEdit::Draw(void)
|
||||||
#ifdef FIX_BUGS
|
#ifdef FIX_BUGS
|
||||||
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(COMMAND_NAME_X_RIGHT), SCREEN_SCALE_Y(COMMAND_NAME_Y + i * COMMAND_NAME_HEIGHT), wstr);
|
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(COMMAND_NAME_X_RIGHT), SCREEN_SCALE_Y(COMMAND_NAME_Y + i * COMMAND_NAME_HEIGHT), wstr);
|
||||||
#else
|
#else
|
||||||
CFont::PrintString(SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH-COMMAND_NAME_X_RIGHT), SCREEN_SCALE_FROM_BOTTOM(DEFAULT_SCREEN_HEIGHT-COMMAND_NAME_Y) + i * COMMAND_NAME_HEIGHT), wstr);
|
CFont::PrintString(SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH-COMMAND_NAME_X_RIGHT), SCREEN_SCALE_FROM_BOTTOM(DEFAULT_SCREEN_HEIGHT-COMMAND_NAME_Y) + i * COMMAND_NAME_HEIGHT, wstr);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
#include "FrontEndControls.h"
|
#include "FrontEndControls.h"
|
||||||
|
|
||||||
#define X SCREEN_SCALE_X
|
#define X SCREEN_SCALE_X
|
||||||
#define Y(x) SCREEN_SCALE_Y(float(x)*(float(DEFAULT_SCREEN_HEIGHT)/float(DEFAULT_SCREEN_HEIGHT_PAL)))
|
#define Y(x) SCREEN_SCALE_Y(float(x)*(float(DEFAULT_SCREEN_HEIGHT)/float(SCREEN_HEIGHT_PAL)))
|
||||||
|
|
||||||
void
|
void
|
||||||
CPlaceableShText::Draw(float x, float y)
|
CPlaceableShText::Draw(float x, float y)
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include <dinput.h>
|
#include <dinput.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define FORCE_PC_SCALING
|
||||||
#define WITHWINDOWS
|
#define WITHWINDOWS
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#ifndef PS2_MENU
|
#ifndef PS2_MENU
|
||||||
|
|
|
@ -43,7 +43,7 @@ void DoRWStuffEndOfFrame(void);
|
||||||
#define X SCREEN_SCALE_X
|
#define X SCREEN_SCALE_X
|
||||||
#define Y SCREEN_SCALE_Y
|
#define Y SCREEN_SCALE_Y
|
||||||
|
|
||||||
#define YF(x) Y(float(x)*(float(DEFAULT_SCREEN_HEIGHT)/float(DEFAULT_SCREEN_HEIGHT_PAL)))
|
#define YF(x) Y(float(x)*(float(DEFAULT_SCREEN_HEIGHT)/float(SCREEN_HEIGHT_PAL)))
|
||||||
//#define X(x) ((x)/640.0f*SCRW)
|
//#define X(x) ((x)/640.0f*SCRW)
|
||||||
//#define Y(y) ((y)/448.0f*SCRH)
|
//#define Y(y) ((y)/448.0f*SCRH)
|
||||||
|
|
||||||
|
|
|
@ -161,8 +161,28 @@ struct sRadarTraceSave
|
||||||
// Values for screen space
|
// Values for screen space
|
||||||
#define RADAR_LEFT (40.0f)
|
#define RADAR_LEFT (40.0f)
|
||||||
#define RADAR_BOTTOM (40.0f)
|
#define RADAR_BOTTOM (40.0f)
|
||||||
|
|
||||||
|
#ifdef FIX_RADAR
|
||||||
|
/*
|
||||||
|
The values are from an early screenshot taken before R* broke radar
|
||||||
|
#define RADAR_WIDTH (82.0f)
|
||||||
|
#define RADAR_HEIGHT (82.0f)
|
||||||
|
*/
|
||||||
|
#define RADAR_WIDTH ((CDraw::ms_bFixRadar) ? (82.0f) : (94.0f))
|
||||||
|
#define RADAR_HEIGHT ((CDraw::ms_bFixRadar) ? (82.0f) : (76.0f))
|
||||||
|
#else
|
||||||
|
/*
|
||||||
|
broken since forever, someone tried to fix size for 640x512(PAL)
|
||||||
|
http://aap.rockstarvision.com/pics/gta3/ps2screens/gta3_interface.jpg
|
||||||
|
but failed:
|
||||||
|
http://aap.rockstarvision.com/pics/gta3/artwork/gta3_artwork_16.jpg
|
||||||
|
most likely the guy used something like this:
|
||||||
|
int y = 82 * (640.0/512.0)/(640.0/480.0);
|
||||||
|
int x = y * (640.0/512.0);
|
||||||
|
*/
|
||||||
#define RADAR_WIDTH (94.0f)
|
#define RADAR_WIDTH (94.0f)
|
||||||
#define RADAR_HEIGHT (76.0f)
|
#define RADAR_HEIGHT (76.0f)
|
||||||
|
#endif
|
||||||
|
|
||||||
class CRadar
|
class CRadar
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,6 +41,7 @@ public:
|
||||||
int32 NumOfHelisRequired();
|
int32 NumOfHelisRequired();
|
||||||
void SetWantedLevel(int32);
|
void SetWantedLevel(int32);
|
||||||
void SetWantedLevelNoDrop(int32 level);
|
void SetWantedLevelNoDrop(int32 level);
|
||||||
|
int32 GetWantedLevel() { return m_nWantedLevel; }
|
||||||
void CheatWantedLevel(int32 level);
|
void CheatWantedLevel(int32 level);
|
||||||
void RegisterCrime(eCrimeType type, const CVector &coors, uint32 id, bool policeDoesntCare);
|
void RegisterCrime(eCrimeType type, const CVector &coors, uint32 id, bool policeDoesntCare);
|
||||||
void RegisterCrime_Immediately(eCrimeType type, const CVector &coors, uint32 id, bool policeDoesntCare);
|
void RegisterCrime_Immediately(eCrimeType type, const CVector &coors, uint32 id, bool policeDoesntCare);
|
||||||
|
|
|
@ -124,17 +124,43 @@ inline uint32 ldb(uint32 p, uint32 s, uint32 w)
|
||||||
#include "skeleton.h"
|
#include "skeleton.h"
|
||||||
#include "Draw.h"
|
#include "Draw.h"
|
||||||
|
|
||||||
#define DEFAULT_SCREEN_WIDTH (640)
|
#if defined(PROPER_SCALING)
|
||||||
#define DEFAULT_SCREEN_HEIGHT (448)
|
#ifdef FORCE_PC_SCALING
|
||||||
#define DEFAULT_SCREEN_HEIGHT_PAL (512)
|
#define DEFAULT_SCREEN_WIDTH (640)
|
||||||
#define DEFAULT_SCREEN_HEIGHT_NTSC (448)
|
#define DEFAULT_SCREEN_HEIGHT (448)
|
||||||
|
#else
|
||||||
|
#define DEFAULT_SCREEN_WIDTH (640)
|
||||||
|
#define DEFAULT_SCREEN_HEIGHT (480)
|
||||||
|
#endif
|
||||||
|
#elif defined(GTA_PS2)
|
||||||
|
#define DEFAULT_SCREEN_WIDTH (640)
|
||||||
|
#define DEFAULT_SCREEN_HEIGHT (480)
|
||||||
|
#else //elif defined(GTA_PC)
|
||||||
|
#define DEFAULT_SCREEN_WIDTH (640)
|
||||||
|
#define DEFAULT_SCREEN_HEIGHT (448)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define DEFAULT_ASPECT_RATIO (4.0f/3.0f)
|
#define DEFAULT_ASPECT_RATIO (4.0f/3.0f)
|
||||||
#define DEFAULT_VIEWWINDOW (0.7f)
|
#define DEFAULT_VIEWWINDOW (0.7f)
|
||||||
|
|
||||||
// game uses maximumWidth/Height, but this probably won't work
|
// game uses maximumWidth/Height, but this probably won't work
|
||||||
// with RW windowed mode
|
// with RW windowed mode
|
||||||
#define SCREEN_WIDTH ((float)RsGlobal.width)
|
#ifdef GTA_PS2
|
||||||
|
#ifdef GTA_PAL
|
||||||
|
#define SCREEN_WIDTH ((float)640)
|
||||||
|
#define SCREEN_HEIGHT ((float)512)
|
||||||
|
#else
|
||||||
|
#define SCREEN_WIDTH ((float)640)
|
||||||
|
#define SCREEN_HEIGHT ((float)448)
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define SCREEN_WIDTH ((float)RsGlobal.width)
|
||||||
#define SCREEN_HEIGHT ((float)RsGlobal.height)
|
#define SCREEN_HEIGHT ((float)RsGlobal.height)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SCREEN_HEIGHT_PAL ((float)512)
|
||||||
|
#define SCREEN_HEIGHT_NTSC ((float)448)
|
||||||
|
|
||||||
#define SCREEN_ASPECT_RATIO (CDraw::GetAspectRatio())
|
#define SCREEN_ASPECT_RATIO (CDraw::GetAspectRatio())
|
||||||
#define SCREEN_VIEWWINDOW (Tan(DEGTORAD(CDraw::GetScaledFOV() * 0.5f)))
|
#define SCREEN_VIEWWINDOW (Tan(DEGTORAD(CDraw::GetScaledFOV() * 0.5f)))
|
||||||
|
|
||||||
|
@ -152,8 +178,13 @@ inline uint32 ldb(uint32 p, uint32 s, uint32 w)
|
||||||
|
|
||||||
#ifdef ASPECT_RATIO_SCALE
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
#define SCREEN_SCALE_AR(a) ((a) * DEFAULT_ASPECT_RATIO / SCREEN_ASPECT_RATIO)
|
#define SCREEN_SCALE_AR(a) ((a) * DEFAULT_ASPECT_RATIO / SCREEN_ASPECT_RATIO)
|
||||||
extern float ScaleAndCenterX(float x);
|
#define SCALE_AND_CENTER_X(x) ((SCREEN_WIDTH == DEFAULT_SCREEN_WIDTH) ? (x) : (SCREEN_WIDTH - SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH)) / 2 + SCREEN_SCALE_X((x)))
|
||||||
#define SCALE_AND_CENTER_X(x) ScaleAndCenterX(x)
|
#ifdef PROPER_SCALING
|
||||||
|
#ifndef FORCE_PC_SCALING
|
||||||
|
#undef SCREEN_SCALE_Y
|
||||||
|
#define SCREEN_SCALE_Y(a) CDraw::ScaleY(SCREEN_STRETCH_Y(a))
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
#define SCREEN_SCALE_AR(a) (a)
|
#define SCREEN_SCALE_AR(a) (a)
|
||||||
#define SCALE_AND_CENTER_X(x) SCREEN_STRETCH_X(x)
|
#define SCALE_AND_CENTER_X(x) SCREEN_STRETCH_X(x)
|
||||||
|
|
|
@ -254,6 +254,7 @@ enum Config {
|
||||||
|
|
||||||
// Rendering/display
|
// Rendering/display
|
||||||
#define ASPECT_RATIO_SCALE // Not just makes everything scale with aspect ratio, also adds support for all aspect ratios
|
#define ASPECT_RATIO_SCALE // Not just makes everything scale with aspect ratio, also adds support for all aspect ratios
|
||||||
|
#define PROPER_SCALING // use original DEFAULT_SCREEN_WIDTH/DEFAULT_SCREEN_HEIGHT from PS2 instead of PC(R* changed HEIGHT here to make radar look better, but broke other hud elements aspect ratio).
|
||||||
#define DEFAULT_NATIVE_RESOLUTION // Set default video mode to your native resolution (fixes Windows 10 launch)
|
#define DEFAULT_NATIVE_RESOLUTION // Set default video mode to your native resolution (fixes Windows 10 launch)
|
||||||
#define USE_TXD_CDIMAGE // generate and load textures from txd.img
|
#define USE_TXD_CDIMAGE // generate and load textures from txd.img
|
||||||
#define PS2_ALPHA_TEST // emulate ps2 alpha test
|
#define PS2_ALPHA_TEST // emulate ps2 alpha test
|
||||||
|
@ -268,6 +269,8 @@ enum Config {
|
||||||
#define NEW_RENDERER // leeds-like world rendering, needs librw
|
#define NEW_RENDERER // leeds-like world rendering, needs librw
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define FIX_SPRITES // fix sprites aspect ratio(moon, coronas, particle etc)
|
||||||
|
|
||||||
#ifndef EXTENDED_COLOURFILTER
|
#ifndef EXTENDED_COLOURFILTER
|
||||||
#undef SCREEN_DROPLETS // we need the backbuffer for this effect
|
#undef SCREEN_DROPLETS // we need the backbuffer for this effect
|
||||||
#endif
|
#endif
|
||||||
|
@ -298,6 +301,8 @@ enum Config {
|
||||||
// Hud, frontend and radar
|
// Hud, frontend and radar
|
||||||
#define PC_MENU
|
#define PC_MENU
|
||||||
|
|
||||||
|
#define FIX_RADAR // use radar size from early version before R* broke it
|
||||||
|
|
||||||
#ifndef PC_MENU
|
#ifndef PC_MENU
|
||||||
# define PS2_MENU
|
# define PS2_MENU
|
||||||
//# define PS2_MENU_USEALLPAGEICONS
|
//# define PS2_MENU_USEALLPAGEICONS
|
||||||
|
|
|
@ -220,6 +220,16 @@ void LoadINISettings()
|
||||||
CustomPipes::GlossMult = CheckAndReadIniFloat("CustomPipesValues", "GlossMult", CustomPipes::GlossMult);
|
CustomPipes::GlossMult = CheckAndReadIniFloat("CustomPipesValues", "GlossMult", CustomPipes::GlossMult);
|
||||||
#endif
|
#endif
|
||||||
gBackfaceCulling = CheckAndReadIniInt("Rendering", "BackfaceCulling", gBackfaceCulling);
|
gBackfaceCulling = CheckAndReadIniInt("Rendering", "BackfaceCulling", gBackfaceCulling);
|
||||||
|
|
||||||
|
#ifdef PROPER_SCALING
|
||||||
|
CDraw::ms_bProperScaling = CheckAndReadIniInt("Draw", "ProperScaling", CDraw::ms_bProperScaling);
|
||||||
|
#endif
|
||||||
|
#ifdef FIX_RADAR
|
||||||
|
CDraw::ms_bFixRadar = CheckAndReadIniInt("Draw", "FixRadar", CDraw::ms_bFixRadar);
|
||||||
|
#endif
|
||||||
|
#ifdef FIX_SPRITES
|
||||||
|
CDraw::ms_bFixSprites = CheckAndReadIniInt("Draw", "FixSprites", CDraw::ms_bFixSprites);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void SaveINISettings()
|
void SaveINISettings()
|
||||||
|
@ -259,6 +269,16 @@ void SaveINISettings()
|
||||||
#endif
|
#endif
|
||||||
CheckAndSaveIniInt("Rendering", "BackfaceCulling", gBackfaceCulling, changed);
|
CheckAndSaveIniInt("Rendering", "BackfaceCulling", gBackfaceCulling, changed);
|
||||||
|
|
||||||
|
#ifdef PROPER_SCALING
|
||||||
|
CheckAndSaveIniInt("Draw", "ProperScaling", CDraw::ms_bProperScaling, changed);
|
||||||
|
#endif
|
||||||
|
#ifdef FIX_RADAR
|
||||||
|
CheckAndSaveIniInt("Draw", "FixRadar", CDraw::ms_bFixRadar, changed);
|
||||||
|
#endif
|
||||||
|
#ifdef FIX_SPRITES
|
||||||
|
CheckAndSaveIniInt("Draw", "FixSprites", CDraw::ms_bFixSprites, changed);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (changed)
|
if (changed)
|
||||||
cfg.write_file("reLCS.ini");
|
cfg.write_file("reLCS.ini");
|
||||||
}
|
}
|
||||||
|
@ -672,6 +692,16 @@ extern bool gbRenderDebugEnvMap;
|
||||||
DebugMenuAddVarBool8("Render", "Don't render Vehicles", &gbDontRenderVehicles, nil);
|
DebugMenuAddVarBool8("Render", "Don't render Vehicles", &gbDontRenderVehicles, nil);
|
||||||
DebugMenuAddVarBool8("Render", "Don't render Objects", &gbDontRenderObjects, nil);
|
DebugMenuAddVarBool8("Render", "Don't render Objects", &gbDontRenderObjects, nil);
|
||||||
DebugMenuAddVarBool8("Render", "Don't Render Water", &gbDontRenderWater, nil);
|
DebugMenuAddVarBool8("Render", "Don't Render Water", &gbDontRenderWater, nil);
|
||||||
|
|
||||||
|
#ifdef PROPER_SCALING
|
||||||
|
DebugMenuAddVarBool8("Draw", "Proper Scaling", &CDraw::ms_bProperScaling, nil);
|
||||||
|
#endif
|
||||||
|
#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
|
#ifndef FINAL
|
||||||
DebugMenuAddVarBool8("Debug", "Print Memory Usage", &gbPrintMemoryUsage, nil);
|
DebugMenuAddVarBool8("Debug", "Print Memory Usage", &gbPrintMemoryUsage, nil);
|
||||||
|
|
|
@ -529,10 +529,15 @@ public:
|
||||||
uint32 b1A1_10 : 1;
|
uint32 b1A1_10 : 1;
|
||||||
uint32 b1A1_20 : 1;
|
uint32 b1A1_20 : 1;
|
||||||
|
|
||||||
|
#ifdef KANGAROO_CHEAT
|
||||||
// our own flags
|
// our own flags
|
||||||
uint32 m_ped_flagI80 : 1; // KANGAROO_CHEAT define makes use of this as cheat toggle
|
uint32 m_ped_flagI80 : 1; // KANGAROO_CHEAT define makes use of this as cheat toggle
|
||||||
|
#endif
|
||||||
|
|
||||||
uint8 m_gangFlags;
|
uint8 m_gangFlags;
|
||||||
|
uint8 m_unused15D; // these 3 can't be padding but had to actually have been members ...
|
||||||
|
uint8 m_unused15E;
|
||||||
|
uint8 m_unused15F;
|
||||||
uint8 CharCreatedBy;
|
uint8 CharCreatedBy;
|
||||||
eObjective m_objective;
|
eObjective m_objective;
|
||||||
eObjective m_prevObjective;
|
eObjective m_prevObjective;
|
||||||
|
@ -573,7 +578,7 @@ public:
|
||||||
uint32 m_pathNodeTimer;
|
uint32 m_pathNodeTimer;
|
||||||
CPathNode m_pathNodeObjPool[8];
|
CPathNode m_pathNodeObjPool[8];
|
||||||
CPathNode* m_pCurPathNode;
|
CPathNode* m_pCurPathNode;
|
||||||
char m_nPathDir;
|
int8 m_nPathDir;
|
||||||
CPathNode* m_pLastPathNode;
|
CPathNode* m_pLastPathNode;
|
||||||
CPathNode* m_pNextPathNode;
|
CPathNode* m_pNextPathNode;
|
||||||
CVector m_followPathDestPos;
|
CVector m_followPathDestPos;
|
||||||
|
|
|
@ -20,6 +20,16 @@ uint8 CDraw::FadeRed;
|
||||||
uint8 CDraw::FadeGreen;
|
uint8 CDraw::FadeGreen;
|
||||||
uint8 CDraw::FadeBlue;
|
uint8 CDraw::FadeBlue;
|
||||||
|
|
||||||
|
#ifdef PROPER_SCALING
|
||||||
|
bool CDraw::ms_bProperScaling = true;
|
||||||
|
#endif
|
||||||
|
#ifdef FIX_RADAR
|
||||||
|
bool CDraw::ms_bFixRadar = true;
|
||||||
|
#endif
|
||||||
|
#ifdef FIX_SPRITES
|
||||||
|
bool CDraw::ms_bFixSprites = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
float
|
float
|
||||||
CDraw::CalculateAspectRatio(void)
|
CDraw::CalculateAspectRatio(void)
|
||||||
{
|
{
|
||||||
|
@ -75,13 +85,9 @@ CDraw::SetFOV(float fov)
|
||||||
ms_fFOV = fov;
|
ms_fFOV = fov;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ASPECT_RATIO_SCALE
|
#ifdef PROPER_SCALING
|
||||||
float
|
float CDraw::ScaleY(float y)
|
||||||
ScaleAndCenterX(float x)
|
|
||||||
{
|
{
|
||||||
if (SCREEN_WIDTH == DEFAULT_SCREEN_WIDTH)
|
return ms_bProperScaling ? y : y * ((float)DEFAULT_SCREEN_HEIGHT/SCREEN_HEIGHT_NTSC);
|
||||||
return x;
|
|
||||||
else
|
|
||||||
return (SCREEN_WIDTH - SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH)) / 2 + SCREEN_SCALE_X(x);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
|
@ -30,6 +30,16 @@ public:
|
||||||
static uint8 FadeRed;
|
static uint8 FadeRed;
|
||||||
static uint8 FadeGreen;
|
static uint8 FadeGreen;
|
||||||
static uint8 FadeBlue;
|
static uint8 FadeBlue;
|
||||||
|
|
||||||
|
#ifdef PROPER_SCALING
|
||||||
|
static bool ms_bProperScaling;
|
||||||
|
#endif
|
||||||
|
#ifdef FIX_RADAR
|
||||||
|
static bool ms_bFixRadar;
|
||||||
|
#endif
|
||||||
|
#ifdef FIX_SPRITES
|
||||||
|
static bool ms_bFixSprites;
|
||||||
|
#endif
|
||||||
|
|
||||||
static void SetNearClipZ(float nearclip) { ms_fNearClipZ = nearclip; }
|
static void SetNearClipZ(float nearclip) { ms_fNearClipZ = nearclip; }
|
||||||
static float GetNearClipZ(void) { return ms_fNearClipZ; }
|
static float GetNearClipZ(void) { return ms_fNearClipZ; }
|
||||||
|
@ -50,4 +60,7 @@ public:
|
||||||
#endif
|
#endif
|
||||||
static float GetAspectRatio(void) { return ms_fAspectRatio; }
|
static float GetAspectRatio(void) { return ms_fAspectRatio; }
|
||||||
static void SetAspectRatio(float ratio) { ms_fAspectRatio = ratio; }
|
static void SetAspectRatio(float ratio) { ms_fAspectRatio = ratio; }
|
||||||
|
#ifdef PROPER_SCALING
|
||||||
|
static float ScaleY(float y);
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
|
@ -444,7 +444,7 @@ CFont::PrintChar(float x, float y, wchar c)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(Details.style == FONT_BANK || Details.style == FONT_STANDARD){
|
if(RenderState.style == FONT_BANK || RenderState.style == FONT_STANDARD){
|
||||||
if (bDontPrint) return;
|
if (bDontPrint) return;
|
||||||
if (RenderState.slant == 0.0f) {
|
if (RenderState.slant == 0.0f) {
|
||||||
#ifdef FIX_BUGS
|
#ifdef FIX_BUGS
|
||||||
|
@ -1051,10 +1051,10 @@ CFont::GetCharacterWidth(wchar c)
|
||||||
return Size[LanguageSet][Details.style][192];
|
return Size[LanguageSet][Details.style][192];
|
||||||
#else
|
#else
|
||||||
|
|
||||||
if (Details.proportional)
|
if (RenderState.proportional)
|
||||||
return Size[Details.style][c];
|
return Size[RenderState.style][c];
|
||||||
else
|
else
|
||||||
return Size[Details.style][209];
|
return Size[RenderState.style][209];
|
||||||
#endif // MORE_LANGUAGES
|
#endif // MORE_LANGUAGES
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,16 @@
|
||||||
|
|
||||||
// --MIAMI: file done
|
// --MIAMI: file done
|
||||||
|
|
||||||
|
#if defined(FIX_BUGS)
|
||||||
|
#define SCREEN_SCALE_X_FIX(a) SCREEN_SCALE_X(a)
|
||||||
|
#define SCREEN_SCALE_Y_FIX(a) SCREEN_SCALE_Y(a)
|
||||||
|
#define SCALE_AND_CENTER_X_FIX(a) SCALE_AND_CENTER_X(a)
|
||||||
|
#else
|
||||||
|
#define SCREEN_SCALE_X_FIX(a) (a)
|
||||||
|
#define SCREEN_SCALE_Y_FIX(a) (a)
|
||||||
|
#define SCALE_AND_CENTER_X_FIX(a) (a)
|
||||||
|
#endif
|
||||||
|
|
||||||
// Game has colors inlined in code.
|
// Game has colors inlined in code.
|
||||||
// For easier modification we collect them here:
|
// For easier modification we collect them here:
|
||||||
CRGBA MONEY_COLOR(0, 207, 133, 255);
|
CRGBA MONEY_COLOR(0, 207, 133, 255);
|
||||||
|
@ -1052,16 +1062,17 @@ void CHud::Draw()
|
||||||
CRadar::DrawMap();
|
CRadar::DrawMap();
|
||||||
if (FrontEndMenuManager.m_PrefsRadarMode != 1) {
|
if (FrontEndMenuManager.m_PrefsRadarMode != 1) {
|
||||||
CRect rect(0.0f, 0.0f, SCREEN_SCALE_X(RADAR_WIDTH), SCREEN_SCALE_Y(RADAR_HEIGHT));
|
CRect rect(0.0f, 0.0f, SCREEN_SCALE_X(RADAR_WIDTH), SCREEN_SCALE_Y(RADAR_HEIGHT));
|
||||||
#ifdef FIX_BUGS
|
|
||||||
rect.Translate(SCREEN_SCALE_X(RADAR_LEFT), SCREEN_SCALE_FROM_BOTTOM(RADAR_BOTTOM + RADAR_HEIGHT));
|
rect.Translate(SCREEN_SCALE_X_FIX(RADAR_LEFT), SCREEN_SCALE_FROM_BOTTOM(RADAR_BOTTOM + RADAR_HEIGHT));
|
||||||
#else
|
|
||||||
rect.Translate(RADAR_LEFT, SCREEN_SCALE_FROM_BOTTOM(RADAR_BOTTOM + RADAR_HEIGHT));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
#ifdef FIX_BUGS
|
||||||
|
rect.Grow(SCREEN_SCALE_X(6.0f), SCREEN_SCALE_X(6.0f), SCREEN_SCALE_Y(6.0f), SCREEN_SCALE_Y(6.0f));
|
||||||
|
#else
|
||||||
rect.Grow(6.0f);
|
rect.Grow(6.0f);
|
||||||
rect.Translate(0.0f, 2.0f);
|
#endif
|
||||||
|
rect.Translate(SCREEN_SCALE_X_FIX(0.0f), SCREEN_SCALE_Y_FIX(2.0f));
|
||||||
Sprites[HUD_RADARDISC].Draw(rect, CRGBA(0, 0, 0, 255));
|
Sprites[HUD_RADARDISC].Draw(rect, CRGBA(0, 0, 0, 255));
|
||||||
rect.Translate(0.0f, -2.0f);
|
rect.Translate(SCREEN_SCALE_X_FIX(0.0f), SCREEN_SCALE_Y_FIX(-2.0f));
|
||||||
Sprites[HUD_RADARDISC].Draw(rect, RADARDISC_COLOR);
|
Sprites[HUD_RADARDISC].Draw(rect, RADARDISC_COLOR);
|
||||||
}
|
}
|
||||||
CRadar::DrawBlips();
|
CRadar::DrawBlips();
|
||||||
|
|
|
@ -2331,9 +2331,9 @@ void CParticle::AddJetExplosion(CVector const &vecPos, float fPower, float fSize
|
||||||
vecStepPos,
|
vecStepPos,
|
||||||
CVector
|
CVector
|
||||||
(
|
(
|
||||||
CGeneral::GetRandomNumberInRange(-0.2f, 0.2f),
|
CGeneral::GetRandomNumberInRange(-0.02f, 0.02f),
|
||||||
CGeneral::GetRandomNumberInRange(-0.2f, 0.2f),
|
CGeneral::GetRandomNumberInRange(-0.02f, 0.02f),
|
||||||
CGeneral::GetRandomNumberInRange(-0.2f, 0.0f)
|
CGeneral::GetRandomNumberInRange(-0.02f, 0.0f)
|
||||||
),
|
),
|
||||||
nil,
|
nil,
|
||||||
fSize, color, 0, 0, 0, 0);
|
fSize, color, 0, 0, 0, 0);
|
||||||
|
|
|
@ -88,5 +88,5 @@ enum tParticleType
|
||||||
|
|
||||||
MAX_PARTICLES,
|
MAX_PARTICLES,
|
||||||
PARTICLE_FIRST = PARTICLE_SPARK,
|
PARTICLE_FIRST = PARTICLE_SPARK,
|
||||||
PARTICLE_LAST = PARTICLE_RAINDROP_2D
|
PARTICLE_LAST = PARTICLE_HEATHAZE_IN_DIST
|
||||||
};
|
};
|
|
@ -33,7 +33,11 @@ CSprite::CalcScreenCoors(const RwV3d &in, RwV3d *out, float *outw, float *outh,
|
||||||
// this is used to scale correctly if you zoom in with sniper rifle
|
// this is used to scale correctly if you zoom in with sniper rifle
|
||||||
float fovScale = fov / CDraw::GetFOV();
|
float fovScale = fov / CDraw::GetFOV();
|
||||||
|
|
||||||
|
#ifdef FIX_SPRITES
|
||||||
|
*outw = CDraw::ms_bFixSprites ? (fovScale * recip * SCREEN_HEIGHT) : (fovScale * SCREEN_SCALE_AR(recip) * SCREEN_WIDTH);
|
||||||
|
#else
|
||||||
*outw = fovScale * SCREEN_SCALE_AR(recip) * SCREEN_WIDTH;
|
*outw = fovScale * SCREEN_SCALE_AR(recip) * SCREEN_WIDTH;
|
||||||
|
#endif
|
||||||
*outh = fovScale * recip * SCREEN_HEIGHT;
|
*outh = fovScale * recip * SCREEN_HEIGHT;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -288,17 +288,17 @@ CAutomobile::ProcessControl(void)
|
||||||
// Improve grip of vehicles in certain cases
|
// Improve grip of vehicles in certain cases
|
||||||
bool strongGrip1 = false;
|
bool strongGrip1 = false;
|
||||||
bool strongGrip2 = false;
|
bool strongGrip2 = false;
|
||||||
if(FindPlayerVehicle() && this != FindPlayerVehicle() &&
|
if(FindPlayerVehicle() && this != FindPlayerVehicle() && FindPlayerPed()->m_pWanted->GetWantedLevel() > 3 &&
|
||||||
(AutoPilot.m_nCarMission == MISSION_RAMPLAYER_FARAWAY || AutoPilot.m_nCarMission == MISSION_RAMPLAYER_CLOSE ||
|
(AutoPilot.m_nCarMission == MISSION_RAMPLAYER_FARAWAY || AutoPilot.m_nCarMission == MISSION_RAMPLAYER_CLOSE ||
|
||||||
AutoPilot.m_nCarMission == MISSION_BLOCKPLAYER_FARAWAY || AutoPilot.m_nCarMission == MISSION_BLOCKPLAYER_CLOSE)){
|
AutoPilot.m_nCarMission == MISSION_BLOCKPLAYER_FARAWAY || AutoPilot.m_nCarMission == MISSION_BLOCKPLAYER_CLOSE) &&
|
||||||
if(FindPlayerSpeed().Magnitude() > 0.3f){
|
FindPlayerSpeed().Magnitude() > 0.3f){
|
||||||
strongGrip1 = true;
|
|
||||||
if(FindPlayerSpeed().Magnitude() > 0.4f &&
|
strongGrip1 = true;
|
||||||
m_vecMoveSpeed.Magnitude() < 0.3f)
|
if(FindPlayerSpeed().Magnitude() > 0.4f &&
|
||||||
strongGrip2 = true;
|
m_vecMoveSpeed.Magnitude() < 0.3f)
|
||||||
else if((GetPosition() - FindPlayerCoors()).Magnitude() > 50.0f)
|
strongGrip2 = true;
|
||||||
strongGrip2 = true;
|
else if((GetPosition() - FindPlayerCoors()).Magnitude() > 50.0f)
|
||||||
}
|
strongGrip2 = true;
|
||||||
}else if(GetModelIndex() == MI_RCBANDIT && GetStatus() != STATUS_PLAYER_REMOTE)
|
}else if(GetModelIndex() == MI_RCBANDIT && GetStatus() != STATUS_PLAYER_REMOTE)
|
||||||
strongGrip1 = true;
|
strongGrip1 = true;
|
||||||
|
|
||||||
|
|
|
@ -32,15 +32,15 @@
|
||||||
|
|
||||||
#define INVALID_ORIENTATION (-9999.99f)
|
#define INVALID_ORIENTATION (-9999.99f)
|
||||||
|
|
||||||
float fShapeLength = 0.4f;
|
|
||||||
float fShapeTime = 0.05f;
|
|
||||||
float fRangeMult = 0.6f;
|
|
||||||
float fTimeMult;
|
|
||||||
|
|
||||||
float CBoat::MAX_WAKE_LENGTH = 50.0f;
|
float CBoat::MAX_WAKE_LENGTH = 50.0f;
|
||||||
float CBoat::MIN_WAKE_INTERVAL = 2.0f;
|
float CBoat::MIN_WAKE_INTERVAL = 2.0f;
|
||||||
float CBoat::WAKE_LIFETIME = 150.0f;
|
float CBoat::WAKE_LIFETIME = 150.0f;
|
||||||
|
|
||||||
|
float fShapeLength = 0.4f;
|
||||||
|
float fShapeTime = 0.05f;
|
||||||
|
float fRangeMult = 0.6f;
|
||||||
|
float fTimeMult = 1.2f/CBoat::WAKE_LIFETIME;
|
||||||
|
|
||||||
CBoat *CBoat::apFrameWakeGeneratingBoats[4];
|
CBoat *CBoat::apFrameWakeGeneratingBoats[4];
|
||||||
|
|
||||||
const uint32 CBoat::nSaveStructSize =
|
const uint32 CBoat::nSaveStructSize =
|
||||||
|
|
2
vendor/librw
vendored
2
vendor/librw
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit 78d540fce0ca090b07377cee40d73eadfb7a699d
|
Subproject commit 61b288a9fe72ae4073c0ac5fd2a5815ed510c8c8
|
Loading…
Reference in a new issue