added everything
This commit is contained in:
65
engine/platformMacCarb/macCarbProcessControl.cc
Executable file
65
engine/platformMacCarb/macCarbProcessControl.cc
Executable file
@@ -0,0 +1,65 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "platformMacCarb/platformMacCarb.h"
|
||||
#include "platform/event.h"
|
||||
#include "platform/gameInterface.h"
|
||||
#include "platformMacCarb/macCarbEvents.h"
|
||||
|
||||
|
||||
void Platform::postQuitMessage(const U32 in_quitVal)
|
||||
{
|
||||
// guard against multiple quit messages. Quit event flow gets complex.
|
||||
if(platState.quit)
|
||||
return;
|
||||
|
||||
platState.quit = true;
|
||||
Event quitEvent;
|
||||
quitEvent.type = QuitEventType;
|
||||
|
||||
Game->postEvent(quitEvent);
|
||||
|
||||
MacCarbRemoveCarbonEventHandlers();
|
||||
}
|
||||
|
||||
void Platform::debugBreak()
|
||||
{
|
||||
DebugStr("\pDEBUG_BREAK!");
|
||||
}
|
||||
|
||||
void Platform::forceShutdown(S32 returnValue)
|
||||
{
|
||||
exit(returnValue);
|
||||
}
|
||||
|
||||
void Platform::restartInstance()
|
||||
{
|
||||
// execl() leaves open file descriptors open, that's the main reason it's not
|
||||
// used here. We want to start fresh.
|
||||
|
||||
if( Game->isRunning() )
|
||||
{
|
||||
Con::errorf("The game is still running, we cant relaunch now!");
|
||||
return;
|
||||
}
|
||||
// get the path to the torque executable
|
||||
CFBundleRef mainBundle = CFBundleGetMainBundle();
|
||||
CFURLRef execURL = CFBundleCopyExecutableURL(mainBundle);
|
||||
CFStringRef execString = CFURLCopyFileSystemPath(execURL, kCFURLPOSIXPathStyle);
|
||||
|
||||
// append ampersand so that we can launch without blocking.
|
||||
// encase in quotes so that spaces in the path are accepted.
|
||||
CFMutableStringRef mut = CFStringCreateMutableCopy(NULL, 0, execString);
|
||||
CFStringInsert(mut, 0, CFSTR("\""));
|
||||
CFStringAppend(mut, CFSTR("\" & "));
|
||||
|
||||
U32 len = CFStringGetMaximumSizeForEncoding(CFStringGetLength(mut), kCFStringEncodingUTF8);
|
||||
char *execCString = new char[len+1];
|
||||
CFStringGetCString(mut, execCString, len, kCFStringEncodingUTF8);
|
||||
execCString[len] = '\0';
|
||||
|
||||
Con::printf("---- %s -----",execCString);
|
||||
system(execCString);
|
||||
}
|
||||
Reference in New Issue
Block a user