mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2024-11-22 18:30:27 +01:00
Commented out unused functions and variables
many unused functions and variables are now commented out You'll still get tons of warnings, which should mostly fall in one of the following categories: 1. Unnecessary variables or values generated from .es scripts 2. Pointers assigned to from functions with side-effects: DO NOT REMOVE! Like CEntity *penNew = CreateEntity_t(...); - even if penNew isn't used, CreateEntity() must be called there!
This commit is contained in:
parent
bee4102374
commit
72edf1c720
|
@ -114,8 +114,9 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
||||||
add_compile_options(-Wno-switch)
|
add_compile_options(-Wno-switch)
|
||||||
add_compile_options(-Wno-char-subscripts)
|
add_compile_options(-Wno-char-subscripts)
|
||||||
add_compile_options(-Wno-unknown-pragmas)
|
add_compile_options(-Wno-unknown-pragmas)
|
||||||
add_compile_options(-Wno-unused-variable)
|
add_compile_options(-Wno-unused-variable) # TODO: maybe only enable this for Entities
|
||||||
add_compile_options(-Wno-unused-value)
|
add_compile_options(-Wno-unused-value) # same here (the Scripts generate tons of unused variables and values)
|
||||||
|
add_compile_options(-Wno-missing-braces)
|
||||||
add_compile_options(-Wno-parentheses)
|
add_compile_options(-Wno-parentheses)
|
||||||
MESSAGE(WARNING, "re-enable some of the warnings some day!")
|
MESSAGE(WARNING, "re-enable some of the warnings some day!")
|
||||||
|
|
||||||
|
|
|
@ -904,14 +904,14 @@ void CAnimObject::PlayAnim(INDEX iNew, ULONG ulFlags)
|
||||||
class COneAnim *pCOA = &ao_AnimData->ad_Anims[ao_iCurrentAnim];
|
class COneAnim *pCOA = &ao_AnimData->ad_Anims[ao_iCurrentAnim];
|
||||||
TIME tmNow = _pTimer->CurrentTick();
|
TIME tmNow = _pTimer->CurrentTick();
|
||||||
TIME tmLength = GetCurrentAnimLength();
|
TIME tmLength = GetCurrentAnimLength();
|
||||||
FLOAT fFrame = ((_pTimer->CurrentTick() - ao_tmAnimStart)/pCOA->oa_SecsPerFrame);
|
FLOAT fFrame = ((tmNow - ao_tmAnimStart)/pCOA->oa_SecsPerFrame);
|
||||||
INDEX iFrame = INDEX(fFrame);
|
INDEX iFrame = INDEX(fFrame);
|
||||||
FLOAT fFract = fFrame-iFrame;
|
FLOAT fFract = fFrame-iFrame;
|
||||||
iFrame = ClipFrame(iFrame);
|
iFrame = ClipFrame(iFrame);
|
||||||
TIME tmPassed = (iFrame+fFract)*pCOA->oa_SecsPerFrame;
|
TIME tmPassed = (iFrame+fFract)*pCOA->oa_SecsPerFrame;
|
||||||
TIME tmLeft = tmLength-tmPassed;
|
TIME tmLeft = tmLength-tmPassed;
|
||||||
// set time ahead to end of the current animation
|
// set time ahead to end of the current animation
|
||||||
ao_tmAnimStart = _pTimer->CurrentTick()+tmLeft;
|
ao_tmAnimStart = tmNow+tmLeft;
|
||||||
// remember last animation
|
// remember last animation
|
||||||
ao_iLastAnim = ao_iCurrentAnim;
|
ao_iLastAnim = ao_iCurrentAnim;
|
||||||
// set new animation number
|
// set new animation number
|
||||||
|
|
|
@ -110,7 +110,7 @@ CDynamicStackArray<CTString> _shell_astrTempStrings;
|
||||||
CDynamicStackArray<CTString> _shell_astrExtStrings;
|
CDynamicStackArray<CTString> _shell_astrExtStrings;
|
||||||
CDynamicStackArray<FLOAT> _shell_afExtFloats;
|
CDynamicStackArray<FLOAT> _shell_afExtFloats;
|
||||||
|
|
||||||
static const char *strCommandLine = "";
|
//static const char *strCommandLine = "";
|
||||||
|
|
||||||
FLOAT tmp_af[10] = { 0 };
|
FLOAT tmp_af[10] = { 0 };
|
||||||
INDEX tmp_ai[10] = { 0 };
|
INDEX tmp_ai[10] = { 0 };
|
||||||
|
|
|
@ -1433,7 +1433,7 @@ static INDEX ExpandFilePath_read(ULONG ulType, const CTFileName &fnmFile, CTFile
|
||||||
{
|
{
|
||||||
// search for the file in zips
|
// search for the file in zips
|
||||||
INDEX iFileInZip = UNZIPGetFileIndex(fnmFile);
|
INDEX iFileInZip = UNZIPGetFileIndex(fnmFile);
|
||||||
const BOOL userdir_not_basedir = (_fnmUserDir != _fnmApplicationPath);
|
//const BOOL userdir_not_basedir = (_fnmUserDir != _fnmApplicationPath);
|
||||||
|
|
||||||
// if a mod is active
|
// if a mod is active
|
||||||
if (_fnmMod!="") {
|
if (_fnmMod!="") {
|
||||||
|
|
|
@ -161,8 +161,8 @@ void CTimer_TimerFunc_internal(void)
|
||||||
CTimerValue tvTimeNow = _pTimer->GetHighPrecisionTimer();
|
CTimerValue tvTimeNow = _pTimer->GetHighPrecisionTimer();
|
||||||
TIME tmTickNow = _pTimer->tm_RealTimeTimer;
|
TIME tmTickNow = _pTimer->tm_RealTimeTimer;
|
||||||
// calculate how long has passed since we have last been on time
|
// calculate how long has passed since we have last been on time
|
||||||
TIME tmTimeDelay = (TIME)(tvTimeNow - _pTimer->tm_tvLastTimeOnTime).GetSeconds();
|
//TIME tmTimeDelay = (TIME)(tvTimeNow - _pTimer->tm_tvLastTimeOnTime).GetSeconds();
|
||||||
TIME tmTickDelay = (tmTickNow - _pTimer->tm_tmLastTickOnTime);
|
//TIME tmTickDelay = (tmTickNow - _pTimer->tm_tmLastTickOnTime);
|
||||||
|
|
||||||
_sfStats.StartTimer(CStatForm::STI_TIMER);
|
_sfStats.StartTimer(CStatForm::STI_TIMER);
|
||||||
// if we are keeping up to time (more or less)
|
// if we are keeping up to time (more or less)
|
||||||
|
@ -209,13 +209,14 @@ Uint32 CTimer_TimerFunc_SDL(Uint32 interval, void* param)
|
||||||
|
|
||||||
#pragma inline_depth()
|
#pragma inline_depth()
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef PLATFORM_WIN32 // DG: not used on other platforms
|
||||||
#define MAX_MEASURE_TRIES 5
|
#define MAX_MEASURE_TRIES 5
|
||||||
static INDEX _aiTries[MAX_MEASURE_TRIES];
|
static INDEX _aiTries[MAX_MEASURE_TRIES];
|
||||||
|
|
||||||
// Get processor speed in Hertz
|
// Get processor speed in Hertz
|
||||||
static __int64 GetCPUSpeedHz(void)
|
static __int64 GetCPUSpeedHz(void)
|
||||||
{
|
{
|
||||||
#ifdef PLATFORM_WIN32
|
|
||||||
// get the frequency of the 'high' precision timer
|
// get the frequency of the 'high' precision timer
|
||||||
__int64 llTimerFrequency;
|
__int64 llTimerFrequency;
|
||||||
BOOL bPerformanceCounterPresent = QueryPerformanceFrequency((LARGE_INTEGER*)&llTimerFrequency);
|
BOOL bPerformanceCounterPresent = QueryPerformanceFrequency((LARGE_INTEGER*)&llTimerFrequency);
|
||||||
|
@ -296,14 +297,8 @@ static __int64 GetCPUSpeedHz(void)
|
||||||
// use measured value
|
// use measured value
|
||||||
return (__int64)slSpeedRead*1000000;
|
return (__int64)slSpeedRead*1000000;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
|
|
||||||
STUBBED("I hope this isn't critical...");
|
|
||||||
return(1);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif // PLATFORM_WIN32
|
||||||
|
|
||||||
|
|
||||||
#if PLATFORM_MACOSX
|
#if PLATFORM_MACOSX
|
||||||
|
|
|
@ -509,7 +509,7 @@ CBrushPolygon &CBrushPolygon::CopyPolygon(CBrushPolygon &bp)
|
||||||
bpo_boxBoundingBox=bp.bpo_boxBoundingBox;
|
bpo_boxBoundingBox=bp.bpo_boxBoundingBox;
|
||||||
bpo_pbscSector=bp.bpo_pbscSector;
|
bpo_pbscSector=bp.bpo_pbscSector;
|
||||||
bpo_rsOtherSideSectors.Clear();
|
bpo_rsOtherSideSectors.Clear();
|
||||||
bpo_lhShadingInfos;
|
//bpo_lhShadingInfos; // FIXME: DG: was this missing "= bp.bpo_lhShadingInfos" or something like that?
|
||||||
bpo_iInWorld=bp.bpo_iInWorld;
|
bpo_iInWorld=bp.bpo_iInWorld;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -605,7 +605,7 @@ BOOL CBrushShadowMap::IsShadowFlat( COLOR &colFlat)
|
||||||
COLOR col;
|
COLOR col;
|
||||||
UBYTE ubR,ubG,ubB, ubR1,ubG1,ubB1;
|
UBYTE ubR,ubG,ubB, ubR1,ubG1,ubB1;
|
||||||
SLONG slR=0,slG=0,slB=0;
|
SLONG slR=0,slG=0,slB=0;
|
||||||
INDEX ctPointLights=0;
|
//INDEX ctPointLights=0;
|
||||||
CBrushPolygon *pbpo = GetBrushPolygon();
|
CBrushPolygon *pbpo = GetBrushPolygon();
|
||||||
|
|
||||||
// if the shadowmap is not using the shading mode
|
// if the shadowmap is not using the shading mode
|
||||||
|
|
|
@ -480,7 +480,7 @@ void CTriangularizer::FindExistingTriangleEdges(void)
|
||||||
|
|
||||||
// for each edge
|
// for each edge
|
||||||
FOREACHINDYNAMICARRAY(tr_abedEdges, CBrushEdge, itbed) {
|
FOREACHINDYNAMICARRAY(tr_abedEdges, CBrushEdge, itbed) {
|
||||||
CBrushEdge *pbed = itbed;
|
//CBrushEdge *pbed = itbed;
|
||||||
|
|
||||||
// if it is the bottom edge of the triangle
|
// if it is the bottom edge of the triangle
|
||||||
if (tr_pbedBottom == itbed) {
|
if (tr_pbedBottom == itbed) {
|
||||||
|
@ -517,7 +517,7 @@ BOOL CTriangularizer::CheckTriangleAgainstEdges(void)
|
||||||
{
|
{
|
||||||
// for each edge
|
// for each edge
|
||||||
FOREACHINDYNAMICARRAY(tr_abedEdges, CBrushEdge, itbed) {
|
FOREACHINDYNAMICARRAY(tr_abedEdges, CBrushEdge, itbed) {
|
||||||
CBrushEdge *pbed = itbed;
|
//CBrushEdge *pbed = itbed;
|
||||||
|
|
||||||
// if it is the bottom edge of the triangle
|
// if it is the bottom edge of the triangle
|
||||||
if (tr_pbedBottom == itbed) {
|
if (tr_pbedBottom == itbed) {
|
||||||
|
|
|
@ -67,7 +67,9 @@ CTCriticalSection zip_csLock; // critical section for access to zlib functions
|
||||||
|
|
||||||
|
|
||||||
// to keep system gamma table
|
// to keep system gamma table
|
||||||
|
#ifdef PLATFORM_WIN32 // DG: other platforms don't (currently?) use this
|
||||||
static UWORD auwSystemGamma[256*3];
|
static UWORD auwSystemGamma[256*3];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// OS info
|
// OS info
|
||||||
|
@ -818,7 +820,7 @@ ENGINE_API void SE_UpdateWindowHandle( HWND hwndMain)
|
||||||
_bFullScreen = _pGfx!=NULL && (_pGfx->gl_ulFlags&GLF_FULLSCREEN);
|
_bFullScreen = _pGfx!=NULL && (_pGfx->gl_ulFlags&GLF_FULLSCREEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef PLATFORM_WIN32
|
||||||
static BOOL TouchBlock(UBYTE *pubMemoryBlock, INDEX ctBlockSize)
|
static BOOL TouchBlock(UBYTE *pubMemoryBlock, INDEX ctBlockSize)
|
||||||
{
|
{
|
||||||
#if (defined __MSC_VER)
|
#if (defined __MSC_VER)
|
||||||
|
@ -856,12 +858,13 @@ touchLoop:
|
||||||
// !!! More importantly, will this help if the system is paging to disk
|
// !!! More importantly, will this help if the system is paging to disk
|
||||||
// !!! like mad anyhow? Leaving this as a no-op for most systems seems safe
|
// !!! like mad anyhow? Leaving this as a no-op for most systems seems safe
|
||||||
// !!! to me. --ryan.
|
// !!! to me. --ryan.
|
||||||
|
// DG: put this into #ifdef PLATFORM_WIN32 because otherwise the function is not called anyway
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
#endif // PLATFORM_WIN32
|
||||||
|
|
||||||
// pretouch all memory commited by process
|
// pretouch all memory commited by process
|
||||||
BOOL _bNeedPretouch = FALSE;
|
BOOL _bNeedPretouch = FALSE;
|
||||||
|
|
|
@ -481,7 +481,7 @@ void CEntity::GetCollisionBoxParameters(INDEX iBox, FLOATaabbox3D &box, INDEX &i
|
||||||
if(en_RenderType==RT_SKAMODEL || en_RenderType==RT_SKAEDITORMODEL) {
|
if(en_RenderType==RT_SKAMODEL || en_RenderType==RT_SKAEDITORMODEL) {
|
||||||
box.minvect = GetModelInstance()->GetCollisionBoxMin(iBox);
|
box.minvect = GetModelInstance()->GetCollisionBoxMin(iBox);
|
||||||
box.maxvect = GetModelInstance()->GetCollisionBoxMax(iBox);
|
box.maxvect = GetModelInstance()->GetCollisionBoxMax(iBox);
|
||||||
FLOATaabbox3D boxNS = box;
|
//FLOATaabbox3D boxNS = box;
|
||||||
box.StretchByVector(GetModelInstance()->mi_vStretch);
|
box.StretchByVector(GetModelInstance()->mi_vStretch);
|
||||||
iEquality = GetModelInstance()->GetCollisionBoxDimensionEquality(iBox);
|
iEquality = GetModelInstance()->GetCollisionBoxDimensionEquality(iBox);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1833,7 +1833,7 @@ void CEntity::FindSectorsAroundEntity(void)
|
||||||
|
|
||||||
// for each brush in the world
|
// for each brush in the world
|
||||||
FOREACHINDYNAMICARRAY(en_pwoWorld->wo_baBrushes.ba_abrBrushes, CBrush3D, itbr) {
|
FOREACHINDYNAMICARRAY(en_pwoWorld->wo_baBrushes.ba_abrBrushes, CBrush3D, itbr) {
|
||||||
CBrush3D &br=*itbr;
|
//CBrush3D &br=*itbr;
|
||||||
// if the brush entity is not zoning
|
// if the brush entity is not zoning
|
||||||
if (itbr->br_penEntity==NULL || !(itbr->br_penEntity->en_ulFlags&ENF_ZONING)) {
|
if (itbr->br_penEntity==NULL || !(itbr->br_penEntity->en_ulFlags&ENF_ZONING)) {
|
||||||
// skip it
|
// skip it
|
||||||
|
@ -3146,7 +3146,7 @@ void CEntity::InflictBoxDamage(CEntity *penInflictor, enum DamageType dmtType,
|
||||||
if (en.en_pciCollisionInfo==NULL) {
|
if (en.en_pciCollisionInfo==NULL) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
CCollisionInfo *pci = en.en_pciCollisionInfo;
|
//CCollisionInfo *pci = en.en_pciCollisionInfo;
|
||||||
// if entity is not allowed to execute now
|
// if entity is not allowed to execute now
|
||||||
if (!en.IsAllowedForPrediction()) {
|
if (!en.IsAllowedForPrediction()) {
|
||||||
// do nothing
|
// do nothing
|
||||||
|
|
|
@ -452,7 +452,7 @@ void CWorld::CopyEntities(CWorld &woOther, CDynamicContainer<CEntity> &cenToCopy
|
||||||
|
|
||||||
// for each of the created entities
|
// for each of the created entities
|
||||||
{FOREACHINSTATICARRAY(_aprRemaps, CPointerRemapping, itpr) {
|
{FOREACHINSTATICARRAY(_aprRemaps, CPointerRemapping, itpr) {
|
||||||
CEntity *penOriginal = itpr->pr_penOriginal;
|
//CEntity *penOriginal = itpr->pr_penOriginal;
|
||||||
CEntity *penCopy = itpr->pr_penCopy;
|
CEntity *penCopy = itpr->pr_penCopy;
|
||||||
if (_bReinitEntitiesWhileCopying) {
|
if (_bReinitEntitiesWhileCopying) {
|
||||||
// init the new copy
|
// init the new copy
|
||||||
|
@ -469,7 +469,7 @@ void CWorld::CopyEntities(CWorld &woOther, CDynamicContainer<CEntity> &cenToCopy
|
||||||
|
|
||||||
// for each of the created entities
|
// for each of the created entities
|
||||||
{FOREACHINSTATICARRAY(_aprRemaps, CPointerRemapping, itpr) {
|
{FOREACHINSTATICARRAY(_aprRemaps, CPointerRemapping, itpr) {
|
||||||
CEntity *penOriginal = itpr->pr_penOriginal;
|
//CEntity *penOriginal = itpr->pr_penOriginal;
|
||||||
CEntity *penCopy = itpr->pr_penCopy;
|
CEntity *penCopy = itpr->pr_penCopy;
|
||||||
|
|
||||||
// if this is a brush
|
// if this is a brush
|
||||||
|
@ -718,7 +718,7 @@ void CWorld::CopyEntitiesToPredictors(CDynamicContainer<CEntity> &cenToCopy)
|
||||||
|
|
||||||
// for each of the created entities
|
// for each of the created entities
|
||||||
{FOREACHINSTATICARRAY(_aprRemaps, CPointerRemapping, itpr) {
|
{FOREACHINSTATICARRAY(_aprRemaps, CPointerRemapping, itpr) {
|
||||||
CEntity *penOriginal = itpr->pr_penOriginal;
|
//CEntity *penOriginal = itpr->pr_penOriginal;
|
||||||
CEntity *penCopy = itpr->pr_penCopy;
|
CEntity *penCopy = itpr->pr_penCopy;
|
||||||
|
|
||||||
// if this is a brush
|
// if this is a brush
|
||||||
|
|
|
@ -96,7 +96,7 @@ void CEntity::WriteEntityPointer_t(CTStream *ostrm, CEntityPointer pen)
|
||||||
void CEntity::ReadProperties_t(CTStream &istrm) // throw char *
|
void CEntity::ReadProperties_t(CTStream &istrm) // throw char *
|
||||||
{
|
{
|
||||||
istrm.ExpectID_t("PRPS"); // 'properties'
|
istrm.ExpectID_t("PRPS"); // 'properties'
|
||||||
CDLLEntityClass *pdecDLLClass = en_pecClass->ec_pdecDLLClass;
|
//CDLLEntityClass *pdecDLLClass = en_pecClass->ec_pdecDLLClass;
|
||||||
INDEX ctProperties;
|
INDEX ctProperties;
|
||||||
// read number of properties (note that this doesn't have to be same as number
|
// read number of properties (note that this doesn't have to be same as number
|
||||||
// of properties in the class (class might have changed))
|
// of properties in the class (class might have changed))
|
||||||
|
@ -104,7 +104,7 @@ void CEntity::ReadProperties_t(CTStream &istrm) // throw char *
|
||||||
|
|
||||||
// for all saved properties
|
// for all saved properties
|
||||||
for(INDEX iProperty=0; iProperty<ctProperties; iProperty++) {
|
for(INDEX iProperty=0; iProperty<ctProperties; iProperty++) {
|
||||||
pdecDLLClass->dec_ctProperties;
|
//pdecDLLClass->dec_ctProperties;
|
||||||
// read packed identifier
|
// read packed identifier
|
||||||
ULONG ulIDAndType;
|
ULONG ulIDAndType;
|
||||||
istrm>>ulIDAndType;
|
istrm>>ulIDAndType;
|
||||||
|
|
|
@ -34,6 +34,7 @@ extern const D3DDEVTYPE d3dDevType;
|
||||||
// list of all modes avaliable through CDS
|
// list of all modes avaliable through CDS
|
||||||
static CListHead _lhCDSModes;
|
static CListHead _lhCDSModes;
|
||||||
|
|
||||||
|
#ifdef PLATFORM_WIN32 // DG: all this code is (currently?) only used for windows.
|
||||||
class CResolution {
|
class CResolution {
|
||||||
public:
|
public:
|
||||||
PIX re_pixSizeI;
|
PIX re_pixSizeI;
|
||||||
|
@ -74,8 +75,6 @@ static CResolution _areResolutions[] =
|
||||||
static const INDEX MAX_RESOLUTIONS = sizeof(_areResolutions)/sizeof(_areResolutions[0]);
|
static const INDEX MAX_RESOLUTIONS = sizeof(_areResolutions)/sizeof(_areResolutions[0]);
|
||||||
|
|
||||||
|
|
||||||
#ifdef PLATFORM_WIN32
|
|
||||||
|
|
||||||
// initialize CDS support (enumerate modes at startup)
|
// initialize CDS support (enumerate modes at startup)
|
||||||
void CGfxLibrary::InitAPIs(void)
|
void CGfxLibrary::InitAPIs(void)
|
||||||
{
|
{
|
||||||
|
@ -240,7 +239,7 @@ void CGfxLibrary::InitAPIs(void)
|
||||||
|
|
||||||
// fill OpenGL adapter info
|
// fill OpenGL adapter info
|
||||||
CDisplayAdapter *pda;
|
CDisplayAdapter *pda;
|
||||||
INDEX iResolution;
|
//INDEX iResolution;
|
||||||
|
|
||||||
gl_gaAPI[GAT_OGL].ga_ctAdapters = 1;
|
gl_gaAPI[GAT_OGL].ga_ctAdapters = 1;
|
||||||
gl_gaAPI[GAT_OGL].ga_iCurrentAdapter = 0;
|
gl_gaAPI[GAT_OGL].ga_iCurrentAdapter = 0;
|
||||||
|
|
|
@ -33,7 +33,7 @@ static PIX _pixSizeI;
|
||||||
static PIX _pixSizeJ;
|
static PIX _pixSizeJ;
|
||||||
static CTimerValue _tv;
|
static CTimerValue _tv;
|
||||||
static BOOL _bBlend = FALSE;
|
static BOOL _bBlend = FALSE;
|
||||||
static BOOL _bVisible = FALSE;
|
//static BOOL _bVisible = FALSE;
|
||||||
static BOOL _bTexture = FALSE;
|
static BOOL _bTexture = FALSE;
|
||||||
static BOOL _bDepth = FALSE;
|
static BOOL _bDepth = FALSE;
|
||||||
static BOOL _bMultiTexture = FALSE;
|
static BOOL _bMultiTexture = FALSE;
|
||||||
|
|
|
@ -274,7 +274,7 @@ void StartFog( CFogParameters &fp, const FLOAT3D &vViewPosAbs, const FLOATmatrix
|
||||||
// exp fog
|
// exp fog
|
||||||
case AT_EXP: {
|
case AT_EXP: {
|
||||||
// calculate linear step for the fog parameter
|
// calculate linear step for the fog parameter
|
||||||
FLOAT fT = 0.0f;
|
//FLOAT fT = 0.0f;
|
||||||
FLOAT fTStep = 1.0f/pixSizeL*fFar*fDensity*fA;
|
FLOAT fTStep = 1.0f/pixSizeL*fFar*fDensity*fA;
|
||||||
// fog is exp(-t) function of fog parameter, now calculate
|
// fog is exp(-t) function of fog parameter, now calculate
|
||||||
// step (actually multiplication) for the fog
|
// step (actually multiplication) for the fog
|
||||||
|
@ -287,7 +287,7 @@ void StartFog( CFogParameters &fp, const FLOAT3D &vViewPosAbs, const FLOATmatrix
|
||||||
} break;
|
} break;
|
||||||
case AT_EXP2: {
|
case AT_EXP2: {
|
||||||
// calculate linear step for the fog parameter
|
// calculate linear step for the fog parameter
|
||||||
FLOAT fT = 0.0f;
|
//FLOAT fT = 0.0f;
|
||||||
FLOAT fTStep = 1.0f/pixSizeL*fFar*fDensity*fA;
|
FLOAT fTStep = 1.0f/pixSizeL*fFar*fDensity*fA;
|
||||||
// fog is exp(-t^2) function of fog parameter, now calculate
|
// fog is exp(-t^2) function of fog parameter, now calculate
|
||||||
// first and second order step (actually multiplication) for the fog
|
// first and second order step (actually multiplication) for the fog
|
||||||
|
|
|
@ -91,7 +91,9 @@ extern BOOL CVA_bModels;
|
||||||
static FLOAT _fLastBrightness, _fLastContrast, _fLastGamma;
|
static FLOAT _fLastBrightness, _fLastContrast, _fLastGamma;
|
||||||
static FLOAT _fLastBiasR, _fLastBiasG, _fLastBiasB;
|
static FLOAT _fLastBiasR, _fLastBiasG, _fLastBiasB;
|
||||||
static INDEX _iLastLevels;
|
static INDEX _iLastLevels;
|
||||||
|
#ifdef PLATFORM_WIN32 // DG: not used on other platforms
|
||||||
static UWORD _auwGammaTable[256*3];
|
static UWORD _auwGammaTable[256*3];
|
||||||
|
#endif
|
||||||
|
|
||||||
// table for clipping [-512..+1024] to [0..255]
|
// table for clipping [-512..+1024] to [0..255]
|
||||||
static UBYTE aubClipByte[256*2+ 256 +256*3];
|
static UBYTE aubClipByte[256*2+ 256 +256*3];
|
||||||
|
@ -1213,6 +1215,7 @@ void CGfxLibrary::Init(void)
|
||||||
// !!! FIXME : rcg11232001 Scripts/CustomOptions/GFX-AdvancedRendering.cfg
|
// !!! FIXME : rcg11232001 Scripts/CustomOptions/GFX-AdvancedRendering.cfg
|
||||||
// !!! FIXME : rcg11232001 references non-existing cvars, so I'm adding
|
// !!! FIXME : rcg11232001 references non-existing cvars, so I'm adding
|
||||||
// !!! FIXME : rcg11232001 them here for now.
|
// !!! FIXME : rcg11232001 them here for now.
|
||||||
|
// FXME: DG: so why are they commented out?
|
||||||
// _pShell->DeclareSymbol("persistent user INDEX mdl_bRenderBump;", (void *) &mdl_bRenderBump);
|
// _pShell->DeclareSymbol("persistent user INDEX mdl_bRenderBump;", (void *) &mdl_bRenderBump);
|
||||||
// _pShell->DeclareSymbol("persistent user FLOAT ogl_fTextureAnisotropy;", (void *) &ogl_fTextureAnisotropy);
|
// _pShell->DeclareSymbol("persistent user FLOAT ogl_fTextureAnisotropy;", (void *) &ogl_fTextureAnisotropy);
|
||||||
_pShell->DeclareSymbol("persistent user FLOAT tex_fNormalSize;", (void *) &tex_fNormalSize);
|
_pShell->DeclareSymbol("persistent user FLOAT tex_fNormalSize;", (void *) &tex_fNormalSize);
|
||||||
|
@ -1609,11 +1612,10 @@ void CGfxLibrary::UnlockDrawPort( CDrawPort *pdpToUnlock)
|
||||||
/* Create a new window canvas. */
|
/* Create a new window canvas. */
|
||||||
void CGfxLibrary::CreateWindowCanvas(void *hWnd, CViewPort **ppvpNew, CDrawPort **ppdpNew)
|
void CGfxLibrary::CreateWindowCanvas(void *hWnd, CViewPort **ppvpNew, CDrawPort **ppdpNew)
|
||||||
{
|
{
|
||||||
RECT rectWindow; // rectangle for the client area of the window
|
|
||||||
|
|
||||||
// get the dimensions from the window
|
// get the dimensions from the window
|
||||||
// !!! FIXME : rcg11052001 Abstract this.
|
// !!! FIXME : rcg11052001 Abstract this.
|
||||||
#ifdef PLATFORM_WIN32
|
#ifdef PLATFORM_WIN32
|
||||||
|
RECT rectWindow; // rectangle for the client area of the window
|
||||||
GetClientRect( (HWND)hWnd, &rectWindow);
|
GetClientRect( (HWND)hWnd, &rectWindow);
|
||||||
const PIX pixWidth = rectWindow.right - rectWindow.left;
|
const PIX pixWidth = rectWindow.right - rectWindow.left;
|
||||||
const PIX pixHeight = rectWindow.bottom - rectWindow.top;
|
const PIX pixHeight = rectWindow.bottom - rectWindow.top;
|
||||||
|
@ -1627,7 +1629,7 @@ void CGfxLibrary::CreateWindowCanvas(void *hWnd, CViewPort **ppvpNew, CDrawPort
|
||||||
*ppvpNew = NULL;
|
*ppvpNew = NULL;
|
||||||
*ppdpNew = NULL;
|
*ppdpNew = NULL;
|
||||||
// create a new viewport
|
// create a new viewport
|
||||||
if (*ppvpNew = new CViewPort( pixWidth, pixHeight, (HWND)hWnd)) {
|
if((*ppvpNew = new CViewPort( pixWidth, pixHeight, (HWND)hWnd))) {
|
||||||
// and it's drawport
|
// and it's drawport
|
||||||
*ppdpNew = &(*ppvpNew)->vp_Raster.ra_MainDrawPort;
|
*ppdpNew = &(*ppvpNew)->vp_Raster.ra_MainDrawPort;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1802,7 +1804,9 @@ INDEX _ctProbeShdU = 0;
|
||||||
INDEX _ctProbeShdB = 0;
|
INDEX _ctProbeShdB = 0;
|
||||||
INDEX _ctFullShdU = 0;
|
INDEX _ctFullShdU = 0;
|
||||||
SLONG _slFullShdUBytes = 0;
|
SLONG _slFullShdUBytes = 0;
|
||||||
|
#ifdef PLATFORM_WIN32 // only used there
|
||||||
static BOOL GenerateGammaTable(void);
|
static BOOL GenerateGammaTable(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2064,7 +2068,7 @@ void CGfxLibrary::UnlockRaster( CRaster *praToUnlock)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef PLATFORM_WIN32 // DG: only used on windows
|
||||||
// generates gamma table and returns true if gamma table has been changed
|
// generates gamma table and returns true if gamma table has been changed
|
||||||
static BOOL GenerateGammaTable(void)
|
static BOOL GenerateGammaTable(void)
|
||||||
{
|
{
|
||||||
|
@ -2140,7 +2144,7 @@ static BOOL GenerateGammaTable(void)
|
||||||
// done
|
// done
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
#endif // PLATFORM_WIN32
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
@ -220,7 +220,7 @@ void UploadTexture_OGL( ULONG *pulTexture, PIX pixSizeU, PIX pixSizeV,
|
||||||
|
|
||||||
#else
|
#else
|
||||||
// Basically average every other pixel...
|
// Basically average every other pixel...
|
||||||
UWORD w = 0;
|
//UWORD w = 0;
|
||||||
UBYTE *dptr = (UBYTE *) pulDst;
|
UBYTE *dptr = (UBYTE *) pulDst;
|
||||||
UBYTE *sptr = (UBYTE *) pulSrc;
|
UBYTE *sptr = (UBYTE *) pulSrc;
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
@ -72,7 +72,7 @@ FLOAT GFX_fLastF = 0;
|
||||||
INDEX GFX_ctVertices = 0;
|
INDEX GFX_ctVertices = 0;
|
||||||
|
|
||||||
// for D3D: mark need for clipping (when wants to be disable but cannot be because of user clip plane)
|
// for D3D: mark need for clipping (when wants to be disable but cannot be because of user clip plane)
|
||||||
static BOOL _bWantsClipping = TRUE;
|
//static BOOL _bWantsClipping = TRUE;
|
||||||
// current color mask (for Get... function)
|
// current color mask (for Get... function)
|
||||||
static ULONG _ulCurrentColorMask = (CT_RMASK|CT_GMASK|CT_BMASK|CT_AMASK);
|
static ULONG _ulCurrentColorMask = (CT_RMASK|CT_GMASK|CT_BMASK|CT_AMASK);
|
||||||
// locking state for OGL
|
// locking state for OGL
|
||||||
|
@ -81,7 +81,7 @@ static BOOL _bCVAReallyLocked = FALSE;
|
||||||
// clip plane and last view matrix for D3D
|
// clip plane and last view matrix for D3D
|
||||||
FLOAT D3D_afClipPlane[4] = {0,0,0,0};
|
FLOAT D3D_afClipPlane[4] = {0,0,0,0};
|
||||||
FLOAT D3D_afViewMatrix[16] = {0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0};
|
FLOAT D3D_afViewMatrix[16] = {0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0};
|
||||||
static FLOAT _afActiveClipPlane[4] = {0,0,0,0};
|
//static FLOAT _afActiveClipPlane[4] = {0,0,0,0};
|
||||||
|
|
||||||
// Truform/N-Patches
|
// Truform/N-Patches
|
||||||
INDEX truform_iLevel = -1;
|
INDEX truform_iLevel = -1;
|
||||||
|
|
|
@ -2673,7 +2673,7 @@ void DrawTriangle_Mask( UBYTE *pubMaskPlane, SLONG slMaskWidth, SLONG slMaskHeig
|
||||||
// find row counter and max delta J
|
// find row counter and max delta J
|
||||||
SLONG ctJShort1 = pixMdJ - pixUpJ;
|
SLONG ctJShort1 = pixMdJ - pixUpJ;
|
||||||
SLONG ctJShort2 = pixDnJ - pixMdJ;
|
SLONG ctJShort2 = pixDnJ - pixMdJ;
|
||||||
SLONG ctJLong = pixDnJ - pixUpJ;
|
//SLONG ctJLong = pixDnJ - pixUpJ;
|
||||||
|
|
||||||
FLOAT currK, curr1oK, currUoK, currVoK;
|
FLOAT currK, curr1oK, currUoK, currVoK;
|
||||||
PIX pixJ = pixUpJ;
|
PIX pixJ = pixUpJ;
|
||||||
|
|
|
@ -78,6 +78,7 @@ static __forceinline CTStream &operator>>(CTStream &strm, PCXHeader &t) {
|
||||||
return strm;
|
return strm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0 // DG: unused.
|
||||||
static __forceinline CTStream &operator<<(CTStream &strm, const PCXHeader &t) {
|
static __forceinline CTStream &operator<<(CTStream &strm, const PCXHeader &t) {
|
||||||
strm<<t.MagicID;
|
strm<<t.MagicID;
|
||||||
strm<<t.Version;
|
strm<<t.Version;
|
||||||
|
@ -99,6 +100,7 @@ static __forceinline CTStream &operator<<(CTStream &strm, const PCXHeader &t) {
|
||||||
strm.Write_t(t.Filler, sizeof (t.Filler));
|
strm.Write_t(t.Filler, sizeof (t.Filler));
|
||||||
return strm;
|
return strm;
|
||||||
}
|
}
|
||||||
|
#endif // 0
|
||||||
|
|
||||||
// TARGA header structure
|
// TARGA header structure
|
||||||
struct TGAHeader
|
struct TGAHeader
|
||||||
|
@ -129,6 +131,7 @@ static __forceinline CTStream &operator>>(CTStream &strm, TGAHeader &t) {
|
||||||
return(strm);
|
return(strm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0 // DG: unused.
|
||||||
static __forceinline CTStream &operator<<(CTStream &strm, const TGAHeader &t) {
|
static __forceinline CTStream &operator<<(CTStream &strm, const TGAHeader &t) {
|
||||||
strm<<t.IdLength;
|
strm<<t.IdLength;
|
||||||
strm<<t.ColorMapType;
|
strm<<t.ColorMapType;
|
||||||
|
@ -142,6 +145,7 @@ static __forceinline CTStream &operator<<(CTStream &strm, const TGAHeader &t) {
|
||||||
strm<<t.Descriptor;
|
strm<<t.Descriptor;
|
||||||
return(strm);
|
return(strm);
|
||||||
}
|
}
|
||||||
|
#endif // 0 (unused)
|
||||||
|
|
||||||
|
|
||||||
/******************************************************
|
/******************************************************
|
||||||
|
|
|
@ -843,6 +843,7 @@ void CTextureData::Read_t( CTStream *inFile)
|
||||||
*inFile >> ctEffectSources;
|
*inFile >> ctEffectSources;
|
||||||
// add requested number of members to effect source array
|
// add requested number of members to effect source array
|
||||||
CTextureEffectSource *pEffectSources = td_ptegEffect->teg_atesEffectSources.New( ctEffectSources);
|
CTextureEffectSource *pEffectSources = td_ptegEffect->teg_atesEffectSources.New( ctEffectSources);
|
||||||
|
(void)pEffectSources;
|
||||||
|
|
||||||
// read whole dynamic array of effect sources
|
// read whole dynamic array of effect sources
|
||||||
FOREACHINDYNAMICARRAY( td_ptegEffect->teg_atesEffectSources, CTextureEffectSource, itEffectSource)
|
FOREACHINDYNAMICARRAY( td_ptegEffect->teg_atesEffectSources, CTextureEffectSource, itEffectSource)
|
||||||
|
|
|
@ -2915,9 +2915,9 @@ static void AnimateFire( SLONG slDensity)
|
||||||
// use only one buffer (otherwise it's not working)
|
// use only one buffer (otherwise it's not working)
|
||||||
UBYTE *pubNew = (UBYTE*)_ptdEffect->td_pubBuffer2;
|
UBYTE *pubNew = (UBYTE*)_ptdEffect->td_pubBuffer2;
|
||||||
SLONG slBufferMask = _pixBufferWidth*_pixBufferHeight -1;
|
SLONG slBufferMask = _pixBufferWidth*_pixBufferHeight -1;
|
||||||
SLONG slColumnModulo = _pixBufferWidth*(_pixBufferHeight-2) -1;
|
|
||||||
|
|
||||||
#if ASMOPT == 1
|
#if ASMOPT == 1
|
||||||
|
SLONG slColumnModulo = _pixBufferWidth*(_pixBufferHeight-2) -1;
|
||||||
|
|
||||||
#if (defined __MSVC_INLINE__)
|
#if (defined __MSVC_INLINE__)
|
||||||
__asm {
|
__asm {
|
||||||
|
|
|
@ -329,8 +329,8 @@ void CLayerMaker::SpreadShadowMaskOutwards(void)
|
||||||
PIX pixLayerMinV = lm_pixLayerMinV>>iMipmap;
|
PIX pixLayerMinV = lm_pixLayerMinV>>iMipmap;
|
||||||
PIX pixLayerSizeU = lm_pixLayerSizeU>>iMipmap;
|
PIX pixLayerSizeU = lm_pixLayerSizeU>>iMipmap;
|
||||||
PIX pixLayerSizeV = lm_pixLayerSizeV>>iMipmap;
|
PIX pixLayerSizeV = lm_pixLayerSizeV>>iMipmap;
|
||||||
PIX pixSizeU = lm_pixSizeU>>iMipmap;
|
//PIX pixSizeU = lm_pixSizeU>>iMipmap;
|
||||||
PIX pixSizeV = lm_pixSizeV>>iMipmap;
|
//PIX pixSizeV = lm_pixSizeV>>iMipmap;
|
||||||
PIX pixSizeULog2 = FastLog2(lm_pixSizeU)-iMipmap;
|
PIX pixSizeULog2 = FastLog2(lm_pixSizeU)-iMipmap;
|
||||||
UBYTE *pubLayer = lm_pubLayer+lm_mmtLayer.mmt_aslOffsets[iMipmap];
|
UBYTE *pubLayer = lm_pubLayer+lm_mmtLayer.mmt_aslOffsets[iMipmap];
|
||||||
UBYTE *pubPolygonMask = lm_pubPolygonMask+lm_mmtPolygonMask.mmt_aslOffsets[iMipmap];
|
UBYTE *pubPolygonMask = lm_pubPolygonMask+lm_mmtPolygonMask.mmt_aslOffsets[iMipmap];
|
||||||
|
@ -419,8 +419,8 @@ void CLayerMaker::SpreadShadowMaskInwards(void)
|
||||||
PIX pixLayerMinV = lm_pixLayerMinV>>iMipmap;
|
PIX pixLayerMinV = lm_pixLayerMinV>>iMipmap;
|
||||||
PIX pixLayerSizeU = lm_pixLayerSizeU>>iMipmap;
|
PIX pixLayerSizeU = lm_pixLayerSizeU>>iMipmap;
|
||||||
PIX pixLayerSizeV = lm_pixLayerSizeV>>iMipmap;
|
PIX pixLayerSizeV = lm_pixLayerSizeV>>iMipmap;
|
||||||
PIX pixSizeU = lm_pixSizeU>>iMipmap;
|
//PIX pixSizeU = lm_pixSizeU>>iMipmap;
|
||||||
PIX pixSizeV = lm_pixSizeV>>iMipmap;
|
//PIX pixSizeV = lm_pixSizeV>>iMipmap;
|
||||||
PIX pixSizeULog2 = FastLog2(lm_pixSizeU)-iMipmap;
|
PIX pixSizeULog2 = FastLog2(lm_pixSizeU)-iMipmap;
|
||||||
UBYTE *pubLayer = lm_pubLayer+lm_mmtLayer.mmt_aslOffsets[iMipmap];
|
UBYTE *pubLayer = lm_pubLayer+lm_mmtLayer.mmt_aslOffsets[iMipmap];
|
||||||
UBYTE *pubPolygonMask = lm_pubPolygonMask+lm_mmtPolygonMask.mmt_aslOffsets[iMipmap];
|
UBYTE *pubPolygonMask = lm_pubPolygonMask+lm_mmtPolygonMask.mmt_aslOffsets[iMipmap];
|
||||||
|
@ -526,7 +526,7 @@ void CLayerMaker::MakePolygonMask(void)
|
||||||
UBYTE *pub = lm_pubPolygonMask;
|
UBYTE *pub = lm_pubPolygonMask;
|
||||||
// for each mip-map
|
// for each mip-map
|
||||||
for (INDEX iMipmap=0; iMipmap<lm_mmtPolygonMask.mmt_ctMipmaps; iMipmap++) {
|
for (INDEX iMipmap=0; iMipmap<lm_mmtPolygonMask.mmt_ctMipmaps; iMipmap++) {
|
||||||
UBYTE *pubForSaving = pub;
|
//UBYTE *pubForSaving = pub;
|
||||||
// start at the first pixel
|
// start at the first pixel
|
||||||
FLOAT3D vRow = lm_vO+(lm_vStepU+lm_vStepV)*(FLOAT(1<<iMipmap)/2.0f);
|
FLOAT3D vRow = lm_vO+(lm_vStepU+lm_vStepV)*(FLOAT(1<<iMipmap)/2.0f);
|
||||||
// for each pixel in the shadow map
|
// for each pixel in the shadow map
|
||||||
|
@ -565,8 +565,8 @@ void CLayerMaker::MakePolygonMask(void)
|
||||||
// flip shadow mask around V axis (for parallel lights)
|
// flip shadow mask around V axis (for parallel lights)
|
||||||
void CLayerMaker::FlipShadowMask(INDEX iMip)
|
void CLayerMaker::FlipShadowMask(INDEX iMip)
|
||||||
{
|
{
|
||||||
PIX pixLayerMinU = lm_pixLayerMinU>>iMip;
|
//PIX pixLayerMinU = lm_pixLayerMinU>>iMip;
|
||||||
PIX pixLayerMinV = lm_pixLayerMinV>>iMip;
|
//PIX pixLayerMinV = lm_pixLayerMinV>>iMip;
|
||||||
PIX pixLayerSizeU = lm_pixLayerSizeU>>iMip;
|
PIX pixLayerSizeU = lm_pixLayerSizeU>>iMip;
|
||||||
PIX pixLayerSizeV = lm_pixLayerSizeV>>iMip;
|
PIX pixLayerSizeV = lm_pixLayerSizeV>>iMip;
|
||||||
UBYTE *pubLayer = lm_pubLayer+lm_mmtLayer.mmt_aslOffsets[iMip];
|
UBYTE *pubLayer = lm_pubLayer+lm_mmtLayer.mmt_aslOffsets[iMip];
|
||||||
|
@ -632,7 +632,7 @@ ULONG CLayerMaker::MakeShadowMask(CBrushShadowLayer *pbsl)
|
||||||
|
|
||||||
// allocate shadow mask for the light (+8 is safety wall for fast conversions)
|
// allocate shadow mask for the light (+8 is safety wall for fast conversions)
|
||||||
lm_pubLayer = (UBYTE *)AllocMemory(lm_mmtLayer.mmt_slTotalSize+8);
|
lm_pubLayer = (UBYTE *)AllocMemory(lm_mmtLayer.mmt_slTotalSize+8);
|
||||||
const FLOAT fEpsilon = (1<<lm_iMipLevel)/1024.0f;
|
//const FLOAT fEpsilon = (1<<lm_iMipLevel)/1024.0f;
|
||||||
|
|
||||||
ULONG ulLighted=BSLF_ALLLIGHT|BSLF_ALLDARK;
|
ULONG ulLighted=BSLF_ALLLIGHT|BSLF_ALLDARK;
|
||||||
// if this polygon requires exact shadows
|
// if this polygon requires exact shadows
|
||||||
|
|
|
@ -128,6 +128,7 @@ static inline void IncrementByteWithClip( UBYTE &ub, SLONG slAdd)
|
||||||
ub = pubClipByte[(SLONG)ub+slAdd];
|
ub = pubClipByte[(SLONG)ub+slAdd];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0 // DG: unused.
|
||||||
// increment a color without overflowing it
|
// increment a color without overflowing it
|
||||||
static inline void IncrementColorWithClip( UBYTE &ubR, UBYTE &ubG, UBYTE &ubB,
|
static inline void IncrementColorWithClip( UBYTE &ubR, UBYTE &ubG, UBYTE &ubB,
|
||||||
SLONG slR, SLONG slG, SLONG slB)
|
SLONG slR, SLONG slG, SLONG slB)
|
||||||
|
@ -136,6 +137,7 @@ static inline void IncrementColorWithClip( UBYTE &ubR, UBYTE &ubG, UBYTE &ubB,
|
||||||
IncrementByteWithClip( ubG, slG);
|
IncrementByteWithClip( ubG, slG);
|
||||||
IncrementByteWithClip( ubB, slB);
|
IncrementByteWithClip( ubB, slB);
|
||||||
}
|
}
|
||||||
|
#endif // 0 (unused)
|
||||||
|
|
||||||
// add the intensity to the pixel
|
// add the intensity to the pixel
|
||||||
inline void CLayerMixer::AddToCluster( UBYTE *pub)
|
inline void CLayerMixer::AddToCluster( UBYTE *pub)
|
||||||
|
@ -276,7 +278,7 @@ void CLayerMixer::AddAmbientPoint(void)
|
||||||
// prepare some local variables
|
// prepare some local variables
|
||||||
mmDDL2oDU_AddAmbientPoint = _slDDL2oDU;
|
mmDDL2oDU_AddAmbientPoint = _slDDL2oDU;
|
||||||
mmDDL2oDV_AddAmbientPoint = _slDDL2oDV;
|
mmDDL2oDV_AddAmbientPoint = _slDDL2oDV;
|
||||||
ULONG ulLightRGB = ByteSwap(lm_colLight);
|
ULONG ulLightRGB = ByteSwap(lm_colLight); // FIXME: shouldn't this be used in plain C impl too?
|
||||||
_slLightMax<<=7;
|
_slLightMax<<=7;
|
||||||
_slLightStep>>=1;
|
_slLightStep>>=1;
|
||||||
|
|
||||||
|
@ -476,7 +478,7 @@ void CLayerMixer::AddAmbientMaskPoint( UBYTE *pubMask, UBYTE ubMask)
|
||||||
// prepare some local variables
|
// prepare some local variables
|
||||||
mmDDL2oDU_addAmbientMaskPoint = _slDDL2oDU;
|
mmDDL2oDU_addAmbientMaskPoint = _slDDL2oDU;
|
||||||
mmDDL2oDV_addAmbientMaskPoint = _slDDL2oDV;
|
mmDDL2oDV_addAmbientMaskPoint = _slDDL2oDV;
|
||||||
ULONG ulLightRGB = ByteSwap(lm_colLight);
|
ULONG ulLightRGB = ByteSwap(lm_colLight); // FIXME: shouldn't this be used in plain C impl too?
|
||||||
_slLightMax<<=7;
|
_slLightMax<<=7;
|
||||||
_slLightStep>>=1;
|
_slLightStep>>=1;
|
||||||
|
|
||||||
|
@ -654,7 +656,7 @@ skipPixel:
|
||||||
for( PIX pixU=0; pixU<_iPixCt; pixU++)
|
for( PIX pixU=0; pixU<_iPixCt; pixU++)
|
||||||
{
|
{
|
||||||
// if the point is not masked
|
// if the point is not masked
|
||||||
if( *pubMask & ubMask && (slL2Point<FTOX)) {
|
if( (*pubMask & ubMask) && (slL2Point<FTOX)) {
|
||||||
SLONG slL = (slL2Point>>SHIFTX)&(SQRTTABLESIZE-1); // and is just for degenerate cases
|
SLONG slL = (slL2Point>>SHIFTX)&(SQRTTABLESIZE-1); // and is just for degenerate cases
|
||||||
SLONG slIntensity = _slLightMax;
|
SLONG slIntensity = _slLightMax;
|
||||||
slL = aubSqrt[slL];
|
slL = aubSqrt[slL];
|
||||||
|
@ -699,7 +701,7 @@ void CLayerMixer::AddDiffusionPoint(void)
|
||||||
// prepare some local variables
|
// prepare some local variables
|
||||||
mmDDL2oDU_AddDiffusionPoint = _slDDL2oDU;
|
mmDDL2oDU_AddDiffusionPoint = _slDDL2oDU;
|
||||||
mmDDL2oDV_AddDiffusionPoint = _slDDL2oDV;
|
mmDDL2oDV_AddDiffusionPoint = _slDDL2oDV;
|
||||||
ULONG ulLightRGB = ByteSwap(lm_colLight);
|
ULONG ulLightRGB = ByteSwap(lm_colLight); // FIXME: shouldn't this be used in plain C impl too?
|
||||||
_slLightMax<<=7;
|
_slLightMax<<=7;
|
||||||
_slLightStep>>=1;
|
_slLightStep>>=1;
|
||||||
|
|
||||||
|
@ -900,7 +902,7 @@ void CLayerMixer::AddDiffusionMaskPoint( UBYTE *pubMask, UBYTE ubMask)
|
||||||
// prepare some local variables
|
// prepare some local variables
|
||||||
mmDDL2oDU_AddDiffusionMaskPoint = _slDDL2oDU;
|
mmDDL2oDU_AddDiffusionMaskPoint = _slDDL2oDU;
|
||||||
mmDDL2oDV_AddDiffusionMaskPoint = _slDDL2oDV;
|
mmDDL2oDV_AddDiffusionMaskPoint = _slDDL2oDV;
|
||||||
ULONG ulLightRGB = ByteSwap(lm_colLight);
|
ULONG ulLightRGB = ByteSwap(lm_colLight); // FIXME: shouldn't this be used in plain C impl too?
|
||||||
_slLightMax<<=7;
|
_slLightMax<<=7;
|
||||||
_slLightStep>>=1;
|
_slLightStep>>=1;
|
||||||
|
|
||||||
|
@ -1076,7 +1078,7 @@ skipPixel:
|
||||||
for( PIX pixU=0; pixU<_iPixCt; pixU++)
|
for( PIX pixU=0; pixU<_iPixCt; pixU++)
|
||||||
{
|
{
|
||||||
// if the point is not masked
|
// if the point is not masked
|
||||||
if( *pubMask&ubMask && (slL2Point<FTOX)) {
|
if( (*pubMask & ubMask) && (slL2Point<FTOX)) {
|
||||||
SLONG sl1oL = (slL2Point>>SHIFTX)&(SQRTTABLESIZE-1); // and is just for degenerate cases
|
SLONG sl1oL = (slL2Point>>SHIFTX)&(SQRTTABLESIZE-1); // and is just for degenerate cases
|
||||||
sl1oL = auw1oSqrt[sl1oL];
|
sl1oL = auw1oSqrt[sl1oL];
|
||||||
SLONG slIntensity = _slLightMax;
|
SLONG slIntensity = _slLightMax;
|
||||||
|
@ -1709,7 +1711,7 @@ void CLayerMixer::AddOneLayerDirectional( CBrushShadowLayer *pbsl, UBYTE *pubMas
|
||||||
|
|
||||||
// get the light source of the layer
|
// get the light source of the layer
|
||||||
lm_plsLight = pbsl->bsl_plsLightSource;
|
lm_plsLight = pbsl->bsl_plsLightSource;
|
||||||
const FLOAT3D &vLight = lm_plsLight->ls_penEntity->GetPlacement().pl_PositionVector;
|
//const FLOAT3D &vLight = lm_plsLight->ls_penEntity->GetPlacement().pl_PositionVector;
|
||||||
AnglesToDirectionVector( lm_plsLight->ls_penEntity->GetPlacement().pl_OrientationAngle,
|
AnglesToDirectionVector( lm_plsLight->ls_penEntity->GetPlacement().pl_OrientationAngle,
|
||||||
lm_vLightDirection);
|
lm_vLightDirection);
|
||||||
// calculate intensity
|
// calculate intensity
|
||||||
|
@ -1845,7 +1847,7 @@ void CLayerMixer::MixOneMipmap(CBrushShadowMap *pbsm, INDEX iMipmap)
|
||||||
ASSERT( &ls!=NULL); if( &ls==NULL) continue; // safety check
|
ASSERT( &ls!=NULL); if( &ls==NULL) continue; // safety check
|
||||||
|
|
||||||
// skip if should not be applied
|
// skip if should not be applied
|
||||||
if( (bDynamicOnly && !(ls.ls_ulFlags&LSF_NONPERSISTENT)) || ls.ls_ulFlags&LSF_DYNAMIC) continue;
|
if( (bDynamicOnly && !(ls.ls_ulFlags&LSF_NONPERSISTENT)) || (ls.ls_ulFlags & LSF_DYNAMIC)) continue;
|
||||||
|
|
||||||
// set corresponding shadowmap flag if this is an animating light
|
// set corresponding shadowmap flag if this is an animating light
|
||||||
if( ls.ls_paoLightAnimation!=NULL) lm_pbsmShadowMap->sm_ulFlags |= SMF_ANIMATINGLIGHTS;
|
if( ls.ls_paoLightAnimation!=NULL) lm_pbsmShadowMap->sm_ulFlags |= SMF_ANIMATINGLIGHTS;
|
||||||
|
|
|
@ -90,6 +90,7 @@ static int qsort_CompareVerticesAlongLine(const void *pvVertex0, const void *pvV
|
||||||
CObjectVertex &vx1 = **(CObjectVertex **)pvVertex1;
|
CObjectVertex &vx1 = **(CObjectVertex **)pvVertex1;
|
||||||
return CompareVerticesAlongLine(vx0, vx1);
|
return CompareVerticesAlongLine(vx0, vx1);
|
||||||
}
|
}
|
||||||
|
#if 0 // DG: unused.
|
||||||
/*
|
/*
|
||||||
* Compare two vertices along a line for quick-sort - reversely.
|
* Compare two vertices along a line for quick-sort - reversely.
|
||||||
*/
|
*/
|
||||||
|
@ -99,6 +100,7 @@ static int qsort_CompareVerticesAlongLineReversely(const void *pvVertex0, const
|
||||||
CObjectVertex &vx1 = **(CObjectVertex **)pvVertex1;
|
CObjectVertex &vx1 = **(CObjectVertex **)pvVertex1;
|
||||||
return -CompareVerticesAlongLine(vx0, vx1);
|
return -CompareVerticesAlongLine(vx0, vx1);
|
||||||
}
|
}
|
||||||
|
#endif // 0 (unused)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -548,6 +550,7 @@ CObjectPolygon *CObjectSector::CreatePolygon(INDEX ctVertices, INDEX aivVertices
|
||||||
void CObjectSector::CheckOptimizationAlgorithm(void)
|
void CObjectSector::CheckOptimizationAlgorithm(void)
|
||||||
{
|
{
|
||||||
// for vertices
|
// for vertices
|
||||||
|
#if 0 // DG: this doesn't really do anything?!
|
||||||
FOREACHINDYNAMICARRAY(osc_aovxVertices, CObjectVertex, itvx1) {
|
FOREACHINDYNAMICARRAY(osc_aovxVertices, CObjectVertex, itvx1) {
|
||||||
FOREACHINDYNAMICARRAY(osc_aovxVertices, CObjectVertex, itvx2) {
|
FOREACHINDYNAMICARRAY(osc_aovxVertices, CObjectVertex, itvx2) {
|
||||||
CObjectVertex &vx1 = itvx1.Current();
|
CObjectVertex &vx1 = itvx1.Current();
|
||||||
|
@ -555,6 +558,7 @@ void CObjectSector::CheckOptimizationAlgorithm(void)
|
||||||
// !!!!why this fails sometimes ?(on spheres) ASSERT( (&vx1 == &vx2) || (CompareVertices(vx1, vx2)!=0) );
|
// !!!!why this fails sometimes ?(on spheres) ASSERT( (&vx1 == &vx2) || (CompareVertices(vx1, vx2)!=0) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif // 0
|
||||||
|
|
||||||
// for planes
|
// for planes
|
||||||
FOREACHINDYNAMICARRAY(osc_aoplPlanes, CObjectPlane, itpl1) {
|
FOREACHINDYNAMICARRAY(osc_aoplPlanes, CObjectPlane, itpl1) {
|
||||||
|
@ -600,7 +604,7 @@ void CObjectSector::CheckOptimizationAlgorithm(void)
|
||||||
{FOREACHINDYNAMICARRAY(osc_aopoPolygons, CObjectPolygon, itopo) {
|
{FOREACHINDYNAMICARRAY(osc_aopoPolygons, CObjectPolygon, itopo) {
|
||||||
// for each edge in polygon
|
// for each edge in polygon
|
||||||
{FOREACHINDYNAMICARRAY(itopo->opo_PolygonEdges, CObjectPolygonEdge, itope) {
|
{FOREACHINDYNAMICARRAY(itopo->opo_PolygonEdges, CObjectPolygonEdge, itope) {
|
||||||
CObjectEdge &oedThis = *itope->ope_Edge;
|
//CObjectEdge &oedThis = *itope->ope_Edge;
|
||||||
CObjectVertex *povxStartThis, *povxEndThis;
|
CObjectVertex *povxStartThis, *povxEndThis;
|
||||||
// get start and end vertices
|
// get start and end vertices
|
||||||
itope->GetVertices(povxStartThis, povxEndThis);
|
itope->GetVertices(povxStartThis, povxEndThis);
|
||||||
|
@ -629,7 +633,7 @@ BOOL CObjectSector::ArePolygonsPlanar(void)
|
||||||
{FOREACHINDYNAMICARRAY(osc_aopoPolygons, CObjectPolygon, itopo) {
|
{FOREACHINDYNAMICARRAY(osc_aopoPolygons, CObjectPolygon, itopo) {
|
||||||
// for each edge in polygon
|
// for each edge in polygon
|
||||||
{FOREACHINDYNAMICARRAY(itopo->opo_PolygonEdges, CObjectPolygonEdge, itope) {
|
{FOREACHINDYNAMICARRAY(itopo->opo_PolygonEdges, CObjectPolygonEdge, itope) {
|
||||||
CObjectEdge &oedThis = *itope->ope_Edge;
|
//CObjectEdge &oedThis = *itope->ope_Edge;
|
||||||
CObjectVertex *povxStartThis, *povxEndThis;
|
CObjectVertex *povxStartThis, *povxEndThis;
|
||||||
// get start and end vertices
|
// get start and end vertices
|
||||||
itope->GetVertices(povxStartThis, povxEndThis);
|
itope->GetVertices(povxStartThis, povxEndThis);
|
||||||
|
@ -715,7 +719,7 @@ void CObjectSector::RemapClonedPlanes(void)
|
||||||
/*
|
/*
|
||||||
* Remap different vertices with same coordinates to use only one of each.
|
* Remap different vertices with same coordinates to use only one of each.
|
||||||
*/
|
*/
|
||||||
static BOOL bBug=FALSE;
|
//static BOOL bBug=FALSE;
|
||||||
void CObjectSector::RemapClonedVertices(void)
|
void CObjectSector::RemapClonedVertices(void)
|
||||||
{
|
{
|
||||||
// if there are no vertices in the sector
|
// if there are no vertices in the sector
|
||||||
|
@ -1107,7 +1111,7 @@ void CObjectPolygon::JoinContinuingEdges(CDynamicArray<CObjectEdge> &oedEdges)
|
||||||
// create an empty array for newly created edges
|
// create an empty array for newly created edges
|
||||||
CDynamicArray<CObjectPolygonEdge> aopeNew;
|
CDynamicArray<CObjectPolygonEdge> aopeNew;
|
||||||
// set the counter of edges to current number of edges
|
// set the counter of edges to current number of edges
|
||||||
INDEX ctEdges = opo_PolygonEdges.Count();
|
//INDEX ctEdges = opo_PolygonEdges.Count();
|
||||||
|
|
||||||
// for each edge
|
// for each edge
|
||||||
{FOREACHINDYNAMICARRAY(opo_PolygonEdges, CObjectPolygonEdge, itope) {
|
{FOREACHINDYNAMICARRAY(opo_PolygonEdges, CObjectPolygonEdge, itope) {
|
||||||
|
@ -1186,10 +1190,10 @@ void CObjectSector::SplitCollinearEdgesRun(CStaticArray<CEdgeEx *> &apedxSortedE
|
||||||
if (iFirstInRun>iLastInRun) {
|
if (iFirstInRun>iLastInRun) {
|
||||||
return; // this should not happen, but anyway!
|
return; // this should not happen, but anyway!
|
||||||
}
|
}
|
||||||
CEdgeEx &edxLine = *apedxSortedEdgeLines[iFirstInRun]; // representative line of the run
|
|
||||||
|
|
||||||
/* set up array of vertex pointers */
|
/* set up array of vertex pointers */
|
||||||
/*
|
/*
|
||||||
|
CEdgeEx &edxLine = *apedxSortedEdgeLines[iFirstInRun]; // representative line of the run
|
||||||
// for each vertex in sector
|
// for each vertex in sector
|
||||||
INDEX ctVerticesOnLine=0;
|
INDEX ctVerticesOnLine=0;
|
||||||
{FOREACHINDYNAMICARRAY(osc_aovxVertices, CObjectVertex, itovx) {
|
{FOREACHINDYNAMICARRAY(osc_aovxVertices, CObjectVertex, itovx) {
|
||||||
|
|
|
@ -138,7 +138,7 @@ void CMappingDefinition::TransformMappingVectors( const CMappingVectors &mvSrc,
|
||||||
FLOAT vot2 = +sou2*ood2; FLOAT vos2 = -tou2*ood2;
|
FLOAT vot2 = +sou2*ood2; FLOAT vos2 = -tou2*ood2;
|
||||||
|
|
||||||
mvDst.mv_vO = mvSrc.mv_vO
|
mvDst.mv_vO = mvSrc.mv_vO
|
||||||
+ mvDst.mv_vU * (md_fUOffset*uos2 + md_fVOffset*vos2)
|
+ mvDst.mv_vU * (md_fUOffset*uos2 + md_fVOffset*vos2) // FIXME: should vos2 have been uot2 here?
|
||||||
+ mvDst.mv_vV * (md_fUOffset*vos2 + md_fVOffset*vot2);
|
+ mvDst.mv_vV * (md_fUOffset*vos2 + md_fVOffset*vot2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -263,9 +263,9 @@ void CMappingDefinition::ProjectMapping(const FLOATplane3D &plOriginal, const CM
|
||||||
mv.mv_vO = pl.DeprojectPoint (plOriginal, mvOriginal.mv_vO);
|
mv.mv_vO = pl.DeprojectPoint (plOriginal, mvOriginal.mv_vO);
|
||||||
mv.mv_vU = pl.DeprojectDirection(plOriginal, mvOriginal.mv_vU);
|
mv.mv_vU = pl.DeprojectDirection(plOriginal, mvOriginal.mv_vU);
|
||||||
mv.mv_vV = pl.DeprojectDirection(plOriginal, mvOriginal.mv_vV);
|
mv.mv_vV = pl.DeprojectDirection(plOriginal, mvOriginal.mv_vV);
|
||||||
FLOAT3D vOTest = plOriginal.ProjectPoint(mv.mv_vO);
|
//FLOAT3D vOTest = plOriginal.ProjectPoint(mv.mv_vO);
|
||||||
FLOAT3D vUTest = plOriginal.ProjectDirection(mv.mv_vU);
|
//FLOAT3D vUTest = plOriginal.ProjectDirection(mv.mv_vU);
|
||||||
FLOAT3D vVTest = plOriginal.ProjectDirection(mv.mv_vV);
|
//FLOAT3D vVTest = plOriginal.ProjectDirection(mv.mv_vV);
|
||||||
|
|
||||||
// make mapping on this plane
|
// make mapping on this plane
|
||||||
CMappingVectors mvDefault;
|
CMappingVectors mvDefault;
|
||||||
|
|
|
@ -1068,7 +1068,7 @@ void CModelData::IndicesToPtrs()
|
||||||
{
|
{
|
||||||
FOREACHINSTATICARRAY(it1.Current().mp_PolygonVertices, ModelPolygonVertex, it2)
|
FOREACHINSTATICARRAY(it1.Current().mp_PolygonVertices, ModelPolygonVertex, it2)
|
||||||
{
|
{
|
||||||
struct ModelPolygonVertex * pMPV = &it2.Current();
|
//struct ModelPolygonVertex * pMPV = &it2.Current();
|
||||||
// DG: this looks like a 64-bit issue but is most probably ok, as the pointers
|
// DG: this looks like a 64-bit issue but is most probably ok, as the pointers
|
||||||
// should contain indices from PtrToIndices()
|
// should contain indices from PtrToIndices()
|
||||||
j = (INDEX) (size_t) it2.Current().mpv_ptvTransformedVertex;
|
j = (INDEX) (size_t) it2.Current().mpv_ptvTransformedVertex;
|
||||||
|
|
|
@ -43,7 +43,7 @@ static FLOAT fZoomI, fZoomJ;
|
||||||
static FLOAT fFrontClipDistance, f1oFrontClipDistance;
|
static FLOAT fFrontClipDistance, f1oFrontClipDistance;
|
||||||
static FLOAT fBackClipDistance, f1oBackClipDistance;
|
static FLOAT fBackClipDistance, f1oBackClipDistance;
|
||||||
static FLOAT fDepthBufferFactor;
|
static FLOAT fDepthBufferFactor;
|
||||||
static BOOL bBackFaced, bDoubleSided;
|
//static BOOL bBackFaced, bDoubleSided;
|
||||||
static BOOL bPerspective;
|
static BOOL bPerspective;
|
||||||
static BOOL b16BitCompression;
|
static BOOL b16BitCompression;
|
||||||
static ULONG ulColorMask;
|
static ULONG ulColorMask;
|
||||||
|
|
|
@ -475,7 +475,7 @@ static void PrepareModelMipForRendering( CModelData &md, INDEX iMip)
|
||||||
|
|
||||||
// for each surface
|
// for each surface
|
||||||
INDEX iSrfVx = 0;
|
INDEX iSrfVx = 0;
|
||||||
INDEX iSrfEl = 0;
|
//INDEX iSrfEl = 0;
|
||||||
{FOREACHINSTATICARRAY( mmi.mmpi_MappingSurfaces, MappingSurface, itms)
|
{FOREACHINSTATICARRAY( mmi.mmpi_MappingSurfaces, MappingSurface, itms)
|
||||||
{
|
{
|
||||||
MappingSurface &ms = *itms;
|
MappingSurface &ms = *itms;
|
||||||
|
@ -2286,7 +2286,7 @@ diffColLoop:
|
||||||
// for each vertex in the surface
|
// for each vertex in the surface
|
||||||
for( INDEX iSrfVx=0; iSrfVx<ctSrfVx; iSrfVx++) {
|
for( INDEX iSrfVx=0; iSrfVx<ctSrfVx; iSrfVx++) {
|
||||||
// set detail texcoord and color
|
// set detail texcoord and color
|
||||||
INDEX iMipVx = mmi.mmpi_auwSrfToMip[iSrfVx];
|
//INDEX iMipVx = mmi.mmpi_auwSrfToMip[iSrfVx];
|
||||||
ptexSrfBase[iSrfVx].st.s = pvTexCoord[iSrfVx](1) * fTexCorrU;
|
ptexSrfBase[iSrfVx].st.s = pvTexCoord[iSrfVx](1) * fTexCorrU;
|
||||||
ptexSrfBase[iSrfVx].st.t = pvTexCoord[iSrfVx](2) * fTexCorrV;
|
ptexSrfBase[iSrfVx].st.t = pvTexCoord[iSrfVx](2) * fTexCorrV;
|
||||||
pcolSrfBase[iSrfVx] = colSrfBump;
|
pcolSrfBase[iSrfVx] = colSrfBump;
|
||||||
|
|
|
@ -98,10 +98,10 @@ void CModelObject::GetModelVertices( CStaticStackArray<FLOAT3D> &avVertices, FLO
|
||||||
_vOffset = vOffset = pmd->md_vCompressedCenter;
|
_vOffset = vOffset = pmd->md_vCompressedCenter;
|
||||||
|
|
||||||
// check if object is inverted (in mirror)
|
// check if object is inverted (in mirror)
|
||||||
BOOL bXInverted = vStretch(1)<0;
|
//BOOL bXInverted = vStretch(1)<0;
|
||||||
BOOL bYInverted = vStretch(2)<0;
|
//BOOL bYInverted = vStretch(2)<0;
|
||||||
BOOL bZInverted = vStretch(3)<0;
|
//BOOL bZInverted = vStretch(3)<0;
|
||||||
BOOL bInverted = bXInverted!=bYInverted!=bZInverted;
|
//BOOL bInverted = bXInverted!=bYInverted!=bZInverted;
|
||||||
|
|
||||||
// if dynamic stretch factor should be applied
|
// if dynamic stretch factor should be applied
|
||||||
if( mo_Stretch != FLOAT3D( 1.0f, 1.0f, 1.0f)) {
|
if( mo_Stretch != FLOAT3D( 1.0f, 1.0f, 1.0f)) {
|
||||||
|
@ -113,7 +113,7 @@ void CModelObject::GetModelVertices( CStaticStackArray<FLOAT3D> &avVertices, FLO
|
||||||
// get current mip model using mip factor
|
// get current mip model using mip factor
|
||||||
INDEX iMipLevel = GetMipModel( fMipFactor);
|
INDEX iMipLevel = GetMipModel( fMipFactor);
|
||||||
// get current vertices mask
|
// get current vertices mask
|
||||||
ULONG ulVtxMask = (1L) << iMipLevel;
|
//ULONG ulVtxMask = (1L) << iMipLevel;
|
||||||
struct ModelMipInfo *pmmiMip = &pmd->md_MipInfos[iMipLevel];
|
struct ModelMipInfo *pmmiMip = &pmd->md_MipInfos[iMipLevel];
|
||||||
|
|
||||||
// allocate space for vertices
|
// allocate space for vertices
|
||||||
|
@ -188,7 +188,7 @@ void CModelObject::GetModelVertices( CStaticStackArray<FLOAT3D> &avVertices, FLO
|
||||||
CAttachmentModelObject *pamo = itamo;
|
CAttachmentModelObject *pamo = itamo;
|
||||||
CModelData *pmd=pamo->amo_moModelObject.GetData();
|
CModelData *pmd=pamo->amo_moModelObject.GetData();
|
||||||
ASSERT(pmd!=NULL);
|
ASSERT(pmd!=NULL);
|
||||||
if(pmd==NULL || pmd->md_Flags&(MF_FACE_FORWARD|MF_HALF_FACE_FORWARD)) continue;
|
if(pmd==NULL || (pmd->md_Flags & (MF_FACE_FORWARD|MF_HALF_FACE_FORWARD))) continue;
|
||||||
FLOATmatrix3D mNew = mRotation;
|
FLOATmatrix3D mNew = mRotation;
|
||||||
FLOAT3D vNew = vPosition;
|
FLOAT3D vNew = vPosition;
|
||||||
// get new rotation and position matrices
|
// get new rotation and position matrices
|
||||||
|
|
|
@ -92,7 +92,7 @@ void CActionBuffer::RemoveOldest(void)
|
||||||
{
|
{
|
||||||
// for each buffered action
|
// for each buffered action
|
||||||
FORDELETELIST(CActionEntry, ae_ln, ab_lhActions, itae) {
|
FORDELETELIST(CActionEntry, ae_ln, ab_lhActions, itae) {
|
||||||
CActionEntry &ae = *itae;
|
//CActionEntry &ae = *itae;
|
||||||
// delete only first one
|
// delete only first one
|
||||||
delete &*itae;
|
delete &*itae;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -402,7 +402,7 @@ BOOL CClientInterface::UpdateInputBuffers(void)
|
||||||
|
|
||||||
// if there are packets in the input buffer, process them
|
// if there are packets in the input buffer, process them
|
||||||
FORDELETELIST(CPacket,pa_lnListNode,ci_pbInputBuffer.pb_lhPacketStorage,ppaPacket) {
|
FORDELETELIST(CPacket,pa_lnListNode,ci_pbInputBuffer.pb_lhPacketStorage,ppaPacket) {
|
||||||
CPacket &paPacket = *ppaPacket;
|
//CPacket &paPacket = *ppaPacket;
|
||||||
|
|
||||||
// if it's an acknowledge packet, remove the acknowledged packets from the wait acknowledge buffer
|
// if it's an acknowledge packet, remove the acknowledged packets from the wait acknowledge buffer
|
||||||
if (ppaPacket->pa_ubReliable & UDP_PACKET_ACKNOWLEDGE) {
|
if (ppaPacket->pa_ubReliable & UDP_PACKET_ACKNOWLEDGE) {
|
||||||
|
@ -552,7 +552,7 @@ BOOL CClientInterface::UpdateInputBuffersBroadcast(void)
|
||||||
|
|
||||||
// if there are packets in the input buffer, process them
|
// if there are packets in the input buffer, process them
|
||||||
FORDELETELIST(CPacket,pa_lnListNode,ci_pbInputBuffer.pb_lhPacketStorage,ppaPacket) {
|
FORDELETELIST(CPacket,pa_lnListNode,ci_pbInputBuffer.pb_lhPacketStorage,ppaPacket) {
|
||||||
CPacket &paPacket = *ppaPacket;
|
//CPacket &paPacket = *ppaPacket;
|
||||||
|
|
||||||
// if it's an acknowledge packet, remove the acknowledged packets from the wait acknowledge buffer
|
// if it's an acknowledge packet, remove the acknowledged packets from the wait acknowledge buffer
|
||||||
if (ppaPacket->pa_ubReliable & UDP_PACKET_ACKNOWLEDGE) {
|
if (ppaPacket->pa_ubReliable & UDP_PACKET_ACKNOWLEDGE) {
|
||||||
|
|
|
@ -124,7 +124,7 @@ UBYTE *FindFirstEntity(UBYTE *pubBlock, SLONG slSize)
|
||||||
if (*(ULONG*)pub == ENT4) {
|
if (*(ULONG*)pub == ENT4) {
|
||||||
UBYTE *pubTmp = pub;
|
UBYTE *pubTmp = pub;
|
||||||
pubTmp+=sizeof(ULONG);
|
pubTmp+=sizeof(ULONG);
|
||||||
ULONG ulID = *(ULONG*)pubTmp;
|
//ULONG ulID = *(ULONG*)pubTmp;
|
||||||
pubTmp+=sizeof(ULONG);
|
pubTmp+=sizeof(ULONG);
|
||||||
SLONG slSizeChunk = *(SLONG*)pubTmp;
|
SLONG slSizeChunk = *(SLONG*)pubTmp;
|
||||||
pubTmp+=sizeof(ULONG);
|
pubTmp+=sizeof(ULONG);
|
||||||
|
@ -221,7 +221,7 @@ void MakeDiff_t(void)
|
||||||
void UnDiff_t(void)
|
void UnDiff_t(void)
|
||||||
{
|
{
|
||||||
// start at beginning
|
// start at beginning
|
||||||
UBYTE *pubOld = _pubOld;
|
//UBYTE *pubOld = _pubOld;
|
||||||
UBYTE *pubNew = _pubNew;
|
UBYTE *pubNew = _pubNew;
|
||||||
SLONG slSizeOldStream = 0;
|
SLONG slSizeOldStream = 0;
|
||||||
SLONG slSizeOutStream = 0;
|
SLONG slSizeOutStream = 0;
|
||||||
|
@ -314,7 +314,7 @@ void Cleanup(void)
|
||||||
void DIFF_Diff_t(CTStream *pstrmOld, CTStream *pstrmNew, CTStream *pstrmDiff)
|
void DIFF_Diff_t(CTStream *pstrmOld, CTStream *pstrmNew, CTStream *pstrmDiff)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
CTimerValue tv0 = _pTimer->GetHighPrecisionTimer();
|
//CTimerValue tv0 = _pTimer->GetHighPrecisionTimer();
|
||||||
|
|
||||||
_slSizeOld = pstrmOld->GetStreamSize()-pstrmOld->GetPos_t();
|
_slSizeOld = pstrmOld->GetStreamSize()-pstrmOld->GetPos_t();
|
||||||
_pubOld = (UBYTE*)AllocMemory(_slSizeOld);
|
_pubOld = (UBYTE*)AllocMemory(_slSizeOld);
|
||||||
|
@ -332,7 +332,7 @@ void DIFF_Diff_t(CTStream *pstrmOld, CTStream *pstrmNew, CTStream *pstrmDiff)
|
||||||
|
|
||||||
MakeDiff_t();
|
MakeDiff_t();
|
||||||
|
|
||||||
CTimerValue tv1 = _pTimer->GetHighPrecisionTimer();
|
//CTimerValue tv1 = _pTimer->GetHighPrecisionTimer();
|
||||||
//CPrintF("diff encoded in %.2gs\n", (tv1-tv0).GetSeconds());
|
//CPrintF("diff encoded in %.2gs\n", (tv1-tv0).GetSeconds());
|
||||||
|
|
||||||
Cleanup();
|
Cleanup();
|
||||||
|
@ -347,7 +347,7 @@ void DIFF_Diff_t(CTStream *pstrmOld, CTStream *pstrmNew, CTStream *pstrmDiff)
|
||||||
void DIFF_Undiff_t(CTStream *pstrmOld, CTStream *pstrmDiff, CTStream *pstrmNew)
|
void DIFF_Undiff_t(CTStream *pstrmOld, CTStream *pstrmDiff, CTStream *pstrmNew)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
CTimerValue tv0 = _pTimer->GetHighPrecisionTimer();
|
//CTimerValue tv0 = _pTimer->GetHighPrecisionTimer();
|
||||||
|
|
||||||
_slSizeOld = pstrmOld->GetStreamSize()-pstrmOld->GetPos_t();
|
_slSizeOld = pstrmOld->GetStreamSize()-pstrmOld->GetPos_t();
|
||||||
_pubOld = (UBYTE*)AllocMemory(_slSizeOld);
|
_pubOld = (UBYTE*)AllocMemory(_slSizeOld);
|
||||||
|
@ -361,7 +361,7 @@ void DIFF_Undiff_t(CTStream *pstrmOld, CTStream *pstrmDiff, CTStream *pstrmNew)
|
||||||
|
|
||||||
UnDiff_t();
|
UnDiff_t();
|
||||||
|
|
||||||
CTimerValue tv1 = _pTimer->GetHighPrecisionTimer();
|
//CTimerValue tv1 = _pTimer->GetHighPrecisionTimer();
|
||||||
//CPrintF("diff decoded in %.2gs\n", (tv1-tv0).GetSeconds());
|
//CPrintF("diff decoded in %.2gs\n", (tv1-tv0).GetSeconds());
|
||||||
|
|
||||||
Cleanup();
|
Cleanup();
|
||||||
|
|
|
@ -728,7 +728,7 @@ void CServer::ServerLoop(void)
|
||||||
// handle all incoming messages
|
// handle all incoming messages
|
||||||
HandleAll();
|
HandleAll();
|
||||||
|
|
||||||
INDEX iSpeed = 1;
|
//INDEX iSpeed = 1;
|
||||||
extern INDEX ser_bWaitFirstPlayer;
|
extern INDEX ser_bWaitFirstPlayer;
|
||||||
// if the local session is keeping up with time and not paused
|
// if the local session is keeping up with time and not paused
|
||||||
BOOL bPaused = srv_bPause || _pNetwork->ga_bLocalPause || _pNetwork->IsWaitingForPlayers() ||
|
BOOL bPaused = srv_bPause || _pNetwork->ga_bLocalPause || _pNetwork->IsWaitingForPlayers() ||
|
||||||
|
@ -1094,8 +1094,8 @@ void CServer::SendSessionStateData(INDEX iClient)
|
||||||
void CServer::HandleAll()
|
void CServer::HandleAll()
|
||||||
{
|
{
|
||||||
// clear last accepted client info
|
// clear last accepted client info
|
||||||
INDEX iClient = -1;
|
/* INDEX iClient = -1;
|
||||||
/* if (_cmiComm.GetLastAccepted(iClient)) {
|
if (_cmiComm.GetLastAccepted(iClient)) {
|
||||||
CPrintF(TRANSV("Server: Accepted session connection by '%s'\n"),
|
CPrintF(TRANSV("Server: Accepted session connection by '%s'\n"),
|
||||||
(const char *) _cmiComm.Server_GetClientName(iClient));
|
(const char *) _cmiComm.Server_GetClientName(iClient));
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,7 +118,7 @@ void CRenderer::PreClipPlanes(void)
|
||||||
const FLOAT fx = wpl.wpl_plRelative(1);
|
const FLOAT fx = wpl.wpl_plRelative(1);
|
||||||
const FLOAT fy = wpl.wpl_plRelative(2);
|
const FLOAT fy = wpl.wpl_plRelative(2);
|
||||||
const FLOAT fz = wpl.wpl_plRelative(3);
|
const FLOAT fz = wpl.wpl_plRelative(3);
|
||||||
const FLOAT fd = wpl.wpl_plRelative.Distance();
|
//const FLOAT fd = wpl.wpl_plRelative.Distance();
|
||||||
wpl.wpl_plView(1) = fx*m(1, 1)+fy*m(1, 2)+fz*m(1, 3);
|
wpl.wpl_plView(1) = fx*m(1, 1)+fy*m(1, 2)+fz*m(1, 3);
|
||||||
wpl.wpl_plView(2) = fx*m(2, 1)+fy*m(2, 2)+fz*m(2, 3);
|
wpl.wpl_plView(2) = fx*m(2, 1)+fy*m(2, 2)+fz*m(2, 3);
|
||||||
wpl.wpl_plView(3) = fx*m(3, 1)+fy*m(3, 2)+fz*m(3, 3);
|
wpl.wpl_plView(3) = fx*m(3, 1)+fy*m(3, 2)+fz*m(3, 3);
|
||||||
|
@ -179,8 +179,8 @@ void CRenderer::PreClipPlanes(void)
|
||||||
void CRenderer::PostClipVertices(void)
|
void CRenderer::PostClipVertices(void)
|
||||||
{
|
{
|
||||||
_pfRenderProfile.StartTimer(CRenderProfile::PTI_PROJECTVERTICES);
|
_pfRenderProfile.StartTimer(CRenderProfile::PTI_PROJECTVERTICES);
|
||||||
const FLOATmatrix3D &m = re_pbrCurrent->br_prProjection->pr_RotationMatrix;
|
//const FLOATmatrix3D &m = re_pbrCurrent->br_prProjection->pr_RotationMatrix;
|
||||||
const FLOAT3D &v = re_pbrCurrent->br_prProjection->pr_TranslationVector;
|
//const FLOAT3D &v = re_pbrCurrent->br_prProjection->pr_TranslationVector;
|
||||||
|
|
||||||
// if the projection is perspective
|
// if the projection is perspective
|
||||||
if (re_pbrCurrent->br_prProjection.IsPerspective()) {
|
if (re_pbrCurrent->br_prProjection.IsPerspective()) {
|
||||||
|
@ -749,7 +749,7 @@ CScreenPolygon *CRenderer::MakeScreenPolygon(CBrushPolygon &bpo)
|
||||||
sppo.spo_aubTextureFlags[0] = STXF_BLEND_ALPHA;
|
sppo.spo_aubTextureFlags[0] = STXF_BLEND_ALPHA;
|
||||||
}
|
}
|
||||||
// get its mapping gradients from shadowmap and stretch
|
// get its mapping gradients from shadowmap and stretch
|
||||||
CWorkingPlane &wpl = *bpo.bpo_pbplPlane->bpl_pwplWorking;
|
//CWorkingPlane &wpl = *bpo.bpo_pbplPlane->bpl_pwplWorking;
|
||||||
sppo.spo_amvMapping[0] = sppo.spo_amvMapping[3];
|
sppo.spo_amvMapping[0] = sppo.spo_amvMapping[3];
|
||||||
FLOAT fStretch = bpo.bpo_boxBoundingBox.Size().Length()/1000;
|
FLOAT fStretch = bpo.bpo_boxBoundingBox.Size().Length()/1000;
|
||||||
sppo.spo_amvMapping[0].mv_vU *= fStretch;
|
sppo.spo_amvMapping[0].mv_vU *= fStretch;
|
||||||
|
@ -870,7 +870,7 @@ void CRenderer::AddSpansToScene(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
FLOAT fpixLastScanJOffseted = re_pixCurrentScanJ-1 +OFFSET_DN;
|
//FLOAT fpixLastScanJOffseted = re_pixCurrentScanJ-1 +OFFSET_DN;
|
||||||
// first, little safety check - quit if zero spans in line!
|
// first, little safety check - quit if zero spans in line!
|
||||||
INDEX ctSpans = re_aspSpans.Count();
|
INDEX ctSpans = re_aspSpans.Count();
|
||||||
if( ctSpans==0) {
|
if( ctSpans==0) {
|
||||||
|
|
|
@ -810,7 +810,7 @@ void CRenderer::ScanEdges(void)
|
||||||
CopyActiveCoordinates();
|
CopyActiveCoordinates();
|
||||||
|
|
||||||
// if scan-line is not coherent with the last one
|
// if scan-line is not coherent with the last one
|
||||||
} else/**/ {
|
} else*/ {
|
||||||
|
|
||||||
// scan list of active edges into spans
|
// scan list of active edges into spans
|
||||||
pspoPortal = ScanOneLine();
|
pspoPortal = ScanOneLine();
|
||||||
|
|
|
@ -512,20 +512,20 @@ void CRenderer::RenderWireFrameTerrains(void)
|
||||||
papr = &re_prProjection;
|
papr = &re_prProjection;
|
||||||
|
|
||||||
BOOL bShowEdges = _wrpWorldRenderPrefs.wrp_ftEdges != CWorldRenderPrefs::FT_NONE;
|
BOOL bShowEdges = _wrpWorldRenderPrefs.wrp_ftEdges != CWorldRenderPrefs::FT_NONE;
|
||||||
BOOL bShowVertices = _wrpWorldRenderPrefs.wrp_ftVertices != CWorldRenderPrefs::FT_NONE;
|
//BOOL bShowVertices = _wrpWorldRenderPrefs.wrp_ftVertices != CWorldRenderPrefs::FT_NONE;
|
||||||
// BOOL bForceRegenerate = _wrpWorldRenderPrefs.wrp_ftPolygons
|
// BOOL bForceRegenerate = _wrpWorldRenderPrefs.wrp_ftPolygons
|
||||||
|
|
||||||
COLOR colEdges = _wrpWorldRenderPrefs.wrp_colEdges;
|
COLOR colEdges = _wrpWorldRenderPrefs.wrp_colEdges;
|
||||||
COLOR colVertices = 0xFF0000FF;
|
//COLOR colVertices = 0xFF0000FF;
|
||||||
// for all active terrains
|
// for all active terrains
|
||||||
{FORDELETELIST(CTerrain, tr_lnInActiveTerrains, re_lhActiveTerrains, ittr) {
|
{FORDELETELIST(CTerrain, tr_lnInActiveTerrains, re_lhActiveTerrains, ittr) {
|
||||||
// render terrain
|
// render terrain
|
||||||
if(bShowEdges) {
|
if(bShowEdges) {
|
||||||
ittr->RenderWireFrame(*papr, re_pdpDrawPort,colEdges);
|
ittr->RenderWireFrame(*papr, re_pdpDrawPort,colEdges);
|
||||||
}
|
}
|
||||||
if(bShowVertices) {
|
/*if(bShowVertices) {
|
||||||
//ittr->RenderVertices(*papr, re_pdpDrawPort,colVertices);
|
//ittr->RenderVertices(*papr, re_pdpDrawPort,colVertices);
|
||||||
}
|
}*/
|
||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
// draw the prepared things to screen
|
// draw the prepared things to screen
|
||||||
|
@ -564,7 +564,7 @@ void CRenderer::DrawToScreen(void)
|
||||||
&&_wrpWorldRenderPrefs.wrp_ftPolygons != CWorldRenderPrefs::FT_NONE) {
|
&&_wrpWorldRenderPrefs.wrp_ftPolygons != CWorldRenderPrefs::FT_NONE) {
|
||||||
// render translucent portals
|
// render translucent portals
|
||||||
_pfRenderProfile.StartTimer(CRenderProfile::PTI_RENDERSCENE);
|
_pfRenderProfile.StartTimer(CRenderProfile::PTI_RENDERSCENE);
|
||||||
CPerspectiveProjection3D *pprPerspective = (CPerspectiveProjection3D*)(CProjection3D*)(re_prBackgroundProjection);
|
//CPerspectiveProjection3D *pprPerspective = (CPerspectiveProjection3D*)(CProjection3D*)(re_prBackgroundProjection);
|
||||||
RenderScene( re_pdpDrawPort, SortTranslucentPolygons(re_pspoFirstBackgroundTranslucent),
|
RenderScene( re_pdpDrawPort, SortTranslucentPolygons(re_pspoFirstBackgroundTranslucent),
|
||||||
re_prBackgroundProjection, re_colSelection, TRUE);
|
re_prBackgroundProjection, re_colSelection, TRUE);
|
||||||
_pfRenderProfile.StopTimer(CRenderProfile::PTI_RENDERSCENE);
|
_pfRenderProfile.StopTimer(CRenderProfile::PTI_RENDERSCENE);
|
||||||
|
@ -583,7 +583,7 @@ void CRenderer::DrawToScreen(void)
|
||||||
// render the spans to screen
|
// render the spans to screen
|
||||||
re_prProjection->Prepare();
|
re_prProjection->Prepare();
|
||||||
_pfRenderProfile.StartTimer(CRenderProfile::PTI_RENDERSCENE);
|
_pfRenderProfile.StartTimer(CRenderProfile::PTI_RENDERSCENE);
|
||||||
CPerspectiveProjection3D *pprPerspective = (CPerspectiveProjection3D*)(CProjection3D*)re_prProjection;
|
//CPerspectiveProjection3D *pprPerspective = (CPerspectiveProjection3D*)(CProjection3D*)re_prProjection;
|
||||||
RenderScene( re_pdpDrawPort, re_pspoFirst, re_prProjection, re_colSelection, FALSE);
|
RenderScene( re_pdpDrawPort, re_pspoFirst, re_prProjection, re_colSelection, FALSE);
|
||||||
_pfRenderProfile.StopTimer(CRenderProfile::PTI_RENDERSCENE);
|
_pfRenderProfile.StopTimer(CRenderProfile::PTI_RENDERSCENE);
|
||||||
}
|
}
|
||||||
|
@ -659,7 +659,7 @@ void CRenderer::FillMirrorDepth(CMirror &mi)
|
||||||
// for each polygon
|
// for each polygon
|
||||||
FOREACHINDYNAMICCONTAINER(mi.mi_cspoPolygons, CScreenPolygon, itspo) {
|
FOREACHINDYNAMICCONTAINER(mi.mi_cspoPolygons, CScreenPolygon, itspo) {
|
||||||
CScreenPolygon &spo = *itspo;
|
CScreenPolygon &spo = *itspo;
|
||||||
CBrushPolygon &bpo = *spo.spo_pbpoBrushPolygon;
|
//CBrushPolygon &bpo = *spo.spo_pbpoBrushPolygon;
|
||||||
// create a new screen polygon
|
// create a new screen polygon
|
||||||
CScreenPolygon &spoNew = re_aspoScreenPolygons.Push();
|
CScreenPolygon &spoNew = re_aspoScreenPolygons.Push();
|
||||||
ScenePolygon &sppoNew = spoNew.spo_spoScenePolygon;
|
ScenePolygon &sppoNew = spoNew.spo_spoScenePolygon;
|
||||||
|
|
|
@ -20,8 +20,8 @@ void CRenderer::DrawBrushPolygonVerticesAndEdges(CBrushPolygon &bpo)
|
||||||
CBrushSector &bsc = *bpo.bpo_pbscSector;
|
CBrushSector &bsc = *bpo.bpo_pbscSector;
|
||||||
CBrushMip *pbm = bsc.bsc_pbmBrushMip;
|
CBrushMip *pbm = bsc.bsc_pbmBrushMip;
|
||||||
CBrush3D &br = *pbm->bm_pbrBrush;
|
CBrush3D &br = *pbm->bm_pbrBrush;
|
||||||
INDEX iMinVx = bsc.bsc_ivvx0;
|
//INDEX iMinVx = bsc.bsc_ivvx0;
|
||||||
INDEX iMaxVx = bsc.bsc_ivvx0+bsc.bsc_awvxVertices.Count();
|
//INDEX iMaxVx = bsc.bsc_ivvx0+bsc.bsc_awvxVertices.Count();
|
||||||
|
|
||||||
// set line type and color for edges and vertices
|
// set line type and color for edges and vertices
|
||||||
ULONG ulEdgesLineType = EdgeLineType(wplPolygonPlane.wpl_bVisible);
|
ULONG ulEdgesLineType = EdgeLineType(wplPolygonPlane.wpl_bVisible);
|
||||||
|
@ -155,7 +155,7 @@ void CRenderer::DrawBrushPolygonVerticesAndEdges(CBrushPolygon &bpo)
|
||||||
void CRenderer::DrawBrushSectorVerticesAndEdges(CBrushSector &bscSector)
|
void CRenderer::DrawBrushSectorVerticesAndEdges(CBrushSector &bscSector)
|
||||||
{
|
{
|
||||||
CBrushMip *pbm = bscSector.bsc_pbmBrushMip;
|
CBrushMip *pbm = bscSector.bsc_pbmBrushMip;
|
||||||
CBrush3D &br = *pbm->bm_pbrBrush;
|
//CBrush3D &br = *pbm->bm_pbrBrush;
|
||||||
|
|
||||||
// clear all vertex drawn flags
|
// clear all vertex drawn flags
|
||||||
FOREACHINSTATICARRAY(bscSector.bsc_abvxVertices, CBrushVertex, itbvx) {
|
FOREACHINSTATICARRAY(bscSector.bsc_abvxVertices, CBrushVertex, itbvx) {
|
||||||
|
@ -275,7 +275,7 @@ void CRenderer::PrepareBrush(CEntity *penBrush)
|
||||||
// for static brushes
|
// for static brushes
|
||||||
CProjection3D &pr = *brBrush.br_prProjection;
|
CProjection3D &pr = *brBrush.br_prProjection;
|
||||||
const FLOATmatrix3D &mRot = penBrush->en_mRotation;
|
const FLOATmatrix3D &mRot = penBrush->en_mRotation;
|
||||||
const FLOAT3D &vRot = penBrush->en_plPlacement.pl_PositionVector;
|
//const FLOAT3D &vRot = penBrush->en_plPlacement.pl_PositionVector;
|
||||||
// fixup projection to use placement of this brush
|
// fixup projection to use placement of this brush
|
||||||
pr.pr_mDirectionRotation = pr.pr_ViewerRotationMatrix*mRot;
|
pr.pr_mDirectionRotation = pr.pr_ViewerRotationMatrix*mRot;
|
||||||
pr.pr_RotationMatrix = pr.pr_mDirectionRotation;
|
pr.pr_RotationMatrix = pr.pr_mDirectionRotation;
|
||||||
|
|
|
@ -263,6 +263,7 @@ static void GetHazeMapInVertex( GFXVertex4 &vtx, FLOAT &tx1)
|
||||||
tx1 = (fD+_fHazeAdd) * _haze_fMul;
|
tx1 = (fD+_fHazeAdd) * _haze_fMul;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0 // DG: unused
|
||||||
// check model's bounding box against fog
|
// check model's bounding box against fog
|
||||||
static BOOL IsModelInFog( FLOAT3D &vMin, FLOAT3D &vMax)
|
static BOOL IsModelInFog( FLOAT3D &vMin, FLOAT3D &vMax)
|
||||||
{
|
{
|
||||||
|
@ -294,6 +295,7 @@ static BOOL IsModelInHaze( FLOAT3D &vMin, FLOAT3D &vMax)
|
||||||
vtx.x=vMax(1); vtx.y=vMax(2); vtx.z=vMax(3); GetHazeMapInVertex(vtx,fS); if(InHaze(fS)) return TRUE;
|
vtx.x=vMax(1); vtx.y=vMax(2); vtx.z=vMax(3); GetHazeMapInVertex(vtx,fS); if(InHaze(fS)) return TRUE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
#endif // 0 (unused)
|
||||||
|
|
||||||
BOOL PrepareHaze(void)
|
BOOL PrepareHaze(void)
|
||||||
{
|
{
|
||||||
|
@ -312,7 +314,7 @@ BOOL PrepareHaze(void)
|
||||||
// _fFogAddZ = _vViewer % (rm.rm_vObjectPosition - _aprProjection->pr_vViewerPosition); // BUG in compiler !!!!
|
// _fFogAddZ = _vViewer % (rm.rm_vObjectPosition - _aprProjection->pr_vViewerPosition); // BUG in compiler !!!!
|
||||||
_fFogAddZ = -_mObjToView[11];
|
_fFogAddZ = -_mObjToView[11];
|
||||||
// get fog offset
|
// get fog offset
|
||||||
_fFogAddH = _fog_fAddH;/*(
|
_fFogAddH = _fog_fAddH; // (
|
||||||
_vHDirView(1)*_mObjToView[3] +
|
_vHDirView(1)*_mObjToView[3] +
|
||||||
_vHDirView(2)*_mObjToView[7] +
|
_vHDirView(2)*_mObjToView[7] +
|
||||||
_vHDirView(3)*_mObjToView[11]) + _fog_fp.fp_fH3;
|
_vHDirView(3)*_mObjToView[11]) + _fog_fp.fp_fH3;
|
||||||
|
@ -2087,7 +2089,7 @@ static void RenderMesh(RenMesh &rmsh,RenModel &rm)
|
||||||
|
|
||||||
// clamp surface texture count to max number of textrues in mesh
|
// clamp surface texture count to max number of textrues in mesh
|
||||||
INDEX cttx = pShaderParams->sp_aiTextureIDs.Count();
|
INDEX cttx = pShaderParams->sp_aiTextureIDs.Count();
|
||||||
INDEX cttxMax = rmsh.rmsh_pMeshInst->mi_tiTextures.Count();
|
//INDEX cttxMax = rmsh.rmsh_pMeshInst->mi_tiTextures.Count();
|
||||||
// cttx = ClampUp(cttx,cttxMax);
|
// cttx = ClampUp(cttx,cttxMax);
|
||||||
|
|
||||||
_patoTextures.PopAll();
|
_patoTextures.PopAll();
|
||||||
|
@ -2250,7 +2252,7 @@ static void PrepareMeshForRendering(RenMesh &rmsh, INDEX iSkeletonlod)
|
||||||
} else {
|
} else {
|
||||||
// blend absolute (1-f)*cur + f*dst
|
// blend absolute (1-f)*cur + f*dst
|
||||||
INDEX vtx = rm.rmp_pmmmMorphMap->mmp_aMorphMap[ivx].mwm_iVxIndex;
|
INDEX vtx = rm.rmp_pmmmMorphMap->mmp_aMorphMap[ivx].mwm_iVxIndex;
|
||||||
MeshVertex &mvSrc = mlod.mlod_aVertices[vtx];
|
//MeshVertex &mvSrc = mlod.mlod_aVertices[vtx];
|
||||||
MeshVertexMorph &mvmDst = rm.rmp_pmmmMorphMap->mmp_aMorphMap[ivx];
|
MeshVertexMorph &mvmDst = rm.rmp_pmmmMorphMap->mmp_aMorphMap[ivx];
|
||||||
// blend vertices
|
// blend vertices
|
||||||
_aMorphedVtxs[vtx].x = (1.0f-rm.rmp_fFactor) * _aMorphedVtxs[vtx].x + rm.rmp_fFactor*mvmDst.mwm_x;
|
_aMorphedVtxs[vtx].x = (1.0f-rm.rmp_fFactor) * _aMorphedVtxs[vtx].x + rm.rmp_fFactor*mvmDst.mwm_x;
|
||||||
|
|
|
@ -103,18 +103,19 @@ static HINSTANCE _hInstDS = NULL;
|
||||||
static CTString snd_strDeviceName;
|
static CTString snd_strDeviceName;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static INDEX _iWriteOffset = 0;
|
|
||||||
static INDEX _iWriteOffset2 = 0;
|
|
||||||
static BOOL _bMuted = FALSE;
|
static BOOL _bMuted = FALSE;
|
||||||
static INDEX _iLastEnvType = 1234;
|
static INDEX _iLastEnvType = 1234;
|
||||||
static FLOAT _fLastEnvSize = 1234;
|
static FLOAT _fLastEnvSize = 1234;
|
||||||
static FLOAT _fLastPanning = 1234;
|
|
||||||
|
|
||||||
|
#ifdef PLATFORM_WIN32
|
||||||
|
static FLOAT _fLastPanning = 1234;
|
||||||
|
static INDEX _iWriteOffset = 0;
|
||||||
|
static INDEX _iWriteOffset2 = 0;
|
||||||
|
|
||||||
// TEMP! - for writing mixer buffer to file
|
// TEMP! - for writing mixer buffer to file
|
||||||
static FILE *_filMixerBuffer;
|
static FILE *_filMixerBuffer;
|
||||||
static BOOL _bOpened = FALSE;
|
static BOOL _bOpened = FALSE;
|
||||||
|
#endif
|
||||||
|
|
||||||
#define WAVEOUTBLOCKSIZE 1024
|
#define WAVEOUTBLOCKSIZE 1024
|
||||||
#define MINPAN (1.0f)
|
#define MINPAN (1.0f)
|
||||||
|
@ -1467,10 +1468,10 @@ void CSoundTimerHandler::HandleTimer(void)
|
||||||
|
|
||||||
// copying of mixer buffer to sound buffer(s)
|
// copying of mixer buffer to sound buffer(s)
|
||||||
|
|
||||||
|
#ifdef PLATFORM_WIN32
|
||||||
static LPVOID _lpData, _lpData2;
|
static LPVOID _lpData, _lpData2;
|
||||||
static DWORD _dwSize, _dwSize2;
|
static DWORD _dwSize, _dwSize2;
|
||||||
|
|
||||||
#ifdef PLATFORM_WIN32
|
|
||||||
static void CopyMixerBuffer_dsound( CSoundLibrary &sl, SLONG slMixedSize)
|
static void CopyMixerBuffer_dsound( CSoundLibrary &sl, SLONG slMixedSize)
|
||||||
{
|
{
|
||||||
LPVOID lpData;
|
LPVOID lpData;
|
||||||
|
|
|
@ -51,6 +51,7 @@ extern BOOL _bPredictionActive;
|
||||||
extern FLOAT snd_fSoundVolume;
|
extern FLOAT snd_fSoundVolume;
|
||||||
extern FLOAT snd_fMusicVolume;
|
extern FLOAT snd_fMusicVolume;
|
||||||
|
|
||||||
|
#if 0 // DG: unused.
|
||||||
static CTString GetPred(CEntity*pen)
|
static CTString GetPred(CEntity*pen)
|
||||||
{
|
{
|
||||||
CTString str1;
|
CTString str1;
|
||||||
|
@ -67,6 +68,7 @@ static CTString GetPred(CEntity*pen)
|
||||||
str.PrintF("%08x-%s", pen, (const char *) str1);
|
str.PrintF("%08x-%s", pen, (const char *) str1);
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
#endif // 0 (unused)
|
||||||
/* ====================================================
|
/* ====================================================
|
||||||
*
|
*
|
||||||
* Class global methods
|
* Class global methods
|
||||||
|
|
|
@ -956,7 +956,6 @@ template<class Type, int iDimensions>
|
||||||
BSPNode<Type, iDimensions> *BSPTree<Type, iDimensions>::CreateSubTree(CDynamicArray<BSPPolygon<Type, iDimensions> > &abpoPolygons)
|
BSPNode<Type, iDimensions> *BSPTree<Type, iDimensions>::CreateSubTree(CDynamicArray<BSPPolygon<Type, iDimensions> > &abpoPolygons)
|
||||||
{
|
{
|
||||||
// local declarations, to fix macro expansion in FOREACHINDYNAMICARRAY
|
// local declarations, to fix macro expansion in FOREACHINDYNAMICARRAY
|
||||||
typedef BSPEdge<Type, iDimensions> edge_t;
|
|
||||||
typedef BSPPolygon<Type, iDimensions> polygon_t;
|
typedef BSPPolygon<Type, iDimensions> polygon_t;
|
||||||
ASSERT(abpoPolygons.Count()>=1);
|
ASSERT(abpoPolygons.Count()>=1);
|
||||||
|
|
||||||
|
@ -1042,8 +1041,6 @@ BSPNode<Type, iDimensions> *BSPTree<Type, iDimensions>::CreateSubTree(CDynamicAr
|
||||||
template<class Type, int iDimensions>
|
template<class Type, int iDimensions>
|
||||||
void BSPTree<Type, iDimensions>::Create(CDynamicArray<BSPPolygon<Type, iDimensions> > &abpoPolygons)
|
void BSPTree<Type, iDimensions>::Create(CDynamicArray<BSPPolygon<Type, iDimensions> > &abpoPolygons)
|
||||||
{
|
{
|
||||||
typedef BSPPolygon<Type, iDimensions> polygon_t; // local declaration, to fix macro expansion in FOREACHINDYNAMICARRAY
|
|
||||||
|
|
||||||
// free eventual existing tree
|
// free eventual existing tree
|
||||||
Destroy();
|
Destroy();
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@ SLONG CStock_TYPE::CalculateUsedMemory(void)
|
||||||
void CStock_TYPE::DumpMemoryUsage_t(CTStream &strm) // throw char *
|
void CStock_TYPE::DumpMemoryUsage_t(CTStream &strm) // throw char *
|
||||||
{
|
{
|
||||||
CTString strLine;
|
CTString strLine;
|
||||||
SLONG slUsedTotal = 0;
|
//SLONG slUsedTotal = 0;
|
||||||
{FOREACHINDYNAMICCONTAINER(st_ctObjects, TYPE, itt) {
|
{FOREACHINDYNAMICCONTAINER(st_ctObjects, TYPE, itt) {
|
||||||
SLONG slUsedByObject = itt->GetUsedMemory();
|
SLONG slUsedByObject = itt->GetUsedMemory();
|
||||||
if (slUsedByObject<0) {
|
if (slUsedByObject<0) {
|
||||||
|
|
|
@ -359,15 +359,15 @@ static void CropMap(INDEX iNewWidth, INDEX iNewHeight, INDEX iOldWidth, INDEX iO
|
||||||
template <class Type>
|
template <class Type>
|
||||||
static void StretchMap(INDEX iNewWidth, INDEX iNewHeight, INDEX iOldWidth, INDEX iOldHeight, Type *pNewData, Type *pOldData)
|
static void StretchMap(INDEX iNewWidth, INDEX iNewHeight, INDEX iOldWidth, INDEX iOldHeight, Type *pNewData, Type *pOldData)
|
||||||
{
|
{
|
||||||
int a=0;
|
//int a=0;
|
||||||
CropMap(iNewWidth,iNewHeight,iOldWidth,iOldHeight,pNewData,pOldData);
|
CropMap(iNewWidth,iNewHeight,iOldWidth,iOldHeight,pNewData,pOldData);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Type>
|
template <class Type>
|
||||||
static void ShrinkMap(INDEX iNewWidth, INDEX iNewHeight, INDEX iOldWidth, INDEX iOldHeight, Type *pNewData, Type *pOldData)
|
static void ShrinkMap(INDEX iNewWidth, INDEX iNewHeight, INDEX iOldWidth, INDEX iOldHeight, Type *pNewData, Type *pOldData)
|
||||||
{
|
{
|
||||||
FLOAT fWidth = iNewWidth;
|
//FLOAT fWidth = iNewWidth;
|
||||||
FLOAT fHeight = iNewHeight;
|
//FLOAT fHeight = iNewHeight;
|
||||||
FLOAT fDiffX = (FLOAT)iNewWidth / iOldWidth;
|
FLOAT fDiffX = (FLOAT)iNewWidth / iOldWidth;
|
||||||
FLOAT fDiffY = (FLOAT)iNewHeight / iOldHeight;
|
FLOAT fDiffY = (FLOAT)iNewHeight / iOldHeight;
|
||||||
|
|
||||||
|
@ -800,7 +800,7 @@ void CTerrain::AddAllTilesToRegenQueue()
|
||||||
// for each terrain tile
|
// for each terrain tile
|
||||||
for(INDEX itt=0;itt<tr_ctTiles;itt++) {
|
for(INDEX itt=0;itt<tr_ctTiles;itt++) {
|
||||||
// Add tile to reqen queue
|
// Add tile to reqen queue
|
||||||
CTerrainTile &tt = tr_attTiles[itt];
|
//CTerrainTile &tt = tr_attTiles[itt];
|
||||||
AddTileToRegenQueue(itt);
|
AddTileToRegenQueue(itt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -842,6 +842,7 @@ __forceinline void CopyPixel(COLOR *pubSrc,COLOR *pubDst,FLOAT fMaskStrength)
|
||||||
pcolSrc->ub.a = 255;
|
pcolSrc->ub.a = 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0 // DG: unused.
|
||||||
static INDEX _ctSavedTopMaps=0;
|
static INDEX _ctSavedTopMaps=0;
|
||||||
static void SaveAsTga(CTextureData *ptdTex)
|
static void SaveAsTga(CTextureData *ptdTex)
|
||||||
{
|
{
|
||||||
|
@ -879,6 +880,7 @@ static void SaveAsTga(CTextureData *ptdTex)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif // 0
|
||||||
|
|
||||||
static void AddTileLayerToTopMap(CTerrain *ptrTerrain, INDEX iTileIndex, INDEX iLayer)
|
static void AddTileLayerToTopMap(CTerrain *ptrTerrain, INDEX iTileIndex, INDEX iLayer)
|
||||||
{
|
{
|
||||||
|
@ -1004,7 +1006,7 @@ void CTerrain::UpdateTopMap(INDEX iTileIndex, Rect *prcDest/*=NULL*/)
|
||||||
INDEX iFirstInMask = 0;
|
INDEX iFirstInMask = 0;
|
||||||
INDEX iMaskWidth = tr_pixHeightMapWidth;
|
INDEX iMaskWidth = tr_pixHeightMapWidth;
|
||||||
INDEX iTiling = 1;
|
INDEX iTiling = 1;
|
||||||
INDEX iSrcMipWidth = 1;
|
//INDEX iSrcMipWidth = 1;
|
||||||
|
|
||||||
|
|
||||||
// destionation texture (must have set allocated memory)
|
// destionation texture (must have set allocated memory)
|
||||||
|
@ -1587,7 +1589,7 @@ void CTerrain::BuildQuadTree(void)
|
||||||
INDEX ctQuadLevels = tr_aqtlQuadTreeLevels.Count();
|
INDEX ctQuadLevels = tr_aqtlQuadTreeLevels.Count();
|
||||||
// for each quadtree level after first
|
// for each quadtree level after first
|
||||||
for(INDEX iql=1;iql<ctQuadLevels;iql++) {
|
for(INDEX iql=1;iql<ctQuadLevels;iql++) {
|
||||||
QuadTreeLevel &qtl = tr_aqtlQuadTreeLevels[iql];
|
//QuadTreeLevel &qtl = tr_aqtlQuadTreeLevels[iql];
|
||||||
QuadTreeLevel &qtlPrev = tr_aqtlQuadTreeLevels[iql-1];
|
QuadTreeLevel &qtlPrev = tr_aqtlQuadTreeLevels[iql-1];
|
||||||
// for each quadtree node row
|
// for each quadtree node row
|
||||||
for(INDEX ir=0;ir<qtlPrev.qtl_ctNodesRow;ir+=2) {
|
for(INDEX ir=0;ir<qtlPrev.qtl_ctNodesRow;ir+=2) {
|
||||||
|
@ -1737,7 +1739,7 @@ static void ShowTerrainInfo(CAnyProjection3D &apr, CDrawPort *pdp, CTerrain *ptr
|
||||||
strInfo +=strTemp;
|
strInfo +=strTemp;
|
||||||
|
|
||||||
// Show memory usage
|
// Show memory usage
|
||||||
SLONG slUsedMemory=0;
|
//SLONG slUsedMemory=0;
|
||||||
// Height map usage
|
// Height map usage
|
||||||
SLONG slHeightMap = ptrTerrain->tr_pixHeightMapWidth*ptrTerrain->tr_pixHeightMapHeight*sizeof(UWORD);
|
SLONG slHeightMap = ptrTerrain->tr_pixHeightMapWidth*ptrTerrain->tr_pixHeightMapHeight*sizeof(UWORD);
|
||||||
// Edge map usage
|
// Edge map usage
|
||||||
|
|
|
@ -39,7 +39,7 @@ static FLOATaabbox3D CalculateAABBoxFromRect(CTerrain *ptrTerrain, Rect rcExtrac
|
||||||
ASSERT(ptrTerrain->tr_penEntity!=NULL);
|
ASSERT(ptrTerrain->tr_penEntity!=NULL);
|
||||||
|
|
||||||
// Get entity that holds this terrain
|
// Get entity that holds this terrain
|
||||||
CEntity *penEntity = ptrTerrain->tr_penEntity;
|
//CEntity *penEntity = ptrTerrain->tr_penEntity;
|
||||||
|
|
||||||
FLOATaabbox3D bboxExtract;
|
FLOATaabbox3D bboxExtract;
|
||||||
FLOATaabbox3D bboxAllTerrain;
|
FLOATaabbox3D bboxAllTerrain;
|
||||||
|
@ -60,7 +60,7 @@ static INDEX GetFirstTileInMidLod(CTerrain *ptrTerrain, Rect &rcExtract)
|
||||||
// for each terrain tile
|
// for each terrain tile
|
||||||
for(INDEX itt=0;itt<ptrTerrain->tr_ctTiles;itt++) {
|
for(INDEX itt=0;itt<ptrTerrain->tr_ctTiles;itt++) {
|
||||||
QuadTreeNode &qtn = ptrTerrain->tr_aqtnQuadTreeNodes[itt];
|
QuadTreeNode &qtn = ptrTerrain->tr_aqtnQuadTreeNodes[itt];
|
||||||
CTerrainTile &tt = ptrTerrain->tr_attTiles[itt];
|
//CTerrainTile &tt = ptrTerrain->tr_attTiles[itt];
|
||||||
// if it is coliding with given box
|
// if it is coliding with given box
|
||||||
if(qtn.qtn_aabbox.HasContactWith(bboxExtract)) {
|
if(qtn.qtn_aabbox.HasContactWith(bboxExtract)) {
|
||||||
// calculate its real distance factor
|
// calculate its real distance factor
|
||||||
|
@ -367,8 +367,8 @@ void SetBufferForEditing(CTerrain *ptrTerrain, UWORD *puwEditedBuffer, Rect &rcE
|
||||||
PIX pixTop = rcExtract.rc_iTop;
|
PIX pixTop = rcExtract.rc_iTop;
|
||||||
PIX pixBottom = rcExtract.rc_iBottom;
|
PIX pixBottom = rcExtract.rc_iBottom;
|
||||||
|
|
||||||
PIX pixWidht = pixRight-pixLeft;
|
//PIX pixWidht = pixRight-pixLeft;
|
||||||
PIX pixHeight = pixBottom-pixTop;
|
//PIX pixHeight = pixBottom-pixTop;
|
||||||
PIX pixMaxWidth = ptrTerrain->tr_pixHeightMapWidth;
|
PIX pixMaxWidth = ptrTerrain->tr_pixHeightMapWidth;
|
||||||
PIX pixMaxHeight = ptrTerrain->tr_pixHeightMapHeight;
|
PIX pixMaxHeight = ptrTerrain->tr_pixHeightMapHeight;
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,7 @@ FLOATaabbox3D _bboxDrawTwo;
|
||||||
#define LEFT 1
|
#define LEFT 1
|
||||||
#define MIDDLE 2
|
#define MIDDLE 2
|
||||||
|
|
||||||
|
#if 0 // DG: unused.
|
||||||
// Test AABBox agains ray
|
// Test AABBox agains ray
|
||||||
static BOOL HitBoundingBox(FLOAT3D &vOrigin, FLOAT3D &vDir, FLOAT3D &vHit, FLOATaabbox3D &bbox)
|
static BOOL HitBoundingBox(FLOAT3D &vOrigin, FLOAT3D &vDir, FLOAT3D &vHit, FLOATaabbox3D &bbox)
|
||||||
{
|
{
|
||||||
|
@ -123,7 +124,6 @@ static BOOL HitBoundingBox(FLOAT3D &vOrigin, FLOAT3D &vDir, FLOAT3D &vHit, FLOAT
|
||||||
return (TRUE); /* ray hits box */
|
return (TRUE); /* ray hits box */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Test AABBox agains ray
|
// Test AABBox agains ray
|
||||||
static BOOL RayHitsAABBox(FLOAT3D &vOrigin, FLOAT3D &vDir, FLOAT3D &vHit, FLOATaabbox3D &bbox)
|
static BOOL RayHitsAABBox(FLOAT3D &vOrigin, FLOAT3D &vDir, FLOAT3D &vHit, FLOATaabbox3D &bbox)
|
||||||
{
|
{
|
||||||
|
@ -201,11 +201,12 @@ static BOOL RayHitsAABBox(FLOAT3D &vOrigin, FLOAT3D &vDir, FLOAT3D &vHit, FLOATa
|
||||||
vHit = FLOAT3D(coord[0],coord[1],coord[2]);
|
vHit = FLOAT3D(coord[0],coord[1],coord[2]);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
#endif // 0 (unused)
|
||||||
|
|
||||||
// Get exact hit location in tile
|
// Get exact hit location in tile
|
||||||
FLOAT GetExactHitLocation(INDEX iTileIndex, FLOAT3D &vOrigin, FLOAT3D &vTarget, FLOAT3D &vHitLocation)
|
FLOAT GetExactHitLocation(INDEX iTileIndex, FLOAT3D &vOrigin, FLOAT3D &vTarget, FLOAT3D &vHitLocation)
|
||||||
{
|
{
|
||||||
CTerrainTile &tt = _ptrTerrain->tr_attTiles[iTileIndex];
|
//CTerrainTile &tt = _ptrTerrain->tr_attTiles[iTileIndex];
|
||||||
QuadTreeNode &qtn = _ptrTerrain->tr_aqtnQuadTreeNodes[iTileIndex];
|
QuadTreeNode &qtn = _ptrTerrain->tr_aqtnQuadTreeNodes[iTileIndex];
|
||||||
|
|
||||||
GFXVertex *pavVertices;
|
GFXVertex *pavVertices;
|
||||||
|
@ -341,7 +342,7 @@ Rect ExtractPolygonsInBox(CTerrain *ptrTerrain, const FLOATaabbox3D &bboxExtract
|
||||||
|
|
||||||
INDEX iFirst = iStartX + iStartY * ptrTerrain->tr_pixHeightMapWidth;
|
INDEX iFirst = iStartX + iStartY * ptrTerrain->tr_pixHeightMapWidth;
|
||||||
INDEX iPitchX = ptrTerrain->tr_pixHeightMapWidth - iWidth;
|
INDEX iPitchX = ptrTerrain->tr_pixHeightMapWidth - iWidth;
|
||||||
INDEX iPitchY = ptrTerrain->tr_pixHeightMapHeight - iHeight;
|
//INDEX iPitchY = ptrTerrain->tr_pixHeightMapHeight - iHeight;
|
||||||
|
|
||||||
// get first pixel in height map
|
// get first pixel in height map
|
||||||
UWORD *puwHeight = &ptrTerrain->tr_auwHeightMap[iFirst];
|
UWORD *puwHeight = &ptrTerrain->tr_auwHeightMap[iFirst];
|
||||||
|
@ -385,7 +386,7 @@ Rect ExtractPolygonsInBox(CTerrain *ptrTerrain, const FLOATaabbox3D &bboxExtract
|
||||||
}
|
}
|
||||||
|
|
||||||
INDEX ivx=0;
|
INDEX ivx=0;
|
||||||
INDEX ind=0;
|
//INDEX ind=0;
|
||||||
INDEX iFacing=iFirst;
|
INDEX iFacing=iFirst;
|
||||||
|
|
||||||
GFXVertex *pavExtVtx = &_avExtVertices[0];
|
GFXVertex *pavExtVtx = &_avExtVertices[0];
|
||||||
|
@ -493,7 +494,7 @@ void ExtractVerticesInRect(CTerrain *ptrTerrain, Rect &rc, GFXVertex4 **pavVtx,
|
||||||
|
|
||||||
INDEX *pauiIndices = &_aiExtIndices[0];
|
INDEX *pauiIndices = &_aiExtIndices[0];
|
||||||
INDEX ivx=0;
|
INDEX ivx=0;
|
||||||
INDEX ind=0;
|
//INDEX ind=0;
|
||||||
INDEX iFacing=iFirstHeight;
|
INDEX iFacing=iFirstHeight;
|
||||||
// for each row
|
// for each row
|
||||||
for(iy=0;iy<iHeight-1;iy++) {
|
for(iy=0;iy<iHeight-1;iy++) {
|
||||||
|
@ -903,7 +904,7 @@ static FLOATaabbox3D AbsoluteToRelative(const CTerrain *ptrTerrain, const FLOATa
|
||||||
return bboxRelative;
|
return bboxRelative;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG ulTemp = 0xFFFFFFFF;
|
//static ULONG ulTemp = 0xFFFFFFFF;
|
||||||
|
|
||||||
void UpdateTerrainShadowMap(CTerrain *ptrTerrain, FLOATaabbox3D *pboxUpdate/*=NULL*/, BOOL bAbsoluteSpace/*=FALSE*/)
|
void UpdateTerrainShadowMap(CTerrain *ptrTerrain, FLOATaabbox3D *pboxUpdate/*=NULL*/, BOOL bAbsoluteSpace/*=FALSE*/)
|
||||||
{
|
{
|
||||||
|
@ -952,8 +953,8 @@ void UpdateTerrainShadowMap(CTerrain *ptrTerrain, FLOATaabbox3D *pboxUpdate/*=NU
|
||||||
// Get pointer to world that holds this terrain
|
// Get pointer to world that holds this terrain
|
||||||
CWorld *pwldWorld = penEntity->en_pwoWorld;
|
CWorld *pwldWorld = penEntity->en_pwoWorld;
|
||||||
|
|
||||||
PIX pixWidth = ptrTerrain->GetShadowMapWidth();
|
//PIX pixWidth = ptrTerrain->GetShadowMapWidth();
|
||||||
PIX pixHeight = ptrTerrain->GetShadowMapHeight();
|
//PIX pixHeight = ptrTerrain->GetShadowMapHeight();
|
||||||
|
|
||||||
CTextureData &tdShadowMap = ptrTerrain->tr_tdShadowMap;
|
CTextureData &tdShadowMap = ptrTerrain->tr_tdShadowMap;
|
||||||
ASSERT(tdShadowMap.td_pulFrames!=NULL);
|
ASSERT(tdShadowMap.td_pulFrames!=NULL);
|
||||||
|
|
|
@ -601,7 +601,7 @@ void PrepareSmothVertices(INDEX itt)
|
||||||
void PrepareSmothVerticesOnTileLayer(INDEX iTerrainTile, INDEX iTileLayer)
|
void PrepareSmothVerticesOnTileLayer(INDEX iTerrainTile, INDEX iTileLayer)
|
||||||
{
|
{
|
||||||
CTerrainTile &tt = _ptrTerrain->tr_attTiles[iTerrainTile];
|
CTerrainTile &tt = _ptrTerrain->tr_attTiles[iTerrainTile];
|
||||||
CTerrainLayer &tl = _ptrTerrain->tr_atlLayers[iTileLayer];
|
//CTerrainLayer &tl = _ptrTerrain->tr_atlLayers[iTileLayer];
|
||||||
TileLayer &ttl = tt.GetTileLayers()[iTileLayer];
|
TileLayer &ttl = tt.GetTileLayers()[iTileLayer];
|
||||||
|
|
||||||
ASSERT(tt.tt_iLod==0);
|
ASSERT(tt.tt_iLod==0);
|
||||||
|
@ -1231,7 +1231,7 @@ void RenderTerrain(void)
|
||||||
RenderBatchedTiles();
|
RenderBatchedTiles();
|
||||||
}
|
}
|
||||||
|
|
||||||
CEntity *pen = _ptrTerrain->tr_penEntity;
|
//CEntity *pen = _ptrTerrain->tr_penEntity;
|
||||||
|
|
||||||
extern void ShowRayPath(CDrawPort *pdp);
|
extern void ShowRayPath(CDrawPort *pdp);
|
||||||
ShowRayPath(_pdp);
|
ShowRayPath(_pdp);
|
||||||
|
|
|
@ -441,8 +441,8 @@ void CTerrainTile::ReGenerate()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
INDEX ctVtxBefore = GetVertices().Count();
|
//INDEX ctVtxBefore = GetVertices().Count();
|
||||||
INDEX ctTrisBefore = GetIndices().Count()/3;
|
//INDEX ctTrisBefore = GetIndices().Count()/3;
|
||||||
|
|
||||||
// tt_ctNormalVertices = GetVertexCount();
|
// tt_ctNormalVertices = GetVertexCount();
|
||||||
// Generate borders for tile
|
// Generate borders for tile
|
||||||
|
@ -535,7 +535,7 @@ INDEX CTerrainTile::CalculateLOD(void)
|
||||||
INDEX ini = tt_aiNeighbours[in];
|
INDEX ini = tt_aiNeighbours[in];
|
||||||
// if neighbour is valid
|
// if neighbour is valid
|
||||||
if(ini>=0) {
|
if(ini>=0) {
|
||||||
CTerrainTile &ttNeigbour = _ptrTerrain->tr_attTiles[ini];
|
//CTerrainTile &ttNeigbour = _ptrTerrain->tr_attTiles[ini];
|
||||||
// if neighbour is in higher lod
|
// if neighbour is in higher lod
|
||||||
if(TRUE) { /*ttNeigbour.tt_iLod > tt.tt_iNewLod*/
|
if(TRUE) { /*ttNeigbour.tt_iLod > tt.tt_iNewLod*/
|
||||||
// add neighbour to regen queue
|
// add neighbour to regen queue
|
||||||
|
|
|
@ -51,6 +51,7 @@ extern BOOL _bPortalSectorLinksPreLoaded;
|
||||||
extern BOOL _bEntitySectorLinksPreLoaded;
|
extern BOOL _bEntitySectorLinksPreLoaded;
|
||||||
extern INDEX _ctPredictorEntities;
|
extern INDEX _ctPredictorEntities;
|
||||||
|
|
||||||
|
#if 0 // DG: unused.
|
||||||
// calculate ray placement from origin and target positions (obsolete?)
|
// calculate ray placement from origin and target positions (obsolete?)
|
||||||
static inline CPlacement3D CalculateRayPlacement(
|
static inline CPlacement3D CalculateRayPlacement(
|
||||||
const FLOAT3D &vOrigin, const FLOAT3D &vTarget)
|
const FLOAT3D &vOrigin, const FLOAT3D &vTarget)
|
||||||
|
@ -65,6 +66,7 @@ static inline CPlacement3D CalculateRayPlacement(
|
||||||
DirectionVectorToAngles(vDirection, plRay.pl_OrientationAngle);
|
DirectionVectorToAngles(vDirection, plRay.pl_OrientationAngle);
|
||||||
return plRay;
|
return plRay;
|
||||||
}
|
}
|
||||||
|
#endif // 0
|
||||||
|
|
||||||
/* Constructor. */
|
/* Constructor. */
|
||||||
CTextureTransformation::CTextureTransformation(void)
|
CTextureTransformation::CTextureTransformation(void)
|
||||||
|
|
|
@ -137,7 +137,7 @@ void CEmiter::AnimateParticles(void)
|
||||||
ep.ep_fLastRot=ep.ep_fRot;
|
ep.ep_fLastRot=ep.ep_fRot;
|
||||||
ep.ep_fRot+=ep.ep_fRotSpeed*_pTimer->TickQuantum;
|
ep.ep_fRot+=ep.ep_fRotSpeed*_pTimer->TickQuantum;
|
||||||
// animate color
|
// animate color
|
||||||
FLOAT fRatio=CalculateRatio(tmNow, ep.ep_tmEmitted, ep.ep_tmEmitted+ep.ep_tmLife, 1, 0);
|
//FLOAT fRatio=CalculateRatio(tmNow, ep.ep_tmEmitted, ep.ep_tmEmitted+ep.ep_tmLife, 1, 0);
|
||||||
ep.ep_colLastColor=ep.ep_colColor;
|
ep.ep_colLastColor=ep.ep_colColor;
|
||||||
iCurrent++;
|
iCurrent++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -271,6 +271,7 @@ static int qsort_CompareFrags( const void *ppPEN0, const void *ppPEN1) {
|
||||||
else return -qsort_CompareDeaths(ppPEN0, ppPEN1);
|
else return -qsort_CompareDeaths(ppPEN0, ppPEN1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0 // DG: unused.
|
||||||
static int qsort_CompareLatencies( const void *ppPEN0, const void *ppPEN1) {
|
static int qsort_CompareLatencies( const void *ppPEN0, const void *ppPEN1) {
|
||||||
CPlayer &en0 = **(CPlayer**)ppPEN0;
|
CPlayer &en0 = **(CPlayer**)ppPEN0;
|
||||||
CPlayer &en1 = **(CPlayer**)ppPEN1;
|
CPlayer &en1 = **(CPlayer**)ppPEN1;
|
||||||
|
@ -280,6 +281,7 @@ static int qsort_CompareLatencies( const void *ppPEN0, const void *ppPEN1) {
|
||||||
else if( sl0>sl1) return -1;
|
else if( sl0>sl1) return -1;
|
||||||
else return 0;
|
else return 0;
|
||||||
}
|
}
|
||||||
|
#endif // 0 (unused)
|
||||||
|
|
||||||
// prepare color transitions
|
// prepare color transitions
|
||||||
static void PrepareColorTransitions( COLOR colFine, COLOR colHigh, COLOR colMedium, COLOR colLow,
|
static void PrepareColorTransitions( COLOR colFine, COLOR colHigh, COLOR colMedium, COLOR colLow,
|
||||||
|
@ -560,7 +562,8 @@ static void DrawAspectCorrectTextureCentered( class CTextureObject *_pTO, FLOAT
|
||||||
CTextureData *ptd = (CTextureData*)_pTO->GetData();
|
CTextureData *ptd = (CTextureData*)_pTO->GetData();
|
||||||
FLOAT fTexSizeI = ptd->GetPixWidth();
|
FLOAT fTexSizeI = ptd->GetPixWidth();
|
||||||
FLOAT fTexSizeJ = ptd->GetPixHeight();
|
FLOAT fTexSizeJ = ptd->GetPixHeight();
|
||||||
FLOAT fHeight = fWidth*fTexSizeJ/fTexSizeJ;
|
FLOAT fHeight = fWidth*fTexSizeJ/fTexSizeJ; // FIXME: not fTexSizeJ/fTexSizeI ??
|
||||||
|
STUBBED("fWidth*fTexSizeJ/fTexSizeJ is most likely not intended!");
|
||||||
|
|
||||||
_pDP->InitTexture( _pTO);
|
_pDP->InitTexture( _pTO);
|
||||||
_pDP->AddTexture( fX-fWidth*0.5f, fY-fHeight*0.5f, fX+fWidth*0.5f, fY+fHeight*0.5f, 0, 0, 1, 1, col);
|
_pDP->AddTexture( fX-fWidth*0.5f, fY-fHeight*0.5f, fX+fWidth*0.5f, fY+fHeight*0.5f, 0, 0, 1, 1, col);
|
||||||
|
@ -580,8 +583,8 @@ static void HUD_DrawSniperMask( void )
|
||||||
COLOR colMask = C_WHITE|CT_OPAQUE;
|
COLOR colMask = C_WHITE|CT_OPAQUE;
|
||||||
|
|
||||||
CTextureData *ptd = (CTextureData*)_toSniperMask.GetData();
|
CTextureData *ptd = (CTextureData*)_toSniperMask.GetData();
|
||||||
const FLOAT fTexSizeI = ptd->GetPixWidth();
|
//const FLOAT fTexSizeI = ptd->GetPixWidth();
|
||||||
const FLOAT fTexSizeJ = ptd->GetPixHeight();
|
//const FLOAT fTexSizeJ = ptd->GetPixHeight();
|
||||||
|
|
||||||
// main sniper mask
|
// main sniper mask
|
||||||
_pDP->InitTexture( &_toSniperMask);
|
_pDP->InitTexture( &_toSniperMask);
|
||||||
|
@ -925,7 +928,7 @@ extern void DrawHUD( const CPlayer *penPlayerCurrent, CDrawPort *pdpCurrent, BOO
|
||||||
_fCustomScaling = ClampDn( _fCustomScaling*0.8f, 0.5f);
|
_fCustomScaling = ClampDn( _fCustomScaling*0.8f, 0.5f);
|
||||||
const FLOAT fOneUnitS = fOneUnit *0.8f;
|
const FLOAT fOneUnitS = fOneUnit *0.8f;
|
||||||
const FLOAT fAdvUnitS = fAdvUnit *0.8f;
|
const FLOAT fAdvUnitS = fAdvUnit *0.8f;
|
||||||
const FLOAT fNextUnitS = fNextUnit *0.8f;
|
//const FLOAT fNextUnitS = fNextUnit *0.8f;
|
||||||
const FLOAT fHalfUnitS = fHalfUnit *0.8f;
|
const FLOAT fHalfUnitS = fHalfUnit *0.8f;
|
||||||
|
|
||||||
// prepare postition and ammo quantities
|
// prepare postition and ammo quantities
|
||||||
|
|
|
@ -593,7 +593,7 @@ void Particles_RomboidTrail(CEntity *pen)
|
||||||
for(INDEX iPos = 0; iPos<plp->lp_ctUsed; iPos++)
|
for(INDEX iPos = 0; iPos<plp->lp_ctUsed; iPos++)
|
||||||
{
|
{
|
||||||
FLOAT3D vPos = plp->GetPosition(iPos);
|
FLOAT3D vPos = plp->GetPosition(iPos);
|
||||||
FLOAT fRand = rand()/FLOAT(RAND_MAX);
|
//FLOAT fRand = rand()/FLOAT(RAND_MAX);
|
||||||
FLOAT fAngle = fSeconds*256+iPos*2.0f*PI/ROMBOID_TRAIL_POSITIONS;
|
FLOAT fAngle = fSeconds*256+iPos*2.0f*PI/ROMBOID_TRAIL_POSITIONS;
|
||||||
FLOAT fSin = FLOAT(sin(fAngle));
|
FLOAT fSin = FLOAT(sin(fAngle));
|
||||||
vPos(2) += fSin*iPos/ROMBOID_TRAIL_POSITIONS;
|
vPos(2) += fSin*iPos/ROMBOID_TRAIL_POSITIONS;
|
||||||
|
@ -754,7 +754,7 @@ void Particles_WhiteLineTrail(CEntity *pen)
|
||||||
vPos(1) += fSin*iPos*1.0f/WHITE_LINE_TRAIL_POSITIONS;
|
vPos(1) += fSin*iPos*1.0f/WHITE_LINE_TRAIL_POSITIONS;
|
||||||
vPos(2) += fCos*iPos*1.0f/WHITE_LINE_TRAIL_POSITIONS;
|
vPos(2) += fCos*iPos*1.0f/WHITE_LINE_TRAIL_POSITIONS;
|
||||||
|
|
||||||
UBYTE ub = 255-iPos*256/WHITE_LINE_TRAIL_POSITIONS;
|
//UBYTE ub = 255-iPos*256/WHITE_LINE_TRAIL_POSITIONS;
|
||||||
FLOAT fLerpFactor = FLOAT(iPos)/WHITE_LINE_TRAIL_POSITIONS;
|
FLOAT fLerpFactor = FLOAT(iPos)/WHITE_LINE_TRAIL_POSITIONS;
|
||||||
COLOR colColor = LerpColor( C_YELLOW, C_dRED, fLerpFactor);
|
COLOR colColor = LerpColor( C_YELLOW, C_dRED, fLerpFactor);
|
||||||
Particle_RenderLine( vPos, vOldPos, 0.05f, colColor);
|
Particle_RenderLine( vPos, vOldPos, 0.05f, colColor);
|
||||||
|
@ -850,7 +850,7 @@ void Particles_CannonBall_Prepare(CEntity *pen)
|
||||||
void Particles_CannonBall(CEntity *pen, FLOAT fSpeedRatio)
|
void Particles_CannonBall(CEntity *pen, FLOAT fSpeedRatio)
|
||||||
{
|
{
|
||||||
CLastPositions *plp = pen->GetLastPositions(CANNON_TRAIL_POSITIONS);
|
CLastPositions *plp = pen->GetLastPositions(CANNON_TRAIL_POSITIONS);
|
||||||
FLOAT fSeconds = _pTimer->GetLerpedCurrentTick();
|
//FLOAT fSeconds = _pTimer->GetLerpedCurrentTick();
|
||||||
|
|
||||||
Particle_PrepareTexture(&_toCannonBall, PBT_BLEND);
|
Particle_PrepareTexture(&_toCannonBall, PBT_BLEND);
|
||||||
Particle_SetTexturePart( 512, 512, 0, 0);
|
Particle_SetTexturePart( 512, 512, 0, 0);
|
||||||
|
@ -1133,7 +1133,7 @@ void Particles_RocketTrail_Prepare(CEntity *pen)
|
||||||
void Particles_RocketTrail(CEntity *pen, FLOAT fStretch)
|
void Particles_RocketTrail(CEntity *pen, FLOAT fStretch)
|
||||||
{
|
{
|
||||||
CLastPositions *plp = pen->GetLastPositions(ROCKET_TRAIL_POSITIONS);
|
CLastPositions *plp = pen->GetLastPositions(ROCKET_TRAIL_POSITIONS);
|
||||||
FLOAT fSeconds = _pTimer->GetLerpedCurrentTick();
|
//FLOAT fSeconds = _pTimer->GetLerpedCurrentTick();
|
||||||
|
|
||||||
Particle_PrepareTexture(&_toRocketTrail, PBT_ADD);
|
Particle_PrepareTexture(&_toRocketTrail, PBT_ADD);
|
||||||
Particle_SetTexturePart( 512, 512, 0, 0);
|
Particle_SetTexturePart( 512, 512, 0, 0);
|
||||||
|
@ -1153,7 +1153,7 @@ void Particles_RocketTrail(CEntity *pen, FLOAT fStretch)
|
||||||
}
|
}
|
||||||
for (INDEX iInter=0; iInter<ROCKET_TRAIL_INTERPOSITIONS; iInter++)
|
for (INDEX iInter=0; iInter<ROCKET_TRAIL_INTERPOSITIONS; iInter++)
|
||||||
{
|
{
|
||||||
FLOAT fRand = rand()/FLOAT(RAND_MAX);
|
//FLOAT fRand = rand()/FLOAT(RAND_MAX);
|
||||||
FLOAT fAngle = 0.0f;
|
FLOAT fAngle = 0.0f;
|
||||||
FLOAT3D vPos = Lerp(*pvPos1, *pvPos2, iInter*1.0f/ROCKET_TRAIL_INTERPOSITIONS);
|
FLOAT3D vPos = Lerp(*pvPos1, *pvPos2, iInter*1.0f/ROCKET_TRAIL_INTERPOSITIONS);
|
||||||
FLOAT fSize = iParticle*0.5f/iParticlesLiving*fStretch+0.25f;
|
FLOAT fSize = iParticle*0.5f/iParticlesLiving*fStretch+0.25f;
|
||||||
|
@ -1336,7 +1336,7 @@ void Particles_ExplosionDebris3(CEntity *pen, FLOAT tmStart, FLOAT3D vStretch, C
|
||||||
void Particles_ExplosionSmoke(CEntity *pen, FLOAT tmStart, FLOAT3D vStretch, COLOR colMultiply/*=C_WHITE|CT_OPAQUE*/)
|
void Particles_ExplosionSmoke(CEntity *pen, FLOAT tmStart, FLOAT3D vStretch, COLOR colMultiply/*=C_WHITE|CT_OPAQUE*/)
|
||||||
{
|
{
|
||||||
Particle_PrepareTexture( &_toBulletSmoke, PBT_BLEND);
|
Particle_PrepareTexture( &_toBulletSmoke, PBT_BLEND);
|
||||||
CTextureData *pTD = (CTextureData *) _toExplosionDebrisGradient.GetData();
|
//CTextureData *pTD = (CTextureData *) _toExplosionDebrisGradient.GetData();
|
||||||
FLOAT fNow = _pTimer->GetLerpedCurrentTick();
|
FLOAT fNow = _pTimer->GetLerpedCurrentTick();
|
||||||
const FLOATmatrix3D &m = pen->GetRotationMatrix();
|
const FLOATmatrix3D &m = pen->GetRotationMatrix();
|
||||||
FLOAT3D vY( m(1,2), m(2,2), m(3,2));
|
FLOAT3D vY( m(1,2), m(2,2), m(3,2));
|
||||||
|
@ -1355,7 +1355,7 @@ void Particles_ExplosionSmoke(CEntity *pen, FLOAT tmStart, FLOAT3D vStretch, COL
|
||||||
FLOAT fTRnd=afStarsPositions[iRnd][0];
|
FLOAT fTRnd=afStarsPositions[iRnd][0];
|
||||||
FLOAT tmBorn=tmStart+i*TM_ES_SMOKE_DELTA+(TM_ES_SMOKE_DELTA*fTRnd)/2.0f;
|
FLOAT tmBorn=tmStart+i*TM_ES_SMOKE_DELTA+(TM_ES_SMOKE_DELTA*fTRnd)/2.0f;
|
||||||
FLOAT fT=fNow-tmBorn;
|
FLOAT fT=fNow-tmBorn;
|
||||||
FLOAT fRatio=Clamp(fT/TM_ES_TOTAL_LIFE, 0.0f, 1.0f);
|
//FLOAT fRatio=Clamp(fT/TM_ES_TOTAL_LIFE, 0.0f, 1.0f);
|
||||||
if( fT>0)
|
if( fT>0)
|
||||||
{
|
{
|
||||||
FLOAT3D vSpeed=FLOAT3D(afStarsPositions[iRnd][0]*0.15f,
|
FLOAT3D vSpeed=FLOAT3D(afStarsPositions[iRnd][0]*0.15f,
|
||||||
|
@ -1455,7 +1455,7 @@ void DECL_DLL Particles_Waterfall(CEntity *pen, INDEX ctCount, FLOAT fStretchAll
|
||||||
fT *= 1/fParam1;
|
fT *= 1/fParam1;
|
||||||
// get fraction part
|
// get fraction part
|
||||||
fT = fT-int(fT);
|
fT = fT-int(fT);
|
||||||
FLOAT fSlowFactor=1.0f-fT*0.25f;
|
//FLOAT fSlowFactor=1.0f-fT*0.25f;
|
||||||
FLOAT3D vSpeed=
|
FLOAT3D vSpeed=
|
||||||
vX*(afStarsPositions[iRnd][0]*0.25f)+
|
vX*(afStarsPositions[iRnd][0]*0.25f)+
|
||||||
vY*(afStarsPositions[iRnd][0]*0.25f)+
|
vY*(afStarsPositions[iRnd][0]*0.25f)+
|
||||||
|
@ -1497,9 +1497,9 @@ void Particles_BloodTrail(CEntity *pen)
|
||||||
{
|
{
|
||||||
Particle_SetTexturePart( 256, 256, iPos%8, 0);
|
Particle_SetTexturePart( 256, 256, iPos%8, 0);
|
||||||
FLOAT3D vPos = plp->GetPosition(iPos);
|
FLOAT3D vPos = plp->GetPosition(iPos);
|
||||||
FLOAT fRand = rand()/FLOAT(RAND_MAX);
|
//FLOAT fRand = rand()/FLOAT(RAND_MAX);
|
||||||
FLOAT fAngle = iPos*2.0f*PI/BLOOD01_TRAIL_POSITIONS;
|
FLOAT fAngle = iPos*2.0f*PI/BLOOD01_TRAIL_POSITIONS;
|
||||||
FLOAT fSin = FLOAT(sin(fAngle));
|
//FLOAT fSin = FLOAT(sin(fAngle));
|
||||||
FLOAT fT = iPos*_pTimer->TickQuantum;
|
FLOAT fT = iPos*_pTimer->TickQuantum;
|
||||||
vPos += vGDir*fGA*fT*fT/8.0f;
|
vPos += vGDir*fGA*fT*fT/8.0f;
|
||||||
FLOAT fSize = 0.2f-iPos*0.15f/BLOOD01_TRAIL_POSITIONS;
|
FLOAT fSize = 0.2f-iPos*0.15f/BLOOD01_TRAIL_POSITIONS;
|
||||||
|
@ -1735,8 +1735,8 @@ void Particles_FlameThrowerStart(const CPlacement3D &plPipe, FLOAT fStartTime, F
|
||||||
fPowerFactor *= Clamp(1.0f+(fStopTime-fNow)/2.0f,0.0f,1.0f);
|
fPowerFactor *= Clamp(1.0f+(fStopTime-fNow)/2.0f,0.0f,1.0f);
|
||||||
INDEX ctParticles = (INDEX) (FLOAT(CT_FTSPARKS) * fPowerFactor);
|
INDEX ctParticles = (INDEX) (FLOAT(CT_FTSPARKS) * fPowerFactor);
|
||||||
ASSERT( ctParticles<=CT_MAX_PARTICLES_TABLE);
|
ASSERT( ctParticles<=CT_MAX_PARTICLES_TABLE);
|
||||||
FLOAT fHeight = 1.0f*fPowerFactor;
|
//FLOAT fHeight = 1.0f*fPowerFactor;
|
||||||
INDEX iParticle=0;
|
//INDEX iParticle=0;
|
||||||
for( INDEX iSpark=0; iSpark<ctParticles; iSpark++)
|
for( INDEX iSpark=0; iSpark<ctParticles; iSpark++)
|
||||||
{
|
{
|
||||||
for( INDEX iTrail=0; iTrail<CT_FTSPARK_TRAIL; iTrail++)
|
for( INDEX iTrail=0; iTrail<CT_FTSPARK_TRAIL; iTrail++)
|
||||||
|
@ -2223,12 +2223,12 @@ void Particles_DustFall(CEntity *pen, FLOAT tmStarted, FLOAT3D vStretch)
|
||||||
FLOAT3D vY( m(1,2), m(2,2), m(3,2));
|
FLOAT3D vY( m(1,2), m(2,2), m(3,2));
|
||||||
FLOAT3D vZ( m(1,3), m(2,3), m(3,3));
|
FLOAT3D vZ( m(1,3), m(2,3), m(3,3));
|
||||||
FLOAT3D vCenter = pen->GetLerpedPlacement().pl_PositionVector;
|
FLOAT3D vCenter = pen->GetLerpedPlacement().pl_PositionVector;
|
||||||
FLOAT3D vG=-vY;
|
//FLOAT3D vG=-vY;
|
||||||
FLOAT tmNow = _pTimer->GetLerpedCurrentTick();
|
//FLOAT tmNow = _pTimer->GetLerpedCurrentTick();
|
||||||
FLOAT fT = _pTimer->GetLerpedCurrentTick()-tmStarted;
|
FLOAT fT = _pTimer->GetLerpedCurrentTick()-tmStarted;
|
||||||
FLOAT fStretch=vStretch.Length();
|
FLOAT fStretch=vStretch.Length();
|
||||||
|
|
||||||
INDEX ctParticles=(INDEX) (4+fSizeRatio*28);
|
//INDEX ctParticles=(INDEX) (4+fSizeRatio*28);
|
||||||
for(INDEX iDust=0; iDust<32; iDust++)
|
for(INDEX iDust=0; iDust<32; iDust++)
|
||||||
{
|
{
|
||||||
INDEX iRnd = (pen->en_ulID*12345+iDust)%CT_MAX_PARTICLES_TABLE;
|
INDEX iRnd = (pen->en_ulID*12345+iDust)%CT_MAX_PARTICLES_TABLE;
|
||||||
|
@ -2240,9 +2240,9 @@ void Particles_DustFall(CEntity *pen, FLOAT tmStarted, FLOAT3D vStretch)
|
||||||
FLOAT fPower = CalculateRatio(fT, 0, fLifeTime, 0.1f, 0.4f);
|
FLOAT fPower = CalculateRatio(fT, 0, fLifeTime, 0.1f, 0.4f);
|
||||||
FLOAT fSpeed=0.351f+0.0506f*log(fRatio+0.001f);
|
FLOAT fSpeed=0.351f+0.0506f*log(fRatio+0.001f);
|
||||||
|
|
||||||
FLOAT fRndAppearX = afStarsPositions[iRnd][0]*vStretch(1);
|
//FLOAT fRndAppearX = afStarsPositions[iRnd][0]*vStretch(1);
|
||||||
FLOAT fRndSpeedY = (afStarsPositions[iRnd][1]+0.5f)*0.125f*vStretch(2);
|
//FLOAT fRndSpeedY = (afStarsPositions[iRnd][1]+0.5f)*0.125f*vStretch(2);
|
||||||
FLOAT fRndAppearZ = afStarsPositions[iRnd][2]*vStretch(3);
|
//FLOAT fRndAppearZ = afStarsPositions[iRnd][2]*vStretch(3);
|
||||||
FLOAT3D vRndDir=FLOAT3D(afStarsPositions[iRnd][0],0,afStarsPositions[iRnd][2]);
|
FLOAT3D vRndDir=FLOAT3D(afStarsPositions[iRnd][0],0,afStarsPositions[iRnd][2]);
|
||||||
vRndDir.Normalize();
|
vRndDir.Normalize();
|
||||||
FLOAT fRiseTime=Max(fRatio-0.5f,0.0f);
|
FLOAT fRiseTime=Max(fRatio-0.5f,0.0f);
|
||||||
|
@ -2590,7 +2590,7 @@ BOOL UpdateGrowthCache(CEntity *pen, CTextureData *ptdGrowthMap, FLOATaabbox3D &
|
||||||
|
|
||||||
FLOAT fGridStep;
|
FLOAT fGridStep;
|
||||||
ULONG fXSpan;
|
ULONG fXSpan;
|
||||||
UBYTE ubFade=0xff;
|
// UBYTE ubFade=0xff;
|
||||||
|
|
||||||
fGridStep = GROWTH_RENDERING_STEP;
|
fGridStep = GROWTH_RENDERING_STEP;
|
||||||
fXSpan = 1234;
|
fXSpan = 1234;
|
||||||
|
@ -2798,7 +2798,7 @@ void Particles_Growth(CEntity *pen, CTextureData *ptdGrowthMap, FLOATaabbox3D &b
|
||||||
// calculate fade value
|
// calculate fade value
|
||||||
FLOAT fFadeOutStrip = GROWTH_RENDERING_RADIUS_FADE - GROWTH_RENDERING_RADIUS_OPAQUE;
|
FLOAT fFadeOutStrip = GROWTH_RENDERING_RADIUS_FADE - GROWTH_RENDERING_RADIUS_OPAQUE;
|
||||||
|
|
||||||
UBYTE ubFade = (UBYTE)(((GROWTH_RENDERING_RADIUS_FADE - cgParticle->fDistanceToViewer) / fFadeOutStrip)*255.0f);
|
//UBYTE ubFade = (UBYTE)(((GROWTH_RENDERING_RADIUS_FADE - cgParticle->fDistanceToViewer) / fFadeOutStrip)*255.0f);
|
||||||
if ( cgParticle->fDistanceToViewer < GROWTH_RENDERING_RADIUS_OPAQUE) {
|
if ( cgParticle->fDistanceToViewer < GROWTH_RENDERING_RADIUS_OPAQUE) {
|
||||||
cgParticle->ubFade = 255;
|
cgParticle->ubFade = 255;
|
||||||
acgDraw.Push() = *cgParticle;
|
acgDraw.Push() = *cgParticle;
|
||||||
|
@ -3166,7 +3166,7 @@ void Particles_Snow(CEntity *pen, FLOAT fGridSize, INDEX ctGrids, FLOAT fFactor,
|
||||||
FLOAT fFlakeStartPos=vPos(2)-fFlakePath;
|
FLOAT fFlakeStartPos=vPos(2)-fFlakePath;
|
||||||
FLOAT fSnapFlakeStartPos=fFlakeStartPos;
|
FLOAT fSnapFlakeStartPos=fFlakeStartPos;
|
||||||
SnapFloat(fSnapFlakeStartPos, YGRID_SIZE);
|
SnapFloat(fSnapFlakeStartPos, YGRID_SIZE);
|
||||||
INDEX iRndFlakeStart=INDEX(fSnapFlakeStartPos)%CT_MAX_PARTICLES_TABLE;
|
//INDEX iRndFlakeStart=INDEX(fSnapFlakeStartPos)%CT_MAX_PARTICLES_TABLE;
|
||||||
FLOAT tmSnapSnowFalling = tmSnowFalling;
|
FLOAT tmSnapSnowFalling = tmSnowFalling;
|
||||||
SnapFloat( tmSnapSnowFalling, SNOW_TILE_DROP_TIME);
|
SnapFloat( tmSnapSnowFalling, SNOW_TILE_DROP_TIME);
|
||||||
FLOAT fTileRatio = (tmSnowFalling-tmSnapSnowFalling)/SNOW_TILE_DROP_TIME;
|
FLOAT fTileRatio = (tmSnowFalling-tmSnapSnowFalling)/SNOW_TILE_DROP_TIME;
|
||||||
|
@ -3552,9 +3552,9 @@ void Particles_BulletSpray(INDEX iRndBase, FLOAT3D vSource, FLOAT3D vGDir, enum
|
||||||
fSpeedStart = 1.75f;
|
fSpeedStart = 1.75f;
|
||||||
fConeMultiplier = 0.125f;
|
fConeMultiplier = 0.125f;
|
||||||
|
|
||||||
FLOAT fFadeStart = BULLET_SPRAY_WATER_FADEOUT_START;
|
//FLOAT fFadeStart = BULLET_SPRAY_WATER_FADEOUT_START;
|
||||||
FLOAT fLifeTotal = BULLET_SPRAY_WATER_TOTAL_TIME;
|
//FLOAT fLifeTotal = BULLET_SPRAY_WATER_TOTAL_TIME;
|
||||||
FLOAT fFadeLen = fLifeTotal-fFadeStart;
|
//FLOAT fFadeLen = fLifeTotal-fFadeStart;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -3784,7 +3784,7 @@ void Particles_EmptyShells( CEntity *pen, ShellLaunchData *asldData)
|
||||||
{
|
{
|
||||||
// render smoke
|
// render smoke
|
||||||
INDEX iRnd = (INDEX(tmLaunch*1234))%CT_MAX_PARTICLES_TABLE;
|
INDEX iRnd = (INDEX(tmLaunch*1234))%CT_MAX_PARTICLES_TABLE;
|
||||||
FLOAT fTRatio = fT/fLife;
|
//FLOAT fTRatio = fT/fLife;
|
||||||
INDEX iColumn = 4+INDEX( iShell)%4;
|
INDEX iColumn = 4+INDEX( iShell)%4;
|
||||||
Particle_SetTexturePart( 256, 256, iColumn, 2);
|
Particle_SetTexturePart( 256, 256, iColumn, 2);
|
||||||
|
|
||||||
|
@ -3805,7 +3805,7 @@ void Particles_EmptyShells( CEntity *pen, ShellLaunchData *asldData)
|
||||||
{
|
{
|
||||||
// render smoke
|
// render smoke
|
||||||
INDEX iRnd = (INDEX(tmLaunch*1234))%CT_MAX_PARTICLES_TABLE;
|
INDEX iRnd = (INDEX(tmLaunch*1234))%CT_MAX_PARTICLES_TABLE;
|
||||||
FLOAT fTRatio = fT/fLife;
|
//FLOAT fTRatio = fT/fLife;
|
||||||
INDEX iColumn = 4+INDEX( iShell)%4;
|
INDEX iColumn = 4+INDEX( iShell)%4;
|
||||||
Particle_SetTexturePart( 256, 256, iColumn, 2);
|
Particle_SetTexturePart( 256, 256, iColumn, 2);
|
||||||
|
|
||||||
|
@ -3832,7 +3832,7 @@ void Particles_EmptyShells( CEntity *pen, ShellLaunchData *asldData)
|
||||||
FLOAT3D vUp( m(1,2), m(2,2), m(3,2));
|
FLOAT3D vUp( m(1,2), m(2,2), m(3,2));
|
||||||
|
|
||||||
INDEX iRnd = (INDEX(tmLaunch*1234))%CT_MAX_PARTICLES_TABLE;
|
INDEX iRnd = (INDEX(tmLaunch*1234))%CT_MAX_PARTICLES_TABLE;
|
||||||
FLOAT fTRatio = fT/fLife;
|
//FLOAT fTRatio = fT/fLife;
|
||||||
INDEX iColumn = 4+INDEX( iShell)%4;
|
INDEX iColumn = 4+INDEX( iShell)%4;
|
||||||
Particle_SetTexturePart( 256, 256, iColumn, 2);
|
Particle_SetTexturePart( 256, 256, iColumn, 2);
|
||||||
|
|
||||||
|
@ -4151,7 +4151,7 @@ void Particles_Appearing(CEntity *pen, TIME tmStart)
|
||||||
if( (fTime<APPEAR_IN_START) || (fTime>APPEAR_OUT_END)) {
|
if( (fTime<APPEAR_IN_START) || (fTime>APPEAR_OUT_END)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
FLOAT fPowerTime = pow(fTime-SPIRIT_SPIRAL_START, 2.5f);
|
//FLOAT fPowerTime = pow(fTime-SPIRIT_SPIRAL_START, 2.5f);
|
||||||
|
|
||||||
// fill array with absolute vertices of entity's model and its attached models
|
// fill array with absolute vertices of entity's model and its attached models
|
||||||
pen->GetModelVerticesAbsolute(avVertices, 0.05f, fMipFactor);
|
pen->GetModelVerticesAbsolute(avVertices, 0.05f, fMipFactor);
|
||||||
|
@ -4161,7 +4161,7 @@ void Particles_Appearing(CEntity *pen, TIME tmStart)
|
||||||
FLOAT3D vX( m(1,1), m(2,1), m(3,1));
|
FLOAT3D vX( m(1,1), m(2,1), m(3,1));
|
||||||
FLOAT3D vY( m(1,2), m(2,2), m(3,2));
|
FLOAT3D vY( m(1,2), m(2,2), m(3,2));
|
||||||
FLOAT3D vZ( m(1,3), m(2,3), m(3,3));
|
FLOAT3D vZ( m(1,3), m(2,3), m(3,3));
|
||||||
FLOAT3D vCenter = pen->GetLerpedPlacement().pl_PositionVector;
|
//FLOAT3D vCenter = pen->GetLerpedPlacement().pl_PositionVector;
|
||||||
|
|
||||||
SetupParticleTexture( PT_STAR07);
|
SetupParticleTexture( PT_STAR07);
|
||||||
|
|
||||||
|
@ -4180,12 +4180,12 @@ void Particles_Appearing(CEntity *pen, TIME tmStart)
|
||||||
COLOR col = RGBToColor(ubColor,ubColor,ubColor)|CT_OPAQUE;
|
COLOR col = RGBToColor(ubColor,ubColor,ubColor)|CT_OPAQUE;
|
||||||
|
|
||||||
INDEX ctVtx = avVertices.Count();
|
INDEX ctVtx = avVertices.Count();
|
||||||
FLOAT fSpeedFactor = 1.0f/ctVtx;
|
//FLOAT fSpeedFactor = 1.0f/ctVtx;
|
||||||
|
|
||||||
// get corp size
|
// get corp size
|
||||||
FLOATaabbox3D box;
|
FLOATaabbox3D box;
|
||||||
pen->en_pmoModelObject->GetCurrentFrameBBox(box);
|
pen->en_pmoModelObject->GetCurrentFrameBBox(box);
|
||||||
FLOAT fHeightStretch = box.Size()(2);
|
//FLOAT fHeightStretch = box.Size()(2);
|
||||||
|
|
||||||
FLOAT fStep = ClampDn( fMipFactor, 1.0f);
|
FLOAT fStep = ClampDn( fMipFactor, 1.0f);
|
||||||
for( FLOAT fVtx=0.0f; fVtx<ctVtx; fVtx+=fStep)
|
for( FLOAT fVtx=0.0f; fVtx<ctVtx; fVtx+=fStep)
|
||||||
|
@ -4435,7 +4435,7 @@ void Particles_BloodSpray(enum SprayParticlesType sptType, FLOAT3D vSource, FLOA
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UBYTE ubRndH = UBYTE( 32+afStarsPositions[ int(iSpray+tmStarted*10)%CT_MAX_PARTICLES_TABLE][0]*16);
|
UBYTE ubRndH = UBYTE( 32+afStarsPositions[ int(iSpray+tmStarted*10)%CT_MAX_PARTICLES_TABLE][0]*16);
|
||||||
UBYTE ubRndS = UBYTE( 127+(afStarsPositions[ int(iSpray+tmStarted*10)%CT_MAX_PARTICLES_TABLE][1]+0.5)*128);
|
//UBYTE ubRndS = UBYTE( 127+(afStarsPositions[ int(iSpray+tmStarted*10)%CT_MAX_PARTICLES_TABLE][1]+0.5)*128);
|
||||||
UBYTE ubRndV = UBYTE( 159+(afStarsPositions[ int(iSpray+tmStarted*10)%CT_MAX_PARTICLES_TABLE][2])*192);
|
UBYTE ubRndV = UBYTE( 159+(afStarsPositions[ int(iSpray+tmStarted*10)%CT_MAX_PARTICLES_TABLE][2])*192);
|
||||||
col = HSVToColor(ubRndH, 0, ubRndV)|ubAlpha;
|
col = HSVToColor(ubRndH, 0, ubRndV)|ubAlpha;
|
||||||
fSize/=2.0f;
|
fSize/=2.0f;
|
||||||
|
@ -4849,7 +4849,7 @@ void Particles_RocketMotorBurning(CEntity *pen, FLOAT tmSpawn, FLOAT3D vStretch,
|
||||||
FLOAT fMipDisappearDistance=13.0f;
|
FLOAT fMipDisappearDistance=13.0f;
|
||||||
FLOAT fMipFactor = Particle_GetMipFactor();
|
FLOAT fMipFactor = Particle_GetMipFactor();
|
||||||
if( fMipFactor>fMipDisappearDistance) return;
|
if( fMipFactor>fMipDisappearDistance) return;
|
||||||
FLOAT fMipBlender=CalculateRatio(fMipFactor, 0.0f, fMipDisappearDistance, 0.0f, 0.1f);
|
//FLOAT fMipBlender=CalculateRatio(fMipFactor, 0.0f, fMipDisappearDistance, 0.0f, 0.1f);
|
||||||
|
|
||||||
CPlacement3D pl = pen->GetLerpedPlacement();
|
CPlacement3D pl = pen->GetLerpedPlacement();
|
||||||
const FLOATmatrix3D &m = pen->GetRotationMatrix();
|
const FLOATmatrix3D &m = pen->GetRotationMatrix();
|
||||||
|
@ -4858,7 +4858,7 @@ void Particles_RocketMotorBurning(CEntity *pen, FLOAT tmSpawn, FLOAT3D vStretch,
|
||||||
|
|
||||||
CTextureData *pTD = (CTextureData *) _toAfterBurnerGradient.GetData();
|
CTextureData *pTD = (CTextureData *) _toAfterBurnerGradient.GetData();
|
||||||
|
|
||||||
ULONG *pcolFlare=pTD->GetRowPointer(0); // flare color
|
//ULONG *pcolFlare=pTD->GetRowPointer(0); // flare color
|
||||||
ULONG *pcolExp=pTD->GetRowPointer(1); // explosion color
|
ULONG *pcolExp=pTD->GetRowPointer(1); // explosion color
|
||||||
ULONG *pcolSmoke=pTD->GetRowPointer(2); // smoke color
|
ULONG *pcolSmoke=pTD->GetRowPointer(2); // smoke color
|
||||||
FLOAT aFlare_sol[256], aFlare_vol[256], aFlare_wol[256], aFlare_rol[256];
|
FLOAT aFlare_sol[256], aFlare_vol[256], aFlare_wol[256], aFlare_rol[256];
|
||||||
|
@ -5103,7 +5103,7 @@ void Particles_Twister( CEntity *pen, FLOAT fStretch, FLOAT fStartTime, FLOAT fF
|
||||||
// get fraction part
|
// get fraction part
|
||||||
fT = fT-int(fT);
|
fT = fT-int(fT);
|
||||||
INDEX iPos=(INDEX) (fT*255);
|
INDEX iPos=(INDEX) (fT*255);
|
||||||
FLOAT fSlowFactor=1.0f-fT*0.25f;
|
//FLOAT fSlowFactor=1.0f-fT*0.25f;
|
||||||
FLOAT fSpeed=25.0f+(afStarsPositions[iRnd][0]+0.5f)*2.0f;
|
FLOAT fSpeed=25.0f+(afStarsPositions[iRnd][0]+0.5f)*2.0f;
|
||||||
FLOAT fR=arol[iPos]*8.0f;
|
FLOAT fR=arol[iPos]*8.0f;
|
||||||
FLOAT3D vPos=vCenter+vY*fSpeed*fT+
|
FLOAT3D vPos=vCenter+vY*fSpeed*fT+
|
||||||
|
@ -5235,7 +5235,7 @@ void Particles_Windblast( CEntity *pen, FLOAT fStretch, FLOAT fFadeOutStartTime)
|
||||||
// get fraction part
|
// get fraction part
|
||||||
fT = fT-int(fT);
|
fT = fT-int(fT);
|
||||||
INDEX iPos=(INDEX) (fT*255);
|
INDEX iPos=(INDEX) (fT*255);
|
||||||
FLOAT fSlowFactor=1.0f-fT*0.25f;
|
//FLOAT fSlowFactor=1.0f-fT*0.25f;
|
||||||
FLOAT fSpeed=25.0f+(afStarsPositions[iRnd][0]+0.5f)*2.0f;
|
FLOAT fSpeed=25.0f+(afStarsPositions[iRnd][0]+0.5f)*2.0f;
|
||||||
FLOAT fR=arol[iPos]*8.0f;
|
FLOAT fR=arol[iPos]*8.0f;
|
||||||
fR=3.0f;
|
fR=3.0f;
|
||||||
|
@ -5332,19 +5332,19 @@ void Particles_CollectEnergy(CEntity *pen, FLOAT tmStart, FLOAT tmStop)
|
||||||
// calculate fraction part
|
// calculate fraction part
|
||||||
FLOAT fT=fPassedTime/fStarLife;
|
FLOAT fT=fPassedTime/fStarLife;
|
||||||
fT=fT-INDEX(fT);
|
fT=fT-INDEX(fT);
|
||||||
INDEX iRnd = iStar%CT_MAX_PARTICLES_TABLE;
|
//INDEX iRnd = iStar%CT_MAX_PARTICLES_TABLE;
|
||||||
FLOAT fRadius=2;
|
FLOAT fRadius=2;
|
||||||
FLOAT3D vPos= vCenter+
|
FLOAT3D vPos= vCenter+
|
||||||
vX*Sin(fT*360.0f)*fRadius+
|
vX*Sin(fT*360.0f)*fRadius+
|
||||||
vY*fT*2+
|
vY*fT*2+
|
||||||
vZ*Cos(fT*360.0f)*fRadius;
|
vZ*Cos(fT*360.0f)*fRadius;
|
||||||
UBYTE ubR = (UBYTE) (255);
|
//UBYTE ubR = (UBYTE) (255);
|
||||||
UBYTE ubG = (UBYTE) (128+(1.0f-fT)*128);
|
//UBYTE ubG = (UBYTE) (128+(1.0f-fT)*128);
|
||||||
UBYTE ubB = (UBYTE) (16+afStarsPositions[iRnd][2]*32+(1.0f-fT)*64);
|
//UBYTE ubB = (UBYTE) (16+afStarsPositions[iRnd][2]*32+(1.0f-fT)*64);
|
||||||
FLOAT fFader=CalculateRatio( fT, 0.0f, 1.0f, 0.4f, 0.01f);
|
FLOAT fFader=CalculateRatio( fT, 0.0f, 1.0f, 0.4f, 0.01f);
|
||||||
FLOAT fPulser=(1.0f+(sin((fT*fT)/4.0f)))/2.0f;
|
FLOAT fPulser=(1.0f+(sin((fT*fT)/4.0f)))/2.0f;
|
||||||
UBYTE ubA = (UBYTE) (fFader*fPulser*255);
|
UBYTE ubA = (UBYTE) (fFader*fPulser*255);
|
||||||
COLOR colLine = RGBToColor( ubA, ubA, ubA) | CT_OPAQUE;
|
//COLOR colLine = RGBToColor( ubA, ubA, ubA) | CT_OPAQUE;
|
||||||
FLOAT fSize = 2;
|
FLOAT fSize = 2;
|
||||||
Particle_RenderSquare( vPos, fSize, 0.0f, C_ORANGE|ubA);
|
Particle_RenderSquare( vPos, fSize, 0.0f, C_ORANGE|ubA);
|
||||||
ctRendered++;
|
ctRendered++;
|
||||||
|
@ -5455,7 +5455,7 @@ void Particles_GrowingSwirl( CEntity *pen, FLOAT fStretch, FLOAT fStartTime)
|
||||||
INDEX ctStars=(INDEX)(TM_GROWING_SWIRL_FX_LIFE/TM_SWIRL_SPARK_LAUNCH);
|
INDEX ctStars=(INDEX)(TM_GROWING_SWIRL_FX_LIFE/TM_SWIRL_SPARK_LAUNCH);
|
||||||
for(INDEX i=0; i<ctStars; i++)
|
for(INDEX i=0; i<ctStars; i++)
|
||||||
{
|
{
|
||||||
INDEX iRnd =(pen->en_ulID+i)%CT_MAX_PARTICLES_TABLE;
|
//INDEX iRnd =(pen->en_ulID+i)%CT_MAX_PARTICLES_TABLE;
|
||||||
FLOAT fBirth = fStartTime+i*TM_SWIRL_SPARK_LAUNCH-2.0f;//+afTimeOffsets[i]*TM_SWIRL_SPARK_LAUNCH/0.25f;
|
FLOAT fBirth = fStartTime+i*TM_SWIRL_SPARK_LAUNCH-2.0f;//+afTimeOffsets[i]*TM_SWIRL_SPARK_LAUNCH/0.25f;
|
||||||
FLOAT fT = tmNow-fBirth;
|
FLOAT fT = tmNow-fBirth;
|
||||||
FLOAT fFade=CalculateRatio(fT, 0, TM_GROWING_SWIRL_TOTAL_LIFE, 0.1f, 0.2f);
|
FLOAT fFade=CalculateRatio(fT, 0, TM_GROWING_SWIRL_TOTAL_LIFE, 0.1f, 0.2f);
|
||||||
|
@ -5622,7 +5622,7 @@ void Particles_MeteorTrail(CEntity *pen, FLOAT fStretch, FLOAT fLength, FLOAT3D
|
||||||
{
|
{
|
||||||
Particle_PrepareTexture( &_toMeteorTrail, PBT_ADD);
|
Particle_PrepareTexture( &_toMeteorTrail, PBT_ADD);
|
||||||
Particle_SetTexturePart( 1024, 2048, 0, 0);
|
Particle_SetTexturePart( 1024, 2048, 0, 0);
|
||||||
CTextureData *pTD = (CTextureData *) _toExplosionDebrisGradient.GetData();
|
//CTextureData *pTD = (CTextureData *) _toExplosionDebrisGradient.GetData();
|
||||||
FLOAT3D vPos0 = pen->GetLerpedPlacement().pl_PositionVector+vSpeed*0.05f;
|
FLOAT3D vPos0 = pen->GetLerpedPlacement().pl_PositionVector+vSpeed*0.05f;
|
||||||
FLOAT3D vPos1 = pen->GetLerpedPlacement().pl_PositionVector+vSpeed*0.05f-vSpeed*0.125f;
|
FLOAT3D vPos1 = pen->GetLerpedPlacement().pl_PositionVector+vSpeed*0.05f-vSpeed*0.125f;
|
||||||
Particle_RenderLine( vPos1, vPos0, 3.0f, C_WHITE|CT_OPAQUE);
|
Particle_RenderLine( vPos1, vPos0, 3.0f, C_WHITE|CT_OPAQUE);
|
||||||
|
@ -5749,19 +5749,19 @@ void Particles_LarvaEnergy(CEntity *pen, FLOAT3D vOffset)
|
||||||
// calculate fraction part
|
// calculate fraction part
|
||||||
FLOAT fT=fPassedTime/fStarLife;
|
FLOAT fT=fPassedTime/fStarLife;
|
||||||
fT=fT-INDEX(fT);
|
fT=fT-INDEX(fT);
|
||||||
INDEX iRnd = iStar%CT_MAX_PARTICLES_TABLE;
|
//INDEX iRnd = iStar%CT_MAX_PARTICLES_TABLE;
|
||||||
FLOAT fRadius=2;
|
FLOAT fRadius=2;
|
||||||
FLOAT3D vPos= vCenter+
|
FLOAT3D vPos= vCenter+
|
||||||
vX*Sin(fT*360.0f)*fRadius+
|
vX*Sin(fT*360.0f)*fRadius+
|
||||||
vY*fT*2+
|
vY*fT*2+
|
||||||
vZ*Cos(fT*360.0f)*fRadius;
|
vZ*Cos(fT*360.0f)*fRadius;
|
||||||
UBYTE ubR = (UBYTE) (255);
|
//UBYTE ubR = (UBYTE) (255);
|
||||||
UBYTE ubG = (UBYTE) (128+(1.0f-fT)*128);
|
//UBYTE ubG = (UBYTE) (128+(1.0f-fT)*128);
|
||||||
UBYTE ubB = (UBYTE) (16+afStarsPositions[iRnd][2]*32+(1.0f-fT)*64);
|
// UBYTE ubB = (UBYTE) (16+afStarsPositions[iRnd][2]*32+(1.0f-fT)*64);
|
||||||
FLOAT fFader=CalculateRatio( fT, 0.0f, 1.0f, 0.4f, 0.01f);
|
FLOAT fFader=CalculateRatio( fT, 0.0f, 1.0f, 0.4f, 0.01f);
|
||||||
FLOAT fPulser=(1.0f+(sin((fT*fT)/4.0f)))/2.0f;
|
FLOAT fPulser=(1.0f+(sin((fT*fT)/4.0f)))/2.0f;
|
||||||
UBYTE ubA = (UBYTE) (fFader*fPulser*255);
|
UBYTE ubA = (UBYTE) (fFader*fPulser*255);
|
||||||
COLOR colLine = RGBToColor( ubA, ubA, ubA) | CT_OPAQUE;
|
//COLOR colLine = RGBToColor( ubA, ubA, ubA) | CT_OPAQUE;
|
||||||
FLOAT fSize = 2;
|
FLOAT fSize = 2;
|
||||||
Particle_RenderSquare( vPos, fSize, 0.0f, C_ORANGE|ubA);
|
Particle_RenderSquare( vPos, fSize, 0.0f, C_ORANGE|ubA);
|
||||||
ctRendered++;
|
ctRendered++;
|
||||||
|
@ -5792,7 +5792,7 @@ void Particles_AirElemental_Comp(CModelObject *mo, FLOAT fStretch, FLOAT fFade,
|
||||||
FLOAT3D vG=-vY;
|
FLOAT3D vG=-vY;
|
||||||
|
|
||||||
FLOAT fSpeed=1.0f;
|
FLOAT fSpeed=1.0f;
|
||||||
FLOAT fG=50.0f;
|
//FLOAT fG=50.0f;
|
||||||
FLOAT fGValue=0.0f;
|
FLOAT fGValue=0.0f;
|
||||||
|
|
||||||
Particle_PrepareTexture( &_toTwister, PBT_BLEND);
|
Particle_PrepareTexture( &_toTwister, PBT_BLEND);
|
||||||
|
@ -5843,7 +5843,7 @@ void Particles_ModelGlow( CEntity *pen, FLOAT tmEnd, enum ParticleTexture ptText
|
||||||
FLOAT3D vX( m(1,1), m(2,1), m(3,1));
|
FLOAT3D vX( m(1,1), m(2,1), m(3,1));
|
||||||
FLOAT3D vY( m(1,2), m(2,2), m(3,2));
|
FLOAT3D vY( m(1,2), m(2,2), m(3,2));
|
||||||
FLOAT3D vZ( m(1,3), m(2,3), m(3,3));
|
FLOAT3D vZ( m(1,3), m(2,3), m(3,3));
|
||||||
FLOAT3D vCenter = pen->GetLerpedPlacement().pl_PositionVector;
|
//FLOAT3D vCenter = pen->GetLerpedPlacement().pl_PositionVector;
|
||||||
|
|
||||||
UBYTE ubCol=255;
|
UBYTE ubCol=255;
|
||||||
if((tmEnd-tmNow)<5.0f)
|
if((tmEnd-tmNow)<5.0f)
|
||||||
|
@ -5884,7 +5884,7 @@ void Particles_ModelGlow2( CModelObject *mo, CPlacement3D pl, FLOAT tmEnd, enum
|
||||||
FLOAT3D vX( m(1,1), m(2,1), m(3,1));
|
FLOAT3D vX( m(1,1), m(2,1), m(3,1));
|
||||||
FLOAT3D vY( m(1,2), m(2,2), m(3,2));
|
FLOAT3D vY( m(1,2), m(2,2), m(3,2));
|
||||||
FLOAT3D vZ( m(1,3), m(2,3), m(3,3));
|
FLOAT3D vZ( m(1,3), m(2,3), m(3,3));
|
||||||
FLOAT3D vCenter = plPlacement.pl_PositionVector;
|
//FLOAT3D vCenter = plPlacement.pl_PositionVector;
|
||||||
|
|
||||||
UBYTE ubCol=255;
|
UBYTE ubCol=255;
|
||||||
if((tmEnd-tmNow)<5.0f)
|
if((tmEnd-tmNow)<5.0f)
|
||||||
|
@ -5933,7 +5933,7 @@ void Particles_RunAfterBurner(CEntity *pen, FLOAT tmEnd, FLOAT fStretch, INDEX i
|
||||||
const FLOAT3D *pvPos1;
|
const FLOAT3D *pvPos1;
|
||||||
const FLOAT3D *pvPos2 = &plp->GetPosition(plp->lp_ctUsed-1);
|
const FLOAT3D *pvPos2 = &plp->GetPosition(plp->lp_ctUsed-1);
|
||||||
|
|
||||||
ULONG *pcolFlare=pTD->GetRowPointer(0); // flare color
|
//ULONG *pcolFlare=pTD->GetRowPointer(0); // flare color
|
||||||
ULONG *pcolExp=pTD->GetRowPointer(1); // explosion color
|
ULONG *pcolExp=pTD->GetRowPointer(1); // explosion color
|
||||||
ULONG *pcolSmoke=pTD->GetRowPointer(2); // smoke color
|
ULONG *pcolSmoke=pTD->GetRowPointer(2); // smoke color
|
||||||
FLOAT aFlare_sol[256], aFlare_vol[256], aFlare_wol[256], aFlare_rol[256];
|
FLOAT aFlare_sol[256], aFlare_vol[256], aFlare_wol[256], aFlare_rol[256];
|
||||||
|
|
|
@ -733,7 +733,7 @@ extern void SetupCompModel_t(const CTString &strName)
|
||||||
CTFILENAME("ModelsMP\\Weapons\\Chainsaw\\Blade.tex"),
|
CTFILENAME("ModelsMP\\Weapons\\Chainsaw\\Blade.tex"),
|
||||||
CTFILENAME("Models\\ReflectionTextures\\LightMetal01.tex"),
|
CTFILENAME("Models\\ReflectionTextures\\LightMetal01.tex"),
|
||||||
CTFILENAME("Models\\SpecularTextures\\Medium.tex"));
|
CTFILENAME("Models\\SpecularTextures\\Medium.tex"));
|
||||||
CAttachmentModelObject *amo = pmo->GetAttachmentModel(CHAINSAWITEM_ATTACHMENT_BLADE);
|
//CAttachmentModelObject *amo = pmo->GetAttachmentModel(CHAINSAWITEM_ATTACHMENT_BLADE);
|
||||||
AddAttachment_t(pmo, BLADEFORPLAYER_ATTACHMENT_TEETH,
|
AddAttachment_t(pmo, BLADEFORPLAYER_ATTACHMENT_TEETH,
|
||||||
CTFILENAME("ModelsMP\\Weapons\\Chainsaw\\Teeth.mdl"), 0,
|
CTFILENAME("ModelsMP\\Weapons\\Chainsaw\\Teeth.mdl"), 0,
|
||||||
CTFILENAME("ModelsMP\\Weapons\\Chainsaw\\Teeth.tex"),
|
CTFILENAME("ModelsMP\\Weapons\\Chainsaw\\Teeth.tex"),
|
||||||
|
|
|
@ -181,8 +181,8 @@ static PIXaabbox2D GetTextSliderBox(void)
|
||||||
return PIXaabbox2D();
|
return PIXaabbox2D();
|
||||||
}
|
}
|
||||||
INDEX ctTextLines = _acmMessages[_iActiveMessage].cm_ctFormattedLines;
|
INDEX ctTextLines = _acmMessages[_iActiveMessage].cm_ctFormattedLines;
|
||||||
PIX pixSizeI = _boxMsgText.Size()(1);
|
//PIX pixSizeI = _boxMsgText.Size()(1);
|
||||||
PIX pixSizeJ = _boxMsgText.Size()(2);
|
//PIX pixSizeJ = _boxMsgText.Size()(2);
|
||||||
return GetSliderBox(
|
return GetSliderBox(
|
||||||
_iTextLineOnScreen, _ctTextLinesOnScreen, ctTextLines, GetTextSliderSpace());
|
_iTextLineOnScreen, _ctTextLinesOnScreen, ctTextLines, GetTextSliderSpace());
|
||||||
}
|
}
|
||||||
|
@ -190,8 +190,8 @@ static PIXaabbox2D GetTextSliderBox(void)
|
||||||
static PIXaabbox2D GetMsgSliderBox(void)
|
static PIXaabbox2D GetMsgSliderBox(void)
|
||||||
{
|
{
|
||||||
INDEX ctLines = _acmMessages.Count();
|
INDEX ctLines = _acmMessages.Count();
|
||||||
PIX pixSizeI = _boxMsgList.Size()(1);
|
//PIX pixSizeI = _boxMsgList.Size()(1);
|
||||||
PIX pixSizeJ = _boxMsgList.Size()(2);
|
//PIX pixSizeJ = _boxMsgList.Size()(2);
|
||||||
return GetSliderBox(
|
return GetSliderBox(
|
||||||
_iFirstMessageOnScreen, _ctMessagesOnScreen, ctLines, GetMsgSliderSpace());
|
_iFirstMessageOnScreen, _ctMessagesOnScreen, ctLines, GetMsgSliderSpace());
|
||||||
}
|
}
|
||||||
|
@ -755,7 +755,7 @@ void RenderMessageStats(CDrawPort *pdp)
|
||||||
{
|
{
|
||||||
CSessionProperties *psp = (CSessionProperties *)_pNetwork->GetSessionProperties();
|
CSessionProperties *psp = (CSessionProperties *)_pNetwork->GetSessionProperties();
|
||||||
ULONG ulLevelMask = psp->sp_ulLevelsMask;
|
ULONG ulLevelMask = psp->sp_ulLevelsMask;
|
||||||
INDEX iLevel = -1;
|
//INDEX iLevel = -1;
|
||||||
if (psp->sp_bCooperative) {
|
if (psp->sp_bCooperative) {
|
||||||
extern void RenderMap( CDrawPort *pdp, ULONG ulLevelMask, CProgressHookInfo *pphi);
|
extern void RenderMap( CDrawPort *pdp, ULONG ulLevelMask, CProgressHookInfo *pphi);
|
||||||
if (pdp->Lock()) {
|
if (pdp->Lock()) {
|
||||||
|
@ -1244,8 +1244,8 @@ void CGame::ComputerRender(CDrawPort *pdp)
|
||||||
MarkCurrentRead();
|
MarkCurrentRead();
|
||||||
|
|
||||||
// get current time and alpha value
|
// get current time and alpha value
|
||||||
FLOAT tmNow = (FLOAT)tvNow.GetSeconds();
|
//FLOAT tmNow = (FLOAT)tvNow.GetSeconds();
|
||||||
ULONG ulA = NormFloatToByte(fComputerFadeValue);
|
//ULONG ulA = NormFloatToByte(fComputerFadeValue);
|
||||||
|
|
||||||
_colLight = LCDFadedColor(C_WHITE|255);
|
_colLight = LCDFadedColor(C_WHITE|255);
|
||||||
_colMedium = LCDFadedColor(SE_COL_BLUE_LIGHT|255);
|
_colMedium = LCDFadedColor(SE_COL_BLUE_LIGHT|255);
|
||||||
|
|
|
@ -252,6 +252,7 @@ static void PlayScriptSound(INDEX iChannel, const CTString &strSound, FLOAT fVol
|
||||||
CPrintF("%s\n", strError);
|
CPrintF("%s\n", strError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#if 0 // DG: unused.
|
||||||
static void PlayScriptSoundCfunc(void* pArgs)
|
static void PlayScriptSoundCfunc(void* pArgs)
|
||||||
{
|
{
|
||||||
INDEX iChannel = NEXTARGUMENT(INDEX);
|
INDEX iChannel = NEXTARGUMENT(INDEX);
|
||||||
|
@ -261,6 +262,7 @@ static void PlayScriptSoundCfunc(void* pArgs)
|
||||||
BOOL bLooping = NEXTARGUMENT(INDEX);
|
BOOL bLooping = NEXTARGUMENT(INDEX);
|
||||||
PlayScriptSound(iChannel, strSound, fVolume, fPitch, bLooping);
|
PlayScriptSound(iChannel, strSound, fVolume, fPitch, bLooping);
|
||||||
}
|
}
|
||||||
|
#endif // 0 (unused)
|
||||||
static void StopScriptSound(void* pArgs)
|
static void StopScriptSound(void* pArgs)
|
||||||
{
|
{
|
||||||
INDEX iChannel = NEXTARGUMENT(INDEX);
|
INDEX iChannel = NEXTARGUMENT(INDEX);
|
||||||
|
@ -2148,7 +2150,7 @@ void CGame::GameRedrawView( CDrawPort *pdpDrawPort, ULONG ulFlags)
|
||||||
CTFileName fnm = _fnmThumb;
|
CTFileName fnm = _fnmThumb;
|
||||||
_fnmThumb = CTString("");
|
_fnmThumb = CTString("");
|
||||||
// render one game view to a small cloned drawport
|
// render one game view to a small cloned drawport
|
||||||
PIX pixSizeJ = pdpDrawPort->GetHeight();
|
//PIX pixSizeJ = pdpDrawPort->GetHeight();
|
||||||
PIXaabbox2D boxThumb( PIX2D(0,0), PIX2D(128,128));
|
PIXaabbox2D boxThumb( PIX2D(0,0), PIX2D(128,128));
|
||||||
CDrawPort dpThumb( pdpDrawPort, boxThumb);
|
CDrawPort dpThumb( pdpDrawPort, boxThumb);
|
||||||
_bPlayerViewRendered = FALSE;
|
_bPlayerViewRendered = FALSE;
|
||||||
|
@ -2180,7 +2182,7 @@ void CGame::GameRedrawView( CDrawPort *pdpDrawPort, ULONG ulFlags)
|
||||||
}
|
}
|
||||||
|
|
||||||
// if game is started and computer isn't on
|
// if game is started and computer isn't on
|
||||||
BOOL bClientJoined = FALSE;
|
//BOOL bClientJoined = FALSE;
|
||||||
if( gm_bGameOn && (_pGame->gm_csComputerState==CS_OFF || pdpDrawPort->IsDualHead())
|
if( gm_bGameOn && (_pGame->gm_csComputerState==CS_OFF || pdpDrawPort->IsDualHead())
|
||||||
&& gm_CurrentSplitScreenCfg!=SSC_DEDICATED )
|
&& gm_CurrentSplitScreenCfg!=SSC_DEDICATED )
|
||||||
{
|
{
|
||||||
|
|
|
@ -613,9 +613,10 @@ void RenderMap( CDrawPort *pdp, ULONG ulLevelMask, CProgressHookInfo *pphi)
|
||||||
if (ulLevelMask == 0x00000001 && !map_bIsFirstEncounter) {
|
if (ulLevelMask == 0x00000001 && !map_bIsFirstEncounter) {
|
||||||
|
|
||||||
// render the book
|
// render the book
|
||||||
PIX pixX = (PIX) (aIconCoords[0][0]*fStretch+pixC1S);
|
//PIX pixX = (PIX) (aIconCoords[0][0]*fStretch+pixC1S);
|
||||||
PIX pixY = (PIX) (aIconCoords[0][1]*fStretch+pixR1S);
|
//PIX pixY = (PIX) (aIconCoords[0][1]*fStretch+pixR1S);
|
||||||
CTextureObject *pto = &atoIcons[0];
|
CTextureObject *pto = &atoIcons[0];
|
||||||
|
// FIXME: DG: or was the line below supposed to use pixX and pixY?
|
||||||
pdp->PutTexture( pto, PIXaabbox2D( PIX2D(pixC1S,pixR1S), PIX2D(pixC2E,pixR2E)), C_WHITE|255);
|
pdp->PutTexture( pto, PIXaabbox2D( PIX2D(pixC1S,pixR1S), PIX2D(pixC2E,pixR2E)), C_WHITE|255);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -70,7 +70,7 @@ void InitGLSettings(void)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
strmFile.Open_t( CTString("Scripts\\GLSettings\\GLSettings.lst"), CTStream::OM_READ);
|
strmFile.Open_t( CTString("Scripts\\GLSettings\\GLSettings.lst"), CTStream::OM_READ);
|
||||||
INDEX iIndex = 0;
|
//INDEX iIndex = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
achrLine [0] = 0;
|
achrLine [0] = 0;
|
||||||
|
|
|
@ -2198,8 +2198,8 @@ void InitializeMenus(void)
|
||||||
((CTextureData*)_toLogoMenuB.GetData())->Force(TEX_CONSTANT);
|
((CTextureData*)_toLogoMenuB.GetData())->Force(TEX_CONSTANT);
|
||||||
|
|
||||||
// menu's relative placement
|
// menu's relative placement
|
||||||
CPlacement3D plRelative = CPlacement3D( FLOAT3D( 0.0f, 0.0f, -9.0f),
|
//CPlacement3D plRelative = CPlacement3D( FLOAT3D( 0.0f, 0.0f, -9.0f),
|
||||||
ANGLE3D( AngleDeg(0.0f), AngleDeg(0.0f), AngleDeg(0.0f)));
|
// ANGLE3D( AngleDeg(0.0f), AngleDeg(0.0f), AngleDeg(0.0f)));
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TRANSLATERADIOARRAY(astrNoYes);
|
TRANSLATERADIOARRAY(astrNoYes);
|
||||||
|
@ -2464,7 +2464,7 @@ void MenuUpdateMouseFocus(void)
|
||||||
CMenuGadget *pmgActive = NULL;
|
CMenuGadget *pmgActive = NULL;
|
||||||
// for all gadgets in menu
|
// for all gadgets in menu
|
||||||
FOREACHINLIST( CMenuGadget, mg_lnNode, pgmCurrentMenu->gm_lhGadgets, itmg) {
|
FOREACHINLIST( CMenuGadget, mg_lnNode, pgmCurrentMenu->gm_lhGadgets, itmg) {
|
||||||
CMenuGadget &mg = *itmg;
|
//CMenuGadget &mg = *itmg;
|
||||||
// if focused
|
// if focused
|
||||||
if( itmg->mg_bFocused) {
|
if( itmg->mg_bFocused) {
|
||||||
// remember it
|
// remember it
|
||||||
|
@ -2596,11 +2596,11 @@ BOOL DoMenu( CDrawPort *pdp)
|
||||||
if( bMenuActive)
|
if( bMenuActive)
|
||||||
{
|
{
|
||||||
// get current time
|
// get current time
|
||||||
TIME tmNow = _pTimer->GetLerpedCurrentTick();
|
//TIME tmNow = _pTimer->GetLerpedCurrentTick();
|
||||||
UBYTE ubH1 = (INDEX)(tmNow*08.7f) & 255;
|
//UBYTE ubH1 = (INDEX)(tmNow*08.7f) & 255;
|
||||||
UBYTE ubH2 = (INDEX)(tmNow*27.6f) & 255;
|
//UBYTE ubH2 = (INDEX)(tmNow*27.6f) & 255;
|
||||||
UBYTE ubH3 = (INDEX)(tmNow*16.5f) & 255;
|
//UBYTE ubH3 = (INDEX)(tmNow*16.5f) & 255;
|
||||||
UBYTE ubH4 = (INDEX)(tmNow*35.4f) & 255;
|
//UBYTE ubH4 = (INDEX)(tmNow*35.4f) & 255;
|
||||||
|
|
||||||
// clear screen with background texture
|
// clear screen with background texture
|
||||||
_pGame->LCDPrepare(1.0f);
|
_pGame->LCDPrepare(1.0f);
|
||||||
|
@ -2751,7 +2751,7 @@ BOOL DoMenu( CDrawPort *pdp)
|
||||||
if (!_bMouseUsedLast) {
|
if (!_bMouseUsedLast) {
|
||||||
// find focused gadget
|
// find focused gadget
|
||||||
FOREACHINLIST( CMenuGadget, mg_lnNode, pgmCurrentMenu->gm_lhGadgets, itmg) {
|
FOREACHINLIST( CMenuGadget, mg_lnNode, pgmCurrentMenu->gm_lhGadgets, itmg) {
|
||||||
CMenuGadget &mg = *itmg;
|
//CMenuGadget &mg = *itmg;
|
||||||
// if focused
|
// if focused
|
||||||
if( itmg->mg_bFocused) {
|
if( itmg->mg_bFocused) {
|
||||||
// it is active
|
// it is active
|
||||||
|
@ -2969,8 +2969,8 @@ void CGameMenu::ScrollList(INDEX iDir)
|
||||||
}
|
}
|
||||||
|
|
||||||
// set new focus
|
// set new focus
|
||||||
const INDEX iFirst = 0;
|
//const INDEX iFirst = 0;
|
||||||
const INDEX iLast = gm_ctListVisible-1;
|
//const INDEX iLast = gm_ctListVisible-1;
|
||||||
switch(iDir) {
|
switch(iDir) {
|
||||||
case +1:
|
case +1:
|
||||||
gm_pmgListBottom->OnSetFocus();
|
gm_pmgListBottom->OnSetFocus();
|
||||||
|
@ -5444,7 +5444,7 @@ void CServersMenu::Initialize_t(void)
|
||||||
mgServerRefresh.mg_pActivatedFunction = &RefreshServerList;
|
mgServerRefresh.mg_pActivatedFunction = &RefreshServerList;
|
||||||
gm_lhGadgets.AddTail( mgServerRefresh.mg_lnNode);
|
gm_lhGadgets.AddTail( mgServerRefresh.mg_lnNode);
|
||||||
|
|
||||||
CTString astrColumns[7];
|
//CTString astrColumns[7];
|
||||||
mgServerColumn[0].mg_strText = TRANS("Server") ;
|
mgServerColumn[0].mg_strText = TRANS("Server") ;
|
||||||
mgServerColumn[1].mg_strText = TRANS("Map") ;
|
mgServerColumn[1].mg_strText = TRANS("Map") ;
|
||||||
mgServerColumn[2].mg_strText = TRANS("Ping") ;
|
mgServerColumn[2].mg_strText = TRANS("Ping") ;
|
||||||
|
|
|
@ -266,7 +266,7 @@ void CMGButton::Render( CDrawPort *pdp)
|
||||||
CTString str = mg_strText;
|
CTString str = mg_strText;
|
||||||
if (pdp->dp_FontData->fd_bFixedWidth) {
|
if (pdp->dp_FontData->fd_bFixedWidth) {
|
||||||
str = str.Undecorated();
|
str = str.Undecorated();
|
||||||
INDEX iLen = str.Length();
|
//INDEX iLen = str.Length();
|
||||||
INDEX iMaxLen = ClampDn(box.Size()(1)/(pdp->dp_pixTextCharSpacing+pdp->dp_FontData->fd_pixCharWidth), 1);
|
INDEX iMaxLen = ClampDn(box.Size()(1)/(pdp->dp_pixTextCharSpacing+pdp->dp_FontData->fd_pixCharWidth), 1);
|
||||||
if (iCursor>=iMaxLen) {
|
if (iCursor>=iMaxLen) {
|
||||||
str.TrimRight(iCursor);
|
str.TrimRight(iCursor);
|
||||||
|
@ -768,7 +768,7 @@ void CMGTrigger::Render( CDrawPort *pdp)
|
||||||
CTextureObject to;
|
CTextureObject to;
|
||||||
try {
|
try {
|
||||||
to.SetData_t(mg_strValue);
|
to.SetData_t(mg_strValue);
|
||||||
CTextureData *ptd = (CTextureData *)to.GetData();
|
//CTextureData *ptd = (CTextureData *)to.GetData();
|
||||||
PIX pixSize = box.Size()(2);
|
PIX pixSize = box.Size()(2);
|
||||||
PIX pixCX = box.Max()(1)-pixSize/2;
|
PIX pixCX = box.Max()(1)-pixSize/2;
|
||||||
PIX pixCY = box.Center()(2);
|
PIX pixCY = box.Center()(2);
|
||||||
|
@ -1393,7 +1393,7 @@ void CMGServerList::Render(CDrawPort *pdp)
|
||||||
BOOL bFocusedBefore = mg_bFocused;
|
BOOL bFocusedBefore = mg_bFocused;
|
||||||
mg_bFocused = FALSE;
|
mg_bFocused = FALSE;
|
||||||
|
|
||||||
PIXaabbox2D box = FloatBoxToPixBox(pdp, mg_boxOnScreen);
|
//PIXaabbox2D box = FloatBoxToPixBox(pdp, mg_boxOnScreen);
|
||||||
COLOR col = GetCurrentColor();
|
COLOR col = GetCurrentColor();
|
||||||
|
|
||||||
PIX pixDPSizeI = pdp->GetWidth();
|
PIX pixDPSizeI = pdp->GetWidth();
|
||||||
|
@ -1404,7 +1404,7 @@ void CMGServerList::Render(CDrawPort *pdp)
|
||||||
PIX pixSliderSizeI = 10;
|
PIX pixSliderSizeI = 10;
|
||||||
PIX pixOuterMargin = 20;
|
PIX pixOuterMargin = 20;
|
||||||
|
|
||||||
INDEX ctSessions = _lhServers.Count();
|
//INDEX ctSessions = _lhServers.Count();
|
||||||
INDEX iSession=0;
|
INDEX iSession=0;
|
||||||
|
|
||||||
INDEX ctColumns[7];
|
INDEX ctColumns[7];
|
||||||
|
@ -1430,7 +1430,7 @@ void CMGServerList::Render(CDrawPort *pdp)
|
||||||
apixSeparatorI[2] = apixSeparatorI[3]-pixSizePing-pixLineSize;
|
apixSeparatorI[2] = apixSeparatorI[3]-pixSizePing-pixLineSize;
|
||||||
apixSeparatorI[1] = apixSeparatorI[2]-pixSizeMapName-pixLineSize;
|
apixSeparatorI[1] = apixSeparatorI[2]-pixSizeMapName-pixLineSize;
|
||||||
apixSeparatorI[1] = apixSeparatorI[2]-pixSizeMapName-pixLineSize;
|
apixSeparatorI[1] = apixSeparatorI[2]-pixSizeMapName-pixLineSize;
|
||||||
PIX pixSizeServerName = apixSeparatorI[1]-apixSeparatorI[0]-pixLineSize;
|
//PIX pixSizeServerName = apixSeparatorI[1]-apixSeparatorI[0]-pixLineSize;
|
||||||
|
|
||||||
PIX pixTopJ = (PIX) (pixDPSizeJ*0.15f);
|
PIX pixTopJ = (PIX) (pixDPSizeJ*0.15f);
|
||||||
PIX pixBottomJ = (PIX) (pixDPSizeJ*0.82f);
|
PIX pixBottomJ = (PIX) (pixDPSizeJ*0.82f);
|
||||||
|
@ -1470,7 +1470,7 @@ void CMGServerList::Render(CDrawPort *pdp)
|
||||||
PIXaabbox2D boxHandle = GetScrollBarHandleBox();
|
PIXaabbox2D boxHandle = GetScrollBarHandleBox();
|
||||||
pdp->Fill(boxHandle.Min()(1)+2, boxHandle.Min()(2)+2, boxHandle.Size()(1)-3, boxHandle.Size()(2)-3, col|CT_OPAQUE);
|
pdp->Fill(boxHandle.Min()(1)+2, boxHandle.Min()(2)+2, boxHandle.Size()(1)-3, boxHandle.Size()(2)-3, col|CT_OPAQUE);
|
||||||
|
|
||||||
PIX pixJ = pixTopJ+pixLineSize*2+1;
|
//PIX pixJ = pixTopJ+pixLineSize*2+1;
|
||||||
|
|
||||||
mg_ctOnScreen = ctSessionsOnScreen;
|
mg_ctOnScreen = ctSessionsOnScreen;
|
||||||
AdjustFirstOnScreen();
|
AdjustFirstOnScreen();
|
||||||
|
@ -1755,7 +1755,7 @@ void CMGKeyDefinition::SetBindingNames(BOOL bDefining)
|
||||||
{
|
{
|
||||||
// find the button
|
// find the button
|
||||||
INDEX ict=0;
|
INDEX ict=0;
|
||||||
INDEX iDik=0;
|
//INDEX iDik=0;
|
||||||
FOREACHINLIST( CButtonAction, ba_lnNode, _pGame->gm_ctrlControlsExtra->ctrl_lhButtonActions, itba) {
|
FOREACHINLIST( CButtonAction, ba_lnNode, _pGame->gm_ctrlControlsExtra->ctrl_lhButtonActions, itba) {
|
||||||
if( ict == mg_iControlNumber) {
|
if( ict == mg_iControlNumber) {
|
||||||
CButtonAction &ba = *itba;
|
CButtonAction &ba = *itba;
|
||||||
|
|
|
@ -33,7 +33,7 @@ SHADER_MAIN(Color)
|
||||||
shaDepthFunc(GFX_LESS_EQUAL);
|
shaDepthFunc(GFX_LESS_EQUAL);
|
||||||
|
|
||||||
BOOL bDoubleSided = shaGetFlags()&BASE_DOUBLE_SIDED;
|
BOOL bDoubleSided = shaGetFlags()&BASE_DOUBLE_SIDED;
|
||||||
BOOL bFullBright = shaGetFlags()&BASE_FULL_BRIGHT;
|
//BOOL bFullBright = shaGetFlags()&BASE_FULL_BRIGHT;
|
||||||
|
|
||||||
if(bDoubleSided) {
|
if(bDoubleSided) {
|
||||||
shaCullFace(GFX_NONE);
|
shaCullFace(GFX_NONE);
|
||||||
|
|
|
@ -18,7 +18,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
|
||||||
void DoSpecularLayer(INDEX iSpeculaTexture,INDEX iSpecularColor)
|
void DoSpecularLayer(INDEX iSpeculaTexture,INDEX iSpecularColor)
|
||||||
{
|
{
|
||||||
GFXVertex4 *paVertices = shaGetVertexArray();
|
//GFXVertex4 *paVertices = shaGetVertexArray();
|
||||||
GFXNormal *paNormals = shaGetNormalArray();
|
GFXNormal *paNormals = shaGetNormalArray();
|
||||||
INDEX ctVertices = shaGetVertexCount();
|
INDEX ctVertices = shaGetVertexCount();
|
||||||
FLOAT3D vLightDir = -shaGetLightDirection().Normalize();
|
FLOAT3D vLightDir = -shaGetLightDirection().Normalize();
|
||||||
|
@ -106,7 +106,7 @@ void DoReflectionLayer(INDEX iReflectionTexture,INDEX iReflectionColor,BOOL bFul
|
||||||
paNormals = shaGetNormalArray();
|
paNormals = shaGetNormalArray();
|
||||||
INDEX ctVertices = shaGetVertexCount();
|
INDEX ctVertices = shaGetVertexCount();
|
||||||
GFXTexCoord *ptcUVMap = shaGetNewTexCoordArray();
|
GFXTexCoord *ptcUVMap = shaGetNewTexCoordArray();
|
||||||
Matrix12 &mObjToView = *shaGetObjToViewMatrix();
|
//Matrix12 &mObjToView = *shaGetObjToViewMatrix();
|
||||||
Matrix12 &mObjToAbs = *shaGetObjToAbsMatrix();
|
Matrix12 &mObjToAbs = *shaGetObjToAbsMatrix();
|
||||||
CAnyProjection3D &apr = *shaGetProjection();
|
CAnyProjection3D &apr = *shaGetProjection();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user