TGEA 1.8.1 Known Issues
by Alex Scarborough · in Torque Game Engine Advanced · 02/11/2009 (2:40 pm) · 0 replies
Last updated: 4/07/09
As great as TGEA 1.8.1 is, there were still a couple of issues that we didn't manage to get to. Rather than make you wait for another release of TGEA though, we decided that it would be much better to put new issues and fixes we find in a single central location, which, as of now, is this thread. If there is a fix in this thread, it will be in any future iterations of TGEA or Torque 3D. To help simplify things, we will try to tag all issues by the engine version they were first noted it, and will tag all issues by the engine version they were fixed in.
Note: This thread is locked and only employees will be editing this post. This is an official list and we would prefer to keep it clean. Please continue to report issues in the TGEA Private Forums and we will add them here as appropriate. If you are aware of an issue that is not listed here please contact me at alexsc@garagegames.com
Without further ado, here is the list:
Mac: Shadows not rendering on GeForce 7300 and GeForce 9400M GPUs
First noted in: TGEA 1.8.0
FIX:
In gfxGLEnumTranslate.cpp, change the line
Memory leak in CameraFXManager
First noted in: <= TGE 1.4.2
FIX:
In cameraFXMgr.cpp, change the void CameraFXManager::clear() method to the following
Player ground shake non-functional/leaks memory
First noted in: TGEA 1.7.0 (?)
FIX:
In player.cpp, in the Player::updatePos() method, uncomment the following line
Particle emitters can accumulate during mission if set to deleteWhenEmpty
First noted in: TGEA 1.8.0 (?)
FIX:
In particleEmitter.cpp, change the void ParticleEmitter::deleteWhenEmpty() method to
TGEA crashes when creating a waterblock in Template
First noted in: TGEA 1.8.1
FIX:
Add the following to Projects/Template/game/scriptsAndAssets/data/water/materials.cs
Terrain terraformer flips imported heightmaps
First noted in: <= TGE 1.4.2
FIX:
In terraformer.cpp, replace bool Terraformer::loadGreyscale(U32, GBitmap*) with
DDS files with 'double extensions' (e.g. base.normal.dds) aren't loaded
First noted in: TGEA 1.8.0
FIX:
In gfxTextureManager.cpp, in GFXTextureObject* GFXTextureManager::createTexture(const Torque::Path&, GFXTextureProfile*), after
WorldEditor default images have incorrect paths
First noted in: TGEA 1.8.0 (?)
FIX:
In worldEditor.cpp, in WorldEditor::WorldEditor() replace
Null stateblock assert in TSShapeInstance::snapshot_softblend
First noted in: TGEA 1.8.0
FIX:
In tsShapeInstance.cpp change void TSShapeInstance::setupStateBlocks() to the following
addMaterialMapping console function incorrectly declared/implemented
First noted in: TGEA 1.8.0 (?)
FIX:
In materialManager.cpp, change the addMaterialMapping console function to
atlasGenerateTextureTOCFromTiles fails to write bitmap
First noted in: TGEA 1.8.0
FIX:
In ConsoleFunction(atlasGenerateTextureTOCFromTiles) in atlasImportTiles.cpp, change
Bug in D3D9 adapter enumeration
First noted in: TGEA 1.7.0 (?)
FIX:
In GFXPCD3D9Device::enumerateAdapters, in gfxPCD3D9Device.cpp, change
Eye position in shader is wrong if object is scaled
First noted in: TGEA 1.8.0
FIX:
In ProcessedShaderMaterial::setEyePosition, in processedShaderMaterial.cpp, remove
Mac: File not created when opened with ReadWrite access
First noted in: TGEA 1.8.0 (?)
FIX:
In PosixFile::open, in posixVolume.cpp, change
PlatformFonts leak memory
First noted in: TGE 1.4 (?)
FIX:
In platformFont.h, inside the PlatformFont class declaration, add
GuiMessageVectorCtrl::createSpecialMarkers leaks memory
First noted in: TGEA 1.7.0 (?)
FIX:
In GuiMessageVectorCtrl::createSpecialMarkers, in guiMessageVectorCtrl.cpp, change
ActionMap::processBindCmd can leak memory
First noted in: TGE 1.4 (?)
FIX:
In ActionMap::processBindCmd, in actionMap.cpp, after
Mac: Creating a thread with autoDelete set to false will eventually cause a crash
First noted in: TGE 1.4 (?)
FIX:
In Thread::~Thread() in macCarbThread.cpp, add
Con::executef errors when called with 7 args
First noted in: TGEA 1.7.0
FIX:
In console.cpp, around line 1057, change
GFXD3D9TextureObject::copyToBmp has overly strict requirements
First noted in: TGEA 1.0
FIX:
None yet, we're working on it.
KeepBitmap and Dynamic texture profiler flags cause D3D assert when used together
First noted in: TGEA 1.0
FIX:
None yet, we're working on it. For now though, don't do that.
Glow renders incorrectly when editor is active
First noted in: TGEA 1.7.0 (?)
FIX:
None yet, we're working on it.
Terrain lighting is incorrect
First noted in: TGEA 1.7.0
FIX:
None yet, we're working on it.
Polysoup collision fails with overlapping shapes
First noted in: TGEA 1.7.0
FIX:
None yet, we're working on it.
Terrain inverts ambient strength when two sided ambient is enabled
First noted in: TGEA 1.8.0 (?)
FIX:
None yet, we're working on it.
Cubemaps don't load DDS files
First noted in: TGEA 1.0
FIX:
None yet, we're working on it.
New resource manager doesn't work with zip files
First noted in: TGEA 1.8.0
FIX:
None yet, we're working on it.
Games cannot be played on non-administrator accounts on Vista
First noted in: TGEA 1.0 (?)
FIX:
None yet, we're working on it.
As great as TGEA 1.8.1 is, there were still a couple of issues that we didn't manage to get to. Rather than make you wait for another release of TGEA though, we decided that it would be much better to put new issues and fixes we find in a single central location, which, as of now, is this thread. If there is a fix in this thread, it will be in any future iterations of TGEA or Torque 3D. To help simplify things, we will try to tag all issues by the engine version they were first noted it, and will tag all issues by the engine version they were fixed in.
Note: This thread is locked and only employees will be editing this post. This is an official list and we would prefer to keep it clean. Please continue to report issues in the TGEA Private Forums and we will add them here as appropriate. If you are aware of an issue that is not listed here please contact me at alexsc@garagegames.com
Without further ado, here is the list:
Mac: Shadows not rendering on GeForce 7300 and GeForce 9400M GPUs
First noted in: TGEA 1.8.0
FIX:
In gfxGLEnumTranslate.cpp, change the line
GFXGLTextureInternalFormat[GFXFormatD16] = GL_DEPTH_COMPONENT16;to
GFXGLTextureInternalFormat[GFXFormatD16] = GL_DEPTH_COMPONENT;
Memory leak in CameraFXManager
First noted in: <= TGE 1.4.2
FIX:
In cameraFXMgr.cpp, change the void CameraFXManager::clear() method to the following
void CameraFXManager::clear()
{
CameraFXPtr* cur = NULL;
for(cur = mFXList.next(cur); cur; cur = mFXList.next(cur))
{
delete *cur;
}
mFXList.free();
}and in void CameraFXManager::update(F32) change the if( curFX->isExpired() ) block to the followingif( curFX->isExpired() )
{
CameraFXPtr *prev = mFXList.prev( cur );
delete curFX;
mFXList.free( cur );
cur = prev;
}Player ground shake non-functional/leaks memory
First noted in: TGEA 1.7.0 (?)
FIX:
In player.cpp, in the Player::updatePos() method, uncomment the following line
// gCamFXMgr.addFX( groundImpactShake );~line 2903
Particle emitters can accumulate during mission if set to deleteWhenEmpty
First noted in: TGEA 1.8.0 (?)
FIX:
In particleEmitter.cpp, change the void ParticleEmitter::deleteWhenEmpty() method to
void ParticleEmitter::deleteWhenEmpty()
{
// if the following asserts fire, there is a reasonable chance that you are trying to delete a particle emitter
// that has already been deleted (possibly by ClientMissionCleanup). If so, use a SimObjectPtr to the emitter and check it
// for null before calling this function.
AssertFatal(isProperlyAdded(), "ParticleEmitter must be registed before calling deleteWhenEmpty");
AssertFatal(!mDead, "ParticleEmitter already deleted");
AssertFatal(!isDeleted(), "ParticleEmitter already deleted");
AssertFatal(!isRemoved(), "ParticleEmitter already removed");
// this check is for non debug case, so that we don't write in to freed memory
bool okToDelete = !mDead && isProperlyAdded() && !isDeleted() && !isRemoved();
if (okToDelete)
{
mDeleteWhenEmpty = true;
if(!n_parts)
{
// We're already empty, so delete us now
mDead = true;
deleteObject();
}
else
AssertFatal(mSceneManager != NULL, "ParticleEmitter::deleteWhenEmpty - ParticleEmitter not on process list and won't get ticked to death");
}
}TGEA crashes when creating a waterblock in Template
First noted in: TGEA 1.8.1
FIX:
Add the following to Projects/Template/game/scriptsAndAssets/data/water/materials.cs
new CustomMaterial( Water_NoReflect )
{
texture[0] = "noise02";
texture[2] = "$backbuff";
texture[3] = "$fog";
texture[4] = "$cubemap";
cubemap = Sky_Day_Blur02;
shader = WaterCubeNoReflect;
specular = "0.75 0.75 0.75 1.0";
specularPower = 48.0;
fallback = WaterFallback1_1;
version = 2.0;
};Terrain terraformer flips imported heightmaps
First noted in: <= TGE 1.4.2
FIX:
In terraformer.cpp, replace bool Terraformer::loadGreyscale(U32, GBitmap*) with
bool Terraformer::loadGreyscale(U32 r, GBitmap *bmp)
{
Heightfield *dst = getRegister(r);
for( U32 yh = 0, yb = blockSize - 1; yh < blockSize; yh ++, yb -- )
for( U32 x = 0; x < blockSize; x ++ )
{
ColorI color;
bmp->getColor(x,yb,color);
// compute the luminance of each RGB
dst->val(x, yh) = ((F32)color[0]) * (0.299f/256.0f) +
((F32)color[1]) * (0.587f/256.0f) +
((F32)color[2]) * (0.114f/256.0f);
}
return true;
}DDS files with 'double extensions' (e.g. base.normal.dds) aren't loaded
First noted in: TGEA 1.8.0
FIX:
In gfxTextureManager.cpp, in GFXTextureObject* GFXTextureManager::createTexture(const Torque::Path&, GFXTextureProfile*), after
// Check to see if there is a .DDS file with this name (if no extension is provided) Torque::Path tryDDSPath = pathNoExt;add
Torque::Path tryDDSPath = pathNoExt; if (tryDDSPath.getExtension().isNotEmpty()) tryDDSPath.setFileName( tryDDSPath.getFullFileName() );
WorldEditor default images have incorrect paths
First noted in: TGEA 1.8.0 (?)
FIX:
In worldEditor.cpp, in WorldEditor::WorldEditor() replace
mSelectHandle = StringTable->insert("common/editor/SelectHandle");
mDefaultHandle = StringTable->insert("common/editor/DefaultHandle");
mLockedHandle = StringTable->insert("common/editor/LockedHandle");withmSelectHandle = StringTable->insert("Tools/missionEditor/images/SelectHandle");
mDefaultHandle = StringTable->insert("Tools/missionEditor/images/DefaultHandle");
mLockedHandle = StringTable->insert("Tools/missionEditor/images/LockedHandle");Null stateblock assert in TSShapeInstance::snapshot_softblend
First noted in: TGEA 1.8.0
FIX:
In tsShapeInstance.cpp change void TSShapeInstance::setupStateBlocks() to the following
void TSShapeInstance::setupStateBlocks()
{
if(mSnapshotSB.isValid())
return;
GFXStateBlockDesc d;
d.setCullMode(GFXCullNone);
mSnapshotSB = GFX->createStateBlock(d);
}and add the following line to the very beginning of TSShapeInstance::snapshot_softblendsetupStateBlocks();
addMaterialMapping console function incorrectly declared/implemented
First noted in: TGEA 1.8.0 (?)
FIX:
In materialManager.cpp, change the addMaterialMapping console function to
ConsoleFunction( addMaterialMapping, void, 3, 3, "(string textureName, string materialName) Set up a material to texture mapping." )
{
MaterialManager::get()->mapMaterial(argv[1],argv[2]);
}atlasGenerateTextureTOCFromTiles fails to write bitmap
First noted in: TGEA 1.8.0
FIX:
In ConsoleFunction(atlasGenerateTextureTOCFromTiles) in atlasImportTiles.cpp, change
bmp = GBitmap::load(buff);to
Resource<GBitmap> newBM = GBitmap::load(buff);
if(newBM == NULL)
{
Con::errorf("atlasGenerateTextureTOCFromTiles - unable to open tile '%s'! Aborting!", buff);
return;
}
GBitmap *bmp = new GBitmap(*newBM);Bug in D3D9 adapter enumeration
First noted in: TGEA 1.7.0 (?)
FIX:
In GFXPCD3D9Device::enumerateAdapters, in gfxPCD3D9Device.cpp, change
d3d9->EnumAdapterModes( D3DADAPTER_DEFAULT, formats[ i ], j, &mode );to
d3d9->EnumAdapterModes( adapterIndex, formats[ i ], j, &mode );
Eye position in shader is wrong if object is scaled
First noted in: TGEA 1.8.0
FIX:
In ProcessedShaderMaterial::setEyePosition, in processedShaderMaterial.cpp, remove
position.convolveInverse(objTrans.getScale());
Mac: File not created when opened with ReadWrite access
First noted in: TGEA 1.8.0 (?)
FIX:
In PosixFile::open, in posixVolume.cpp, change
case ReadWrite: fmode = "r+"; break;to
case ReadWrite:
fmode = "r+";
// Ensure the file exists
FILE* temp = fopen(_name.c_str(), "a+");
fclose(temp);
break;PlatformFonts leak memory
First noted in: TGE 1.4 (?)
FIX:
In platformFont.h, inside the PlatformFont class declaration, add
virtual ~PlatformFont() {} as a public member.GuiMessageVectorCtrl::createSpecialMarkers leaks memory
First noted in: TGEA 1.7.0 (?)
FIX:
In GuiMessageVectorCtrl::createSpecialMarkers, in guiMessageVectorCtrl.cpp, change
char* pLCCopy = new char[dStrlen(string) + 1];
for (U32 i = 0; string[ i ] != ''; i++)
pLCCopy[ i ] = dTolower(string[ i ]);
pLCCopy[dStrlen(string)] = ''; to String pLCCopyStr = String::ToLower( string ); const char* pLCCopy = pLCCopyStr.c_str();
ActionMap::processBindCmd can leak memory
First noted in: TGE 1.4 (?)
FIX:
In ActionMap::processBindCmd, in actionMap.cpp, after
pBindNode->scaleFactor = 1;add
if( pBindNode->makeConsoleCommand )
dFree( pBindNode->makeConsoleCommand );
if( pBindNode->breakConsoleCommand )
dFree( pBindNode->breakConsoleCommand );Mac: Creating a thread with autoDelete set to false will eventually cause a crash
First noted in: TGE 1.4 (?)
FIX:
In Thread::~Thread() in macCarbThread.cpp, add
ThreadManager::removeThread(this);to the end.
Con::executef errors when called with 7 args
First noted in: TGEA 1.7.0
FIX:
In console.cpp, around line 1057, change
const char *executef(OBJ, A a, A b, A c, A d, A e, A f, A g) { return _executef(obj, 6, 7, a, b, c, d, e, f, g); }toconst char *executef(OBJ, A a, A b, A c, A d, A e, A f, A g) { return _executef(obj, 7, 7, a, b, c, d, e, f, g); }GFXD3D9TextureObject::copyToBmp has overly strict requirements
First noted in: TGEA 1.0
FIX:
None yet, we're working on it.
KeepBitmap and Dynamic texture profiler flags cause D3D assert when used together
First noted in: TGEA 1.0
FIX:
None yet, we're working on it. For now though, don't do that.
Glow renders incorrectly when editor is active
First noted in: TGEA 1.7.0 (?)
FIX:
None yet, we're working on it.
Terrain lighting is incorrect
First noted in: TGEA 1.7.0
FIX:
None yet, we're working on it.
Polysoup collision fails with overlapping shapes
First noted in: TGEA 1.7.0
FIX:
None yet, we're working on it.
Terrain inverts ambient strength when two sided ambient is enabled
First noted in: TGEA 1.8.0 (?)
FIX:
None yet, we're working on it.
Cubemaps don't load DDS files
First noted in: TGEA 1.0
FIX:
None yet, we're working on it.
New resource manager doesn't work with zip files
First noted in: TGEA 1.8.0
FIX:
None yet, we're working on it.
Games cannot be played on non-administrator accounts on Vista
First noted in: TGEA 1.0 (?)
FIX:
None yet, we're working on it.
About the author