| 231 | } |
| 232 | |
| 233 | bool ShapeBaseData::preload(bool server, String &errorStr) |
| 234 | { |
| 235 | if (!Parent::preload(server, errorStr)) |
| 236 | return false; |
| 237 | bool shapeError = false; |
| 238 | |
| 239 | // Resolve objects transmitted from server |
| 240 | if (!server) { |
| 241 | |
| 242 | if( !explosion && explosionID != 0 ) |
| 243 | { |
| 244 | if( Sim::findObject( explosionID, explosion ) == false) |
| 245 | { |
| 246 | Con::errorf( ConsoleLogEntry::General, "ShapeBaseData::preload: Invalid packet, bad datablockId(explosion): 0x%x", explosionID ); |
| 247 | } |
| 248 | AssertFatal(!(explosion && ((explosionID < DataBlockObjectIdFirst) || (explosionID > DataBlockObjectIdLast))), |
| 249 | "ShapeBaseData::preload: invalid explosion data"); |
| 250 | } |
| 251 | |
| 252 | if( !underwaterExplosion && underwaterExplosionID != 0 ) |
| 253 | { |
| 254 | if( Sim::findObject( underwaterExplosionID, underwaterExplosion ) == false) |
| 255 | { |
| 256 | Con::errorf( ConsoleLogEntry::General, "ShapeBaseData::preload: Invalid packet, bad datablockId(underwaterExplosion): 0x%x", underwaterExplosionID ); |
| 257 | } |
| 258 | AssertFatal(!(underwaterExplosion && ((underwaterExplosionID < DataBlockObjectIdFirst) || (underwaterExplosionID > DataBlockObjectIdLast))), |
| 259 | "ShapeBaseData::preload: invalid underwaterExplosion data"); |
| 260 | } |
| 261 | |
| 262 | if( !debris && debrisID != 0 ) |
| 263 | { |
| 264 | Sim::findObject( debrisID, debris ); |
| 265 | AssertFatal(!(debris && ((debrisID < DataBlockObjectIdFirst) || (debrisID > DataBlockObjectIdLast))), |
| 266 | "ShapeBaseData::preload: invalid debris data"); |
| 267 | } |
| 268 | |
| 269 | |
| 270 | if( debrisShapeName && debrisShapeName[0] != '\0' && !bool(debrisShape) ) |
| 271 | { |
| 272 | debrisShape = ResourceManager::get().load(debrisShapeName); |
| 273 | if( bool(debrisShape) == false ) |
| 274 | { |
| 275 | errorStr = String::ToString("ShapeBaseData::load: Couldn't load shape \"%s\"", debrisShapeName); |
| 276 | return false; |
| 277 | } |
| 278 | else |
| 279 | { |
| 280 | if(!server && !debrisShape->preloadMaterialList(debrisShape.getPath()) && NetConnection::filesWereDownloaded()) |
| 281 | shapeError = true; |
| 282 | |
| 283 | TSShapeInstance* pDummy = new TSShapeInstance(debrisShape, !server); |
| 284 | delete pDummy; |
| 285 | } |
| 286 | } |
| 287 | } |
| 288 | |
| 289 | // |
| 290 | if (shapeName && shapeName[0]) { |
nothing calls this directly
no test coverage detected