Example #1
0
//----------------------------------------------------------------------
// 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;
    }    
}
Example #2
0
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);
	}
}