Code Re-formatting; Preventing Redundancy in Restricted-game joining and leaving players (packet redundancy); Removed Network master menu (and mlticntl code) due to compatibility to older games; Using D2X code for restricted games; Expanded Game-help screen
This commit is contained in:
parent
5f78602f1b
commit
dc1e0d5e65
|
@ -1,5 +1,9 @@
|
|||
D1X-Rebirth Changelog
|
||||
|
||||
20070913
|
||||
--------
|
||||
Sconstruct, main/game.c, main/inferno.c, main/mlticntl.c, main/mprofile.c, main/multi.c, main/network.c, main/network.h: Code Re-formatting; Preventing Redundancy in Restricted-game joining and leaving players (packet redundancy); Removed Network master menu (and mlticntl code) due to compatibility to older games; Using D2X code for restricted games; Expanded Game-help screen
|
||||
|
||||
20070908
|
||||
--------
|
||||
main/command.c, main/game.c, main/gauges.c, main/multi.c, main/multiver.c, main/network.c, /main/network.h: Added complex netgame information screen (key PAUSE), Removed ping commands because ping handled in new screen
|
||||
|
|
|
@ -125,7 +125,6 @@ common_sources = [
|
|||
'main/menu.c',
|
||||
'main/mglobal.c',
|
||||
'main/mission.c',
|
||||
'main/mlticntl.c',
|
||||
'main/morph.c',
|
||||
'main/multi.c',
|
||||
'main/multibot.c',
|
||||
|
|
56
main/game.c
56
main/game.c
|
@ -103,9 +103,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "reorder.h"
|
||||
#include "hudmsg.h"
|
||||
#include "timer.h"
|
||||
#ifdef NETWORK
|
||||
#include "mlticntl.h"
|
||||
#endif
|
||||
#include "radar.h"
|
||||
#include "vers_id.h"
|
||||
#include "ban.h"
|
||||
|
@ -202,6 +199,7 @@ int Game_aborted;
|
|||
void update_cockpits(int force_redraw);
|
||||
extern void newdemo_strip_frames(char *, int);
|
||||
extern int HUD_nmessages;
|
||||
extern char WaitForRefuseAnswer,RefuseThisPlayer;
|
||||
|
||||
#define BACKGROUND_NAME "statback.pcx"
|
||||
|
||||
|
@ -1611,9 +1609,8 @@ void show_help()
|
|||
int mc = 0;
|
||||
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = TXT_HELP_ESC; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = TXT_HELP_ALT_F2; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = TXT_HELP_ALT_F3; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = TXT_HELP_F2; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "Alt-F2/F3\t SAVE/LOAD GAME"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "F3\t SWITCH COCKPIT MODES"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "F4\t TOGGLE RADAR"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = TXT_HELP_F5; mc++;
|
||||
|
@ -1624,13 +1621,12 @@ void show_help()
|
|||
m[mc].type = NM_TYPE_TEXT; m[mc].text = TXT_HELP_6TO10; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = ""; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "MULTIPLAYER:"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "CTRL-N\t GAME-MASTER MENU"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "ALT-F4\t SHOW RETICLE NAMES"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "F7\t SHOW KILL LIST"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "F8\t SEND MESSAGE"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "ALT-F6\t ACCEPT JOINING PLAYER"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "SHIFT-ALT-F6\t DUMP JOINING PLAYER"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "F8 to F12\t SEND MACRO"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "SHIFT-F8 to SHIFT-F12\t DEFINE MACRO"; mc++;
|
||||
m[mc].type = NM_TYPE_TEXT; m[mc].text = "PAUSE\t SHOW NETGAME INFORMATION"; mc++;
|
||||
newmenu_dotiny( NULL, TXT_KEYS, mc, m, NULL );
|
||||
}
|
||||
|
||||
|
@ -2207,66 +2203,54 @@ void HandleGameKey(int key)
|
|||
case KEY_F1: do_show_help(); break;
|
||||
case KEY_F2: Config_menu_flag = 1; break;
|
||||
case KEY_F3: toggle_cockpit(); break;
|
||||
case KEY_F4:
|
||||
case KEY_SHIFTED+KEY_F3: if(!(Game_mode & GM_MULTI)||Network_allow_radar)
|
||||
case KEY_F4: if(!(Game_mode & GM_MULTI)||Network_allow_radar)
|
||||
show_radar = !show_radar; break;
|
||||
case KEY_ALTED + KEY_F4:
|
||||
Show_reticle_name = (Show_reticle_name+1)%2;
|
||||
break;
|
||||
case KEY_F5:
|
||||
if ( Newdemo_state == ND_STATE_RECORDING )
|
||||
newdemo_stop_recording();
|
||||
else if ( Newdemo_state == ND_STATE_NORMAL )
|
||||
newdemo_start_recording();
|
||||
break;
|
||||
case KEY_F6:
|
||||
#ifdef NETWORK
|
||||
Show_reticle_name = (Show_reticle_name+1)%2;
|
||||
#endif
|
||||
case KEY_F6:
|
||||
if (restrict_mode && WaitForRefuseAnswer)
|
||||
{
|
||||
RefuseThisPlayer=1;
|
||||
HUD_init_message ("Player accepted!");
|
||||
}
|
||||
break;
|
||||
case KEY_F7:
|
||||
#ifdef NETWORK
|
||||
Show_kill_list = (Show_kill_list+1) % ((Game_mode & GM_TEAM) ? 4 : 3);
|
||||
#endif
|
||||
break;
|
||||
#endif
|
||||
case KEY_ALTED+KEY_F7:
|
||||
GameArg.GfxGaugeHudMode=(GameArg.GfxGaugeHudMode+1)%GAUGE_HUD_NUMMODES;
|
||||
break;
|
||||
#ifdef NETWORK
|
||||
case KEY_F8:
|
||||
#ifdef NETWORK
|
||||
multi_send_message_start();
|
||||
#endif
|
||||
break;
|
||||
#ifdef NETWORK
|
||||
case KEY_CTRLED + KEY_N:
|
||||
lamer_do_netgame_menu();
|
||||
break;
|
||||
case KEY_ALTED + KEY_F6:
|
||||
lamer_accept_joining_player();
|
||||
break;
|
||||
case KEY_SHIFTED + KEY_ALTED + KEY_F6:
|
||||
lamer_dump_joining_player();
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef NETWORK
|
||||
case KEY_SHIFTED+KEY_F8:
|
||||
mekh_resend_last();
|
||||
break;
|
||||
#endif
|
||||
|
||||
case KEY_F9:
|
||||
case KEY_F10:
|
||||
case KEY_F11:
|
||||
case KEY_F12:
|
||||
#ifdef NETWORK
|
||||
multi_send_macro(key);
|
||||
#endif
|
||||
break; // send taunt macros
|
||||
case KEY_SHIFTED + KEY_F9:
|
||||
case KEY_SHIFTED + KEY_F10:
|
||||
case KEY_SHIFTED + KEY_F11:
|
||||
case KEY_SHIFTED + KEY_F12:
|
||||
#ifdef NETWORK
|
||||
multi_define_macro(key);
|
||||
#endif
|
||||
break; // redefine taunt macros
|
||||
#endif
|
||||
case KEY_PAUSE: do_game_pause(1); break;
|
||||
case KEY_PRINT_SCREEN: save_screen_shot(0); break;
|
||||
|
||||
|
@ -3018,10 +3002,6 @@ void GameLoop(int RenderFlag, int ReadControlsFlag )
|
|||
fuelcen_update_all();
|
||||
do_ai_frame_all();
|
||||
|
||||
#ifdef NETWORK
|
||||
if(restrict_mode)
|
||||
lamer_do_restrict_frame();
|
||||
#endif
|
||||
if (allowed_to_fire_laser()) {
|
||||
Global_laser_firing_count = Weapon_info[Primary_weapon_to_weapon_info[Primary_weapon]].fire_count * (Controls.fire_primary_state || Controls.fire_primary_down_count);
|
||||
if ((Primary_weapon == FUSION_INDEX) && (Global_laser_firing_count)) {
|
||||
|
|
|
@ -445,10 +445,5 @@ int main(int argc,char **argv)
|
|||
|
||||
void quit_request()
|
||||
{
|
||||
#ifdef NETWORK
|
||||
void network_abort_game();
|
||||
if(Network_status)
|
||||
network_abort_game();
|
||||
#endif
|
||||
exit(0);
|
||||
}
|
||||
|
|
|
@ -154,39 +154,36 @@ void lamer_do_netgame_menu (void) //This function brings up a menu that lets yo
|
|||
|
||||
void lamer_do_restrict_alert (sequence_packet * their) //This function lets you know that someone wants to join a restricted netgame. Displays joining player's callsign and IP.
|
||||
{
|
||||
ubyte ipaddress[6];
|
||||
ubyte ipaddress[6];
|
||||
|
||||
if(!restrict_mode)
|
||||
return;
|
||||
if(!restrict_mode)
|
||||
return;
|
||||
|
||||
if((dump_join) && (!stricmp(their->player.callsign, restricted_callsign)))
|
||||
{
|
||||
network_dump_player(their->player.server, their->player.node, DUMP_DORK);
|
||||
dump_join = 0;
|
||||
return;
|
||||
}
|
||||
if((dump_join) && (!stricmp(their->player.callsign, restricted_callsign)))
|
||||
{
|
||||
network_dump_player(their->player.server, their->player.node, DUMP_DORK);
|
||||
dump_join = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((restrict_start_time+RESTRICT_WAIT > GameTime) && (waiting_to_join) && (!stricmp(restricted_callsign, their->player.callsign)))
|
||||
return;
|
||||
if((restrict_start_time+RESTRICT_WAIT > GameTime) && (waiting_to_join) && (!stricmp(restricted_callsign, their->player.callsign)))
|
||||
return;
|
||||
|
||||
if(accept_join)
|
||||
return;
|
||||
if(accept_join)
|
||||
return;
|
||||
|
||||
//if ( (*(uint *)their->player.server) != 0 )
|
||||
// ipx_get_local_target( their->player.server, their->player.node, ipaddress );
|
||||
//else
|
||||
memcpy(ipaddress, their->player.node, 6);
|
||||
memcpy(ipaddress, their->player.node, 6);
|
||||
|
||||
digi_play_sample(SOUND_CONTROL_CENTER_WARNING_SIREN, F1_0*4);
|
||||
hud_message(MSGC_GAME_FEEDBACK,"%s, ip %d.%d.%d.%d, wants to join the game!", their->player.callsign, /*(int)ipaddress[5], (int)ipaddress[4],*/ (int)ipaddress[3], (int)ipaddress[2], (int)ipaddress[1], (int)ipaddress[0]);
|
||||
digi_play_sample(SOUND_CONTROL_CENTER_WARNING_SIREN, F1_0*4);
|
||||
hud_message(MSGC_GAME_FEEDBACK,"%s wants to join (ALT-F6: accept, SHIFT-ALT-F6: deny)", their->player.callsign /*, (int)ipaddress[5], (int)ipaddress[4], (int)ipaddress[3], (int)ipaddress[2], (int)ipaddress[1], (int)ipaddress[0]*/);
|
||||
|
||||
restrict_start_time = GameTime;
|
||||
waiting_to_join = 1;
|
||||
strcpy(restricted_callsign, their->player.callsign);
|
||||
//accept_join = 0;
|
||||
dump_join = 0;
|
||||
restrict_start_time = GameTime;
|
||||
waiting_to_join = 1;
|
||||
strcpy(restricted_callsign, their->player.callsign);
|
||||
//accept_join = 0;
|
||||
dump_join = 0;
|
||||
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
void lamer_do_restrict_frame (void) //This function times out a request to join a restricted netgame if the time has been longer than RESTRICT_TIMEOUT.
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include "multipow.h"
|
||||
#include "network.h"
|
||||
#include "text.h"
|
||||
#include "mlticntl.h"
|
||||
#include "d_io.h"
|
||||
#include "args.h"
|
||||
//added 05/17/99 Matt Mueller
|
||||
|
|
|
@ -959,7 +959,7 @@ multi_send_data_real(unsigned char *buf, int len, int repeat,char *file,char *fu
|
|||
if (Game_mode & GM_NETWORK)
|
||||
{
|
||||
//edit 03/04/99 Matt Mueller - use direct mode for most packets. (pos_fire is handled elsewhere, so checking here might be redundant..)
|
||||
if(buf[0]!=MULTI_FIRE && buf[0]!=MULTI_REAPPEAR)
|
||||
if(buf[0]!=MULTI_FIRE && buf[0]!=MULTI_REAPPEAR && buf[0]!=MULTI_QUIT)
|
||||
mekh_send_direct_broadcast(buf, len);
|
||||
else
|
||||
network_send_data(buf, len, repeat);
|
||||
|
@ -1856,7 +1856,7 @@ multi_do_quit(char *buf)
|
|||
{
|
||||
//added/changed on 10/11/98 by Victor Rachels cuz this is annoying as a box
|
||||
//-killed- nm_messagebox(NULL, 1, TXT_OK, TXT_YOU_ARE_ONLY);
|
||||
hud_message(MSGC_GAME_FEEDBACK, TXT_YOU_ARE_ONLY);
|
||||
hud_message(MSGC_GAME_FEEDBACK, "You are the only person remaining in this netgame");
|
||||
//end this change - Victor Rachels
|
||||
}
|
||||
|
||||
|
|
186
main/network.c
186
main/network.c
|
@ -71,10 +71,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "radar.h" //int Network_allow_radar = 0;
|
||||
//end this section addition - VR
|
||||
|
||||
//added on 11/16/98 by Victor Rachels (from GF) for more multi-control
|
||||
#include "mlticntl.h"
|
||||
//end this section addition - VR (from GF)
|
||||
|
||||
// Begin addition by GRiM FisH
|
||||
#include "ignore.h"
|
||||
// End addition by GRiM FisH
|
||||
|
@ -107,6 +103,7 @@ void network_flush();
|
|||
void network_listen();
|
||||
void network_read_pdata_packet( ubyte *data, int short_pos );
|
||||
int network_compare_players(netplayer_info *pl1, netplayer_info *pl2);
|
||||
void DoRefuseStuff(sequence_packet *their);
|
||||
|
||||
#define NETWORK_NEW_LIST
|
||||
#ifdef NETWORK_NEW_LIST
|
||||
|
@ -114,6 +111,7 @@ extern int network_join_game_menu();
|
|||
#endif
|
||||
|
||||
#define NETWORK_TIMEOUT (10*F1_0) // 10 seconds disconnect timeout
|
||||
#define REFUSE_INTERVAL F1_0 * 8
|
||||
|
||||
netgame_info Active_games[MAX_ACTIVE_NETGAMES];
|
||||
int num_active_games = 0;
|
||||
|
@ -159,6 +157,8 @@ ushort my_segments_checksum = 0;
|
|||
|
||||
int Network_DOS_compability = 0; // ugly, yes - D1X ONLY or do we also play with DOS versions?
|
||||
|
||||
int restrict_mode = 0;
|
||||
|
||||
sequence_packet My_Seq;
|
||||
|
||||
extern obj_position Player_init[MAX_PLAYERS];
|
||||
|
@ -579,9 +579,7 @@ network_new_player(sequence_packet *their)
|
|||
|
||||
digi_play_sample(SOUND_HUD_MESSAGE, F1_0);
|
||||
|
||||
hud_message(MSGC_MULTI_INFO, "'\002%c%s\004' %s",//removed a \n here.. I don't think its supposed to be there. -MPM
|
||||
gr_getcolor(player_rgb[pnum].r,player_rgb[pnum].g,player_rgb[pnum].b)+1,
|
||||
their->player.callsign, TXT_JOINING);
|
||||
hud_message(MSGC_MULTI_INFO, "'%s' %s",their->player.callsign, TXT_JOINING);
|
||||
|
||||
multi_make_ghost_player(pnum);
|
||||
|
||||
|
@ -592,6 +590,10 @@ network_new_player(sequence_packet *their)
|
|||
network_get_player_settings(pnum);
|
||||
}
|
||||
|
||||
char RefuseThisPlayer=0,WaitForRefuseAnswer=0;
|
||||
char RefusePlayerName[12];
|
||||
fix RefuseTimeLimit=0;
|
||||
|
||||
void network_welcome_player(sequence_packet *their)
|
||||
{
|
||||
// Add a player to a game already in progress
|
||||
|
@ -733,9 +735,7 @@ void network_welcome_player(sequence_packet *their)
|
|||
|
||||
digi_play_sample(SOUND_HUD_MESSAGE, F1_0);
|
||||
|
||||
hud_message(MSGC_MULTI_INFO, "'\002%c%s\004' %s",
|
||||
gr_getcolor(player_rgb[player_num].r,player_rgb[player_num].g,player_rgb[player_num].b)+1,
|
||||
Players[player_num].callsign, TXT_REJOIN);
|
||||
hud_message(MSGC_MULTI_INFO, "'%s' %s", Players[player_num].callsign, TXT_REJOIN);
|
||||
}
|
||||
|
||||
// Send updated Objects data to the new/returning player
|
||||
|
@ -1191,7 +1191,6 @@ network_dump_player(ubyte * server, ubyte *node, int why)
|
|||
{
|
||||
// Remove player from game (not chosen, kicked, ...)
|
||||
|
||||
Assert(MySyncPackInitialized);
|
||||
My_Seq.type = PID_DUMP;
|
||||
My_Seq.player.connected = why;
|
||||
#ifdef NATIVE_PACKETS
|
||||
|
@ -1492,43 +1491,33 @@ void network_process_packet(ubyte *data, int length )
|
|||
case PID_REQUEST:
|
||||
mprintf( (0, "Got REQUEST from '%s'\n", their->player.callsign ));
|
||||
|
||||
if (!ipx_check_ready_to_join(their->player.server,their->player.node))
|
||||
break;
|
||||
if (!ipx_check_ready_to_join(their->player.server,their->player.node))
|
||||
break;
|
||||
|
||||
//added on 2/1/99 by Victor Rachels for bans
|
||||
if(checkban(their->player.node))
|
||||
{
|
||||
network_dump_player(their->player.server, their->player.node, DUMP_DORK);
|
||||
hud_message(MSGC_GAME_FEEDBACK, "%s tried to join at banned ip %d.%d.%d.%d", their->player.callsign,their->player.node[3],their->player.node[2],their->player.node[1],their->player.node[0] );
|
||||
}
|
||||
//end this section addition - VR
|
||||
|
||||
|
||||
else if (Network_status == NETSTAT_STARTING)
|
||||
{
|
||||
//added on 2/1/99 by Victor Rachels for bans
|
||||
if(checkban(their->player.node))
|
||||
{
|
||||
network_dump_player(their->player.server, their->player.node, DUMP_DORK);
|
||||
hud_message(MSGC_GAME_FEEDBACK, "%s tried to join at banned ip %d.%d.%d.%d", their->player.callsign,their->player.node[3],their->player.node[2],their->player.node[1],their->player.node[0] );
|
||||
}
|
||||
//end this section addition - VR
|
||||
else if (Network_status == NETSTAT_STARTING)
|
||||
{
|
||||
// Someone wants to join our game!
|
||||
network_add_player(their);
|
||||
}
|
||||
else if (Network_status == NETSTAT_WAITING)
|
||||
{
|
||||
network_add_player(their);
|
||||
}
|
||||
else if (Network_status == NETSTAT_WAITING)
|
||||
{
|
||||
// Someone is ready to recieve a sync packet
|
||||
network_process_request(their);
|
||||
}
|
||||
}
|
||||
else if (Network_status == NETSTAT_PLAYING)
|
||||
{
|
||||
|
||||
//Begin addition by GF
|
||||
if(!restrict_mode)
|
||||
network_welcome_player(their);
|
||||
else if(restrict_mode)
|
||||
lamer_network_welcome_player_restricted(their);
|
||||
|
||||
|
||||
// Someone wants to join a game in progress!
|
||||
//-killed- network_welcome_player(their);
|
||||
//End addition by GF
|
||||
|
||||
}
|
||||
{
|
||||
if (restrict_mode)
|
||||
DoRefuseStuff (their);
|
||||
else
|
||||
network_welcome_player(their);
|
||||
}
|
||||
break;
|
||||
// Begin addition by GF
|
||||
case PID_DUMP:
|
||||
|
@ -1826,7 +1815,7 @@ void network_sync_poll( int nitems, newmenu_item * menus, int * key, int citem )
|
|||
if (Network_status != NETSTAT_WAITING) // Status changed to playing, exit the menu
|
||||
*key = -2;
|
||||
|
||||
if (!Network_rejoined && (timer_get_approx_seconds() > t1+F1_0*2))
|
||||
if (Network_status != NETSTAT_MENU && !Network_rejoined && (timer_get_approx_seconds() > t1+F1_0*2))
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -2966,22 +2955,14 @@ network_wait_for_sync(void)
|
|||
|
||||
sprintf( m[0].text, "%s\n'%s' %s", TXT_NET_WAITING, Netgame.players[i].callsign, TXT_NET_TO_ENTER );
|
||||
|
||||
menu:
|
||||
choice=newmenu_do( NULL, TXT_WAIT, 2, m, network_sync_poll );
|
||||
while (choice > -1)
|
||||
choice=newmenu_do( NULL, TXT_WAIT, 2, m, network_sync_poll );
|
||||
|
||||
if (choice > -1)
|
||||
goto menu;
|
||||
|
||||
if (Network_status != NETSTAT_PLAYING)
|
||||
{
|
||||
sequence_packet me;
|
||||
|
||||
// if (Network_status == NETSTAT_ENDLEVEL)
|
||||
// {
|
||||
// network_send_endlevel_packet(0);
|
||||
// longjmp(LeaveGame, 1);
|
||||
// }
|
||||
|
||||
mprintf((0, "Aborting join.\n"));
|
||||
me.type = PID_QUIT_JOINING;
|
||||
memcpy( me.player.callsign, Players[Player_num].callsign, CALLSIGN_LEN+1 );
|
||||
|
@ -3271,7 +3252,7 @@ void network_leave_game()
|
|||
N_players = Netgame.numplayers = 0;
|
||||
network_send_game_info(NULL, 1);
|
||||
}
|
||||
|
||||
|
||||
Players[Player_num].connected = 0;
|
||||
network_send_endlevel_packet();
|
||||
change_playernum_to(0);
|
||||
|
@ -3356,9 +3337,7 @@ void network_timeout_player(int playernum)
|
|||
|
||||
digi_play_sample(SOUND_HUD_MESSAGE, F1_0);
|
||||
|
||||
hud_message(MSGC_MULTI_INFO, "\002%c%s\004 %s",
|
||||
gr_getcolor(player_rgb[playernum].r,player_rgb[playernum].g,player_rgb[playernum].b)+1,
|
||||
Players[playernum].callsign, TXT_DISCONNECTING);
|
||||
hud_message(MSGC_MULTI_INFO, "%s %s", Players[playernum].callsign, TXT_DISCONNECTING);
|
||||
for (i = 0; i < N_players; i++)
|
||||
if (Players[i].connected)
|
||||
n++;
|
||||
|
@ -3367,7 +3346,7 @@ void network_timeout_player(int playernum)
|
|||
{
|
||||
//added/changed on 10/11/98 by Victor Rachels cuz this is annoying as a box
|
||||
//-killed- nm_messagebox(NULL, 1, TXT_OK, TXT_YOU_ARE_ONLY);
|
||||
hud_message(MSGC_GAME_FEEDBACK, TXT_YOU_ARE_ONLY);
|
||||
hud_message(MSGC_GAME_FEEDBACK, "You are the only person remaining in this netgame");
|
||||
//end this section change - VR
|
||||
}
|
||||
}
|
||||
|
@ -3387,6 +3366,9 @@ void network_do_frame(int force, int listen)
|
|||
if ((Network_status != NETSTAT_PLAYING) || (Endlevel_sequence)) // Don't send postion during escape sequence...
|
||||
goto listen;
|
||||
|
||||
if (WaitForRefuseAnswer && timer_get_approx_seconds()>(RefuseTimeLimit+(F1_0*12)))
|
||||
WaitForRefuseAnswer=0;
|
||||
|
||||
last_send_time += FrameTime;
|
||||
last_timeout_check += FrameTime;
|
||||
|
||||
|
@ -3469,9 +3451,7 @@ void network_do_frame(int force, int listen)
|
|||
//added on 11/18/98 by Victor Rachels to hack ghost disconnects
|
||||
if(Players[i].connected != 1 && Objects[Players[i].objnum].type != OBJ_GHOST)
|
||||
{
|
||||
hud_message(MSGC_MULTI_INFO, "\002%c%s\004 has left.",
|
||||
gr_getcolor(player_rgb[i].r,player_rgb[i].g,player_rgb[i].b)+1,
|
||||
Players[i].callsign);
|
||||
hud_message(MSGC_MULTI_INFO, "%s has left.", Players[i].callsign);
|
||||
multi_make_player_ghost(i);
|
||||
}
|
||||
//end this section addition - VR
|
||||
|
@ -3637,9 +3617,7 @@ void network_read_pdata_packet(ubyte *data, int short_packet)
|
|||
create_player_appearance_effect(&Objects[TheirObjnum]);
|
||||
|
||||
digi_play_sample( SOUND_HUD_MESSAGE, F1_0);
|
||||
hud_message( MSGC_MULTI_INFO, "'\002%c%s\004' %s",
|
||||
gr_getcolor(player_rgb[TheirPlayernum].r,player_rgb[TheirPlayernum].g,player_rgb[TheirPlayernum].b)+1,
|
||||
Players[TheirPlayernum].callsign, TXT_REJOIN );
|
||||
hud_message( MSGC_MULTI_INFO, "'%s' %s",Players[TheirPlayernum].callsign, TXT_REJOIN );
|
||||
|
||||
#ifndef SHAREWARE
|
||||
multi_send_score();
|
||||
|
@ -3681,16 +3659,74 @@ int network_who_is_master(void)
|
|||
return Player_num;
|
||||
}
|
||||
|
||||
#if 0 // currently not used
|
||||
// compare two players
|
||||
// players are considered equal if they have the same callsign and
|
||||
// the same network address
|
||||
// returns 1 if equal, 0 if not.
|
||||
int network_compare_players(netplayer_info *pl1, netplayer_info *pl2) {
|
||||
return ((strcasecmp(pl1->callsign, pl2->callsign) == 0) &&
|
||||
(memcmp(pl1->node, pl2->node, 6) == 0) &&
|
||||
(memcmp(pl1->server, pl2->server, 4) == 0));
|
||||
void DoRefuseStuff (sequence_packet *their)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i=0;i<MAX_PLAYERS;i++)
|
||||
{
|
||||
if (!strcmp (their->player.callsign,Players[i].callsign))
|
||||
{
|
||||
network_welcome_player(their);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!WaitForRefuseAnswer)
|
||||
{
|
||||
for (i=0;i<MAX_PLAYERS;i++)
|
||||
{
|
||||
if (!strcmp (their->player.callsign,Players[i].callsign))
|
||||
{
|
||||
network_welcome_player(their);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
digi_play_sample (SOUND_CONTROL_CENTER_WARNING_SIREN,F1_0*2);
|
||||
|
||||
HUD_init_message ("%s wants to join (accept: F6)",their->player.callsign);
|
||||
|
||||
strcpy (RefusePlayerName,their->player.callsign);
|
||||
RefuseTimeLimit=timer_get_approx_seconds();
|
||||
RefuseThisPlayer=0;
|
||||
WaitForRefuseAnswer=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i=0;i<MAX_PLAYERS;i++)
|
||||
{
|
||||
if (!strcmp (their->player.callsign,Players[i].callsign))
|
||||
{
|
||||
network_welcome_player(their);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (strcmp(their->player.callsign,RefusePlayerName))
|
||||
return;
|
||||
|
||||
if (RefuseThisPlayer)
|
||||
{
|
||||
RefuseTimeLimit=0;
|
||||
RefuseThisPlayer=0;
|
||||
WaitForRefuseAnswer=0;
|
||||
network_welcome_player(their);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((timer_get_approx_seconds()) > RefuseTimeLimit+REFUSE_INTERVAL)
|
||||
{
|
||||
RefuseTimeLimit=0;
|
||||
RefuseThisPlayer=0;
|
||||
WaitForRefuseAnswer=0;
|
||||
if (!strcmp (their->player.callsign,RefusePlayerName))
|
||||
{
|
||||
network_dump_player(their->player.server,their->player.node, DUMP_DORK);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -135,6 +135,8 @@ extern int Network_rejoined;
|
|||
extern int Network_new_game;
|
||||
extern int Network_status;
|
||||
|
||||
extern int restrict_mode;
|
||||
|
||||
extern fix LastPacketTime[MAX_PLAYERS];
|
||||
|
||||
//added on 8/6/98 by Matt Mueller
|
||||
|
|
Loading…
Reference in a new issue