int main (int c, char **v) { quakeparms_t parms; enableCrunLoop = c > 0; // signal(SIGFPE, floating_point_exception_handler); signal(SIGFPE, SIG_IGN); parms.memsize = 16*1024*1024; parms.membase = malloc (parms.memsize); parms.basedir = basedir; parms.cachedir = cachedir; COM_InitArgv(c, v); parms.argc = com_argc; parms.argv = com_argv; Sys_Init(); Host_Init(&parms); Cvar_RegisterVariable (&sys_nostdout); oldtime = Sys_FloatTime () - 0.1; if(enableCrunLoop) { while(true) { engineTick(); } } else { AS3_GoAsync(); } }
int main(void) { int width = 4; int height = 16; // create two players... Player *player1 = createPlayer("Player1"); Player *player2 = createPlayer("Player2"); // game logic and the like Engine *engine = createEngine(consoleRenderer, eventHandler); // initialize renderer initConsoleRenderer(width + 2, height + 2); while (TRUE) { // create the game board SuPong *suPong = createGame(width, height, player1, player2); resetEngine(engine); // now run the game... while (engine->state == RUNNING) { engineTick(engine, suPong); usleep(100000); } // engine->state now contains the winner... // you could for example restart the game for a next match... // do this by calling run(engine, suPong) again // engine->state renderGameEnd(engine); usleep(1000000); } // shutdown renderer shutdownConsoleRenderer(); return 0; }