summaryrefslogtreecommitdiffstats
path: root/src/render
diff options
context:
space:
mode:
Diffstat (limited to 'src/render')
-rw-r--r--src/render/Glass.cpp8
-rw-r--r--src/render/Hud.cpp29
-rw-r--r--src/render/WindModifiers.cpp2
3 files changed, 24 insertions, 15 deletions
diff --git a/src/render/Glass.cpp b/src/render/Glass.cpp
index 0e26ee0b..426fa7f1 100644
--- a/src/render/Glass.cpp
+++ b/src/render/Glass.cpp
@@ -668,7 +668,7 @@ CGlass::WindowRespondsToCollision(CEntity *entity, float amount, CVector speed,
object->bGlassBroken = true;
object->bIsVisible = false;
- object->bUsesCollision = true;
+ object->bUsesCollision = false;
}
void
@@ -868,11 +868,11 @@ CGlass::HasGlassBeenShatteredAtCoors(float x, float y, float z)
CWorld::AdvanceCurrentScanCode();
- for ( int32 y = nStartY; y <= nEndY; y++ )
+ for ( int32 ys = nStartY; ys <= nEndY; ys++ )
{
- for ( int32 x = nStartX; x <= nEndX; x++ )
+ for ( int32 xs = nStartX; xs <= nEndX; xs++ )
{
- CSector *sector = CWorld::GetSector(x, y);
+ CSector *sector = CWorld::GetSector(xs, ys);
ASSERT(sector != nil);
diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp
index 753bb42b..94e09044 100644
--- a/src/render/Hud.cpp
+++ b/src/render/Hud.cpp
@@ -468,14 +468,10 @@ void CHud::Draw()
Sprites[WeaponType].Draw(
CRect(SCREEN_SCALE_FROM_RIGHT(99.0f), SCREEN_SCALE_Y(27.0f), SCREEN_SCALE_FROM_RIGHT(35.0f), SCREEN_SCALE_Y(91.0f)),
CRGBA(255, 255, 255, alpha),
- 0.015f,
- 0.015f,
- 1.0f,
- 0.0f,
- 0.015f,
- 1.0f,
- 1.0f,
- 1.0f);
+ 0.015f, 0.015f,
+ 1.0f, 0.0f,
+ 0.015f, 1.0f,
+ 1.0f, 1.0f);
} else {
CBaseModelInfo *weaponModel = CModelInfo::GetModelInfo(weaponInfo->m_nModelId);
RwTexDictionary *weaponTxd = CTxdStore::GetSlot(weaponModel->GetTxdSlot())->texDict;
@@ -483,13 +479,26 @@ void CHud::Draw()
RwTexture *weaponIcon = RwTexDictionaryFindNamedTexture(weaponTxd, weaponModel->GetName());
if (weaponIcon) {
RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR);
+#ifndef FIX_BUGS
+ const float xSize = SCREEN_SCALE_X(64.0f / 2.0f);
+ const float ySize = SCREEN_SCALE_Y(64.0f / 2.0f);
RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE);
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(weaponIcon));
- const float xSize = SCREEN_SCALE_X(64.0f / 2.0f);
- const float ySize = SCREEN_SCALE_X(64.0f / 2.0f);
CSprite::RenderOneXLUSprite(SCREEN_SCALE_FROM_RIGHT(99.0f) + xSize, SCREEN_SCALE_Y(25.0f) + ySize, 1.0f, xSize, ySize,
255, 255, 255, 255, 1.0f, 255);
RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE);
+#else
+ static CSprite2d sprite;
+ sprite.m_pTexture = weaponIcon;
+ sprite.Draw(
+ CRect(SCREEN_SCALE_FROM_RIGHT(99.0f), SCREEN_SCALE_Y(27.0f), SCREEN_SCALE_FROM_RIGHT(35.0f), SCREEN_SCALE_Y(91.0f)),
+ CRGBA(255, 255, 255, alpha),
+ 0.015f, 0.015f,
+ 1.0f, 0.0f,
+ 0.015f, 1.0f,
+ 1.0f, 1.0f);
+ sprite.m_pTexture = nil;
+#endif
}
}
}
diff --git a/src/render/WindModifiers.cpp b/src/render/WindModifiers.cpp
index 2061df6a..b72e362e 100644
--- a/src/render/WindModifiers.cpp
+++ b/src/render/WindModifiers.cpp
@@ -33,7 +33,7 @@ CWindModifiers::FindWindModifier(CVector pos, float *x, float *y)
float dist = (pos - Array[i].m_pos).Magnitude();
if (dist < MAX_FADE_DIST) {
float distFade = dist < MIN_FADE_DIST ? 1.0f : 1.0f - (dist - MIN_FADE_DIST) / (MAX_FADE_DIST - MIN_FADE_DIST);
- float heightFade = 1.0f - zDist / MAX_HEIGHT_DIST;
+ float heightFade = distFade * ((1.0f - zDist / MAX_HEIGHT_DIST) / 2.0f);
dir = (pos - Array[i].m_pos) * heightFade / dist;
bWasWindModifierFound = true;
}