mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-22 20:21:26 +00:00
Merge branch 'master' of https://github.com/rheit/zdoom
This commit is contained in:
commit
0b1ccfb582
5 changed files with 72 additions and 30 deletions
|
@ -3,6 +3,7 @@ project(GZDoom)
|
||||||
|
|
||||||
list( APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} )
|
list( APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||||
include( CreateLaunchers )
|
include( CreateLaunchers )
|
||||||
|
include( FindPackageHandleStandardArgs )
|
||||||
|
|
||||||
# Generator expression are available some time in CMake 2.8. Due to
|
# Generator expression are available some time in CMake 2.8. Due to
|
||||||
# cmake_minimum_required, we can assume a minor version of > 7 implies major >= 2
|
# cmake_minimum_required, we can assume a minor version of > 7 implies major >= 2
|
||||||
|
@ -72,6 +73,13 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}")
|
||||||
find_package( BZip2 )
|
find_package( BZip2 )
|
||||||
find_package( JPEG )
|
find_package( JPEG )
|
||||||
find_package( ZLIB )
|
find_package( ZLIB )
|
||||||
|
# GME
|
||||||
|
find_path( GME_INCLUDE_DIR gme.h )
|
||||||
|
find_library( GME_LIBRARIES gme )
|
||||||
|
mark_as_advanced( GME_INCLUDE_DIR GME_LIBRARIES )
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS( GME
|
||||||
|
REQUIRED_VARS GME_LIBRARIES GME_INCLUDE_DIR
|
||||||
|
)
|
||||||
|
|
||||||
if( MSVC )
|
if( MSVC )
|
||||||
# Eliminate unreferenced functions and data
|
# Eliminate unreferenced functions and data
|
||||||
|
@ -126,6 +134,7 @@ set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${DEB_C_FLAGS} -D_DEBUG" )
|
||||||
option(FORCE_INTERNAL_ZLIB "Use internal zlib")
|
option(FORCE_INTERNAL_ZLIB "Use internal zlib")
|
||||||
option(FORCE_INTERNAL_JPEG "Use internal jpeg")
|
option(FORCE_INTERNAL_JPEG "Use internal jpeg")
|
||||||
option(FORCE_INTERNAL_BZIP2 "Use internal bzip2")
|
option(FORCE_INTERNAL_BZIP2 "Use internal bzip2")
|
||||||
|
option(FORCE_INTERNAL_GME "Use internal gme" ON)
|
||||||
|
|
||||||
if( ZLIB_FOUND AND NOT FORCE_INTERNAL_ZLIB )
|
if( ZLIB_FOUND AND NOT FORCE_INTERNAL_ZLIB )
|
||||||
message( STATUS "Using system zlib" )
|
message( STATUS "Using system zlib" )
|
||||||
|
@ -157,11 +166,19 @@ else( BZIP2_FOUND AND NOT FORCE_INTERNAL_BZIP2 )
|
||||||
set( BZIP2_LIBRARY bz2 )
|
set( BZIP2_LIBRARY bz2 )
|
||||||
endif( BZIP2_FOUND AND NOT FORCE_INTERNAL_BZIP2 )
|
endif( BZIP2_FOUND AND NOT FORCE_INTERNAL_BZIP2 )
|
||||||
|
|
||||||
|
if( GME_FOUND AND NOT FORCE_INTERNAL_GME )
|
||||||
|
message( STATUS "Using system gme library ${GME_INCLUDE_DIR}" )
|
||||||
|
else( GME_FOUND AND NOT FORCE_INTERNAL_GME )
|
||||||
|
message( STATUS "Using internal gme library" )
|
||||||
|
add_subdirectory( game-music-emu )
|
||||||
|
set( GME_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/game-music-emu" )
|
||||||
|
set( GME_LIBRARIES gme )
|
||||||
|
endif( GME_FOUND AND NOT FORCE_INTERNAL_GME )
|
||||||
|
|
||||||
set( LZMA_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lzma/C" )
|
set( LZMA_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lzma/C" )
|
||||||
|
|
||||||
add_subdirectory( lzma )
|
add_subdirectory( lzma )
|
||||||
add_subdirectory( tools )
|
add_subdirectory( tools )
|
||||||
add_subdirectory( game-music-emu )
|
|
||||||
add_subdirectory( dumb )
|
add_subdirectory( dumb )
|
||||||
add_subdirectory( gdtoa )
|
add_subdirectory( gdtoa )
|
||||||
add_subdirectory( wadsrc )
|
add_subdirectory( wadsrc )
|
||||||
|
|
|
@ -534,8 +534,8 @@ add_custom_target( revision_check ALL
|
||||||
# Libraries ZDoom needs
|
# Libraries ZDoom needs
|
||||||
|
|
||||||
message( STATUS "Fluid synth libs: ${FLUIDSYNTH_LIBRARIES}" )
|
message( STATUS "Fluid synth libs: ${FLUIDSYNTH_LIBRARIES}" )
|
||||||
set( ZDOOM_LIBS ${ZDOOM_LIBS} "${ZLIB_LIBRARIES}" "${JPEG_LIBRARIES}" "${BZIP2_LIBRARIES}" "${FMOD_LIBRARY}" )
|
set( ZDOOM_LIBS ${ZDOOM_LIBS} "${ZLIB_LIBRARIES}" "${JPEG_LIBRARIES}" "${BZIP2_LIBRARIES}" "${GME_LIBRARIES}" "${FMOD_LIBRARY}" )
|
||||||
include_directories( "${ZLIB_INCLUDE_DIR}" "${FMOD_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" )
|
include_directories( "${ZLIB_INCLUDE_DIR}" "${FMOD_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" "${GME_INCLUDE_DIR}" )
|
||||||
|
|
||||||
if( FLUIDSYNTH_FOUND )
|
if( FLUIDSYNTH_FOUND )
|
||||||
if( NOT DYN_FLUIDSYNTH)
|
if( NOT DYN_FLUIDSYNTH)
|
||||||
|
@ -1179,7 +1179,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
|
||||||
set( ZDOOM_LIBS ${ZDOOM_LIBS} nsl socket)
|
set( ZDOOM_LIBS ${ZDOOM_LIBS} nsl socket)
|
||||||
endif(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
|
endif(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
|
||||||
|
|
||||||
target_link_libraries( zdoom ${ZDOOM_LIBS} gme gdtoa dumb lzma )
|
target_link_libraries( zdoom ${ZDOOM_LIBS} gdtoa dumb lzma )
|
||||||
include_directories( .
|
include_directories( .
|
||||||
g_doom
|
g_doom
|
||||||
g_heretic
|
g_heretic
|
||||||
|
@ -1193,7 +1193,6 @@ include_directories( .
|
||||||
thingdef
|
thingdef
|
||||||
timidity
|
timidity
|
||||||
xlat
|
xlat
|
||||||
../game-music-emu/gme
|
|
||||||
../gdtoa
|
../gdtoa
|
||||||
../dumb/include
|
../dumb/include
|
||||||
${CMAKE_BINARY_DIR}/gdtoa
|
${CMAKE_BINARY_DIR}/gdtoa
|
||||||
|
|
|
@ -704,8 +704,6 @@ void GetPackets (void)
|
||||||
}
|
}
|
||||||
continue; // extra setup packet
|
continue; // extra setup packet
|
||||||
}
|
}
|
||||||
|
|
||||||
lastglobalrecvtime = I_GetTime (false); //Update the last time a packet was recieved
|
|
||||||
|
|
||||||
netnode = doomcom.remotenode;
|
netnode = doomcom.remotenode;
|
||||||
netconsole = playerfornode[netnode] & ~PL_DRONE;
|
netconsole = playerfornode[netnode] & ~PL_DRONE;
|
||||||
|
@ -1827,30 +1825,39 @@ void TryRunTics (void)
|
||||||
I_Error ("TryRunTics: lowtic < gametic");
|
I_Error ("TryRunTics: lowtic < gametic");
|
||||||
|
|
||||||
// [Ed850] Check to see the last time a packet was recieved.
|
// [Ed850] Check to see the last time a packet was recieved.
|
||||||
// If it's longer then 3 seconds, a node has likely stalled. Check which one and re-request its last packet.
|
// If it's longer then 3 seconds, a node has likely stalled.
|
||||||
if(I_GetTime(false) - lastglobalrecvtime >= TICRATE*3)
|
if(I_GetTime(false) - lastglobalrecvtime >= TICRATE*3)
|
||||||
{
|
{
|
||||||
int latenode = 0; // Node 0 is the local player, and should always be the highest
|
|
||||||
lastglobalrecvtime = I_GetTime(false); //Bump the count
|
lastglobalrecvtime = I_GetTime(false); //Bump the count
|
||||||
|
|
||||||
if(NetMode == NET_PeerToPeer || consoleplayer == Net_Arbitrator)
|
if(NetMode == NET_PeerToPeer || consoleplayer == Net_Arbitrator)
|
||||||
{
|
{
|
||||||
|
//Keep the local node in the for loop so we can still log any cases where the local node is /somehow/ late.
|
||||||
|
//However, we don't send a resend request for sanity reasons.
|
||||||
for (i = 0; i < doomcom.numnodes; i++)
|
for (i = 0; i < doomcom.numnodes; i++)
|
||||||
if (nodeingame[i] && nettics[i] < nettics[latenode])
|
{
|
||||||
latenode = i;
|
if (nodeingame[i] && nettics[i] < gametic + counts)
|
||||||
|
{
|
||||||
|
if (debugfile)
|
||||||
|
fprintf (debugfile, "%i is slow (%i to %i)\n",
|
||||||
|
i, nettics[i], gametic+counts);
|
||||||
|
//Send resend request to the late node. Also mark the node as waiting to display it in the hud.
|
||||||
|
if(i != 0)
|
||||||
|
remoteresend[i] = players[playerfornode[i]].waiting = hadlate = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
players[playerfornode[i]].waiting = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (nodeingame[nodeforplayer[Net_Arbitrator]] &&
|
else
|
||||||
nettics[nodeforplayer[Net_Arbitrator]] < nettics[0])
|
{ //Send a resend request to the Arbitrator, as it's obvious we are stuck here.
|
||||||
{ // Likely a packet server game. Only check the packet host.
|
if (debugfile)
|
||||||
latenode = Net_Arbitrator;
|
fprintf (debugfile, "Arbitrator is slow (%i to %i)\n",
|
||||||
|
Net_Arbitrator, nettics[Net_Arbitrator], gametic+counts);
|
||||||
|
//Send resend request to the Arbitrator. Also mark the Arbitrator as waiting to display it in the hud.
|
||||||
|
if(i != 0)
|
||||||
|
remoteresend[Net_Arbitrator] = players[playerfornode[Net_Arbitrator]].waiting = hadlate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debugfile)
|
|
||||||
fprintf (debugfile, "lost tics from %i (%i to %i)\n",
|
|
||||||
latenode, nettics[latenode], gametic);
|
|
||||||
|
|
||||||
if(latenode != 0) // Send resend request to late node (if not yourself... somehow). Also mark the node as waiting to display it in the hud.
|
|
||||||
remoteresend[latenode] = players[playerfornode[latenode]].waiting = hadlate = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// don't stay in here forever -- give the menu a chance to work
|
// don't stay in here forever -- give the menu a chance to work
|
||||||
|
@ -1862,12 +1869,11 @@ void TryRunTics (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hadlate)
|
//Tic lowtic is high enough to process this gametic. Clear all possible waiting info
|
||||||
{
|
hadlate = false;
|
||||||
hadlate = false;
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
players[i].waiting = false;
|
||||||
players[i].waiting = false;
|
lastglobalrecvtime = I_GetTime (false); //Update the last time the game tic'd over
|
||||||
}
|
|
||||||
|
|
||||||
// run the count tics
|
// run the count tics
|
||||||
if (counts > 0)
|
if (counts > 0)
|
||||||
|
|
|
@ -422,7 +422,27 @@ void I_SetIWADInfo ()
|
||||||
|
|
||||||
void I_PrintStr (const char *cp)
|
void I_PrintStr (const char *cp)
|
||||||
{
|
{
|
||||||
fputs (cp, stdout);
|
// Strip out any color escape sequences before writing to the log file
|
||||||
|
char * copy = new char[strlen(cp)+1];
|
||||||
|
const char * srcp = cp;
|
||||||
|
char * dstp = copy;
|
||||||
|
|
||||||
|
while (*srcp != 0)
|
||||||
|
{
|
||||||
|
if (*srcp!=0x1c && *srcp!=0x1d && *srcp!=0x1e && *srcp!=0x1f)
|
||||||
|
{
|
||||||
|
*dstp++=*srcp++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (srcp[1]!=0) srcp+=2;
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*dstp=0;
|
||||||
|
|
||||||
|
fputs (copy, stdout);
|
||||||
|
delete [] copy;
|
||||||
fflush (stdout);
|
fflush (stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
#include "i_musicinterns.h"
|
#include "i_musicinterns.h"
|
||||||
#include "c_cvars.h"
|
#include "c_cvars.h"
|
||||||
#include "critsec.h"
|
#include "critsec.h"
|
||||||
#include "gme.h"
|
#include <gme/gme.h>
|
||||||
#include "v_text.h"
|
#include "v_text.h"
|
||||||
|
|
||||||
// MACROS ------------------------------------------------------------------
|
// MACROS ------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in a new issue