Fix short_frameinfo sending code for big endian processors
This commit is contained in:
parent
73dd8e0962
commit
0a7a505912
|
@ -1,5 +1,9 @@
|
||||||
D1X-Rebirth Changelog
|
D1X-Rebirth Changelog
|
||||||
|
|
||||||
|
20081213
|
||||||
|
--------
|
||||||
|
main/network.c: Fix short_frameinfo sending code for big endian processors
|
||||||
|
|
||||||
20081212
|
20081212
|
||||||
--------
|
--------
|
||||||
main/netpkt.c, main/netpkt.h, main/network.c, main/network.h: Cleaned a frameinfo-packet related code and introduced more of D2X - especially for short packets (which is thankfully covered by Version checking)
|
main/netpkt.c, main/netpkt.h, main/network.c, main/network.h: Cleaned a frameinfo-packet related code and introduced more of D2X - especially for short packets (which is thankfully covered by Version checking)
|
||||||
|
|
|
@ -3297,37 +3297,24 @@ void network_do_frame(int force, int listen)
|
||||||
|
|
||||||
if (Netgame.flags & NETFLAG_SHORTPACKETS)
|
if (Netgame.flags & NETFLAG_SHORTPACKETS)
|
||||||
{
|
{
|
||||||
#ifdef WORDS_BIGENDIAN
|
|
||||||
ubyte send_data[MAX_DATA_SIZE];
|
|
||||||
//int squished_size;
|
|
||||||
#endif
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
memset(&ShortSyncPack,0,sizeof(short_frame_info));
|
memset(&ShortSyncPack,0,sizeof(short_frame_info));
|
||||||
create_shortpos(&ShortSyncPack.thepos, Objects+objnum, 0);
|
create_shortpos(&ShortSyncPack.thepos, Objects+objnum, 1);
|
||||||
ShortSyncPack.type = PID_PDATA;
|
ShortSyncPack.type = PID_PDATA;
|
||||||
ShortSyncPack.playernum = Player_num;
|
ShortSyncPack.playernum = Player_num;
|
||||||
ShortSyncPack.obj_render_type = Objects[objnum].render_type;
|
ShortSyncPack.obj_render_type = Objects[objnum].render_type;
|
||||||
ShortSyncPack.level_num = Current_level_num;
|
ShortSyncPack.level_num = Current_level_num;
|
||||||
ShortSyncPack.data_size = MySyncPack.data_size;
|
ShortSyncPack.data_size = INTEL_SHORT(MySyncPack.data_size);
|
||||||
memcpy (&ShortSyncPack.data[0],&MySyncPack.data[0],MySyncPack.data_size);
|
memcpy (&ShortSyncPack.data[0],&MySyncPack.data[0],MySyncPack.data_size);
|
||||||
|
|
||||||
MySyncPack.numpackets = INTEL_INT(Players[0].n_packets_sent++);
|
MySyncPack.numpackets = INTEL_INT(Players[0].n_packets_sent++);
|
||||||
ShortSyncPack.numpackets = MySyncPack.numpackets;
|
ShortSyncPack.numpackets = MySyncPack.numpackets;
|
||||||
#ifndef WORDS_BIGENDIAN
|
|
||||||
// NetDrvSendGamePacket((ubyte*)&ShortSyncPack, sizeof(short_frame_info) - NET_XDATA_SIZE + MySyncPack.data_size);
|
// NetDrvSendGamePacket((ubyte*)&ShortSyncPack, sizeof(short_frame_info) - NET_XDATA_SIZE + MySyncPack.data_size);
|
||||||
for(i=0; i<N_players; i++) {
|
for(i=0; i<N_players; i++) {
|
||||||
if(Players[i].connected && (i != Player_num))
|
if(Players[i].connected && (i != Player_num))
|
||||||
NetDrvSendPacketData((ubyte*)&ShortSyncPack, sizeof(short_frame_info) - NET_XDATA_SIZE + MySyncPack.data_size, Netgame.players[i].server, Netgame.players[i].node,Players[i].net_address);
|
NetDrvSendPacketData((ubyte*)&ShortSyncPack, sizeof(short_frame_info) - NET_XDATA_SIZE + MySyncPack.data_size, Netgame.players[i].server, Netgame.players[i].node,Players[i].net_address);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
squish_short_frame_info(ShortSyncPack, send_data);
|
|
||||||
// NetDrvSendGamePacket((ubyte*)send_data, IPX_SHORT_INFO_SIZE-NET_XDATA_SIZE+MySyncPack.data_size);
|
|
||||||
for(i=0; i<N_players; i++) {
|
|
||||||
if(Players[i].connected && (i != Player_num))
|
|
||||||
NetDrvSendPacketData((ubyte*)send_data, IPX_SHORT_INFO_SIZE-NET_XDATA_SIZE+MySyncPack.data_size, Netgame.players[i].server, Netgame.players[i].node,Players[i].net_address);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else // If long packets
|
else // If long packets
|
||||||
|
|
Loading…
Reference in a new issue