Missing file logging and DTS materials
by Tom Spilman · in Torque Game Engine Advanced · 08/16/2005 (12:18 pm) · 2 replies
We've been seeing more of this in the console log now:
One set of that for each texture used in materials assigned to DTS shapes.
Anytime a ResManager::find() call fails to find the requested file it is added to the mMissingFileList if mLoggingMissingFiles is enabled. Logging seems to only be enabled once the game connection to the server first occurs and DTS shapes are loaded after the game connection occurs.
When TSShape::preloadMaterialList() is called GBitmap::load() will end up calling ResManager::find() multiple times trying to guess the file extension of the textures used by the materials. So failure to find a resource in that case is acceptable and shouldn't really trigger a FileDownloadRequestEvent.
It's a damn complex setup, so i haven't been able to figure out exactly why this occurs for TSShapes and not interiors. I *think* it may be related to interiors loading it's materials within onAdd() instead of preload() in ShapeBaseData.
Anyway any ideas on where to nip this bug? If i fix this i remove thousands of lines from our console log which makes it much easier to spot real problems.
Quote:
Sending request for file Frontier/data/shapes/shipstuff/leatherblack_diff_spec
Sending request for file Frontier/data/shapes/shipstuff/leatherblack_diff_spec.jpg
Sending request for file Frontier/data/shapes/shipstuff/leatherblack_diff_spec.png
Sending request for file Frontier/data/shapes/shipstuff/leatherblack_diff_spec.gif
Sending request for file Frontier/data/shapes/shipstuff/leatherblack_diff_spec.bmp
Sending request for file Frontier/data/shapes/leatherblack_diff_spec
Sending request for file Frontier/data/shapes/leatherblack_diff_spec.jpg
Sending request for file Frontier/data/shapes/leatherblack_diff_spec.png
Sending request for file Frontier/data/shapes/leatherblack_diff_spec.gif
Sending request for file Frontier/data/shapes/leatherblack_diff_spec.bmp
Sending request for file Frontier/data/leatherblack_diff_spec
Sending request for file Frontier/data/leatherblack_diff_spec.jpg
Sending request for file Frontier/data/leatherblack_diff_spec.png
Sending request for file Frontier/data/leatherblack_diff_spec.gif
Sending request for file Frontier/data/leatherblack_diff_spec.bmp
Sending request for file Frontier/leatherblack_diff_spec
Sending request for file Frontier/leatherblack_diff_spec.jpg
Sending request for file Frontier/leatherblack_diff_spec.png
Sending request for file Frontier/leatherblack_diff_spec.gif
Sending request for file Frontier/leatherblack_diff_spec.bmp
No such file Frontier/data/shapes/shipstuff/leatherblack_diff_spec.
No such file Frontier/data/shapes/shipstuff/leatherblack_diff_spec.jpg.
No such file Frontier/data/shapes/shipstuff/leatherblack_diff_spec.png.
No such file Frontier/data/shapes/shipstuff/leatherblack_diff_spec.gif.
No such file Frontier/data/shapes/shipstuff/leatherblack_diff_spec.bmp.
No such file Frontier/data/shapes/leatherblack_diff_spec.
No such file Frontier/data/shapes/leatherblack_diff_spec.jpg.
No such file Frontier/data/shapes/leatherblack_diff_spec.png.
No such file Frontier/data/shapes/leatherblack_diff_spec.gif.
No such file Frontier/data/shapes/leatherblack_diff_spec.bmp.
No such file Frontier/data/leatherblack_diff_spec.
No such file Frontier/data/leatherblack_diff_spec.jpg.
No such file Frontier/data/leatherblack_diff_spec.png.
No such file Frontier/data/leatherblack_diff_spec.gif.
No such file Frontier/data/leatherblack_diff_spec.bmp.
No such file Frontier/leatherblack_diff_spec.
No such file Frontier/leatherblack_diff_spec.jpg.
No such file Frontier/leatherblack_diff_spec.png.
No such file Frontier/leatherblack_diff_spec.gif.
No such file Frontier/leatherblack_diff_spec.bmp.
One set of that for each texture used in materials assigned to DTS shapes.
Anytime a ResManager::find() call fails to find the requested file it is added to the mMissingFileList if mLoggingMissingFiles is enabled. Logging seems to only be enabled once the game connection to the server first occurs and DTS shapes are loaded after the game connection occurs.
When TSShape::preloadMaterialList() is called GBitmap::load() will end up calling ResManager::find() multiple times trying to guess the file extension of the textures used by the materials. So failure to find a resource in that case is acceptable and shouldn't really trigger a FileDownloadRequestEvent.
It's a damn complex setup, so i haven't been able to figure out exactly why this occurs for TSShapes and not interiors. I *think* it may be related to interiors loading it's materials within onAdd() instead of preload() in ShapeBaseData.
Anyway any ideas on where to nip this bug? If i fix this i remove thousands of lines from our console log which makes it much easier to spot real problems.
About the author
Tom is a programmer and co-owner of Sickhead Games, LLC.
Torque Owner Brian Ramage
Black Jacket Games