int main(int argc, char **argv) { #ifdef STEAMWORKS init_steamworks(); #endif General::argc = argc; General::argv = argv; top: Main* m = NULL; cfg.reset(); try { m = new Main(); if (m->init()) { m->execute(); m->shutdown(); } } catch (Error e) { std::cout << "*** An error occurred *** : " << e.get_message() << std::endl; } delete m; if (restart_game) { restart_game = false; goto top; } return 0; }
/*static*/ int Main::main(void) { init_term(); printf("\nEDBMS Start"); pM = &m; InitEndian(); m.execute(); printf("\nEDBMS Stop"); return 0; }
int32 main(int32 argc, const ansichar* argv[]) { struct Guard { Guard(Main* app) : ref(app){} ~Guard() { if (ref) ref->shutdown(); } Main* ref; }; Main* app = Main::Startup(argc, argv); Guard _(app); //shutdown on main leave if (!app->initialize()) { LOG_ERROR(General, "Initialization failed."); return 1; } return app->execute(); }