FS2_Open
Open source remastering of the Freespace 2 engine
multimsgs.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) Volition, Inc. 1999. All rights reserved.
3  *
4  * All source code herein is the property of Volition, Inc. You may not sell
5  * or otherwise commercially exploit the source or things you created based on the
6  * source.
7  *
8 */
9 
10 
11 
12 
13 #ifndef MULTI_MSGS_H
14 #define MULTI_MSGS_H
15 
16 #include "globalincs/pstypes.h"
17 
18 #include <cstdint>
19 
20 struct net_player;
21 struct net_addr;
22 class object;
23 class ship;
24 struct wing;
25 struct join_request;
26 struct button_info;
27 struct header;
28 struct beam_info;
29 class ship_subsys;
30 
31 // macros for building up packets -- to save on time and typing. Important to note that local variables
32 // must be named correctly
33 // there are two flavors of sending orientation matrices, 16 bit and 32 bit. Just #define ORIENT_16 to use
34 // 16 bits, otherwise 32 bits is the default
35 
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)
46 
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)
56 
57 #define PACKET_SET_SIZE() do { hinfo->bytes_processed = offset; } while(0)
58 
59 // defines for weapon status changes.
60 #define MULTI_PRIMARY_CHANGED 1
61 #define MULTI_SECONDARY_CHANGED 2
62 
63 // data sending wrappers
64 
65 // send the specified data packet to all players
66 void multi_io_send(net_player *pl, ubyte *data, int length);
67 void multi_io_send_to_all(ubyte *data, int length, net_player *ignore = NULL);
69 
70 // send the data packet to all players via their reliable sockets
72 void multi_io_send_to_all_reliable(ubyte* data, int length, net_player *ignore = NULL);
74 
75 // send all buffered packets
77 
78 
79 // packet handlers -------------------------------------------------------------------------------
80 
81 // process an incoming join request packet
82 void process_join_packet( ubyte* data, header* hinfo );
83 
84 // process an accept packet from the server
85 void process_accept_packet( ubyte* data, header* hinfo );
86 
87 // process a notification for a new player who has joined the game
89 
90 // process an incoming hud message packet
91 void process_hud_message(ubyte* data, header* hinfo);
92 
93 // process a notification the a player has left the game
95 
96 // process information about an active game
98 
99 // process a query from a client looking for active freespace games
100 void process_game_query(ubyte* data, header* hinfo);
101 
102 // process a general game chat packet, if we're the standalone we should rebroadcast
103 void process_game_chat_packet( ubyte *data, header *hinfo );
104 
105 // process a game information update
106 void process_game_info_packet( ubyte *data, header *hinfo );
107 
108 // process a packet indicating a secondary weapon was fired
109 void process_secondary_fired_packet(ubyte* data, header* hinfo, int flag);
110 
111 // process a packet indicating a countermeasure was fired
113 
114 // process information about the netgame sent from the server/host
116 
117 // process an incoming netgame description packet
119 
120 // process an incoming netplayer state update. if we're the server, we should rebroadcast
122 
125 
126 // process an object update packet. See send_object_update for information on how
127 // this packet data should be interpreted. We send different information depending on
128 // on several variables (no change in orienation, etc).
130 
131 // process a packet indicating that a ship has been killed
132 void process_ship_kill_packet( ubyte *data, header *hinfo );
133 
134 // process a packet saying that a wing should be created
136 
137 // process a packet indicating a ship should be created
139 
140 // process a packet indicating a ship is departing
142 
143 // process a mission log item packet
145 
146 // process a mission message packet
148 
149 // just send them a pong back as fast as possible
150 void process_ping_packet(ubyte *data, header *hinfo);
151 
152 // right now it just routes the pong through to the standalone gui, which is the only
153 // system which uses ping and pong right now.
154 void process_pong_packet(ubyte *data, header *hinfo);
155 
156 // process a request for a list of missions
158 
159 // process an individual mission file item
161 
162 // process a pause update packet (pause, unpause, etc)
164 
165 // process an ingame nak packet
166 void process_ingame_nak(ubyte *data, header *hinfo);
167 
170 
171 // process a packet indicating we should end the current mission
172 void process_endgame_packet(ubyte *data, header *hinfo);
173 
174 // process a packet indicating we should jump straight to the debrief screen
176 
177 // process a position/orientation update from an observer
179 
182 
184 
186 
189 
191 
193 
195 
197 
199 
201 
203 
205 
208 
210 
211 // process a cargo revealed packet
213 
215 
217 
219 
221 
223 
225 
226 void process_deny_packet(ubyte *data, header *hinfo);
227 
229 
231 
233 
235 
237 
239 
241 
243 
244 // send a join packet request to the specified address (should be a server)
246 
247 // send an accept packet to a client in response to a request to join the game
248 void send_accept_packet(int new_player_num, int code, int ingame_join_team = -1);
249 
250 // send a general game chat packet (if msg_mode == MULTI_MSG_TARGET, need to pass in "to", if == MULTI_MSG_EXPR, need to pass in expr)
251 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);
252 
253 // send a game information update
254 void send_game_info_packet( void );
255 
256 // send a notice that the player at net_addr is leaving (if target is NULL, the broadcast the packet)
257 void send_leave_game_packet(short player_id = -1,int kicked_reason = -1,net_player *target = NULL);
258 
259 // send a packet indicating a secondary weapon was fired
260 void send_secondary_fired_packet( ship *shipp, ushort starting_sig, int starting_count, int num_fired, int allow_swarm );
261 
262 // send a packet indicating a countermeasure was fired
263 void send_countermeasure_fired_packet( object *objp, int cmeasure_count, int rand_val );
264 
265 
266 
267 // send_game_update_packet sends an updated Netgame structure to all players currently connected. The update
268 // is used to change the current mission, current state, etc.
269 void send_netgame_update_packet(net_player *pl = NULL);
270 
271 // sends information about netplayers in the game. if called on the server, broadcasts information about _all_ players
272 void send_netplayer_update_packet( net_player *pl = NULL );
273 
274 void send_ship_status_packet(net_player *pl, button_info *bi, int id);
275 void send_player_order_packet(int type, int index, int command);
276 
277 // send a request or a reply for mission description, if code == 0, request, if code == 1, reply
279 
280 // send object update packet sends object updates for all objects in the game. This function will be smart
281 // about sending only certain objects to certain players based on the players distance from an object, whether
282 // the object is behind the player, etc.
283 void send_object_update_packet(int force_all = 0);
284 
285 // send a packet indicating a ship has been killed
286 void send_ship_kill_packet( object *ship_obj, object *other_objp, float percent_killed, int self_destruct );
287 
288 // send a packet indicating a wing of ships should be created
289 void send_wing_create_packet( wing *wingp, int num_to_create, int pre_create_count );
290 
291 // send a packet indicating a ship should be created
292 void send_ship_create_packet( object *objp, int is_support = 0 );
293 
294 // packet indicating a ship is departing
295 void send_ship_depart_packet( object *objp, int method = -1 );
296 
297 // send a mission log item packet
298 void send_mission_log_packet( int entry );
299 
300 // send a mission message packet
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);
302 
303 // broadcast a query for active games. TCP will either request from the MT or from the specified list
304 void broadcast_game_query();
305 
306 // send an individual query to an address to see if there is an active game
308 
309 // broadcast a hud message to all players
310 void send_hud_msg_to_all( char* msg );
311 void send_heartbeat();
312 
313 // send a ping packet
314 void send_ping(net_addr *addr);
315 
316 // send a pong packet
317 void send_pong(net_addr *addr);
318 
319 // sent from host to master. give me the list of missions you have.
320 // this will be used only in a standalone mode
321 void send_mission_list_request( int what );
322 
323 // send an individual mission file item
324 void send_mission_item(net_player *pl,char *file_name,char *mission_name);
325 
326 // send a request to the server to pause or unpause the game
327 void send_multi_pause_packet(int pause);
328 
329 // send an ack packet
330 void send_ingame_ack(int state,net_player *p);
331 
332 // send an ingame nak packet
333 void send_ingame_nak(int state,net_player *p);
334 
337 
338 // send a notification that a new player has joined the game (if target != NULL, broadcast the packet)
339 void send_new_player_packet(int new_player_num,net_player *target);
340 
341 // send a packet telling players to end the mission
342 void send_endgame_packet(net_player *pl = NULL);
343 
344 // send a skip to debrief item packet
346 
347 // send a position/orientation update for myself (if I'm an observer)
349 
351 
353 
355 
356 void send_ingame_final_packet(int net_sig);
357 
358 void send_file_sig_packet(ushort sum_sig,int length_sig);
359 void send_file_sig_request(char *file_name);
360 
361 void send_subsystem_destroyed_packet( ship *shipp, int index, vec3d worldpos );
362 
364 
366 
367 void send_repair_info_packet(object *repaired_objp, object *repair_objp, int code );
368 
369 void send_mission_sync_packet(int mode,int start_campaign = 0);
370 
371 void send_store_stats_packet(int accept);
372 
373 void send_debris_create_packet(object *objp, ushort net_signature, int model_num, vec3d exp_center );
374 void send_debris_update_packet(object *objp,int code);
375 
376 void send_ship_weapon_change( ship *shipp, int what, int new_bank, int link_status );
377 
378 // ALAN BEGIN
379 
380 // send a request from the client to the host of the game (which is not necessarily the server in the case of the standalone)
381 // mode == WSS_WEAPON_SELECT or WSS_SHIP_SELECT
382 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);
384 
385 // send the update from the host to the clients
386 // wss_data is the pointer to a block of data returned by store_wss_stuff(...)
387 //
388 // I would reccomend :
389 // int store_wss_data(ubyte *block); // which returns bytes processed
390 //
391 // so you would say :
392 //
393 // ubyte block[MAX_PACKET_SIZE - 10 or so];
394 // int processed = store_wss_data(block);
395 // send_wss_update_packet(block,processed);
396 //
397 // also :
398 // I would reccomend :
399 // int restore_wss_data(ubyte *block); // which returns bytes processed
400 //
401 // so I would say in the process_wss_update_packet() :
402 //
403 // int processed = restore_wss_data(block);
404 // do_other_lowlevel_packet_related_stuff_here();
405 //
406 void send_wss_update_packet(int team_num,ubyte *wss_data,int size);
408 // ALAN END
409 
410 void send_firing_info_packet(void);
411 
413 
414 // packet to tell clients cargo of a ship was revealed to all
416 
418 
420 
422 
423 void send_mission_goal_info_packet(int goal_num, int new_status, int valid);
424 
426 
427 void send_deny_packet(net_addr *addr, int code);
428 
429 void send_post_sync_data_packet(net_player *p = NULL, int std_request = 1);
430 
431 void send_wss_slots_data_packet(int team_num, int final, net_player *p = NULL, int std_request = 1);
432 
433 void send_shield_explosion_packet(int objnum, int tri_num, vec3d hit_pos);
434 
435 void send_player_stats_block_packet(net_player *pl, int stats_type, net_player *target = NULL, short offset = 0);
436 
437 void send_host_restr_packet(char *callsign, int code, int mode);
438 
439 void send_netgame_end_error_packet(int notify_code, int err_code);
440 
442 
443 // send information about this currently active game to the specified address
445 
446 void send_ai_info_update_packet(object *objp, char what, object * other_objp = NULL);
448 
449 void send_asteroid_create(object *new_objp, object *parent_objp, int asteroid_type, vec3d *relvec);
450 void send_asteroid_throw(object *objp);
451 void send_asteroid_hit(object *objp, object *other_objp, vec3d *hitpos, float damage);
452 void process_asteroid_info(ubyte *data, header *hinfo);
453 
454 void send_countermeasure_success_packet(int objnum);
456 
457 // host sends a -1 to the server to begin the countdown. server sends an int "seconds until start"
458 void send_countdown_packet(int time);
459 
460 void send_debrief_info(int stage_count[], int *stage_active[]);
461 void process_debrief_info(ubyte *data, header *hinfo);
462 
463 void send_accept_player_data(net_player *npp, int is_ingame);
465 
466 void send_homing_weapon_info(int num);
468 
469 // emp effect stuff
470 void send_emp_effect(ushort net_sig, float intensity, float time);
471 void process_emp_effect(ubyte *data, header *hinfo);
472 
473 // for reinforcements
474 void send_reinforcement_avail( int rnum );
476 
477 // change iff stuff
478 void send_change_iff_packet(ushort net_signature, int new_team);
479 void process_change_iff_packet( ubyte *data, header *hinfo );
480 
481 // change iff color stuff
482 void send_change_iff_color_packet(ushort net_signature, int observer_team, int observed_team, int alternate_iff_color);
484 
485 // change ai class stuff
486 void send_change_ai_class_packet(ushort net_signature, char *subsystem, int new_ai_class);
488 
489 // new primary fired info
490 void send_NEW_primary_fired_packet(ship *shipp, int banks_fired);
492 
493 // new countermeasure fired info
494 void send_NEW_countermeasure_fired_packet(object *objp, int cmeasure_count, int rand_val);
496 
497 // beam weapon packet
498 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);
500 
501 // sw std query packet
502 void send_sw_query_packet(ubyte code, char *txt);
504 
505 // event update packet
508 
509 // variable update packet
510 void send_variable_update_packet(int variable_index, char *value);
512 
513 // weapons or ammo changed packet
514 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);
516 
517 // weapon detonate packet
518 void send_weapon_detonate_packet(object *objp);
520 
521 // turret fired packet
522 void send_turret_fired_packet( int objnum, int subsys_index, int weapon_objnum );
524 
525 // flak fired packet
526 void send_flak_fired_packet(int ship_objnum, int subsys_index, int weapon_objnum, float flak_range);
528 
529 // player pain packet
530 void send_player_pain_packet(net_player *pl, int weapon_info_index, float damage, vec3d *force, vec3d *hitpos, int quadrant_num);
532 
533 // lightning packet
534 void send_lightning_packet(int bolt_type_internal, vec3d *start, vec3d *strike);
536 
537 // bytes sent
540 
541 // host transfer
542 void send_host_captain_change_packet(short player_id, int captain_change);
544 
545 // self destruct
548 
549 void send_sexp_packet(ubyte *sexp_packet, int num_ubytes);
550 void process_sexp_packet(ubyte *data, header *hinfo);
551 
552 #endif
void process_wss_request_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:5389
void process_deny_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:5701
void send_mission_sync_packet(int mode, int start_campaign=0)
Definition: multimsgs.cpp:5154
void process_cargo_hidden_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:2901
void send_game_active_packet(net_addr *addr)
Definition: multimsgs.cpp:1852
void send_secondary_fired_packet(ship *shipp, ushort starting_sig, int starting_count, int num_fired, int allow_swarm)
Definition: multimsgs.cpp:2938
void process_shield_explosion_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:6347
void process_repair_info_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4873
void send_debrief_info(int stage_count[], int *stage_active[])
Definition: multimsgs.cpp:7260
void process_game_info_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3769
void multi_io_send_buffered_packets()
Definition: multimsgs.cpp:544
void process_ingame_nak(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3798
void process_wing_create_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:2735
void send_mission_goal_info_packet(int goal_num, int new_status, int valid)
Definition: multimsgs.cpp:5574
void process_ship_create_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:2666
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)
Definition: multimsgs.cpp:7835
void send_countdown_packet(int time)
Definition: multimsgs.cpp:7210
void process_mission_goal_info_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:5588
void process_player_kick_packet(ubyte *data, header *hinfo)
Definition: multi_kick.cpp:228
void multi_io_send(net_player *pl, ubyte *data, int length)
Definition: multimsgs.cpp:371
void process_beam_fired_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7908
void process_post_sync_data_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:5969
GLsizei const GLfloat * value
Definition: Glext.h:5646
GLuint index
Definition: Glext.h:5608
void process_ship_weapon_state_packet(ubyte *data, header *hinfo)
void process_join_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:903
void send_jump_into_mission_packet(net_player *pl=NULL)
Definition: multimsgs.cpp:4747
void send_ping(net_addr *addr)
Definition: multimsgs.cpp:3527
void process_ai_info_update_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:5055
void send_asteroid_create(object *new_objp, object *parent_objp, int asteroid_type, vec3d *relvec)
Definition: multimsgs.cpp:6663
void send_mission_list_request(int what)
Definition: multimsgs.cpp:3550
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)
Definition: multimsgs.cpp:3400
void send_force_end_mission_packet()
Definition: multimsgs.cpp:3821
Definition: pstypes.h:88
void send_multi_pause_packet(int pause)
Definition: multimsgs.cpp:3709
void process_turret_fired_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3264
void send_ingame_ships_packet(net_player *pl)
void process_ship_status_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4205
void process_observer_update_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3976
void send_player_pain_packet(net_player *pl, int weapon_info_index, float damage, vec3d *force, vec3d *hitpos, int quadrant_num)
Definition: multimsgs.cpp:8397
void process_netplayer_slot_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4046
void send_sh_transfer_complete_packet(int code)
void send_store_stats_packet(int accept)
Definition: multimsgs.cpp:5249
void process_leave_game_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:1724
void send_change_iff_color_packet(ushort net_signature, int observer_team, int observed_team, int alternate_iff_color)
Definition: multimsgs.cpp:7523
void send_shield_explosion_packet(int objnum, int tri_num, vec3d hit_pos)
Definition: multimsgs.cpp:6300
void send_flak_fired_packet(int ship_objnum, int subsys_index, int weapon_objnum, float flak_range)
Definition: multimsgs.cpp:8270
void send_mission_item(net_player *pl, char *file_name, char *mission_name)
void process_host_captain_change_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8580
void process_mission_sync_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:5194
Definition: ship.h:1516
void process_subsys_update_packet(ubyte *data, header *hinfo)
void process_file_sig_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4432
void send_client_update_packet(net_player *pl)
Definition: multimsgs.cpp:6975
GLenum mode
Definition: Glext.h:5794
void send_subsys_update_packet(net_player *p)
void process_jump_into_mission_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4774
void send_join_packet(net_addr *addr, join_request *jr)
Definition: multimsgs.cpp:888
void send_asteroid_hit(object *objp, object *other_objp, vec3d *hitpos, float damage)
Definition: multimsgs.cpp:6706
void process_emp_effect(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7431
object * objp
Definition: lua.cpp:3105
GLsizeiptr size
Definition: Glext.h:5496
void process_sexp_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8730
void process_player_pain_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8429
void process_bytes_recvd_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8529
void send_event_update_packet(int event)
Definition: multimsgs.cpp:8054
void send_netgame_end_error_packet(int notify_code, int err_code)
Definition: multimsgs.cpp:6907
void send_ai_info_update_packet(object *objp, char what, object *other_objp=NULL)
Definition: multimsgs.cpp:4943
ship * shipp
Definition: lua.cpp:9162
void send_observer_update_packet()
Definition: multimsgs.cpp:3938
void send_post_sync_data_packet(net_player *p=NULL, int std_request=1)
Definition: multimsgs.cpp:5770
void process_wss_slots_data_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:6234
void process_NEW_primary_fired_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7686
GLenum type
Definition: Gl.h:1492
void send_bytes_recvd_packet(net_player *pl)
Definition: multimsgs.cpp:8513
void send_wss_slots_data_packet(int team_num, int final, net_player *p=NULL, int std_request=1)
Definition: multimsgs.cpp:6154
void process_reinforcement_avail(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7468
HWND DWORD code
Definition: vddraw.h:425
void send_ship_status_packet(net_player *pl, button_info *bi, int id)
Definition: multimsgs.cpp:4180
void process_game_query(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:2277
void send_debris_create_packet(object *objp, ushort net_signature, int model_num, vec3d exp_center)
Definition: fredstubs.cpp:161
void process_netplayer_class_packet(ubyte *data, header *hinfo)
void process_subsystem_cargo_hidden_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4650
void process_wss_update_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:5467
void send_ship_kill_packet(object *ship_obj, object *other_objp, float percent_killed, int self_destruct)
Definition: multimsgs.cpp:2467
GLintptr offset
Definition: Glext.h:5497
void process_self_destruct_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8663
void send_player_order_packet(int type, int index, int command)
Definition: multimsgs.cpp:4261
void send_self_destruct_packet()
Definition: multimsgs.cpp:8629
void send_ingame_ack(int state, net_player *p)
void process_netgame_descript_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:2193
void process_pong_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3483
void multi_io_send_reliable(net_player *pl, ubyte *data, int length)
Definition: multimsgs.cpp:459
void process_subsystem_cargo_revealed_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4581
void send_ingame_ship_update_packet(net_player *p, ship *sp)
void send_netgame_update_packet(net_player *pl=NULL)
Definition: multimsgs.cpp:2008
void send_wing_create_packet(wing *wingp, int num_to_create, int pre_create_count)
Definition: multimsgs.cpp:2707
void send_homing_weapon_info(int num)
Definition: multimsgs.cpp:7312
void send_file_sig_request(char *file_name)
Definition: multimsgs.cpp:4448
void send_cargo_hidden_packet(ship *shipp)
Definition: multimsgs.cpp:2881
void send_wss_update_packet(int team_num, ubyte *wss_data, int size)
Definition: multimsgs.cpp:5437
void send_accept_packet(int new_player_num, int code, int ingame_join_team=-1)
Definition: multimsgs.cpp:1451
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)
Definition: multimsgs.cpp:5360
void send_change_iff_packet(ushort net_signature, int new_team)
Definition: multimsgs.cpp:7483
void process_sw_query_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8050
void process_mission_item_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3653
void send_object_update_packet(int force_all=0)
Definition: beam.h:43
void process_mission_log_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3376
void process_multi_pause_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3729
void process_accept_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:1553
void process_change_iff_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7504
void send_debris_update_packet(object *objp, int code)
Definition: multimsgs.cpp:5294
void send_ship_create_packet(object *objp, int is_support=0)
Definition: multimsgs.cpp:2648
void process_netgame_end_error_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:6927
void process_countermeasure_success_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:6958
void process_ship_weapon_change(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4117
void send_change_ai_class_packet(ushort net_signature, char *subsystem, int new_ai_class)
Definition: multimsgs.cpp:7568
void multi_io_send_to_all_reliable(ubyte *data, int length, net_player *ignore=NULL)
Definition: multimsgs.cpp:496
void process_ship_kill_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:2557
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)
Definition: multimsgs.cpp:615
void process_subsystem_destroyed_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4506
void send_host_restr_packet(char *callsign, int code, int mode)
Definition: multimsgs.cpp:6832
Definition: ship.h:534
void process_game_active_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:1935
void process_player_stats_block_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:6530
void send_reinforcement_avail(int rnum)
Definition: multimsgs.cpp:7458
void process_netgame_update_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:2063
void send_lightning_packet(int bolt_type_internal, vec3d *start, vec3d *strike)
Definition: multimsgs.cpp:8474
void send_sexp_packet(ubyte *sexp_packet, int num_ubytes)
Definition: multimsgs.cpp:8701
void send_sw_query_packet(ubyte code, char *txt)
Definition: multimsgs.cpp:8021
unsigned char ubyte
Definition: pstypes.h:62
Definition: object.h:141
void process_hud_message(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:857
void process_weapon_detonate_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8252
void process_accept_player_data(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:1269
void process_endgame_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3891
GLuint start
Definition: Gl.h:1502
void process_flak_fired_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8313
void send_new_player_packet(int new_player_num, net_player *target)
Definition: multimsgs.cpp:1031
void process_mission_message_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3431
void send_netplayer_update_packet(net_player *pl=NULL)
Definition: multimsgs.cpp:2308
void send_server_query(net_addr *addr)
Definition: multimsgs.cpp:2266
void multi_io_send_force(net_player *pl)
Definition: multimsgs.cpp:434
void process_mission_request_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3635
void send_variable_update_packet(int variable_index, char *value)
Definition: multimsgs.cpp:8179
void send_netplayer_slot_packet()
Definition: multimsgs.cpp:4017
void process_weapon_or_ammo_changed_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8122
void broadcast_game_query()
Definition: multimsgs.cpp:2234
void multi_io_send_to_all(ubyte *data, int length, net_player *ignore=NULL)
Definition: multimsgs.cpp:408
void send_countermeasure_success_packet(int objnum)
Definition: multimsgs.cpp:6942
void process_file_sig_request(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4461
void process_change_iff_color_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7546
void process_netplayer_update_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:2390
void process_client_update_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7072
void send_emp_effect(ushort net_sig, float intensity, float time)
Definition: multimsgs.cpp:7414
GLuint GLuint num
Definition: Glext.h:9089
void process_netplayer_load_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4709
void send_heartbeat()
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)
Definition: multimsgs.cpp:8097
void send_repair_info_packet(object *repaired_objp, object *repair_objp, int code)
Definition: multimsgs.cpp:4845
void process_player_settings_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:5642
void send_ingame_final_packet(int net_sig)
void send_host_captain_change_packet(short player_id, int captain_change)
Definition: multimsgs.cpp:8566
GLenum target
Definition: Glext.h:6872
void process_countdown_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7232
void send_subsystem_cargo_hidden_packet(ship *shipp, int index)
Definition: multimsgs.cpp:4626
Definition: multi.h:385
void send_countermeasure_fired_packet(object *objp, int cmeasure_count, int rand_val)
Definition: multimsgs.cpp:3162
void process_firing_info_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:5537
unsigned short ushort
Definition: pstypes.h:63
void send_leave_game_packet(short player_id=-1, int kicked_reason=-1, net_player *target=NULL)
Definition: multimsgs.cpp:1680
void multi_io_send_reliable_force(net_player *pl)
Definition: multimsgs.cpp:522
void send_asteroid_throw(object *objp)
Definition: multimsgs.cpp:6689
void process_secondary_fired_packet(ubyte *data, header *hinfo, int flag)
process a packet indicating a secondary weapon was fired
Definition: multimsgs.cpp:3047
void process_debrief_info(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7284
void process_debris_update_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:5317
void send_ingame_nak(int state, net_player *p)
Definition: multimsgs.cpp:3785
GLfloat GLfloat p
Definition: Glext.h:8373
void process_ingame_ship_update_packet(ubyte *data, header *hinfo)
void send_ship_depart_packet(object *objp, int method=-1)
Definition: multimsgs.cpp:2774
struct _cl_event * event
Definition: Glext.h:7296
void send_turret_fired_packet(int objnum, int subsys_index, int weapon_objnum)
Definition: multimsgs.cpp:3212
void send_NEW_countermeasure_fired_packet(object *objp, int cmeasure_count, int rand_val)
Definition: multimsgs.cpp:7760
GLenum GLsizei GLenum GLenum const GLvoid * data
Definition: Gl.h:1509
void send_player_settings_packet(net_player *p=NULL)
Definition: multimsgs.cpp:5606
void process_lightning_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8491
void process_ship_depart_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:2790
void send_subsystem_destroyed_packet(ship *shipp, int index, vec3d worldpos)
Definition: multimsgs.cpp:4482
void send_pong(net_addr *addr)
Definition: multimsgs.cpp:3538
void send_player_stats_block_packet(net_player *pl, int stats_type, net_player *target=NULL, short offset=0)
Definition: multimsgs.cpp:6391
void send_netgame_descript_packet(net_addr *addr, int code)
Definition: multimsgs.cpp:2161
void process_ingame_ships_packet(ubyte *data, header *hinfo)
GLenum GLuint GLenum GLsizei length
Definition: Glext.h:5156
void process_ping_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3466
void process_ingame_respawn_points_packet(ubyte *data, header *hinfo)
GLsizei GLsizei GLchar * source
Definition: Glext.h:5625
void send_weapon_detonate_packet(object *objp)
Definition: multimsgs.cpp:8229
void process_countermeasure_fired_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3178
void send_endgame_packet(net_player *pl=NULL)
Definition: multimsgs.cpp:3855
void send_accept_player_data(net_player *npp, int is_ingame)
Definition: multimsgs.cpp:1196
void send_file_sig_packet(ushort sum_sig, int length_sig)
Definition: multimsgs.cpp:4420
void process_variable_update_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8205
void send_deny_packet(net_addr *addr, int code)
Definition: multimsgs.cpp:5687
void send_ship_weapon_change(ship *shipp, int what, int new_bank, int link_status)
Definition: multimsgs.cpp:4099
void send_ingame_wings_packet(net_player *pl)
void process_new_player_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:1063
void send_mission_log_packet(int entry)
Definition: multimsgs.cpp:3348
void process_player_order_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:4307
int model_num
Definition: lua.cpp:4996
void process_cargo_revealed_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:2849
GLenum const GLvoid * addr
Definition: Glext.h:9092
void process_store_stats_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:5268
void send_NEW_primary_fired_packet(ship *shipp, int banks_fired)
Definition: multimsgs.cpp:7624
void process_host_restr_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:6858
void send_cargo_revealed_packet(ship *shipp)
Definition: multimsgs.cpp:2829
void process_ingame_wings_packet(ubyte *data, header *hinfo)
void send_hud_msg_to_all(char *msg)
Definition: multimsgs.cpp:841
void process_game_chat_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:717
void process_object_update_packet(ubyte *data, header *hinfo)
void send_firing_info_packet(void)
Definition: multimsgs.cpp:5520
void process_event_update_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:8072
void process_change_ai_class_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7593
void process_asteroid_info(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:6734
void process_force_end_mission_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:3837
void process_NEW_countermeasure_fired_packet(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7797
void send_game_info_packet(void)
Definition: multimsgs.cpp:3753
void process_homing_weapon_info(ubyte *data, header *hinfo)
Definition: multimsgs.cpp:7357
void send_netplayer_load_packet(net_player *pl)
Definition: multimsgs.cpp:4694
void send_subsystem_cargo_revealed_packet(ship *shipp, int index)
Definition: multimsgs.cpp:4557