Symbian^3 port

This commit is contained in:
Shinovon 2026-04-29 05:15:13 +05:00
parent 77cdaaf97e
commit 3eb71f2cc5
106 changed files with 2098 additions and 745 deletions

View file

@ -1,4 +1,7 @@
#pragma once
#if defined(__ARMCC_VERSION)
#pragma anon_unions
#endif
enum {
EFFECT_LIGHT,
@ -55,11 +58,13 @@ public:
};
struct Particle {
int particleType;
CVector dir;
// CVector dir;
float dirX, dirY, dirZ;
float scale;
};
struct Attractor {
CVector dir;
// CVector dir;
float dirX, dirY, dirZ;
int8 type;
uint8 probability;
};

View file

@ -470,9 +470,9 @@ CFont::Shutdown(void)
void
CFont::InitPerFrame(void)
{
Details.bank = CSprite2d::GetBank(30, Sprite[0].m_pTexture);
CSprite2d::GetBank(15, Sprite[1].m_pTexture);
CSprite2d::GetBank(15, Sprite[2].m_pTexture);
Details.bank = CSprite2d::GetBank(300, Sprite[0].m_pTexture);
CSprite2d::GetBank(100, Sprite[1].m_pTexture);
CSprite2d::GetBank(100, Sprite[2].m_pTexture);
#ifdef MORE_LANGUAGES
if (IsJapanese())
CSprite2d::GetBank(15, Sprite[3].m_pTexture);
@ -1625,4 +1625,4 @@ CFont::character_code(uint8 c)
if(c < 128)
return c;
return foreign_table[c-128];
}
}

View file

