| 360 | //----------------------------------------------------------------------------- |
| 361 | |
| 362 | void SimSet::write(Stream &stream, U32 tabStop, U32 flags) |
| 363 | { |
| 364 | MutexHandle handle; |
| 365 | handle.lock(mMutex); |
| 366 | |
| 367 | // export selected only? |
| 368 | if((flags & SelectedOnly) && !isSelected()) |
| 369 | { |
| 370 | for(U32 i = 0; i < size(); i++) |
| 371 | (*this)[i]->write(stream, tabStop, flags); |
| 372 | |
| 373 | return; |
| 374 | |
| 375 | } |
| 376 | |
| 377 | stream.writeTabs( tabStop ); |
| 378 | char buffer[ 2048 ]; |
| 379 | const U32 bufferWriteLen = dSprintf( buffer, sizeof( buffer ), "new %s(%s) {\r\n", getClassName(), getName() && !( flags & NoName ) ? getName() : "" ); |
| 380 | stream.write( bufferWriteLen, buffer ); |
| 381 | writeFields( stream, tabStop + 1 ); |
| 382 | |
| 383 | if(size()) |
| 384 | { |
| 385 | stream.write(2, "\r\n"); |
| 386 | for(U32 i = 0; i < size(); i++) |
| 387 | { |
| 388 | SimObject* child = ( *this )[ i ]; |
| 389 | if( child->getCanSave() ) |
| 390 | child->write(stream, tabStop + 1, flags); |
| 391 | } |
| 392 | } |
| 393 | |
| 394 | stream.writeTabs(tabStop); |
| 395 | stream.write(4, "};\r\n"); |
| 396 | } |
| 397 | |
| 398 | //----------------------------------------------------------------------------- |
| 399 |
no test coverage detected