Merge pull request #489 from Nick007J/master

1.1 patch stuff + flying controls
This commit is contained in:
Nikolay Korolev
2020-04-27 00:53:54 +03:00
committed by GitHub
23 changed files with 440 additions and 52 deletions

View File

@ -2545,11 +2545,13 @@ CCam::Process_M16_1stPerson(const CVector &CameraTarget, float, float, float)
ResetStatics = false;
}
#ifndef GTA3_1_1_PATCH
((CPed*)CamTargetEntity)->m_pedIK.GetComponentPosition(&HeadPos, PED_HEAD);
Source = HeadPos;
Source.z += 0.1f;
Source.x -= 0.19f*Cos(m_fInitialPlayerOrientation);
Source.y -= 0.19f*Sin(m_fInitialPlayerOrientation);
#endif
// Look around
bool UseMouse = false;
@ -2578,6 +2580,17 @@ CCam::Process_M16_1stPerson(const CVector &CameraTarget, float, float, float)
if(Alpha > DEGTORAD(60.0f)) Alpha = DEGTORAD(60.0f);
if(Alpha < -DEGTORAD(89.5f)) Alpha = -DEGTORAD(89.5f);
#ifdef GTA3_1_1_PATCH
HeadPos.x = 0.0f;
HeadPos.y = 0.0f;
HeadPos.z = 0.0f;
((CPed*)CamTargetEntity)->m_pedIK.GetComponentPosition(&HeadPos, PED_HEAD);
Source = HeadPos;
Source.z += 0.1f;
Source.x -= 0.19f * Cos(m_fInitialPlayerOrientation);
Source.y -= 0.19f * Sin(m_fInitialPlayerOrientation);
#endif
TargetCoors.x = 3.0f * Cos(Alpha) * Cos(Beta) + Source.x;
TargetCoors.y = 3.0f * Cos(Alpha) * Sin(Beta) + Source.y;
TargetCoors.z = 3.0f * Sin(Alpha) + Source.z;

View File

@ -71,11 +71,27 @@ bool bDidWeProcessAnyCinemaCam;
#define CTRLDOWN(key) ((KEYDOWN(rsLCTRL) || KEYDOWN(rsRCTRL)) && KEYDOWN((RsKeyCodes)key))
#endif
CCamera::CCamera(void)
{
#ifdef GTA3_1_1_PATCH
m_fMouseAccelHorzntl = 0.0025f;
m_fMouseAccelVertical = 0.003f;
#endif
Init();
}
void
CCamera::Init(void)
{
#ifdef GTA3_1_1_PATCH
float fMouseAccelHorzntl = m_fMouseAccelHorzntl;
float fMouseAccelVertical = m_fMouseAccelVertical;
#endif
memset(this, 0, sizeof(CCamera)); // getting rid of vtable, eh?
#ifdef GTA3_1_1_PATCH
m_fMouseAccelHorzntl = fMouseAccelHorzntl;
m_fMouseAccelVertical = fMouseAccelVertical;
#endif
m_pRwCamera = nil;
m_1rstPersonRunCloseToAWall = false;
m_fPositionAlongSpline = 0.0f;
@ -191,8 +207,10 @@ CCamera::Init(void)
m_uiTransitionState = 0;
m_uiTimeTransitionStart = 0;
m_bLookingAtPlayer = true;
#ifndef GTA3_1_1_PATCH
m_fMouseAccelHorzntl = 0.0025f;
m_fMouseAccelVertical = 0.003f;
#endif
m_f3rdPersonCHairMultX = 0.53f;
m_f3rdPersonCHairMultY = 0.4f;
}

View File

@ -546,6 +546,7 @@ uint32 unknown; // some counter having to do with music
#endif
// High level and misc
CCamera(void);
void Init(void);
void Process(void);
void CamControl(void);

View File