@ -74,6 +74,7 @@ CMBlur::MotionBlurOpen(RwCamera *cam)
debug("Available video memory %d\n", avaible);
#endif
#ifndef __SYMBIAN32__
if(BlurOn)
{
uint32 width = Pow(2.0f, int32(log2(RwRasterGetWidth (RwCameraGetRaster(cam))))+1);
@ -123,6 +124,7 @@ CMBlur::MotionBlurOpen(RwCamera *cam)
#endif
CreateImmediateModeData(cam, &rect);
}
#endif
else
{
rect.w = RwRasterGetWidth(RwCameraGetRaster(cam));
@ -215,6 +217,8 @@ CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, u
if( pFrontBuffer )
OverlayRender(cam, pFrontBuffer, color, type, bluralpha);
#else
#ifndef __SYMBIAN32__
if(BlurOn){
if(pFrontBuffer){
if(ms_bJustInitialised)
@ -228,6 +232,7 @@ CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, u
}else{
OverlayRender(cam, nil, color, type, bluralpha);
}
#endif
#endif
POP_RENDERGROUP();
#endif

View file

@ -601,22 +601,27 @@ CEntity::AddSteamsFromGround(CVector *unused)
if(effect->type != EFFECT_PARTICLE)
continue;
CVector dir;
dir.x = effect->particle.dirX;
dir.y = effect->particle.dirY;
dir.z = effect->particle.dirZ;
pos = GetMatrix() * effect->pos;
switch(effect->particle.particleType){
case 0:
CParticleObject::AddObject(POBJECT_PAVEMENT_STEAM, pos, effect->particle.dir, effect->particle.scale, false);
CParticleObject::AddObject(POBJECT_PAVEMENT_STEAM, pos, dir, effect->particle.scale, false);
break;
case 1:
CParticleObject::AddObject(POBJECT_WALL_STEAM, pos, effect->particle.dir, effect->particle.scale, false);
CParticleObject::AddObject(POBJECT_WALL_STEAM, pos, dir, effect->particle.scale, false);
break;
case 2:
CParticleObject::AddObject(POBJECT_DRY_ICE, pos, effect->particle.scale, false);
break;
case 3:
CParticleObject::AddObject(POBJECT_SMALL_FIRE, pos, effect->particle.dir, effect->particle.scale, false);
CParticleObject::AddObject(POBJECT_SMALL_FIRE, pos, dir, effect->particle.scale, false);
break;
case 4:
CParticleObject::AddObject(POBJECT_DARK_SMOKE, pos, effect->particle.dir, effect->particle.scale, false);
CParticleObject::AddObject(POBJECT_DARK_SMOKE, pos, dir, effect->particle.scale, false);
break;
}
}

View file

@ -82,7 +82,7 @@ CLinkList<EntityInfo> gSortedBuildings;
CVector CRenderer::ms_vecCameraPosition;
CVehicle *CRenderer::m_pFirstPersonVehicle;
bool CRenderer::m_loadingPriority;
float CRenderer::ms_lodDistScale = 1.2f;
float CRenderer::ms_lodDistScale = 0.7f;
// unused
BlockedRange CRenderer::aBlockedRanges[16];

View file

@ -5,7 +5,7 @@ class CVehicle;
enum {
// NB: not all values are allowed, check the code
#ifdef SQUEEZE_PERFORMANCE
NUM_RUBBISH_SHEETS = 32
NUM_RUBBISH_SHEETS = 16
#else
NUM_RUBBISH_SHEETS = 64
#endif

View file

@ -1,9 +1,9 @@
#pragma once
#define MAX_STOREDSHADOWS 48
#define MAX_STOREDSHADOWS 12
#define MAX_POLYBUNCHES 300
#define MAX_STATICSHADOWS 64
#define MAX_PERMAMENTSHADOWS 48
#define MAX_STATICSHADOWS 16
#define MAX_PERMAMENTSHADOWS 12
class CEntity;

View file

@ -137,10 +137,10 @@ void
CSpecialFX::Render(void)
{
PUSH_RENDERGROUP("CSpecialFX::Render");
CMotionBlurStreaks::Render();
CBulletTraces::Render();
CBrightLights::Render();
CShinyTexts::Render();
// CMotionBlurStreaks::Render();
// CBulletTraces::Render();
// CBrightLights::Render();
// CShinyTexts::Render();
CMoneyMessages::Render();
#ifdef NEW_RENDERER
if(!(gbNewRenderer && FredIsInFirstPersonCam()))

View file

@ -12,7 +12,7 @@ int32 CSprite2d::mCurrentBank;
RwTexture *CSprite2d::mpBankTextures[10];
int32 CSprite2d::mCurrentSprite[10];
int32 CSprite2d::mBankStart[10];
RwIm2DVertex CSprite2d::maBankVertices[500];
RwIm2DVertex CSprite2d::maBankVertices[3000];
void
CSprite2d::SetRecipNearClip(void)

View file

@ -7,7 +7,7 @@ class CSprite2d
static RwTexture *mpBankTextures[10];
static int32 mCurrentSprite[10];
static int32 mBankStart[10];
static RwIm2DVertex maBankVertices[500];
static RwIm2DVertex maBankVertices[3000];
static RwIm2DVertex maVertices[8];
public:
RwTexture *m_pTexture;

View file

@ -588,23 +588,24 @@ inline float
_GetWaterDrawDist()
{
// if z less then 15.0f return 1200.0f
if ( TheCamera.GetPosition().z < 15.0f )
return 1200.0f;
// if ( TheCamera.GetPosition().z < 15.0f )
// return 1200.0f;
// if z greater then 60.0f return 2000.0f;
if ( TheCamera.GetPosition().z > 60.0f )
return 2000.0f;
return (TheCamera.GetPosition().z + -15.0f) * 800.0f / 45.0f + 1200.0f;
return 700.0f;
return 4500.0f;
// return (TheCamera.GetPosition().z + -15.0f) * 800.0f / 45.0f + 1200.0f;
}
inline float
_GetWavyDrawDist()
{
if ( FindPlayerVehicle() && FindPlayerVehicle()->IsBoat() )
return 120.0f;
return 80.0f;
else
return 70.0f;
return 45.0f;
}
inline void

View file

@ -58,7 +58,7 @@ public:
};
enum {
NUM_RAIN_STREAKS = 35
NUM_RAIN_STREAKS = 10
};
struct tRainStreak
@ -68,4 +68,4 @@ struct tRainStreak
uint32 timer;
};
extern RwTexture* gpRainDropTex[4];
extern RwTexture* gpRainDropTex[4];