use macros to simplify network endian conversion

This commit is contained in:
Bradley Bell 2002-10-10 19:40:21 +00:00
parent 70e5af41a4
commit 53b6b5860d
2 changed files with 95 additions and 145 deletions

View file

@ -36,15 +36,70 @@ void receive_netplayer_info(ubyte *data, AllNetPlayers_info *info);
void receive_netplayers_packet(ubyte *data, AllNetPlayers_info *pinfo);
void send_netplayers_packet(ubyte *server, ubyte *node);
#define send_broadcast_netplayers_packet() \
send_netplayers_packet(NULL, NULL)
void send_sequence_packet(sequence_packet seq, ubyte *server, ubyte *node, ubyte *net_address);
#define send_internetwork_sequence_packet(seq, server, node) \
send_sequence_packet(seq, server, node, NULL)
#define send_broadcast_sequence_packet(seq) \
send_sequence_packet(seq, NULL, NULL, NULL)
void receive_sequence_packet(ubyte *data, sequence_packet *seq);
void send_netgame_packet(ubyte *server, ubyte *node, ubyte *net_address, int lite_flag);
#define send_full_netgame_packet(server, node, net_address) \
send_netgame_packet(server, node, net_address, 0)
#define send_lite_netgame_packet(server, node, net_address) \
send_netgame_packet(server, node, net_address, 1)
#define send_internetwork_full_netgame_packet(server, node) \
send_netgame_packet(server, node, NULL, 0)
#define send_internetwork_lite_netgame_packet(server, node) \
send_netgame_packet(server, node, NULL, 1)
#define send_broadcast_full_netgame_packet() \
send_netgame_packet(NULL, NULL, NULL, 0)
#define send_broadcast_lite_netgame_packet() \
send_netgame_packet(NULL, NULL, NULL, 1)
void receive_netgame_packet(ubyte *data, netgame_info *netgame, int lite_flag);
#define receive_full_netgame_packet(data, netgame) \
receive_netgame_packet(data, netgame, 0)
#define receive_lite_netgame_packet(data, netgame) \
receive_netgame_packet(data, netgame, 1)
void swap_object(object *obj);
#else
#define receive_netplayers_packet(data, pinfo) \
memcpy(pinfo, data, sizeof(AllNetPlayers_info))
#define send_netplayers_packet(server, node) \
ipx_send_internetwork_packet_data((ubyte *)&NetPlayers, sizeof(AllNetPlayers_info), server, node)
#define send_broadcast_netplayers_packet() \
ipx_send_broadcast_packet_data((ubyte *)&NetPlayers, sizeof(AllNetPlayers_info))
#define send_sequence_packet(seq, server, node, net_address) \
ipx_send_packet_data((ubyte *)&seq, sizeof(sequence_packet), server, node, net_address)
#define send_internetwork_sequence_packet(seq, server, node) \
ipx_send_internetwork_packet_data((ubyte *)&seq, sizeof(sequence_packet), server, node)
#define send_broadcast_sequence_packet(seq) \
ipx_send_broadcast_packet_data((ubyte *)&seq, sizeof(sequence_packet))
#define send_full_netgame_packet(server, node, net_address) \
ipx_send_packet_data((ubyte *)&Netgame, sizeof(netgame_info), server, node, net_address)
#define send_lite_netgame_packet(server, node, net_address) \
ipx_send_packet_data((ubyte *)&Netgame, sizeof(lite_info), server, node, net_address)
#define send_internetwork_full_netgame_packet(server, node) \
ipx_send_internetwork_packet_data((ubyte *)&Netgame, sizeof(netgame_info), server, node)
#define send_internetwork_lite_netgame_packet(server, node) \
ipx_send_internetwork_packet_data((ubyte *)&Netgame, sizeof(lite_info), server, node)
#define send_broadcast_full_netgame_packet() \
ipx_send_broadcast_packet_data((ubyte *)&Netgame, sizeof(netgame_info))
#define send_broadcast_lite_netgame_packet() \
ipx_send_broadcast_packet_data((ubyte *)&Netgame, sizeof(lite_info))
#define receive_full_netgame_packet(data, netgame) \
memcpy((ubyte *)(netgame), data, sizeof(netgame_info))
#define receive_lite_netgame_packet(data, netgame) \
memcpy((ubyte *)(netgame), data, sizeof(lite_info))
#endif
#endif

