void VirtualMachine::ResetVM() { m_console.ClearText(); m_console.Log("Restarting Virtual Machine..." ); if ( m_vm->GetDebugMode() ) m_debugger.Close(); ImguiManager::Get()->ClearAllWindows(); m_vm->ResetAndFreeMemory(); m_vm->Init(); if ( m_vm->GetDebugMode() ) m_debugger.Open(m_vm); RunMain(); m_console.Log("Restarting Virtual Machine complete!"); }
/* * Main loop */ int main(int argc, char *argv[], char *argp[]) { #ifdef WIN32 #ifdef _DEBUG _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF #ifdef DEBUG_CRTMEMLEAKS | _CRTDBG_CHECK_CRT_DF | _CRTDBG_CHECK_ALWAYS_DF #endif ); #endif #endif Util::InitVersionRevision(); #ifdef WIN32 InstallUninstallServiceCheck(argc, argv); #endif #ifndef DISABLE_PARCHECK DisableCout(); #endif srand (time(NULL)); g_iArgumentCount = argc; g_szArguments = (char*(*)[])argv; g_szEnvironmentVariables = (char*(*)[])argp; #ifdef WIN32 for (int i=0; i < argc; i++) { if (!strcmp(argv[i], "-D")) { StartService(RunMain); return 0; } } #endif RunMain(); return 0; }