mirror of
https://git.rip/DMCA_FUCKER/re3.git
synced 2024-12-23 00:00:00 +00:00
Sprite Scaling option
This commit is contained in:
parent
40b90618ef
commit
224e805fe4
Binary file not shown.
|
@ -141,6 +141,10 @@ int8 CMenuManager::m_nPrefsMSAALevel = 0;
|
||||||
int8 CMenuManager::m_nDisplayMSAALevel = 0;
|
int8 CMenuManager::m_nDisplayMSAALevel = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
|
int32 CMenuManager::m_PrefsSpriteScalingMode = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
int8 CMenuManager::m_PrefsIslandLoading = ISLAND_LOADING_LOW;
|
int8 CMenuManager::m_PrefsIslandLoading = ISLAND_LOADING_LOW;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1455,9 +1459,18 @@ CMenuManager::Draw()
|
||||||
case AR_4_3:
|
case AR_4_3:
|
||||||
sprintf(asciiTemp, "4:3");
|
sprintf(asciiTemp, "4:3");
|
||||||
break;
|
break;
|
||||||
|
case AR_5_4:
|
||||||
|
sprintf(asciiTemp, "5:4");
|
||||||
|
break;
|
||||||
|
case AR_16_10:
|
||||||
|
sprintf(asciiTemp, "16:10");
|
||||||
|
break;
|
||||||
case AR_16_9:
|
case AR_16_9:
|
||||||
sprintf(asciiTemp, "16:9");
|
sprintf(asciiTemp, "16:9");
|
||||||
break;
|
break;
|
||||||
|
case AR_21_9:
|
||||||
|
sprintf(asciiTemp, "21:9");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
AsciiToUnicode(asciiTemp, unicodeTemp);
|
AsciiToUnicode(asciiTemp, unicodeTemp);
|
||||||
|
@ -5221,12 +5234,12 @@ CMenuManager::ProcessButtonPresses(void)
|
||||||
case MENUACTION_WIDESCREEN:
|
case MENUACTION_WIDESCREEN:
|
||||||
if (changeValueBy > 0) {
|
if (changeValueBy > 0) {
|
||||||
m_PrefsUseWideScreen++;
|
m_PrefsUseWideScreen++;
|
||||||
if (m_PrefsUseWideScreen > 2)
|
if (m_PrefsUseWideScreen > AR_MAX-1)
|
||||||
m_PrefsUseWideScreen = 0;
|
m_PrefsUseWideScreen = 0;
|
||||||
} else {
|
} else {
|
||||||
m_PrefsUseWideScreen--;
|
m_PrefsUseWideScreen--;
|
||||||
if (m_PrefsUseWideScreen < 0)
|
if (m_PrefsUseWideScreen < 0)
|
||||||
m_PrefsUseWideScreen = 2;
|
m_PrefsUseWideScreen = AR_MAX-1;
|
||||||
}
|
}
|
||||||
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
|
|
|
@ -636,6 +636,9 @@ public:
|
||||||
static int8 m_nDisplayMSAALevel;
|
static int8 m_nDisplayMSAALevel;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
|
static int32 m_PrefsSpriteScalingMode;
|
||||||
|
#endif
|
||||||
enum LANGUAGE
|
enum LANGUAGE
|
||||||
{
|
{
|
||||||
LANGUAGE_AMERICAN,
|
LANGUAGE_AMERICAN,
|
||||||
|
|
|
@ -83,6 +83,12 @@
|
||||||
#define INVERT_PAD_SELECTOR
|
#define INVERT_PAD_SELECTOR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
|
#define HUD_ASPECT_RATIO_SELECTOR MENUACTION_CFO_SELECT, "FEC_SCL", { new CCFOSelect((int8*)&CMenuManager::m_PrefsSpriteScalingMode, "HudAspectRatio", SpriteScalingModes, ARRAY_SIZE(SpriteScalingModes), false, nil) },
|
||||||
|
#else
|
||||||
|
#define HUD_ASPECT_RATIO_SELECTOR
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *filterNames[] = { "FEM_NON", "FEM_SIM", "FEM_NRM", "FEM_MOB" };
|
const char *filterNames[] = { "FEM_NON", "FEM_SIM", "FEM_NRM", "FEM_MOB" };
|
||||||
const char *vehPipelineNames[] = { "FED_MFX", "FED_NEO" };
|
const char *vehPipelineNames[] = { "FED_MFX", "FED_NEO" };
|
||||||
const char *off_on[] = { "FEM_OFF", "FEM_ON" };
|
const char *off_on[] = { "FEM_OFF", "FEM_ON" };
|
||||||
|
@ -342,6 +348,15 @@ wchar* DetectJoystickDraw(bool* disabled, bool userHovering) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
|
const char* SpriteScalingModes[] =
|
||||||
|
{
|
||||||
|
"FEM_PC",
|
||||||
|
"FEM_PS2",
|
||||||
|
"FEM_AUT"
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
CMenuScreenCustom aScreens[MENUPAGES] = {
|
CMenuScreenCustom aScreens[MENUPAGES] = {
|
||||||
// MENUPAGE_NONE = 0
|
// MENUPAGE_NONE = 0
|
||||||
{ "", MENUPAGE_DISABLED, MENUPAGE_DISABLED, nil, nil, },
|
{ "", MENUPAGE_DISABLED, MENUPAGE_DISABLED, nil, nil, },
|
||||||
|
@ -396,6 +411,7 @@ CMenuScreenCustom aScreens[MENUPAGES] = {
|
||||||
#endif
|
#endif
|
||||||
MENUACTION_SUBTITLES, "FED_SUB", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
MENUACTION_SUBTITLES, "FED_SUB", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
||||||
MENUACTION_WIDESCREEN, "FED_WIS", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
MENUACTION_WIDESCREEN, "FED_WIS", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
||||||
|
HUD_ASPECT_RATIO_SELECTOR
|
||||||
MENUACTION_SCREENRES, "FED_RES", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
MENUACTION_SCREENRES, "FED_RES", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
||||||
VIDEOMODE_SELECTOR
|
VIDEOMODE_SELECTOR
|
||||||
MULTISAMPLING_SELECTOR
|
MULTISAMPLING_SELECTOR
|
||||||
|
@ -827,6 +843,7 @@ CMenuScreenCustom aScreens[MENUPAGES] = {
|
||||||
|
|
||||||
MENUACTION_SCREENRES, "FED_RES", { nil, SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS },
|
MENUACTION_SCREENRES, "FED_RES", { nil, SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS },
|
||||||
MENUACTION_WIDESCREEN, "FED_WIS", { nil, SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS },
|
MENUACTION_WIDESCREEN, "FED_WIS", { nil, SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS },
|
||||||
|
HUD_ASPECT_RATIO_SELECTOR
|
||||||
VIDEOMODE_SELECTOR
|
VIDEOMODE_SELECTOR
|
||||||
MENUACTION_FRAMESYNC, "FEM_VSC", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
MENUACTION_FRAMESYNC, "FEM_VSC", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
||||||
MENUACTION_FRAMELIMIT, "FEM_FRM", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
MENUACTION_FRAMELIMIT, "FEM_FRM", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
||||||
|
|
|
@ -1297,10 +1297,16 @@ void CRadar::TransformRadarPointToScreenSpace(CVector2D &out, const CVector2D &i
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#ifdef FIX_BUGS
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
out.x = (in.x + 1.0f) * 0.5f * SCREEN_SCALE_X(RADAR_WIDTH) + SCREEN_SCALE_X(RADAR_LEFT);
|
#define _RADAR_WIDTH ((CMenuManager::m_PrefsSpriteScalingMode==SCL_AUTO) ? (RADAR_HEIGHT) : (RADAR_WIDTH))
|
||||||
#else
|
#else
|
||||||
out.x = (in.x + 1.0f) * 0.5f * SCREEN_SCALE_X(RADAR_WIDTH) + RADAR_LEFT;
|
#define _RADAR_WIDTH RADAR_WIDTH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FIX_BUGS
|
||||||
|
out.x = (in.x + 1.0f) * 0.5f * SCREEN_SCALE_X(_RADAR_WIDTH) + SCREEN_SCALE_X(RADAR_LEFT);
|
||||||
|
#else
|
||||||
|
out.x = (in.x + 1.0f) * 0.5f * SCREEN_SCALE_X(_RADAR_WIDTH) + RADAR_LEFT;
|
||||||
#endif
|
#endif
|
||||||
out.y = (1.0f - in.y) * 0.5f * SCREEN_SCALE_Y(RADAR_HEIGHT) + SCREEN_SCALE_FROM_BOTTOM(RADAR_BOTTOM + RADAR_HEIGHT);
|
out.y = (1.0f - in.y) * 0.5f * SCREEN_SCALE_Y(RADAR_HEIGHT) + SCREEN_SCALE_FROM_BOTTOM(RADAR_BOTTOM + RADAR_HEIGHT);
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,7 @@ inline uint32 ldb(uint32 p, uint32 s, uint32 w)
|
||||||
#include "skeleton.h"
|
#include "skeleton.h"
|
||||||
#include "Draw.h"
|
#include "Draw.h"
|
||||||
|
|
||||||
#if defined(USE_PROPER_SCALING)
|
#if defined(ASPECT_RATIO_SCALE)
|
||||||
#ifdef FORCE_PC_SCALING
|
#ifdef FORCE_PC_SCALING
|
||||||
#define DEFAULT_SCREEN_WIDTH (640)
|
#define DEFAULT_SCREEN_WIDTH (640)
|
||||||
#define DEFAULT_SCREEN_HEIGHT (448)
|
#define DEFAULT_SCREEN_HEIGHT (448)
|
||||||
|
@ -150,8 +150,8 @@ inline uint32 ldb(uint32 p, uint32 s, uint32 w)
|
||||||
#define SCREEN_HEIGHT ((float)RsGlobal.height)
|
#define SCREEN_HEIGHT ((float)RsGlobal.height)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define SCREEN_HEIGHT_PAL (512)
|
#define SCREEN_HEIGHT_PAL ((float)512)
|
||||||
#define SCREEN_HEIGHT_NTSC (448)
|
#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)))
|
||||||
|
@ -170,8 +170,11 @@ 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)
|
#ifndef FORCE_PC_SCALING
|
||||||
|
#undef SCREEN_SCALE_Y
|
||||||
|
#define SCREEN_SCALE_Y(a) CDraw::ScaleY(SCREEN_STRETCH_Y(a))
|
||||||
|
#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)
|
||||||
|
|
|
@ -35,8 +35,14 @@ CDraw::FindAspectRatio(void)
|
||||||
default:
|
default:
|
||||||
case AR_4_3:
|
case AR_4_3:
|
||||||
return 4.0f / 3.0f;
|
return 4.0f / 3.0f;
|
||||||
|
case AR_5_4:
|
||||||
|
return 5.0f / 4.0f;
|
||||||
|
case AR_16_10:
|
||||||
|
return 16.0f / 10.0f;
|
||||||
case AR_16_9:
|
case AR_16_9:
|
||||||
return 16.0f / 9.0f;
|
return 16.0f / 9.0f;
|
||||||
|
case AR_21_9:
|
||||||
|
return 21.0f / 9.0f;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -72,12 +78,13 @@ CDraw::SetFOV(float fov)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ASPECT_RATIO_SCALE
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
float
|
float CDraw::ScaleY(float y)
|
||||||
ScaleAndCenterX(float x)
|
|
||||||
{
|
{
|
||||||
if (SCREEN_WIDTH == DEFAULT_SCREEN_WIDTH)
|
switch ( CMenuManager::m_PrefsSpriteScalingMode )
|
||||||
return x;
|
{
|
||||||
else
|
case SCL_PC: return y * ((float)DEFAULT_SCREEN_HEIGHT/SCREEN_HEIGHT_NTSC);
|
||||||
return (SCREEN_WIDTH - SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH)) / 2 + SCREEN_SCALE_X(x);
|
default:
|
||||||
|
return y;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
|
@ -5,9 +5,21 @@ enum eAspectRatio
|
||||||
// Make sure these work the same as FrontEndMenuManager.m_PrefsUseWideScreen
|
// Make sure these work the same as FrontEndMenuManager.m_PrefsUseWideScreen
|
||||||
// without widescreen support
|
// without widescreen support
|
||||||
AR_4_3,
|
AR_4_3,
|
||||||
|
AR_5_4,
|
||||||
|
AR_16_10,
|
||||||
AR_16_9,
|
AR_16_9,
|
||||||
|
AR_21_9,
|
||||||
|
|
||||||
AR_AUTO,
|
AR_AUTO,
|
||||||
|
|
||||||
|
AR_MAX,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum eSpriteScalingMode
|
||||||
|
{
|
||||||
|
SCL_PC,
|
||||||
|
SCL_PS2,
|
||||||
|
SCL_AUTO,
|
||||||
};
|
};
|
||||||
|
|
||||||
class CDraw
|
class CDraw
|
||||||
|
@ -52,4 +64,8 @@ public:
|
||||||
#else
|
#else
|
||||||
static float GetAspectRatio(void) { return FindAspectRatio(); }
|
static float GetAspectRatio(void) { return FindAspectRatio(); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
|
static float ScaleY(float y);
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
|
@ -1186,9 +1186,14 @@ void CHud::Draw()
|
||||||
/*
|
/*
|
||||||
DrawRadar
|
DrawRadar
|
||||||
*/
|
*/
|
||||||
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
|
#define _RADAR_WIDTH ((CMenuManager::m_PrefsSpriteScalingMode==SCL_AUTO) ? (RADAR_HEIGHT) : (RADAR_WIDTH))
|
||||||
|
#else
|
||||||
|
#define _RADAR_WIDTH RADAR_WIDTH
|
||||||
|
#endif
|
||||||
if (m_ItemToFlash == ITEM_RADAR && CTimer::GetFrameCounter() & 8 || m_ItemToFlash != ITEM_RADAR) {
|
if (m_ItemToFlash == ITEM_RADAR && CTimer::GetFrameCounter() & 8 || m_ItemToFlash != ITEM_RADAR) {
|
||||||
CRadar::DrawMap();
|
CRadar::DrawMap();
|
||||||
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
|
#ifdef FIX_BUGS
|
||||||
rect.Translate(SCREEN_SCALE_X(RADAR_LEFT), SCREEN_SCALE_FROM_BOTTOM(RADAR_BOTTOM + RADAR_HEIGHT));
|
rect.Translate(SCREEN_SCALE_X(RADAR_LEFT), SCREEN_SCALE_FROM_BOTTOM(RADAR_BOTTOM + RADAR_HEIGHT));
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -5,6 +5,10 @@
|
||||||
#include "Camera.h"
|
#include "Camera.h"
|
||||||
#include "Sprite.h"
|
#include "Sprite.h"
|
||||||
|
|
||||||
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
|
#include "Frontend.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
float CSprite::m_f2DNearScreenZ;
|
float CSprite::m_f2DNearScreenZ;
|
||||||
float CSprite::m_f2DFarScreenZ;
|
float CSprite::m_f2DFarScreenZ;
|
||||||
float CSprite::m_fRecipNearClipPlane;
|
float CSprite::m_fRecipNearClipPlane;
|
||||||
|
@ -35,6 +39,11 @@ CSprite::CalcScreenCoors(const RwV3d &in, RwV3d *out, float *outw, float *outh,
|
||||||
|
|
||||||
*outw = fovScale * SCREEN_SCALE_AR(recip) * SCREEN_WIDTH;
|
*outw = fovScale * SCREEN_SCALE_AR(recip) * SCREEN_WIDTH;
|
||||||
*outh = fovScale * recip * SCREEN_HEIGHT;
|
*outh = fovScale * recip * SCREEN_HEIGHT;
|
||||||
|
|
||||||
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
|
if ( CMenuManager::m_PrefsSpriteScalingMode==SCL_AUTO )
|
||||||
|
*outw = fovScale * recip * SCREEN_HEIGHT;
|
||||||
|
#endif
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8058,12 +8058,22 @@ NEO
|
||||||
[FEM_PS2]
|
[FEM_PS2]
|
||||||
PS2
|
PS2
|
||||||
|
|
||||||
|
[FEM_PC]
|
||||||
|
PC
|
||||||
|
|
||||||
[FEM_XBX]
|
[FEM_XBX]
|
||||||
XBOX
|
XBOX
|
||||||
|
|
||||||
|
[FEM_AUT]
|
||||||
|
AUTO
|
||||||
|
|
||||||
[FEC_IVP]
|
[FEC_IVP]
|
||||||
INVERT PAD VERTICALLY
|
INVERT PAD VERTICALLY
|
||||||
|
|
||||||
|
[FEC_SCL]
|
||||||
|
SPRITE SCALING MODE
|
||||||
|
|
||||||
|
|
||||||
{ end of file }
|
{ end of file }
|
||||||
|
|
||||||
[DUMMY]
|
[DUMMY]
|
||||||
|
|
Loading…
Reference in a new issue