MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / save

Method save

Engine/source/console/simObject.cpp:408–476  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

406//-----------------------------------------------------------------------------
407
408bool SimObject::save(const char *pcFileName, bool bOnlySelected, const char *preappend)
409{
410 static const char *beginMessage = "//--- OBJECT WRITE BEGIN ---";
411 static const char *endMessage = "//--- OBJECT WRITE END ---";
412 FileStream *stream;
413 FileObject f;
414 f.readMemory(pcFileName);
415
416 // check for flags <selected, ...>
417 U32 writeFlags = 0;
418 if(bOnlySelected)
419 writeFlags |= SimObject::SelectedOnly;
420
421 if((stream = FileStream::createAndOpen( pcFileName, Torque::FS::File::Write )) == NULL)
422 return false;
423
424 char docRoot[256];
425 char modRoot[256];
426
427 dStrcpy(docRoot, pcFileName, 256);
428 char *p = dStrrchr(docRoot, '/');
429 if (p) *++p = '\0';
430 else docRoot[0] = '\0';
431
432 dStrcpy(modRoot, pcFileName, 256);
433 p = dStrchr(modRoot, '/');
434 if (p) *++p = '\0';
435 else modRoot[0] = '\0';
436
437 Con::setVariable("$DocRoot", docRoot);
438 Con::setVariable("$ModRoot", modRoot);
439
440 const char *buffer;
441 while(!f.isEOF())
442 {
443 buffer = (const char *) f.readLine();
444 if(!String::compare(buffer, beginMessage))
445 break;
446 stream->write(dStrlen(buffer), buffer);
447 stream->write(2, "\r\n");
448 }
449 stream->write(dStrlen(beginMessage), beginMessage);
450 stream->write(2, "\r\n");
451 if ( preappend != NULL )
452 stream->write(dStrlen(preappend),preappend);
453 write(*stream, 0, writeFlags);
454 stream->write(dStrlen(endMessage), endMessage);
455 stream->write(2, "\r\n");
456 while(!f.isEOF())
457 {
458 buffer = (const char *) f.readLine();
459 if(!String::compare(buffer, endMessage))
460 break;
461 }
462 while(!f.isEOF())
463 {
464 buffer = (const char *) f.readLine();
465 stream->write(dStrlen(buffer), buffer);

Callers 1

simObject.cppFile · 0.45

Calls 11

dStrcpyFunction · 0.85
setVariableFunction · 0.85
compareFunction · 0.85
readMemoryMethod · 0.80
isEOFMethod · 0.80
dStrrchrFunction · 0.50
dStrchrFunction · 0.50
dStrlenFunction · 0.50
writeFunction · 0.50
readLineMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected