diff options
Diffstat (limited to '')
-rw-r--r-- | src/render/Draw.cpp | 19 | ||||
-rw-r--r-- | src/render/Draw.h | 14 | ||||
-rw-r--r-- | src/render/Sprite.cpp | 2 |
3 files changed, 33 insertions, 2 deletions
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 |