View file

@ -1,4 +1,4 @@
/* $Id: network.c,v 1.13 2002-09-01 02:49:59 btb Exp $ */
/* $Id: network.c,v 1.14 2002-10-10 19:40:21 btb Exp $ */
/*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -17,7 +17,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#endif
#ifdef RCS
static char rcsid[] = "$Id: network.c,v 1.13 2002-09-01 02:49:59 btb Exp $";
static char rcsid[] = "$Id: network.c,v 1.14 2002-10-10 19:40:21 btb Exp $";
#endif
#define PATCH12
@ -321,7 +321,7 @@ void network_dump_appletalk_player(ubyte node, ushort net, ubyte socket, int why
int Network_game_type; // used to tell IPX vs. appletalk games
#define MAX_ZONES 255
#define MAX_ZONES 255
#define MAX_ZONE_LENGTH 33
#define DEFAULT_ZONE_NAME "\p*"
#define MAX_REGISTER_TRIES 5 // maximum time we will try and register a netgame
@ -1295,24 +1295,14 @@ void network_send_objects(void)
remote_objnum = objnum_local_to_remote((short)i, &owner);
Assert(owner == object_owner[i]);
*(short *)(object_buffer+loc) = INTEL_SHORT((short)i); loc += 2;
*(short *)(object_buffer+loc) = INTEL_SHORT((short)i); loc += 2;
object_buffer[loc] = owner; loc += 1;
*(short *)(object_buffer+loc) = INTEL_SHORT(remote_objnum); loc += 2;
#ifndef WORDS_BIGENDIAN
memcpy(object_buffer+loc, &Objects[i], sizeof(object)); loc += sizeof(object);
#else
memcpy(&object_buffer[loc], &Objects[i], sizeof(object));
if (Network_game_type == IPX_GAME) {
object tmpobj;
memcpy(&tmpobj, &(Objects[i]), sizeof(object));
swap_object(&tmpobj);
memcpy(&(object_buffer[loc]), &tmpobj, sizeof(object)); loc += sizeof(object);
swap_object((object *)&object_buffer[loc]);
}
#ifdef MACINTOSH
else
memcpy(object_buffer+loc, &Objects[i], sizeof(object)); loc += sizeof(object);
#endif
#endif
loc += sizeof(object);
// mprintf((0, "..packing object %d, remote %d\n", i, remote_objnum));
}
@ -1426,11 +1416,7 @@ void network_send_rejoin_sync(int player_num)
{
if ((i != player_num) && (i != Player_num) && (Players[i].connected))
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
ipx_send_packet_data( (ubyte *)&Network_player_rejoining, sizeof(sequence_packet), NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node, Players[i].net_address);
#else
send_sequence_packet( Network_player_rejoining, NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node, Players[i].net_address);
#endif
#ifdef MACINTOSH
} else {
appletalk_send_packet_data( (ubyte *)&Network_player_rejoining, sizeof(sequence_packet), NetPlayers.players[i].network.appletalk.node,
@ -1460,13 +1446,8 @@ void network_send_rejoin_sync(int player_num)
mprintf((0, "Sending rejoin sync packet!!!\n"));
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
ipx_send_internetwork_packet_data( (ubyte *)&Netgame, sizeof(netgame_info), Network_player_rejoining.player.network.ipx.server, Network_player_rejoining.player.network.ipx.node );
ipx_send_internetwork_packet_data( (ubyte *)&NetPlayers, sizeof(AllNetPlayers_info), Network_player_rejoining.player.network.ipx.server, Network_player_rejoining.player.network.ipx.node );
#else
send_netgame_packet(Network_player_rejoining.player.network.ipx.server, Network_player_rejoining.player.network.ipx.node, NULL, 0);
send_internetwork_full_netgame_packet(Network_player_rejoining.player.network.ipx.server, Network_player_rejoining.player.network.ipx.node);
send_netplayers_packet(Network_player_rejoining.player.network.ipx.server, Network_player_rejoining.player.network.ipx.node);
#endif
#ifdef MACINTOSH
} else {
appletalk_send_packet_data( (ubyte *)&Netgame, sizeof(netgame_info), Network_player_rejoining.player.network.appletalk.node,
@ -1501,13 +1482,8 @@ void resend_sync_due_to_packet_loss_for_allender ()
Netgame.monitor_vector = network_create_monitor_vector();
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
ipx_send_internetwork_packet_data( (ubyte *)&Netgame, sizeof(netgame_info), Network_player_rejoining.player.network.ipx.server, Network_player_rejoining.player.network.ipx.node );
ipx_send_internetwork_packet_data( (ubyte *)&NetPlayers, sizeof(AllNetPlayers_info), Network_player_rejoining.player.network.ipx.server, Network_player_rejoining.player.network.ipx.node );
#else
send_netgame_packet(Network_player_rejoining.player.network.ipx.server, Network_player_rejoining.player.network.ipx.node, NULL, 0);
send_internetwork_full_netgame_packet(Network_player_rejoining.player.network.ipx.server, Network_player_rejoining.player.network.ipx.node);
send_netplayers_packet(Network_player_rejoining.player.network.ipx.server, Network_player_rejoining.player.network.ipx.node);
#endif
#ifdef MACINTOSH
} else {
appletalk_send_packet_data( (ubyte *)&Netgame, sizeof(netgame_info), Network_player_rejoining.player.network.appletalk.node,
@ -1640,11 +1616,7 @@ network_dump_player(ubyte * server, ubyte *node, int why)
memcpy(temp.player.callsign, Players[Player_num].callsign, CALLSIGN_LEN+1);
temp.player.connected = why;
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
ipx_send_internetwork_packet_data( (ubyte *)&temp, sizeof(sequence_packet), server, node);
#else
send_sequence_packet( temp, server, node, NULL);
#endif
send_internetwork_sequence_packet(temp, server, node);
} else {
Int3();
}
@ -1681,11 +1653,7 @@ network_send_game_list_request()
memcpy( me.player.network.ipx.node, ipx_get_my_local_address(), 6 );
memcpy( me.player.network.ipx.server, ipx_get_my_server_address(), 4 );
#ifndef WORDS_BIGENDIAN
ipx_send_broadcast_packet_data( (ubyte *)&me, sizeof(sequence_packet) );
#else
send_sequence_packet( me, NULL, NULL, NULL);
#endif
send_broadcast_sequence_packet(me);
#ifdef MACINTOSH
} else {
me.player.network.appletalk.node = appletalk_get_my_node();
@ -1712,11 +1680,7 @@ void network_send_all_info_request(char type,int which_security)
memcpy( me.player.network.ipx.node, ipx_get_my_local_address(), 6 );
memcpy( me.player.network.ipx.server, ipx_get_my_server_address(), 4 );
#ifndef WORDS_BIGENDIAN
ipx_send_broadcast_packet_data( (ubyte *)&me, sizeof(sequence_packet) );
#else
send_sequence_packet(me, NULL, NULL, NULL);
#endif
send_broadcast_sequence_packet(me);
#ifdef MACINTOSH
} else {
me.player.network.appletalk.node = appletalk_get_my_node();
@ -1907,23 +1871,13 @@ network_send_game_info(sequence_packet *their)
if (!their) {
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
ipx_send_broadcast_packet_data((ubyte *)&Netgame, sizeof(netgame_info));
ipx_send_broadcast_packet_data((ubyte *)&NetPlayers,sizeof(AllNetPlayers_info));
#else
send_netgame_packet(NULL, NULL, NULL, 0); // server == NULL says to broadcast packet
send_netplayers_packet(NULL, NULL);
#endif
send_broadcast_full_netgame_packet();
send_broadcast_netplayers_packet();
} // nothing to do for appletalk games I think....
} else {
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
ipx_send_internetwork_packet_data((ubyte *)&Netgame, sizeof(netgame_info), their->player.network.ipx.server, their->player.network.ipx.node);
ipx_send_internetwork_packet_data((ubyte *)&NetPlayers,sizeof(AllNetPlayers_info),their->player.network.ipx.server,their->player.network.ipx.node);
#else
send_netgame_packet(their->player.network.ipx.server, their->player.network.ipx.node, NULL, 0);
send_internetwork_full_netgame_packet(their->player.network.ipx.server, their->player.network.ipx.node);
send_netplayers_packet(their->player.network.ipx.server, their->player.network.ipx.node);
#endif
#ifdef MACINTOSH
} else {
appletalk_send_packet_data( (ubyte *)&Netgame, sizeof(netgame_info), their->player.network.appletalk.node,
@ -1973,19 +1927,11 @@ void network_send_lite_info(sequence_packet *their)
if (!their) {
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
ipx_send_broadcast_packet_data((ubyte *)&Netgame, sizeof(lite_info));
#else
send_netgame_packet(NULL, NULL, NULL, 1); // server == NULL says broadcast
#endif
send_broadcast_lite_netgame_packet();
} // nothing to do for appletalk I think....
} else {
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
ipx_send_internetwork_packet_data((ubyte *)&Netgame, sizeof(lite_info), their->player.network.ipx.server, their->player.network.ipx.node);
#else
send_netgame_packet(their->player.network.ipx.server, their->player.network.ipx.node, NULL, 1);
#endif
send_internetwork_lite_netgame_packet(their->player.network.ipx.server, their->player.network.ipx.node);
#ifdef MACINTOSH
} else {
appletalk_send_packet_data( (ubyte *)&Netgame, sizeof(lite_info), their->player.network.appletalk.node,
@ -2036,11 +1982,7 @@ void network_send_netgame_update()
for (i=0; i<N_players; i++ ) {
if ( (Players[i].connected) && (i!=Player_num ) ) {
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
ipx_send_packet_data( (ubyte *)&Netgame, sizeof(lite_info), NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node,Players[i].net_address );
#else
send_netgame_packet(NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node, Players[i].net_address, 0);
#endif
send_full_netgame_packet(NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node, Players[i].net_address);
#ifdef MACINTOSH
} else {
appletalk_send_packet_data( (ubyte *)&Netgame, sizeof(lite_info), NetPlayers.players[i].network.appletalk.node,
@ -2077,11 +2019,7 @@ int network_send_request(void)
My_Seq.player.connected = Current_level_num;
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
ipx_send_internetwork_packet_data((ubyte *)&My_Seq, sizeof(sequence_packet), NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node);
#else
send_sequence_packet(My_Seq, NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node, NULL);
#endif
send_internetwork_sequence_packet(My_Seq, NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node);
#ifdef MACINTOSH
} else {
appletalk_send_packet_data( (ubyte *)&My_Seq, sizeof(sequence_packet), NetPlayers.players[i].network.appletalk.node,
@ -2097,13 +2035,11 @@ int SecurityCheck=0;
void network_process_gameinfo(ubyte *data)
{
#ifdef WORDS_BIGENDIAN
netgame_info tmp_info;
#endif
int i, j;
netgame_info *new = (netgame_info *)data;
#ifdef WORDS_BIGENDIAN
netgame_info tmp_info;
if (Network_game_type == IPX_GAME) {
receive_netgame_packet(data, &tmp_info, 0); // get correctly aligned structure
new = &tmp_info;
@ -2169,13 +2105,11 @@ void network_process_gameinfo(ubyte *data)
void network_process_lite_info(ubyte *data)
{
#ifdef WORDS_BIGENDIAN
lite_info tmp_info;
#endif
int i, j;
lite_info *new = (lite_info *)data;
#ifdef WORDS_BIGENDIAN
lite_info tmp_info;
if (Network_game_type == IPX_GAME) {
receive_netgame_packet(data, (netgame_info *)&tmp_info, 1);
new = &tmp_info;
@ -2301,12 +2235,10 @@ extern void multi_reset_object_texture (object *);
void network_process_packet(ubyte *data, int length )
{
sequence_packet *their = (sequence_packet *)data;
#ifdef WORDS_BIGENDIAN
sequence_packet tmp_packet;
#endif
sequence_packet *their = (sequence_packet *)data;
#ifdef WORDS_BIGENDIAN
if (Network_game_type == IPX_GAME) {
receive_sequence_packet(data, &tmp_packet);
their = &tmp_packet; // reassign their to point to correctly alinged structure
@ -2330,14 +2262,10 @@ void network_process_packet(ubyte *data, int length )
if (Network_status==NETSTAT_WAITING)
{
#ifndef WORDS_BIGENDIAN
memcpy (&TempPlayersBase,data,sizeof(AllNetPlayers_info));
#else
if (Network_game_type == IPX_GAME)
receive_netplayers_packet(data, &TempPlayersBase);
else
memcpy (&TempPlayersBase,data,sizeof(AllNetPlayers_info));
#endif
if (TempPlayersBase.Security!=Netgame.Security)
{
@ -2469,14 +2397,10 @@ void network_process_packet(ubyte *data, int length )
if (Network_status == NETSTAT_WAITING) {
#ifndef WORDS_BIGENDIAN
memcpy((ubyte *)&(TempNetInfo), data, sizeof(netgame_info));
#else
if (Network_game_type == IPX_GAME)
receive_netgame_packet(data, &TempNetInfo, 0);
receive_full_netgame_packet(data, &TempNetInfo);
else
memcpy((ubyte *)&(TempNetInfo), data, sizeof(netgame_info));
#endif
if (TempNetInfo.Security!=Netgame.Security)
{
@ -2539,14 +2463,10 @@ void network_process_packet(ubyte *data, int length )
if (Network_status==NETSTAT_PLAYING)
{
#ifndef WORDS_BIGENDIAN
memcpy((ubyte *)&TempNetInfo, data, sizeof(lite_info) );
#else
if (Network_game_type == IPX_GAME)
receive_netgame_packet(data, &TempNetInfo, 1);
receive_lite_netgame_packet(data, &TempNetInfo);
else
memcpy((ubyte *)&TempNetInfo, data, sizeof(lite_info) );
#endif
if (TempNetInfo.Security==Netgame.Security)
memcpy (&Netgame,(ubyte *)&TempNetInfo,sizeof(lite_info));
}
@ -2609,14 +2529,11 @@ void
network_read_endlevel_packet( ubyte *data )
{
// Special packet for end of level syncing
int playernum;
endlevel_info *end = (endlevel_info *)data;
#ifdef WORDS_BIGENDIAN
int i, j;
#endif
int playernum;
endlevel_info *end;
end = (endlevel_info *)data;
#ifdef WORDS_BIGENDIAN
for (i = 0; i < MAX_PLAYERS; i++)
for (j = 0; j < MAX_PLAYERS; j++)
end->kill_matrix[i][j] = INTEL_SHORT(end->kill_matrix[i][j]);
@ -2817,11 +2734,9 @@ network_read_object_packet( ubyte *data )
obj_unlink(objnum);
Assert(obj->segnum == -1);
Assert(objnum < MAX_OBJECTS);
memcpy(obj,data+loc,sizeof(object)); loc += sizeof(object);
#ifdef WORDS_BIGENDIAN
memcpy(obj, &data[loc], sizeof(object));
if (Network_game_type == IPX_GAME)
swap_object(obj);
#endif
segnum = obj->segnum;
obj->next = obj->prev = obj->segnum = -1;
obj->attached_obj = -1;
@ -3320,16 +3235,13 @@ network_find_game(void)
void network_read_sync_packet( netgame_info * sp, int rsinit)
{
#ifdef WORDS_BIGENDIAN
netgame_info tmp_info;
#endif
int i, j;
char temp_callsign[CALLSIGN_LEN+1];
#ifdef WORDS_BIGENDIAN
netgame_info tmp_info;
if ( (Network_game_type == IPX_GAME) && (sp != &Netgame) ) { // for macintosh -- get the values unpacked to our structure format
receive_netgame_packet((ubyte *)sp, &tmp_info, 0);
receive_full_netgame_packet((ubyte *)sp, &tmp_info);
sp = &tmp_info;
}
#endif
@ -3504,13 +3416,8 @@ network_send_sync(void)
if (Network_game_type == IPX_GAME) {
// Send several times, extras will be ignored
#ifndef WORDS_BIGENDIAN
ipx_send_internetwork_packet_data( (ubyte *)&Netgame, sizeof(netgame_info), NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node);
ipx_send_internetwork_packet_data( (ubyte *)&NetPlayers, sizeof(AllNetPlayers_info), NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node);
#else
send_netgame_packet(NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node, NULL, 0);
send_internetwork_full_netgame_packet(NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node);
send_netplayers_packet(NetPlayers.players[i].network.ipx.server, NetPlayers.players[i].network.ipx.node);
#endif
#ifdef MACINTOSH
} else {
appletalk_send_packet_data( (ubyte *)&Netgame, sizeof(netgame_info), NetPlayers.players[i].network.appletalk.node,
@ -4110,11 +4017,7 @@ menu:
if (Network_game_type == IPX_GAME) {
memcpy( me.player.network.ipx.node, ipx_get_my_local_address(), 6 );
memcpy( me.player.network.ipx.server, ipx_get_my_server_address(), 4 );
#ifndef WORDS_BIGENDIAN
ipx_send_internetwork_packet_data( (ubyte *)&me, sizeof(sequence_packet), NetPlayers.players[0].network.ipx.server, NetPlayers.players[0].network.ipx.node );
#else
send_sequence_packet(me, NetPlayers.players[0].network.ipx.server, NetPlayers.players[0].network.ipx.node, NULL);
#endif
send_internetwork_sequence_packet(me, NetPlayers.players[0].network.ipx.server, NetPlayers.players[0].network.ipx.node);
#ifdef MACINTOSH
} else {
me.player.network.appletalk.node = appletalk_get_my_node();
@ -4687,11 +4590,7 @@ void network_do_big_wait(int choice)
case PID_GAME_INFO:
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
memcpy((ubyte *)&TempNetInfo, data, sizeof(netgame_info));
#else
receive_netgame_packet(data, &TempNetInfo, 0);
#endif
receive_full_netgame_packet(data, &TempNetInfo);
} else {
memcpy((ubyte *)&TempNetInfo, data, sizeof(netgame_info));
}
@ -4921,13 +4820,12 @@ int network_wait_for_playerinfo()
#ifdef MACINTOSH
if (Network_game_type == APPLETALK_GAME) {
TempInfo = (AllNetPlayers_info *)apacket;
} else {
} else
#endif
{
receive_netplayers_packet(packet, &info_struct);
TempInfo = &info_struct;
#ifdef MACINTOSH
}
#endif
#else
TempInfo=(AllNetPlayers_info *)packet;
#endif
@ -5202,10 +5100,8 @@ void network_do_frame(int force, int listen)
if ( (Players[i].connected) && (i!=Player_num ) ) {
if (Network_game_type == IPX_GAME)
MySyncPack.numpackets = INTEL_INT(Players[i].n_packets_sent);
#ifdef MACINTOSH
else
MySyncPack.numpackets = Players[i].n_packets_sent;
#endif
Players[i].n_packets_sent++;
if (Network_game_type == IPX_GAME)
@ -5510,6 +5406,9 @@ void get_short_frame_info(ubyte *old_info, short_frame_info *new_info)
new_info->level_num = old_info[loc]; loc++;
memcpy(new_info->data, &(old_info[loc]), new_info->data_size);
}
#else
#define get_short_frame_info(old_info, new_info) \
memcpy(new_info, old_info, sizeof(short_frame_info))
#endif
void network_read_pdata_short_packet(short_frame_info *pd )
@ -5523,11 +5422,7 @@ void network_read_pdata_short_packet(short_frame_info *pd )
// will call totally hacked and gross function to fix this up.
if (Network_game_type == IPX_GAME) {
#ifndef WORDS_BIGENDIAN
memcpy(&new_pd, (ubyte *)pd, sizeof(short_frame_info));
#else
get_short_frame_info((ubyte *)pd, &new_pd);
#endif
} else {
memcpy(&new_pd, (ubyte *)pd, sizeof(short_frame_info));
}