From 00d23c61d99a0a676de2219da42d576b5c5c0474 Mon Sep 17 00:00:00 2001 From: Fire-Head Date: Fri, 8 Jan 2021 23:30:30 +0300 Subject: .ini for scaling, radar, sprites --- src/render/Draw.cpp | 19 ++++++++++++++++++- src/render/Draw.h | 14 ++++++++++++++ src/render/Sprite.cpp | 2 +- 3 files changed, 33 insertions(+), 2 deletions(-) (limited to 'src/render') diff --git a/src/render/Draw.cpp b/src/render/Draw.cpp index fcd5d18f..f2fdad27 100644 --- a/src/render/Draw.cpp +++ b/src/render/Draw.cpp @@ -20,6 +20,16 @@ uint8 CDraw::FadeRed; uint8 CDraw::FadeGreen; uint8 CDraw::FadeBlue; +#ifdef PROPER_SCALING +int32 CDraw::ms_bProperScaling = true; +#endif +#ifdef FIX_SPRITES +int32 CDraw::ms_bFixRadar = true; +#endif +#ifdef FIX_RADAR +int32 CDraw::ms_bFixSprites = true; +#endif + float CDraw::FindAspectRatio(void) { @@ -75,4 +85,11 @@ CDraw::SetFOV(float fov) ms_fScaledFOV = fov; #endif ms_fFOV = fov; -} \ No newline at end of file +} + +#ifdef PROPER_SCALING +float CDraw::ScaleY(float y) +{ + return ms_bProperScaling ? y : y * ((float)DEFAULT_SCREEN_HEIGHT/SCREEN_HEIGHT_NTSC); +} +#endif \ No newline at end of file diff --git a/src/render/Draw.h b/src/render/Draw.h index 45f7906f..4f8f523d 100644 --- a/src/render/Draw.h +++ b/src/render/Draw.h @@ -34,6 +34,16 @@ public: static uint8 FadeRed; static uint8 FadeGreen; static uint8 FadeBlue; + +#ifdef PROPER_SCALING + static int32 ms_bProperScaling; +#endif +#ifdef FIX_SPRITES + static int32 ms_bFixRadar; +#endif +#ifdef FIX_RADAR + static int32 ms_bFixSprites; +#endif static void SetNearClipZ(float nearclip) { ms_fNearClipZ = nearclip; } static float GetNearClipZ(void) { return ms_fNearClipZ; } @@ -56,4 +66,8 @@ public: #else static float GetAspectRatio(void) { return FindAspectRatio(); } #endif + +#ifdef PROPER_SCALING + static float ScaleY(float y); +#endif }; diff --git a/src/render/Sprite.cpp b/src/render/Sprite.cpp index c31c75d2..a441e08b 100644 --- a/src/render/Sprite.cpp +++ b/src/render/Sprite.cpp @@ -38,7 +38,7 @@ CSprite::CalcScreenCoors(const RwV3d &in, RwV3d *out, float *outw, float *outh, float fovScale = fov / CDraw::GetFOV(); #ifdef FIX_SPRITES - *outw = fovScale * recip * SCREEN_HEIGHT; + *outw = CDraw::ms_bFixSprites ? (fovScale * recip * SCREEN_HEIGHT) : (fovScale * SCREEN_SCALE_AR(recip) * SCREEN_WIDTH); #else *outw = fovScale * SCREEN_SCALE_AR(recip) * SCREEN_WIDTH; #endif -- cgit v1.2.3