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

Method save

Engine/source/console/simObject.cpp:358–426  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

356//-----------------------------------------------------------------------------
357
358bool SimObject::save(const char *pcFileName, bool bOnlySelected, const char *preappend)
359{
360 static const char *beginMessage = "//--- OBJECT WRITE BEGIN ---";
361 static const char *endMessage = "//--- OBJECT WRITE END ---";
362 FileStream *stream;
363 FileObject f;
364 f.readMemory(pcFileName);
365
366 // check for flags <selected, ...>
367 U32 writeFlags = 0;
368 if(bOnlySelected)
369 writeFlags |= SimObject::SelectedOnly;
370
371 if((stream = FileStream::createAndOpen( pcFileName, Torque::FS::File::Write )) == NULL)
372 return false;
373
374 char docRoot[256];
375 char modRoot[256];
376
377 dStrcpy(docRoot, pcFileName);
378 char *p = dStrrchr(docRoot, '/');
379 if (p) *++p = '\0';
380 else docRoot[0] = '\0';
381
382 dStrcpy(modRoot, pcFileName);
383 p = dStrchr(modRoot, '/');
384 if (p) *++p = '\0';
385 else modRoot[0] = '\0';
386
387 Con::setVariable("$DocRoot", docRoot);
388 Con::setVariable("$ModRoot", modRoot);
389
390 const char *buffer;
391 while(!f.isEOF())
392 {
393 buffer = (const char *) f.readLine();
394 if(!dStrcmp(buffer, beginMessage))
395 break;
396 stream->write(dStrlen(buffer), buffer);
397 stream->write(2, "\r\n");
398 }
399 stream->write(dStrlen(beginMessage), beginMessage);
400 stream->write(2, "\r\n");
401 if ( preappend != NULL )
402 stream->write(dStrlen(preappend),preappend);
403 write(*stream, 0, writeFlags);
404 stream->write(dStrlen(endMessage), endMessage);
405 stream->write(2, "\r\n");
406 while(!f.isEOF())
407 {
408 buffer = (const char *) f.readLine();
409 if(!dStrcmp(buffer, endMessage))
410 break;
411 }
412 while(!f.isEOF())
413 {
414 buffer = (const char *) f.readLine();
415 stream->write(dStrlen(buffer), buffer);

Callers 1

simObject.cppFile · 0.45

Calls 11

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

Tested by

no test coverage detected