dxx-rebirth/main/reconfig.c
md2211 d393f32eed * Removed executable flag on most files
* Reverted value of SOUND_MAX_VOLUME
2007-09-21 19:06:05 +00:00

118 lines
3.8 KiB
C

/* reconfig.c - ingame reconfig by Victor Rachels */
//added 06/09/99 Matt Mueller - fix nonetwork compile
#ifdef NETWORK
//end addition -MM
#include <string.h>
#include "types.h"
#include "byteswap.h"
#include "network.h"
#include "mlticntl.h"
#include "mono.h"
#include "multi.h"
#include "player.h"
#include "hudmsg.h"
#include "reconfig.h"
#include "error.h"
void reconfig_send_gameinfo()
{
//added 06/09/99 Matt Mueller - "fix" shareware compile
#ifndef SHAREWARE
//end addition -MM
int i=0;
int32_t tmpi=0;
ubyte r_packet[3+64];
r_packet[i] = (ubyte)MULTI_INGAME_CONFIG; i++;
r_packet[i] = (ubyte)Player_num; i++;
r_packet[i] = (ubyte)RECONFIG_VERSION; i++;
r_packet[i] = (ubyte)Netgame.gamemode; i++;
r_packet[i] = (ubyte)Netgame.game_flags; i++;
r_packet[i] = (ubyte)Netgame.difficulty; i++;
r_packet[i] = (ubyte)restrict_mode; i++;
r_packet[i] = (ubyte)Netgame.packets_per_sec; i++;
r_packet[i] = (ubyte)Netgame.protocol_version; i++;
r_packet[i] = (ubyte)Netgame.max_numplayers; i++;
tmpi=swapint(Netgame.control_invul_time);
memcpy(&(r_packet[i]),&tmpi,4); i+=4;
tmpi=swapint(Netgame.flags);
memcpy(&(r_packet[i]),&tmpi,4); i+=4;
mprintf((0,"sending reconfig (l%i,v%i) ",i,RECONFIG_VERSION));
mprintf((0,"GAMEMODE:%i",Netgame.gamemode));
mprintf((0,"GAME_FLAGS:%i",Netgame.game_flags));
mprintf((0,"DIFFICULTY:%i",Netgame.difficulty));
mprintf((0,"RESTRICT_MODE:%i",restrict_mode));
mprintf((0,"PPS:%i",Netgame.packets_per_sec));
mprintf((0,"PROTOCOL_VERSION:%i",Netgame.protocol_version));
mprintf((0,"MAX_NUMPLAYERS:%i",Netgame.max_numplayers));
mprintf((0,"CONTROL_INVUL_TIME:%i",Netgame.control_invul_time));
mprintf((0,"FLAGS:%i",Netgame.flags));
if (i>message_length[MULTI_INGAME_CONFIG])
Error("reconfig_send_gameinfo: packet too long\n");
memset(r_packet+i,0,message_length[MULTI_INGAME_CONFIG]-i);//set the rest to zero, so it'll compress easily
mekh_send_direct_broadcast(r_packet,message_length[MULTI_INGAME_CONFIG]);
//added 06/09/99 Matt Mueller - "fix" shareware compile
#endif
//end addition -MM
}
void reconfig_receive(ubyte *values,int len)
{
//added 06/09/99 Matt Mueller - "fix" shareware compile
#ifndef SHAREWARE
//end addition -MM
int i=2,version;
int32_t t;
version=values[i++];
hud_message(MSGC_GAME_FEEDBACK,"Received reconfig from %i (v%i)",values[1],version);
if (version < 128){//thinking ahead a bit, just in case we want to make some new additions we can still have them work on older versions of d1x, but we can also make new reconfig types that don't have any of the old stuff.
Netgame.gamemode = values[i++];
Netgame.game_flags = values[i++];
Netgame.difficulty = values[i++];
restrict_mode = values[i++];
Netgame.packets_per_sec = values[i++];
Netgame.protocol_version = values[i++];
Netgame.max_numplayers = values[i++];
memcpy(&t,&(values[i]),sizeof(t)); i+= sizeof(t);
Netgame.control_invul_time = swapint(t);
memcpy(&t,&(values[i]),sizeof(t)); i+= sizeof(t);
Netgame.flags = swapint(t);
}
// if (version==?) then process_additional_info
mprintf((0,"GAMEMODE:%i",Netgame.gamemode));
mprintf((0,"GAME_FLAGS:%i",Netgame.game_flags));
mprintf((0,"DIFFICULTY:%i",Netgame.difficulty));
mprintf((0,"RESTRICT_MODE:%i",restrict_mode));
mprintf((0,"PPS:%i",Netgame.packets_per_sec));
mprintf((0,"PROTOCOL_VERSION:%i",Netgame.protocol_version));
mprintf((0,"MAX_NUMPLAYERS:%i",Netgame.max_numplayers));
mprintf((0,"CONTROL_INVUL_TIME:%i",Netgame.control_invul_time));
mprintf((0,"FLAGS:%i",Netgame.flags));
//added 06/09/99 Matt Mueller - "fix" shareware compile
#endif
//end addition -MM
}
//added 06/09/99 Matt Mueller - fix nonetwork compile
#endif
//end addition -MM