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;
}
示例#2
0
/*static*/
int Main::main(void)
{
	init_term();

    printf("\nEDBMS Start");

	pM = &m;

	InitEndian();

	m.execute();

    printf("\nEDBMS Stop");

    return 0;
}
示例#3
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();
}