@ -2966,8 +2966,10 @@ CMenuManager::LoadAllTextures()
CTxdStore::LoadTxd(frontendTxdSlot, "MODELS/FRONTEND.TXD");
CTxdStore::AddRef(frontendTxdSlot);
CTxdStore::SetCurrentTxd(frontendTxdSlot);
#ifndef GTA3_1_1_PATCH
CStreaming::IHaveUsedStreamingMemory();
CTimer::Update();
#endif
for (int i = 0; i < ARRAY_SIZE(FrontendFilenames); i++) {
m_aFrontEndSprites[i].SetTexture(FrontendFilenames[i][0], FrontendFilenames[i][1]);
@ -2993,6 +2995,10 @@ CMenuManager::LoadAllTextures()
m_aMapSprites[i].SetTexture(MapFilenames[i][0], MapFilenames[i][1]);
m_aMapSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER);
}
#endif
#ifdef GTA3_1_1_PATCH
CStreaming::IHaveUsedStreamingMemory();
CTimer::Update();
#endif
m_bSpritesLoaded = true;
CTxdStore::PopCurrentTxd();
@ -3005,7 +3011,11 @@ CMenuManager::LoadSettings()
int fileHandle = CFileMgr::OpenFile("gta3.set", "r");
int32 prevLang = m_PrefsLanguage;
#ifdef GTA3_1_1_PATCH
CMBlur::BlurOn = (_dwOperatingSystemVersion != OS_WIN98);
#else
CMBlur::BlurOn = true;
#endif
MousePointerStateHelper.bInvertVertically = true;
// 50 is silly
@ -4474,7 +4484,18 @@ CMenuManager::ProcessButtonPresses(void)
m_PrefsUseWideScreen = false;
m_PrefsShowSubtitles = true;
m_nDisplayVideoMode = m_nPrefsVideoMode;
#ifdef GTA3_1_1_PATCH
if (_dwOperatingSystemVersion == OS_WIN98) {
CMBlur::BlurOn = false;
CMBlur::MotionBlurClose();
}
else {
CMBlur::BlurOn = true;
CMBlur::MotionBlurOpen(Scene.camera);
}
#else
CMBlur::BlurOn = true;
#endif
SaveSettings();
} else if ((m_nCurrScreen != MENUPAGE_SKIN_SELECT_OLD) && (m_nCurrScreen == MENUPAGE_CONTROLLER_PC)) {
ControlsManager.MakeControllerActionsBlank();
@ -5012,7 +5033,7 @@ CMenuManager::WaitForUserCD()
CSprite2d *splash;
char *splashscreen = nil;
#ifndef RANDOMSPLASH
#if (!(defined RANDOMSPLASH) && !(defined GTA3_1_1_PATCH))
if (CGame::frenchGame || CGame::germanGame || !CGame::nastyGame)
splashscreen = "mainsc2";
else

View File

@ -646,3 +646,4 @@ public:
static_assert(sizeof(CMenuManager) == 0x564, "CMenuManager: error");
extern CMenuManager FrontEndMenuManager;
extern unsigned long _dwOperatingSystemVersion;

View File

@ -293,6 +293,38 @@ void KangarooCheat()
}
#endif
#ifdef ALLCARSHELI_CHEAT
void AllCarsHeliCheat(void)
{
wchar* string;
if (bAllCarCheat) {
string = TheText.Get("CHEATOF");
bAllCarCheat = false;
}
else {
string = TheText.Get("CHEAT1");
bAllCarCheat = true;
}
CHud::SetHelpMessage(string, true);
}
#endif
#ifdef ALT_DODO_CHEAT
void AltDodoCheat(void)
{
wchar* string;
if (CVehicle::bAltDodoCheat) {
string = TheText.Get("CHEATOF");
CVehicle::bAltDodoCheat = false;
}
else {
string = TheText.Get("CHEAT1");
CVehicle::bAltDodoCheat = true;
}
CHud::SetHelpMessage(string, true);
}
#endif
void
CControllerState::Clear(void)
{
@ -915,6 +947,18 @@ void CPad::AddToPCCheatString(char c)
if (!_CHEATCMP("GUBEDDEP"))
CPed::SwitchDebugDisplay();
#endif
#ifdef ALLCARSHELI_CHEAT
// "CARSAREHELI"
if (!_CHEATCMP("ILEHERASRAC"))
AllCarsHeliCheat();
#endif
#ifdef ALT_DODO_CHEAT
// "IWANTTOMASTERDODO"
if (!_CHEATCMP("ODODRETSAMOTTNAWI"))
AltDodoCheat();
#endif
#undef _CHEATCMP
}

View File

@ -450,3 +450,7 @@ public:
VALIDATE_SIZE(CPad, 0xFC);
extern CPad Pads[MAX_PADS];
#ifdef ALLCARSHELI_CHEAT
extern bool bAllCarCheat;
#endif

View File

@ -204,6 +204,8 @@ enum Config {
#define XINPUT
#endif
#define KANGAROO_CHEAT
#define ALLCARSHELI_CHEAT
#define ALT_DODO_CHEAT
#define REGISTER_START_BUTTON
// Hud, frontend and radar

View File

@ -104,6 +104,10 @@ public:
return m_flags[i].free ? nil : (T*)&m_entries[i];
}
T *GetAt(int handle){
#ifdef FIX_BUGS
if (handle == -1)
return nil;
#endif
return m_flags[handle>>8].u == (handle & 0xFF) ?
(T*)&m_entries[handle >> 8] : nil;
}