From 07a5c09bb0163a1714912e7480ba6c6e8836a613 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Wed, 16 May 2007 13:49:04 +0000 Subject: Rejig net_cl_new_sync and drone to be in d_net.c instead of net_client.c. Fix FEATURE_MULTIPLAYER conditional compile. Move some function definitions in d_net.c into headers. Reorganise the Makefile to split out files into sections based on features. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 875 --- src/Makefile.am | 76 +++++++++++++++++++++++++++++++++++--------------------- src/d_main.c | 3 +++ src/d_main.h | 5 ++++ src/d_net.c | 26 ++++++++++++++----- src/d_net.h | 3 +++ src/g_game.h | 6 ++++- src/net_client.c | 8 ------ src/net_client.h | 2 -- 8 files changed, 84 insertions(+), 45 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index b3ef5c25..9f66577b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -22,21 +22,8 @@ z_native.c z_zone.h chocolate_server_SOURCES=$(DEDSERV_FILES) chocolate_server_LDADD = @LDFLAGS@ @SDL_LIBS@ @SDLNET_LIBS@ -SOURCE_FILES=\ +MAIN_SOURCE_FILES=\ am_map.c am_map.h \ -deh_ammo.c \ -deh_cheat.c \ -deh_defs.h \ -deh_frame.c \ -deh_io.c deh_io.h \ -deh_main.c deh_main.h \ -deh_mapping.c deh_mapping.h \ -deh_misc.c deh_misc.h \ -deh_ptr.c \ -deh_sound.c \ -deh_text.c \ -deh_thing.c \ -deh_weapon.c \ d_englsh.h \ d_event.h \ d_items.c d_items.h \ @@ -78,18 +65,6 @@ md5.c md5.h \ memio.c memio.h \ mus2mid.c mus2mid.h \ m_random.c m_random.h \ -net_client.c net_client.h \ -net_common.c net_common.h \ -net_dedicated.c net_dedicated.h \ -net_defs.h \ -net_gui.c net_gui.h \ -net_io.c net_io.h \ -net_loop.c net_loop.h \ -net_packet.c net_packet.h \ -net_query.c net_query.h \ -net_sdl.c net_sdl.h \ -net_server.c net_server.h \ -net_structrw.c net_structrw.h \ p_ceilng.c \ p_doors.c \ p_enemy.c \ @@ -121,7 +96,6 @@ r_segs.c r_segs.h \ r_sky.c r_sky.h \ r_state.h \ r_things.c r_things.h \ -sounds.c sounds.h \ s_sound.c s_sound.h \ st_lib.c st_lib.h \ st_stuff.c st_stuff.h \ @@ -129,10 +103,56 @@ tables.c tables.h \ v_video.c v_video.h \ wi_stuff.c wi_stuff.h \ w_checksum.c w_checksum.h \ -w_merge.c w_merge.h \ w_wad.c w_wad.h \ z_zone.c z_zone.h +ASDF=\ +sounds.c sounds.h \ +asdf + +# source files needed for FEATURE_DEHACKED + +FEATURE_DEHACKED_SOURCE_FILES= \ +deh_ammo.c \ +deh_cheat.c \ +deh_defs.h \ +deh_frame.c \ +deh_io.c deh_io.h \ +deh_main.c deh_main.h \ +deh_mapping.c deh_mapping.h \ +deh_misc.c deh_misc.h \ +deh_ptr.c \ +deh_sound.c \ +deh_text.c \ +deh_thing.c \ +deh_weapon.c + +# source files needed for FEATURE_MULTIPLAYER + +FEATURE_MULTIPLAYER_SOURCE_FILES= \ +net_client.c net_client.h \ +net_common.c net_common.h \ +net_dedicated.c net_dedicated.h \ +net_defs.h \ +net_gui.c net_gui.h \ +net_io.c net_io.h \ +net_loop.c net_loop.h \ +net_packet.c net_packet.h \ +net_query.c net_query.h \ +net_sdl.c net_sdl.h \ +net_server.c net_server.h \ +net_structrw.c net_structrw.h + +# source files needed for FEATURE_WAD_MERGE + +FEATURE_WAD_MERGE_SOURCE_FILES = \ +w_merge.c w_merge.h + +SOURCE_FILES = $(MAIN_SOURCE_FILES) \ + $(FEATURE_DEHACKED_SOURCE_FILES) \ + $(FEATURE_MULTIPLAYER_SOURCE_FILES) \ + $(FEATURE_WAD_MERGE_SOURCE_FILES) + if HAVE_WINDRES chocolate_doom_SOURCES=$(SOURCE_FILES) chocolate-doom-res.rc else diff --git a/src/d_main.c b/src/d_main.c index 1d758cca..b27f833e 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -791,6 +791,7 @@ void D_DoomMain (void) printf (DEH_String("Z_Init: Init zone memory allocation daemon. \n")); Z_Init (); +#ifdef FEATURE_MULTIPLAYER //! // @category net // @@ -829,6 +830,8 @@ void D_DoomMain (void) if (M_CheckParm("-search")) NET_LANQuery(); + +#endif #ifdef FEATURE_DEHACKED printf("DEH_Init: Init Dehacked support.\n"); diff --git a/src/d_main.h b/src/d_main.h index 04f7e8be..14536447 100644 --- a/src/d_main.h +++ b/src/d_main.h @@ -48,6 +48,9 @@ void D_PostEvent (event_t *ev); event_t *D_PopEvent(void); +// Read events from all input devices + +void D_ProcessEvents (void); // @@ -56,6 +59,8 @@ event_t *D_PopEvent(void); void D_PageTicker (void); void D_PageDrawer (void); void D_AdvanceDemo (void); +void D_DoAdvanceDemo (void); void D_StartTitle (void); + #endif diff --git a/src/d_net.c b/src/d_net.c index 559bd448..a46c4c51 100644 --- a/src/d_net.c +++ b/src/d_net.c @@ -67,17 +67,31 @@ int nettics[MAXPLAYERS]; int maketic; +// Used for original sync code. + int lastnettic; -int skiptics; -int ticdup; +int skiptics = 0; + +// Reduce the bandwidth needed by sampling game input less and transmitting +// less. If ticdup is 2, sample half normal, 3 = one third normal, etc. + +int ticdup; + +// Send this many extra (backup) tics in each packet. + int extratics; + +// Amount to offset the timer for game sync. + fixed_t offsetms; +// Use new client syncronisation code + +boolean net_cl_new_sync = true; + +// Connected but not participating in the game (observer) -void D_ProcessEvents (void); -void G_BuildTiccmd (ticcmd_t *cmd); -void D_DoAdvanceDemo (void); - +boolean drone = false; // 35 fps clock adjusted by offsetms milliseconds diff --git a/src/d_net.h b/src/d_net.h index b2e06666..df3d2d4b 100644 --- a/src/d_net.h +++ b/src/d_net.h @@ -50,5 +50,8 @@ void TryRunTics (void); // Called at start of game loop to initialise timers void D_StartGameLoop(void); +extern boolean drone; +extern boolean net_cl_new_sync; + #endif diff --git a/src/g_game.h b/src/g_game.h index a32a8987..65fb06b0 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -30,7 +30,7 @@ #include "doomdef.h" #include "d_event.h" - +#include "d_ticcmd.h" // @@ -70,6 +70,10 @@ void G_SecretExitLevel (void); void G_WorldDone (void); +// Read current data from inputs and build a player movement command. + +void G_BuildTiccmd (ticcmd_t *cmd); + void G_Ticker (void); boolean G_Responder (event_t* ev); diff --git a/src/net_client.c b/src/net_client.c index 96e31986..e367df67 100644 --- a/src/net_client.c +++ b/src/net_client.c @@ -182,14 +182,6 @@ unsigned int net_local_is_freedoom; static fixed_t average_latency; -// Use new-style ticcmd sync (fixes indigo lag) - -boolean net_cl_new_sync = true; - -// Connected but not participating in the game (observer) - -boolean drone = false; - #define NET_CL_ExpandTicNum(b) NET_ExpandTicNum(recvwindow_start, (b)) // Called when a player leaves the game diff --git a/src/net_client.h b/src/net_client.h index 688cadaa..7c124e3f 100644 --- a/src/net_client.h +++ b/src/net_client.h @@ -50,8 +50,6 @@ extern char net_player_names[MAXPLAYERS][MAXPLAYERNAME]; extern char net_player_addresses[MAXPLAYERS][MAXPLAYERNAME]; extern int net_player_number; extern char *net_player_name; -extern boolean net_cl_new_sync; -extern boolean drone; extern md5_digest_t net_server_wad_md5sum; extern md5_digest_t net_server_deh_md5sum; -- cgit v1.2.3