Revert "Implemented frontend inputs."

This commit is contained in:
aap 2019-07-02 22:05:11 +02:00 committed by GitHub
parent 743668c5c4
commit e8215cf560
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 126 additions and 1488 deletions

View file

@ -16,70 +16,43 @@ uint8 &CDraw::FadeRed = *(uint8*)0x95CD90;
uint8 &CDraw::FadeGreen = *(uint8*)0x95CD71;
uint8 &CDraw::FadeBlue = *(uint8*)0x95CD53;
void CDraw::CalculateAspectRatio()
void
CDraw::CalculateAspectRatio()
{
SetScreenMult(DEFAULT_SCALE);
#ifndef HOR_PLUS
if (FrontEndMenuManager.m_PrefsUseWideScreen)
ms_fAspectRatio = 16.0f / 9.0f;
if(FrontEndMenuManager.m_PrefsUseWideScreen)
ms_fAspectRatio = 16.0f/9.0f;
else
ms_fAspectRatio = 4.0f / 3.0f;
#else
switch (FrontEndMenuManager.m_PrefsUseWideScreen) {
case AR_AUTO:
ms_fAspectRatio = (float)SCREEN_WIDTH / (float)SCREEN_HEIGHT;
return;
case AR_3_2:
ms_fAspectRatio = 3.0f / 2.0f;
return;
case AR_4_3:
ms_fAspectRatio = 4.0f / 3.0f;
return;
case AR_5_3:
ms_fAspectRatio = 5.0f / 3.0f;
return;
case AR_5_4:
ms_fAspectRatio = 5.0f / 4.0f;
return;
case AR_15_9:
ms_fAspectRatio = 15.0f / 9.0f;
return;
case AR_16_9:
ms_fAspectRatio = 16.0f / 9.0f;
return;
case AR_16_10:
ms_fAspectRatio = 16.0f / 10.0f;
return;
case AR_64_27:
ms_fAspectRatio = 64.0f / 27.0f;
return;
};
#endif
ms_fAspectRatio = 4.0f/3.0f;
}
float
HorToVert(float hfov)
static float hFov2vFov(float hfov)
{
float vfov = atan(tan(DEGTORAD(hfov) / 2) / (4.0 / 3.0)) * 2;
return RADTODEG(hfov = atan(tan(vfov / 2) * CDraw::GetAspectRatio()) * 2);
float w = SCREENW;
float h = SCREENH;
// => tan(hFOV/2) = tan(vFOV/2)*aspectRatio
// => tan(vFOV/2) = tan(hFOV/2)/aspectRatio
float ar1 = 4.0/3.0;
float ar2 = w/h;
hfov = DEGTORAD(hfov);
float vfov = atan(tan(hfov/2) / ar1) *2;
hfov = atan(tan(vfov/2) * ar2) *2;
return RADTODEG(hfov);
}
void
CDraw::SetFOV(float fov)
{
#ifndef HOR_PLUS
// TODO: fix FOV here or somewhere else?
// ms_fFOV = hFov2vFov(fov);
ms_fFOV = fov;
#else
ms_fFOV = HorToVert(fov);
#endif
}
STARTPATCHES
InjectHook(0x4FE7B0, CDraw::SetFOV, PATCH_JUMP);
// Some patches to fix aiming offset on "CCamera::Find3rdPersonCamTargetVector".
Nop(0x46B618, 2);
Patch<float>(0x5F0A64, 1.3333334f);
ENDPATCHES