36 #define BUILD_HEADER(t) do { data[0]=t; packet_size = HEADER_LENGTH; } while(0)
37 #define ADD_DATA(d) do { Assert((packet_size + sizeof(d)) < MAX_PACKET_SIZE); memcpy(data+packet_size, &d, sizeof(d) ); packet_size += sizeof(d); } while (0)
38 #define ADD_SHORT(d) do { static_assert(sizeof(d) == sizeof(std::int16_t), "Size of short is not right!"); Assert((packet_size + sizeof(d)) < MAX_PACKET_SIZE); short swap = INTEL_SHORT(d); memcpy(data+packet_size, &swap, sizeof(d) ); packet_size += sizeof(d); } while (0)
39 #define ADD_USHORT(d) do { static_assert(sizeof(d) == sizeof(std::uint16_t), "Size of unsigned short is not right!"); Assert((packet_size + sizeof(d)) < MAX_PACKET_SIZE); ushort swap = INTEL_SHORT(d); memcpy(data+packet_size, &swap, sizeof(d) ); packet_size += sizeof(d); } while (0)
40 #define ADD_INT(d) do { static_assert(sizeof(d) == sizeof(std::int32_t), "Size of int is not right!"); Assert((packet_size + sizeof(d)) < MAX_PACKET_SIZE); int swap = INTEL_INT(d); memcpy(data+packet_size, &swap, sizeof(d) ); packet_size += sizeof(d); } while (0)
41 #define ADD_UINT(d) do { static_assert(sizeof(d) == sizeof(std::uint32_t), "Size of unsigned int is not right!"); Assert((packet_size + sizeof(d)) < MAX_PACKET_SIZE); uint swap = INTEL_INT(d); memcpy(data+packet_size, &swap, sizeof(d) ); packet_size += sizeof(d); } while (0)
42 #define ADD_FLOAT(d) do { Assert((packet_size + sizeof(d)) < MAX_PACKET_SIZE); float swap = INTEL_FLOAT(&d); memcpy(data+packet_size, &swap, sizeof(d) ); packet_size += sizeof(d); } while (0)
43 #define ADD_STRING(s) do { Assert((packet_size + strlen(s) + 4) < MAX_PACKET_SIZE);int len = strlen(s); int len_tmp = INTEL_INT(len); ADD_DATA(len_tmp); memcpy(data+packet_size, s, len ); packet_size += len; } while(0)
44 #define ADD_ORIENT(d) { Assert((packet_size + 17) < MAX_PACKET_SIZE); ubyte dt[17]; multi_pack_orient_matrix(dt,&d); memcpy(data+packet_size,dt,17); packet_size += 17; }
45 #define ADD_VECTOR(d) do { vec3d tmpvec = ZERO_VECTOR; tmpvec.xyz.x = INTEL_FLOAT(&d.xyz.x); tmpvec.xyz.y = INTEL_FLOAT(&d.xyz.y); tmpvec.xyz.z = INTEL_FLOAT(&d.xyz.z); ADD_DATA(tmpvec); } while(0)
47 #define GET_DATA(d) do { memcpy(&d, data+offset, sizeof(d) ); offset += sizeof(d); } while(0)
48 #define GET_SHORT(d) do { short swap; memcpy(&swap, data+offset, sizeof(d) ); d = INTEL_SHORT(swap); offset += sizeof(d); } while(0)
49 #define GET_USHORT(d) do { ushort swap; memcpy(&swap, data+offset, sizeof(d) ); d = INTEL_SHORT(swap); offset += sizeof(d); } while(0)
50 #define GET_INT(d) do { int swap; memcpy(&swap, data+offset, sizeof(d) ); d = INTEL_INT(swap); offset += sizeof(d); } while(0)
51 #define GET_UINT(d) do { uint swap; memcpy(&swap, data+offset, sizeof(d) ); d = INTEL_INT(swap); offset += sizeof(d); } while(0)
52 #define GET_FLOAT(d) do { float swap; memcpy(&swap, data+offset, sizeof(d) ); d = INTEL_FLOAT(&swap); offset += sizeof(d); } while(0)
53 #define GET_STRING(s) do { int len; memcpy(&len, data+offset, sizeof(len)); len = INTEL_INT(len); offset += sizeof(len); memcpy(s, data+offset, len); offset += len; s[len] = '\0'; } while(0)
54 #define GET_ORIENT(d) { ubyte dt[17]; memcpy(dt,data+offset,17); offset+=17; multi_unpack_orient_matrix(dt,&d); }
55 #define GET_VECTOR(d) do { vec3d tmpvec = ZERO_VECTOR; GET_DATA(tmpvec); d.xyz.x = INTEL_FLOAT(&tmpvec.xyz.x); d.xyz.y = INTEL_FLOAT(&tmpvec.xyz.y); d.xyz.z = INTEL_FLOAT(&tmpvec.xyz.z); } while(0)
57 #define PACKET_SET_SIZE() do { hinfo->bytes_processed = offset; } while(0)
60 #define MULTI_PRIMARY_CHANGED 1
61 #define MULTI_SECONDARY_CHANGED 2
301 void send_mission_message_packet(
int id,
char *who_from,
int priority,
int timing,
int source,
int builtin_type,
int multi_target,
int multi_team_filter,
int delay = 0);
void process_wss_request_packet(ubyte *data, header *hinfo)
void process_deny_packet(ubyte *data, header *hinfo)
void send_mission_sync_packet(int mode, int start_campaign=0)
void process_cargo_hidden_packet(ubyte *data, header *hinfo)
void send_game_active_packet(net_addr *addr)
void send_secondary_fired_packet(ship *shipp, ushort starting_sig, int starting_count, int num_fired, int allow_swarm)
void process_shield_explosion_packet(ubyte *data, header *hinfo)
void process_repair_info_packet(ubyte *data, header *hinfo)
void send_debrief_info(int stage_count[], int *stage_active[])
void process_game_info_packet(ubyte *data, header *hinfo)
void multi_io_send_buffered_packets()
void process_ingame_nak(ubyte *data, header *hinfo)
void process_wing_create_packet(ubyte *data, header *hinfo)
void send_mission_goal_info_packet(int goal_num, int new_status, int valid)
void process_ship_create_packet(ubyte *data, header *hinfo)
void send_beam_fired_packet(object *shooter, ship_subsys *turret, object *target, int beam_info_index, beam_info *override, int bfi_flags, int bank_point)
void send_countdown_packet(int time)
void process_mission_goal_info_packet(ubyte *data, header *hinfo)
void process_player_kick_packet(ubyte *data, header *hinfo)
void multi_io_send(net_player *pl, ubyte *data, int length)
void process_beam_fired_packet(ubyte *data, header *hinfo)
void process_post_sync_data_packet(ubyte *data, header *hinfo)
GLsizei const GLfloat * value
void process_ship_weapon_state_packet(ubyte *data, header *hinfo)
void process_join_packet(ubyte *data, header *hinfo)
void send_jump_into_mission_packet(net_player *pl=NULL)
void send_ping(net_addr *addr)
void process_ai_info_update_packet(ubyte *data, header *hinfo)
void send_asteroid_create(object *new_objp, object *parent_objp, int asteroid_type, vec3d *relvec)
void send_mission_list_request(int what)
void send_mission_message_packet(int id, char *who_from, int priority, int timing, int source, int builtin_type, int multi_target, int multi_team_filter, int delay=0)
void send_force_end_mission_packet()
void send_multi_pause_packet(int pause)
void process_turret_fired_packet(ubyte *data, header *hinfo)
void send_ingame_ships_packet(net_player *pl)
void process_ship_status_packet(ubyte *data, header *hinfo)
void process_observer_update_packet(ubyte *data, header *hinfo)
void send_player_pain_packet(net_player *pl, int weapon_info_index, float damage, vec3d *force, vec3d *hitpos, int quadrant_num)
void process_netplayer_slot_packet(ubyte *data, header *hinfo)
void send_sh_transfer_complete_packet(int code)
void send_store_stats_packet(int accept)
void process_leave_game_packet(ubyte *data, header *hinfo)
void send_change_iff_color_packet(ushort net_signature, int observer_team, int observed_team, int alternate_iff_color)
void send_shield_explosion_packet(int objnum, int tri_num, vec3d hit_pos)
void send_flak_fired_packet(int ship_objnum, int subsys_index, int weapon_objnum, float flak_range)
void send_mission_item(net_player *pl, char *file_name, char *mission_name)
void process_host_captain_change_packet(ubyte *data, header *hinfo)
void process_mission_sync_packet(ubyte *data, header *hinfo)
void process_subsys_update_packet(ubyte *data, header *hinfo)
void process_file_sig_packet(ubyte *data, header *hinfo)
void send_client_update_packet(net_player *pl)
void send_subsys_update_packet(net_player *p)
void process_jump_into_mission_packet(ubyte *data, header *hinfo)
void send_join_packet(net_addr *addr, join_request *jr)
void send_asteroid_hit(object *objp, object *other_objp, vec3d *hitpos, float damage)
void process_emp_effect(ubyte *data, header *hinfo)
void process_sexp_packet(ubyte *data, header *hinfo)
void process_player_pain_packet(ubyte *data, header *hinfo)
void process_bytes_recvd_packet(ubyte *data, header *hinfo)
void send_event_update_packet(int event)
void send_netgame_end_error_packet(int notify_code, int err_code)
void send_ai_info_update_packet(object *objp, char what, object *other_objp=NULL)
void send_observer_update_packet()
void send_post_sync_data_packet(net_player *p=NULL, int std_request=1)
void process_wss_slots_data_packet(ubyte *data, header *hinfo)
void process_NEW_primary_fired_packet(ubyte *data, header *hinfo)
void send_bytes_recvd_packet(net_player *pl)
void send_wss_slots_data_packet(int team_num, int final, net_player *p=NULL, int std_request=1)
void process_reinforcement_avail(ubyte *data, header *hinfo)
void send_ship_status_packet(net_player *pl, button_info *bi, int id)
void process_game_query(ubyte *data, header *hinfo)
void send_debris_create_packet(object *objp, ushort net_signature, int model_num, vec3d exp_center)
void process_netplayer_class_packet(ubyte *data, header *hinfo)
void process_subsystem_cargo_hidden_packet(ubyte *data, header *hinfo)
void process_wss_update_packet(ubyte *data, header *hinfo)
void send_ship_kill_packet(object *ship_obj, object *other_objp, float percent_killed, int self_destruct)
void process_self_destruct_packet(ubyte *data, header *hinfo)
void send_player_order_packet(int type, int index, int command)
void send_self_destruct_packet()
void send_ingame_ack(int state, net_player *p)
void process_netgame_descript_packet(ubyte *data, header *hinfo)
void process_pong_packet(ubyte *data, header *hinfo)
void multi_io_send_reliable(net_player *pl, ubyte *data, int length)
void process_subsystem_cargo_revealed_packet(ubyte *data, header *hinfo)
void send_ingame_ship_update_packet(net_player *p, ship *sp)
void send_netgame_update_packet(net_player *pl=NULL)
void send_wing_create_packet(wing *wingp, int num_to_create, int pre_create_count)
void send_homing_weapon_info(int num)
void send_file_sig_request(char *file_name)
void send_cargo_hidden_packet(ship *shipp)
void send_wss_update_packet(int team_num, ubyte *wss_data, int size)
void send_accept_packet(int new_player_num, int code, int ingame_join_team=-1)
void send_wss_request_packet(short player_id, int from_slot, int from_index, int to_slot, int to_index, int wl_ship_slot, int ship_class, int mode, net_player *p=NULL)
void send_change_iff_packet(ushort net_signature, int new_team)
void process_sw_query_packet(ubyte *data, header *hinfo)
void process_mission_item_packet(ubyte *data, header *hinfo)
void send_object_update_packet(int force_all=0)
void process_mission_log_packet(ubyte *data, header *hinfo)
void process_multi_pause_packet(ubyte *data, header *hinfo)
void process_accept_packet(ubyte *data, header *hinfo)
void process_change_iff_packet(ubyte *data, header *hinfo)
void send_debris_update_packet(object *objp, int code)
void send_ship_create_packet(object *objp, int is_support=0)
void process_netgame_end_error_packet(ubyte *data, header *hinfo)
void process_countermeasure_success_packet(ubyte *data, header *hinfo)
void process_ship_weapon_change(ubyte *data, header *hinfo)
void send_change_ai_class_packet(ushort net_signature, char *subsystem, int new_ai_class)
void multi_io_send_to_all_reliable(ubyte *data, int length, net_player *ignore=NULL)
void process_ship_kill_packet(ubyte *data, header *hinfo)
void send_game_chat_packet(net_player *from, const char *msg, int msg_mode, net_player *to=NULL, const char *expr=NULL, int server_msg=0)
void process_subsystem_destroyed_packet(ubyte *data, header *hinfo)
void send_host_restr_packet(char *callsign, int code, int mode)
void process_game_active_packet(ubyte *data, header *hinfo)
void process_player_stats_block_packet(ubyte *data, header *hinfo)
void send_reinforcement_avail(int rnum)
void process_netgame_update_packet(ubyte *data, header *hinfo)
void send_lightning_packet(int bolt_type_internal, vec3d *start, vec3d *strike)
void send_sexp_packet(ubyte *sexp_packet, int num_ubytes)
void send_sw_query_packet(ubyte code, char *txt)
void process_hud_message(ubyte *data, header *hinfo)
void process_weapon_detonate_packet(ubyte *data, header *hinfo)
void process_accept_player_data(ubyte *data, header *hinfo)
void process_endgame_packet(ubyte *data, header *hinfo)
void process_flak_fired_packet(ubyte *data, header *hinfo)
void send_new_player_packet(int new_player_num, net_player *target)
void process_mission_message_packet(ubyte *data, header *hinfo)
void send_netplayer_update_packet(net_player *pl=NULL)
void send_server_query(net_addr *addr)
void multi_io_send_force(net_player *pl)
void process_mission_request_packet(ubyte *data, header *hinfo)
void send_variable_update_packet(int variable_index, char *value)
void send_netplayer_slot_packet()
void process_weapon_or_ammo_changed_packet(ubyte *data, header *hinfo)
void broadcast_game_query()
void multi_io_send_to_all(ubyte *data, int length, net_player *ignore=NULL)
void send_countermeasure_success_packet(int objnum)
void process_file_sig_request(ubyte *data, header *hinfo)
void process_change_iff_color_packet(ubyte *data, header *hinfo)
void process_netplayer_update_packet(ubyte *data, header *hinfo)
void process_client_update_packet(ubyte *data, header *hinfo)
void send_emp_effect(ushort net_sig, float intensity, float time)
void process_netplayer_load_packet(ubyte *data, header *hinfo)
void send_weapon_or_ammo_changed_packet(int ship_index, int bank_type, int bank_number, int ammo_left, int rearm_limit, int new_weapon_index)
void send_repair_info_packet(object *repaired_objp, object *repair_objp, int code)
void process_player_settings_packet(ubyte *data, header *hinfo)
void send_ingame_final_packet(int net_sig)
void send_host_captain_change_packet(short player_id, int captain_change)
void process_countdown_packet(ubyte *data, header *hinfo)
void send_subsystem_cargo_hidden_packet(ship *shipp, int index)
void send_countermeasure_fired_packet(object *objp, int cmeasure_count, int rand_val)
void process_firing_info_packet(ubyte *data, header *hinfo)
void send_leave_game_packet(short player_id=-1, int kicked_reason=-1, net_player *target=NULL)
void multi_io_send_reliable_force(net_player *pl)
void send_asteroid_throw(object *objp)
void process_secondary_fired_packet(ubyte *data, header *hinfo, int flag)
process a packet indicating a secondary weapon was fired
void process_debrief_info(ubyte *data, header *hinfo)
void process_debris_update_packet(ubyte *data, header *hinfo)
void send_ingame_nak(int state, net_player *p)
void process_ingame_ship_update_packet(ubyte *data, header *hinfo)
void send_ship_depart_packet(object *objp, int method=-1)
void send_turret_fired_packet(int objnum, int subsys_index, int weapon_objnum)
void send_NEW_countermeasure_fired_packet(object *objp, int cmeasure_count, int rand_val)
GLenum GLsizei GLenum GLenum const GLvoid * data
void send_player_settings_packet(net_player *p=NULL)
void process_lightning_packet(ubyte *data, header *hinfo)
void process_ship_depart_packet(ubyte *data, header *hinfo)
void send_subsystem_destroyed_packet(ship *shipp, int index, vec3d worldpos)
void send_pong(net_addr *addr)
void send_player_stats_block_packet(net_player *pl, int stats_type, net_player *target=NULL, short offset=0)
void send_netgame_descript_packet(net_addr *addr, int code)
void process_ingame_ships_packet(ubyte *data, header *hinfo)
GLenum GLuint GLenum GLsizei length
void process_ping_packet(ubyte *data, header *hinfo)
void process_ingame_respawn_points_packet(ubyte *data, header *hinfo)
GLsizei GLsizei GLchar * source
void send_weapon_detonate_packet(object *objp)
void process_countermeasure_fired_packet(ubyte *data, header *hinfo)
void send_endgame_packet(net_player *pl=NULL)
void send_accept_player_data(net_player *npp, int is_ingame)
void send_file_sig_packet(ushort sum_sig, int length_sig)
void process_variable_update_packet(ubyte *data, header *hinfo)
void send_deny_packet(net_addr *addr, int code)
void send_ship_weapon_change(ship *shipp, int what, int new_bank, int link_status)
void send_ingame_wings_packet(net_player *pl)
void process_new_player_packet(ubyte *data, header *hinfo)
void send_mission_log_packet(int entry)
void process_player_order_packet(ubyte *data, header *hinfo)
void process_cargo_revealed_packet(ubyte *data, header *hinfo)
GLenum const GLvoid * addr
void process_store_stats_packet(ubyte *data, header *hinfo)
void send_NEW_primary_fired_packet(ship *shipp, int banks_fired)
void process_host_restr_packet(ubyte *data, header *hinfo)
void send_cargo_revealed_packet(ship *shipp)
void process_ingame_wings_packet(ubyte *data, header *hinfo)
void send_hud_msg_to_all(char *msg)
void process_game_chat_packet(ubyte *data, header *hinfo)
void process_object_update_packet(ubyte *data, header *hinfo)
void send_firing_info_packet(void)
void process_event_update_packet(ubyte *data, header *hinfo)
void process_change_ai_class_packet(ubyte *data, header *hinfo)
void process_asteroid_info(ubyte *data, header *hinfo)
void process_force_end_mission_packet(ubyte *data, header *hinfo)
void process_NEW_countermeasure_fired_packet(ubyte *data, header *hinfo)
void send_game_info_packet(void)
void process_homing_weapon_info(ubyte *data, header *hinfo)
void send_netplayer_load_packet(net_player *pl)
void send_subsystem_cargo_revealed_packet(ship *shipp, int index)