static void loop(void) { struct interval *tp; u_int sltime; int logged; if (offset <= NOLOG_TIME) { logged = 1; nolog(); } else logged = 0; tp = tlist; if (tp->timeleft < offset) (void)sleep((u_int)(offset - tp->timeleft)); else { while (tp->timeleft && offset < tp->timeleft) ++tp; /* * Warn now, if going to sleep more than a fifth of * the next wait time. */ if ((sltime = offset - tp->timeleft)) { if (sltime > (u_int)(tp->timetowait / 5)) timewarn(offset); (void)sleep(sltime); } } for (;; ++tp) { timewarn(tp->timeleft); if (!logged && tp->timeleft <= NOLOG_TIME) { logged = 1; nolog(); } (void)sleep((u_int)tp->timetowait); if (!tp->timeleft) break; } perform_shutdown(); }
} void log(const WCHAR_T *text) { if (NO_LOG) return; if (!enabled) return; wchar_t *sh = 0; nolog(); ::convFromShortWchar(&sh, text, 0); nolog(false); std::wofstream out; out.open("c:/temp/ncr.txt", std::ios_base::app); if (first) out << L"----" << std::endl; out << text << std::endl; first = false;
static void enter_wait_mode(game_display& disp, const config& game_config, mp::chat& chat, config& gamelist, bool observe) { mp::ui::result res; game_state state; network_game_manager m; upload_log nolog(false); gamelist.clear(); statistics::fresh_stats(); { mp::wait ui(disp, game_config, chat, gamelist); ui.join_game(observe); run_lobby_loop(disp, ui); res = ui.get_result(); if (res == mp::ui::PLAY) { ui.start_game(); // FIXME commented a pointeless if since the else does exactly the same thing //if (preferences::skip_mp_replay()){ //FIXME implement true skip replay //state = ui.request_snapshot(); //state = ui.get_state(); //} //else{ state = ui.get_state(); //} } } switch (res) { case mp::ui::PLAY: play_game(disp, state, game_config, nolog, IO_CLIENT, preferences::skip_mp_replay() && observe); recorder.clear(); break; case mp::ui::QUIT: default: break; } }
static void enter_connect_mode(game_display& disp, const config& game_config, mp::chat& chat, config& gamelist, const mp_game_settings& params, const int num_turns, mp::controller default_controller, bool local_players_only = false) { mp::ui::result res; game_state state; const network::manager net_manager(1,1); network_game_manager m; upload_log nolog(false); gamelist.clear(); statistics::fresh_stats(); { mp::connect ui(disp, game_config, chat, gamelist, params, num_turns, default_controller, local_players_only); run_lobby_loop(disp, ui); res = ui.get_result(); // start_game() updates the parameters to reflect game start, // so it must be called before get_level() if (res == mp::ui::PLAY) { ui.start_game(); state = ui.get_state(); } } switch (res) { case mp::ui::PLAY: play_game(disp, state, game_config, nolog, IO_SERVER); recorder.clear(); break; case mp::ui::CREATE: enter_create_mode(disp, game_config, chat, gamelist, default_controller, local_players_only); break; case mp::ui::QUIT: default: network::send_data(config("refresh_lobby"), 0, true); break; } }