/* this will load some graphics and so other stuff */ static void mw_init () { team_update (); gfx_blitdraw (); draw_logo (); gfx_blitdraw (); bman.updatestatusbar = 1; d_playerdetail ("mw_init:\n"); SDL_Flip (gfx.screen); chat_show (10, gfx.res.y / 2, gfx.res.x - 20, gfx.res.y / 2 - 10); chat_setactive (1, 1); };
/* single player game win/point screen * 1. setup all player data * 2. setup second local player and ai players * 3. setup all other game related data */ void single_playergame (int second_player, int ai_players) { int p, done = 0; bman.p_nr = -1; bman.p2_nr = -1; /* delete player and teams from the game */ for (p = 0; p < MAX_PLAYERS; p++) { players[p].points = 0; players[p].wins = 0; players[p].state = 0; players[p].team_nr = -1; players[p].gfx_nr = -1; players[p].gfx = NULL; memset (&players[p].net, 0x0, sizeof (_net_player)); } for (p = 0; p < MAX_TEAMS; p++) { teams[p].wins = 0; teams[p].points = 0; for (done = 0; done < MAX_PLAYERS; done++) teams[p].players[done] = NULL; } done = 0; for (bman.p_nr = -1, p = 0; (bman.p_nr == -1 && p < MAX_PLAYERS); p++) if (!(PS_IS_used (players[p].state))) bman.p_nr = p; players[bman.p_nr].team_nr = 0; if (bman.p_nr >= MAX_PLAYERS) { printf ("ERROR in function (single_game_new): couldn't find any free player\n"); exit (1); } strncpy (players[bman.p_nr].name, bman.playername, LEN_PLAYERNAME); do { done = playermenu_selgfx (bman.p_nr); } while (players[bman.p_nr].gfx_nr == -1 && done != -1); players[bman.p_nr].state = PSF_used + PSF_alife + PSF_playing; strncpy (players[bman.p_nr].name, bman.playername, LEN_PLAYERNAME); if (done != -1 && second_player) { player2_join (); do { done = playermenu_selgfx (bman.p2_nr); } while (players[bman.p2_nr].gfx_nr == -1 && done != -1); players[bman.p2_nr].team_nr = 0; } if (done == -1) return; single_create_ai (ai_players); if (bman.gametype == GT_team) { playermenu (); team_update (); ai_team_choosegfx (); } bman.state = GS_ready; while (!done && bman.state != GS_quit && bman.state != GS_startup) { single_game_new (); game_start (); bman.state = GS_running; game_loop (); game_end (); } gfx_blitdraw (); draw_logo (); gfx_blitdraw (); };