318 #define MULTI_INGAME_JOIN_NUM_BUTTONS 2
333 #define MULTI_INGAME_JOIN_NUM_TEXT 8
480 #define MULTI_INGAME_TIME_SECONDS (1000 * 15)
489 #define MULTI_INGAME_MAX_SHIP_ICONS 40
510 #define MAX_INGAME_SHIPS 50
511 #define INGAME_FINAL_TIMEOUT 4000
541 if(Multi_ingame_ship_icon[idx].ship_class == ship_class){
552 int first_frame, num_frames,
idx, s_idx;
558 Multi_ingame_ship_icon[
idx].
bmaps[s_idx] = -1;
572 if ( first_frame == -1 ) {
575 for ( s_idx = 0; s_idx < num_frames; s_idx++ ) {
591 if(Multi_ingame_ship_icon[idx].bmaps[s_idx] != -1){
592 bm_release(Multi_ingame_ship_icon[idx].bmaps[s_idx]);
593 Multi_ingame_ship_icon[
idx].
bmaps[s_idx] = -1;
658 Error(
LOCATION,
"Couldn't load background bitmap for ingame join");
682 Multi_ingame_select_button.
hide();
706 if(Multi_ingame_select_button.
pressed()){
781 int k = Multi_ingame_window.
process();
812 Multi_ingame_window.
draw();
829 nprintf((
"General",
"WARNING : could not unload background bitmap %s\n",Multi_ingame_join_bitmap_fname[
gr_screen.
res]));
959 memset(tl_string,0,100);
960 sprintf(tl_string,
XSTR(
"Time remaining : %d s\n",682),time_left);
970 #define INGAME_PACKET_SLOP 75 // slop value used for packets to ingame joiner
978 int team_val, slot_index,
idx;
979 char ship_name[255] =
"";
1007 int ship_num, objnum;
1030 nprintf((
"Network",
"Couldn't find ship %s in either arrival list or in mission", ship_name));
1064 if(
Ships[idx].objnum < 0){
1072 if ( team_val != -1 ) {
1073 Assert( slot_index != -1 );
1140 wing_data = (short)shipp->
wingnum;
1418 signature = (
ushort)rdata;
1524 int shipnum, objnum, player_objnum;
1532 Assert( ship_name != NULL );
1534 if ( shipnum == -1 ) {
1543 if ( objnum !=
Net_players[i].m_player->objnum ) {
1560 int team, slot_index,
i;
1562 ubyte val, num_secondary_banks, num_primary_banks;
1579 if(player_num == -1){
1580 nprintf((
"Network",
"Received ingame ship request packet from unknown player!!\n"));
1586 if(
Net_players[player_num].m_player->objnum != -1){
1673 Assert( slot_index != -1 );
1768 if ( objp == NULL ) {
1770 nprintf((
"Network",
"Couldn't find ship for ingame joiner %s\n",
Net_players[player_num].m_player->callsign));
1856 nprintf((
"Network",
"Got ingame ship update for unknown object\n"));
1858 for(idx=0;idx<n_quadrants;idx++){
1869 for(idx=0;idx<n_quadrants;idx++){
void multi_ingame_sync_close()
void set_highlight_action(void(*_user_function)(void))
#define MULTI_INGAME_MAX_SHIP_ICONS
int timestamp(int delta_ms)
#define MY_NET_PLAYER_NUM
void obj_set_flags(object *obj, uint new_flags)
void multi_ingame_validate_players()
int Multi_ingame_ship_selected
void add_XSTR(char *string, int _xstr_id, int _x, int _y, UI_GADGET *_assoc, int _color_type, int _font_id=-1)
int primary_bank_weapons[MAX_SHIP_PRIMARY_BANKS]
#define NETPLAYER_STATE_IN_MISSION
UI_BUTTON Multi_ingame_select_button
int Multi_ingame_num_ship_icons
void multi_ingame_join_display_avail()
void scoring_level_init(scoring_struct *scp)
void multi_ingame_handle_timeout()
#define NETGAME_STATE_PAUSED
void multi_ingame_select_do()
#define INGAME_SHIP_UPDATE_TIME
void multi_ingame_join_check_buttons()
char Game_current_mission_filename[MAX_FILENAME_LEN]
int obj_team(object *objp)
weapon_info Weapon_info[MAX_WEAPON_TYPES]
#define NETPLAYER_STATE_MISSION_LOADED
void multi_ingame_observer_finish()
#define MULTI_INGAME_TIME_SECONDS
#define PACKET_SET_SIZE()
void obj_reset_all_collisions()
LOCAL int Ingame_ships_deleted
#define NG_FLAG_INGAME_JOINING_CRITICAL
void send_netplayer_update_packet(net_player *pl)
void process_ingame_ship_request_packet(ubyte *data, header *hinfo)
#define MULTI_STANDALONE(np)
void multi_ingame_scroll_select_down()
void multi_ts_get_team_and_slot(char *ship_name, int *team_index, int *slot_index, bool mantis2757switch)
#define GR_NUM_RESOLUTIONS
void multi_obs_create_observer_client()
void multi_ts_get_shipname(char *ship_name, int team, int slot_index)
#define NETINFO_FLAG_OBSERVER
void process_ingame_ships_packet(ubyte *data, header *hinfo)
__inline void gr_string(int x, int y, const char *string, int resize_mode=GR_RESIZE_FULL)
int weapon_recharge_index
general failure sound for any event
void multi_ingame_select_close()
#define MULTI_END_ERROR_NONE
#define KICK_REASON_BAD_XFER
void wl_bash_ship_weapons(ship_weapon *swp, wss_unit *slot)
void multi_ingame_ship_list_process()
void multi_io_send_reliable(net_player *pl, ubyte *data, int len)
int find_player_id(short player_id)
ushort Multi_ingame_join_sig
ui_button_info Multi_ingame_join_buttons[GR_NUM_RESOLUTIONS][MULTI_INGAME_JOIN_NUM_BUTTONS]
#define END_OF_LIST(head)
#define GR_MAYBE_CLEAR_RES(bmap)
#define INGAME_SHIP_LIST_EOP
void multi_oo_reset_sequencing()
void gr_set_color_fast(color *dst)
void send_netgame_update_packet(net_player *pl)
void obj_merge_created_list(void)
void gr_set_bitmap(int bitmap_num, int alphablend_mode, int bitblt_mode, float alpha)
int current_secondary_bank
void multi_ingame_scroll_select_up()
int bm_release(int handle, int clear_render_targets)
Frees both a bitmap's data and it's associated slot.
#define STANDALONE_SHIP_SIG
void multi_ingame_send_ship_update(net_player *p)
void hud_shield_show_mini(object *objp, int x_force, int y_force, int x_hull_offset, int y_hull_offset)
#define INGAME_SR_CONFIRM
int multi_xfer_get_status(int handle)
int bm_load_animation(const char *real_filename, int *nframes, int *fps, int *keyframe, int can_drop_frames, int dir_type)
Loads a bitmap sequance so we can draw with it.
int Multi_ingame_num_avail
int multi_endgame_ending()
void multi_ingame_join_button_pressed(int n)
void send_netplayer_load_packet(net_player *pl)
typedef int(SCP_EXT_CALLCONV *SCPDLL_PFVERSION)(SCPDLL_Version *)
void set_mask_bmap(char *fname)
int set_bmaps(char *ani_filename, int nframes=3, int start_frame=1)
void multi_ingame_sync_init()
p_object * mission_parse_get_arrival_ship(const char *name)
Returns the parse object on the ship arrival list associated with the given name. ...
void multi_kick_player(int player_index, int ban, int reason)
#define MULTI_INGAME_JOIN_NUM_TEXT
void multi_ingame_join_display_ship(object *objp, int y_start)
#define NETINFO_FLAG_AM_MASTER
int timestamp_until(int stamp)
int primary_bank_ammo[MAX_SHIP_PRIMARY_BANKS]
sprintf(buf,"(%f,%f,%f)", v3->xyz.x, v3->xyz.y, v3->xyz.z)
ushort Multi_ingame_ship_sigs[MAX_PLAYERS]
#define INGAME_SHIP_UPDATE
#define MULTI_XFER_TIMEDOUT
#define NETINFO_FLAG_MISSION_OK
#define NETINFO_FLAG_INGAME_JOIN
is_icon Multi_ingame_ship_icon[MULTI_INGAME_MAX_SHIP_ICONS]
int engine_recharge_index
#define SF_PRIMARY_LINKED
int secondary_bank_weapons[MAX_SHIP_SECONDARY_BANKS]
net_player_server_info s_info
void send_player_settings_packet(net_player *p)
void send_jump_into_mission_packet(net_player *pl)
char mission_name[NAME_LENGTH+1]
#define OF_COULD_BE_PLAYER
#define NETINFO_FLAG_RELIABLE_CONNECTED
int multi_ingame_get_ship_class_icon(int ship_class)
#define SIF_BALLISTIC_PRIMARIES
UI_WINDOW Multi_ingame_window
int secondary_bank_ammo[MAX_SHIP_SECONDARY_BANKS]
object Objects[MAX_OBJECTS]
void multi_xfer_release_handle(int handle)
ushort Multi_current_file_checksum
void send_wss_slots_data_packet(int team_num, int final, net_player *p, int std_request)
const char * XSTR(const char *str, int index)
void multi_assign_player_ship(int net_player_num, object *objp, int ship_class)
UI_XSTR Multi_ingame_join_text[GR_NUM_RESOLUTIONS][MULTI_INGAME_JOIN_NUM_TEXT]
user_click (mouse selects a control)
int bmaps[NUM_ICON_FRAMES]
void multi_ingame_unload_icons()
void _cdecl void void _cdecl Error(const char *filename, int line, SCP_FORMAT_STRING const char *format,...) SCP_FORMAT_STRING_ARGS(3
#define GM_STANDALONE_SERVER
#define MULTI_END_NOTIFY_NONE
void multi_oo_rate_init(net_player *pl)
#define INGAME_JOIN_FLAG_FILE_XFER
#define INGAME_JOIN_FLAG_SENDING_SETS
#define MULTI_END_ERROR_INGAME_BOGUS
__inline void gr_line(int x1, int y1, int x2, int y2, int resize_mode=GR_RESIZE_FULL)
void multi_server_update_player_weapons(net_player *pl, ship *shipp)
#define INGAME_SR_REQUEST
void process_ingame_ship_update_packet(ubyte *data, header *hinfo)
#define INGAME_PLAYER_CHOICE
void multi_ingame_select_init()
#define MULTI_END_NOTIFY_INGAME_TIMEOUT
#define MULTI_INGAME_JOIN_NUM_BUTTONS
int bm_load(const char *real_filename)
Loads a bitmap so we can draw with it later.
int multi_quit_game(int prompt, int notify_code, int err_code, int wsa_error)
#define INGAME_JOIN_FLAG_SENDING_SHIPS
void obj_delete(int objnum)
void link_hotspot(int num)
void create(UI_WINDOW *wnd, char *_text, int _x, int _y, int _w, int _h, int do_repeat=0, int ignore_focus=0)
#define SF_SECONDARY_DUAL_FIRE
void multi_handle_ingame_joiners()
#define UI_XSTR_COLOR_PINK
#define MULTI_CONNECTED(np)
fix last_full_update_time
void create(int _x, int _y, int _w, int _h, int _flags, int _f_id=-1)
p_object * mission_parse_get_parse_object(ushort net_signature)
#define INGAME_SHIP_REQUEST
ushort Ingame_ship_signatures[MAX_INGAME_SHIPS]
#define MULTIPLAYER_MASTER
#define INGAME_SHIP_LIST_EOL
SCP_vector< ship_info > Ship_info
void common_play_highlight_sound()
#define NETPLAYER_STATE_POST_DATA_ACK
GLenum GLsizei GLenum GLenum const GLvoid * data
int Multi_current_file_length
#define timestamp_elapsed(stamp)
SCP_vector< float > shield_quadrant
void get_mouse_pos(int *xx, int *yy)
#define INGAME_PACKET_SLOP
wss_unit Wss_slots_teams[MAX_TVT_TEAMS][MAX_WSS_SLOTS]
object * multi_get_network_object(ushort net_signature)
void change_ship_type(int n, int ship_type, int by_sexp)
void multi_ingame_sync_do()
void multi_get_mission_checksum(const char *filename)
void gr_bitmap(int _x, int _y, int resize_mode)
void send_ingame_ship_update_packet(net_player *p, ship *sp)
#define UI_XSTR_COLOR_GREEN
#define NETPLAYER_STATE_INGAME_SHIPS
void multi_set_network_signature(ushort signature, int what_kind)
int bm_unload(int handle, int clear_render_targets, bool nodebug)
Unloads a bitmap's data, but not the bitmap info.
int ship_name_lookup(const char *name, int inc_players)
void gamesnd_play_iface(int n)
struct ui_button_info ui_button_info
void main_hall_stop_music(bool fade)
#define INGAME_JOIN_FLAG_PICK_SHIP
void multi_common_add_text(const char *str, int auto_scroll)
int parse_create_object(p_object *pobjp)
int process(int key_in=-1, int process_mouse=1)
net_player Net_players[MAX_PLAYERS]
void gameseq_post_event(int event)
#define INGAME_JOIN_FLAG_LOADING_MISSION
int shield_recharge_index
LOCAL int Ingame_time_left
#define MULTI_XFER_SUCCESS
char ship_name[NAME_LENGTH]
void multi_ingame_load_icons()
#define INGAME_JOIN_FLAG_SENDING_POST
void send_post_sync_data_packet(net_player *p, int std_request)
void process_ingame_wings_packet(ubyte *data, header *hinfo)
void mission_hotkey_set_defaults()
void send_ingame_ships_packet(net_player *player)
#define NET_PLAYER_NUM(np)
void multi_obs_create_observer(net_player *pl)
void init_multiplayer_stats()
void send_file_sig_packet(ushort sum_sig, int length_sig)
#define NG_FLAG_INGAME_JOINING
#define SHIPS_INGAME_PACKET
void send_ingame_ship_request_packet(int code, int rdata, net_player *pl)