//---------------------------------------------------------------------- // NETWORK //---------------------------------------------------------------------- int network(char *arg) { int ix; ix = argvindex(network_funcs, arg, strcmp); switch(ix) { case NETWORK_OPTION: network_option(); break; case NETWORK_MENU: network_menu(); break; case NETWORK_WRITE: network_write(); break; } }
void golgotha_app::receive_event(i4_event * ev) { switch (ev->type()) { case i4_event::DISPLAY_CHANGE: { CAST_PTR(dev, i4_display_change_event_class, ev); if (dev->change==i4_display_change_event_class::SIZE_CHANGE) { get_root_window()->resize(get_display()->width(),get_display()->height()); } } break; case i4_event::DO_COMMAND: { fo_sym.get(); g1_cwin_man->receive_event(ev); char * cmd=((i4_do_command_event_class *)ev)->command; li_symbol * s=li_get_symbol(cmd); if (li_get_fun(s,0)) { li_call(s); } g1_input.receive_event(ev); } break; case i4_event::END_COMMAND: { g1_cwin_man->receive_event(ev); char cmd[200]; sprintf(cmd, "-%s",((i4_do_command_event_class *)ev)->command); li_symbol * s=li_get_symbol(cmd); if (li_get_fun(s,0)) { li_call(cmd); } g1_input.receive_event(ev); } break; case i4_event::USER_MESSAGE: { CAST_PTR(uev,i4_user_message_event_class,ev); switch (uev->sub_type) { case G1_MAIN_MENU: do_main_menu(); break; case G1_NETWORK_MENU: network_menu(); break; case G1_SERVER_MENU: server_menu(); break; case G1_CLIENT_JOINED_MENU: client_wait_menu(); break; case G1_YOU_LOSE: help_screen("youlose_screen", G1_MAIN_MENU); break; case G1_YOU_WIN: { CAST_PTR(fptr,i4_file_open_message_class,uev); win_screen("youwin_screen", fptr->filename); } break; case G1_HELP_SCREEN: help_screen("help_screen", G1_RETURN_TO_GAME); break; case G1_START_HELP_SCREEN: help_screen("help_screen", G1_START_NEW_GAME); break; case G1_PLOT_SCREEN: plot_screen(); break; case G1_START_NEW_GAME: start_new_game(); break; case G1_RETURN_TO_GAME: return_to_game(); break; case G1_SAVEGAME_SAVE: save_savegame(); break; case G1_SAVEGAME_SAVE_OK: save_savegame_ok(uev); //Saving a savegame must not change //the map's filename. break; case G1_SAVEGAME_LOAD_OK: start_saved_game(uev); break; case G1_SAVEGAME_LOAD: open_savegame(); break; case G1_OPTIONS: do_options(); break; case G1_QUIT: quit(); break; case G1_ESCAPE: do_main_menu(); break; case G1_MAP_CHANGED: map_changed(); break; case G1_GET_ROOT_IMAGE: { CAST_PTR(get, g1_get_root_image_event, ev); get->result=display->get_screen(); } break; case G1_REDRAW_LATER: { redraw_later.waiting=i4_F; li_call("redraw_all"); } break; case G1_PLAY_MOVIE: if (g1_map_is_loaded()) { pre_play_save(); if (g1_get_map()->start_movie()) { playing_movie=i4_T; g1_resources.paused=i4_F; } } break; case G1_STOP_MOVIE: { if (playing_movie) { if (g1_map_is_loaded()) { g1_get_map()->stop_movie(); post_play_load(); } playing_movie=i4_F; if (g1_current_controller.get() && g1_current_controller->view.get_view_mode()==G1_CAMERA_MODE) { g1_current_controller->view.suggest_camera_mode(G1_ACTION_MODE); } } } break; case G1_GET_CURRENT_MOVIE: { if (g1_map_is_loaded()) { CAST_PTR(mev, g1_get_current_movie_event, ev); mev->mflow=g1_get_map()->current_movie; } } break; case G1_INTERLACE_PIXEL: { g1_cwin_man->destroy_views(); g1_resources.render_window_expand_mode = R1_COPY_1x1_SCANLINE_SKIP; g1_cwin_man->create_views(); } break; case G1_DOUBLE_PIXEL: { g1_cwin_man->destroy_views(); g1_resources.render_window_expand_mode = R1_COPY_2x2; g1_cwin_man->create_views(); } break; case G1_NORMAL_PIXEL: { g1_cwin_man->destroy_views(); g1_resources.render_window_expand_mode = R1_COPY_1x1; g1_cwin_man->create_views(); } break; } } break; default: i4_application_class::receive_event(ev); } }