mirror of
https://github.com/Shpoike/Quakespasm.git
synced 2024-11-10 07:21:58 +00:00
Merge tag 'quakespasm-0.94.5' into qss
This commit is contained in:
commit
7a97911ff4
57 changed files with 442 additions and 314 deletions
|
@ -45,6 +45,7 @@
|
|||
<Add option="-lvorbis" />
|
||||
<Add option="-logg" />
|
||||
<Add option="-lmad" />
|
||||
<Add option="-lm" />
|
||||
</Linker>
|
||||
<Unit filename="../../Quake/anorm_dots.h" />
|
||||
<Unit filename="../../Quake/anorms.h" />
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
<Add option="-lvorbis" />
|
||||
<Add option="-logg" />
|
||||
<Add option="-lmad" />
|
||||
<Add option="-lm" />
|
||||
</Linker>
|
||||
<Unit filename="../../Quake/anorm_dots.h" />
|
||||
<Unit filename="../../Quake/anorms.h" />
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<title>QuakeSpasm
|
||||
<toc>
|
||||
|
||||
<em>Page last edited: April 2022.</em>
|
||||
<em>Page last edited: June 2022.</em>
|
||||
|
||||
<sect> About <p>
|
||||
|
||||
|
@ -140,6 +140,17 @@ QuakeSpasm 0.94.0 has initial support for playing the 2021 re-release content: C
|
|||
|
||||
<sect> Changes<p>
|
||||
|
||||
<sect1> Changes in 0.94.5<p>
|
||||
<itemize>
|
||||
<item> Compatibility with new SDL2 versioning scheme.
|
||||
<item> Revised min/max/clamp macros' usage.
|
||||
<item> Fixed a potential undefined behavior in R_DrawAliasModel.
|
||||
<item> Fixed parsing of the time argument of svc_fog server message. (it has been broken for more than 20 years and has never seem to have been used.)
|
||||
<item> Other small improvements elsewhere in the code.
|
||||
<item> Backported a few fixes to the bundled SDL2-2.0.22 version.
|
||||
</itemize>
|
||||
</p>
|
||||
|
||||
<sect1> Changes in 0.94.4<p>
|
||||
<itemize>
|
||||
<item> Fixed getting stuck with loading plaque upon attempting to load a bad save from the menu
|
||||
|
|
Binary file not shown.
|
@ -17,7 +17,7 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.94.4</string>
|
||||
<string>0.94.5</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#ifndef SDL_assert_h_
|
||||
#define SDL_assert_h_
|
||||
|
||||
#include "SDL_config.h"
|
||||
#include "SDL_stdinc.h"
|
||||
|
||||
#include "begin_code.h"
|
||||
/* Set up for C function definitions, even when using C++ */
|
||||
|
@ -51,6 +51,8 @@ assert can have unique static variables associated with it.
|
|||
/* Don't include intrin.h here because it contains C++ code */
|
||||
extern void __cdecl __debugbreak(void);
|
||||
#define SDL_TriggerBreakpoint() __debugbreak()
|
||||
#elif _SDL_HAS_BUILTIN(__builtin_debugtrap)
|
||||
#define SDL_TriggerBreakpoint() __builtin_debugtrap()
|
||||
#elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) )
|
||||
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" )
|
||||
#elif ( defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__)) ) /* this might work on other ARM targets, but this is a known quantity... */
|
||||
|
|
|
@ -272,7 +272,6 @@
|
|||
#define SDL_FILESYSTEM_COCOA 1
|
||||
|
||||
/* Enable assembly routines */
|
||||
#define SDL_ASSEMBLY_ROUTINES 1
|
||||
#ifdef __ppc__
|
||||
#define SDL_ALTIVEC_BLITTERS 1
|
||||
#endif
|
||||
|
|
|
@ -87,6 +87,28 @@ _m_prefetch(void *__P)
|
|||
#endif /* __linux__ */
|
||||
#endif /* !SDL_BYTEORDER */
|
||||
|
||||
#ifndef SDL_FLOATWORDORDER /* Not defined in SDL_config.h? */
|
||||
/* predefs from newer gcc versions: */
|
||||
#if defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) && defined(__FLOAT_WORD_ORDER__)
|
||||
#if (__FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__)
|
||||
#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN
|
||||
#elif (__FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__)
|
||||
#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN
|
||||
#else
|
||||
#error Unsupported endianness
|
||||
#endif /**/
|
||||
#elif defined(__MAVERICK__)
|
||||
/* For Maverick, float words are always little-endian. */
|
||||
#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN
|
||||
#elif (defined(__arm__) || defined(__thumb__)) && !defined(__VFP_FP__) && !defined(__ARM_EABI__)
|
||||
/* For FPA, float words are always big-endian. */
|
||||
#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN
|
||||
#else
|
||||
/* By default, assume that floats words follow the memory system mode. */
|
||||
#define SDL_FLOATWORDORDER SDL_BYTEORDER
|
||||
#endif /* __FLOAT_WORD_ORDER__ */
|
||||
#endif /* !SDL_FLOATWORDORDER */
|
||||
|
||||
|
||||
#include "begin_code.h"
|
||||
/* Set up for C function definitions, even when using C++ */
|
||||
|
|
|
@ -252,10 +252,10 @@ SDL_FORCE_INLINE SDL_bool SDL_FRectEmpty(const SDL_FRect *r)
|
|||
SDL_FORCE_INLINE SDL_bool SDL_FRectEqualsEpsilon(const SDL_FRect *a, const SDL_FRect *b, const float epsilon)
|
||||
{
|
||||
return (a && b && ((a == b) ||
|
||||
((SDL_fabs(a->x - b->x) <= epsilon) &&
|
||||
(SDL_fabs(a->y - b->y) <= epsilon) &&
|
||||
(SDL_fabs(a->w - b->w) <= epsilon) &&
|
||||
(SDL_fabs(a->h - b->h) <= epsilon))))
|
||||
((SDL_fabsf(a->x - b->x) <= epsilon) &&
|
||||
(SDL_fabsf(a->y - b->y) <= epsilon) &&
|
||||
(SDL_fabsf(a->w - b->w) <= epsilon) &&
|
||||
(SDL_fabsf(a->h - b->h) <= epsilon))))
|
||||
? SDL_TRUE : SDL_FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#define SDL_REVISION "https://github.com/libsdl-org/SDL.git@981e1e3c4489add5bf6d4df5415af3cf1ef2773d"
|
||||
#define SDL_REVISION "@1594e60f8c154d3c8cea175fe88694e5aaf5e7bc"
|
||||
#define SDL_REVISION_NUMBER 0
|
||||
|
|
|
@ -462,7 +462,7 @@ extern DECLSPEC int SDLCALL SDL_GetNumAllocations(void);
|
|||
extern DECLSPEC char *SDLCALL SDL_getenv(const char *name);
|
||||
extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite);
|
||||
|
||||
extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (*compare) (const void *, const void *));
|
||||
extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (SDLCALL *compare) (const void *, const void *));
|
||||
|
||||
extern DECLSPEC int SDLCALL SDL_abs(int x);
|
||||
|
||||
|
|
|
@ -195,7 +195,7 @@ extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriorityAndPolicy(Sint64 threadID,
|
|||
*
|
||||
* \sa SDL_iPhoneSetEventPump
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
|
||||
extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (SDLCALL *callback)(void*), void *callbackParam);
|
||||
|
||||
#define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled)
|
||||
|
||||
|
|
|
@ -129,7 +129,7 @@ SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data,
|
|||
pfnSDL_CurrentEndThread pfnEndThread);
|
||||
|
||||
extern DECLSPEC SDL_Thread *SDLCALL
|
||||
SDL_CreateThreadWithStackSize(int (SDLCALL * fn) (void *),
|
||||
SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn,
|
||||
const char *name, const size_t stacksize, void *data,
|
||||
pfnSDL_CurrentBeginThread pfnBeginThread,
|
||||
pfnSDL_CurrentEndThread pfnEndThread);
|
||||
|
|
Binary file not shown.
|
@ -56,6 +56,7 @@ CPUFLAGS=
|
|||
LDFLAGS =
|
||||
DFLAGS ?=
|
||||
CFLAGS ?= -Wall -Wno-trigraphs
|
||||
CFLAGS += $(call check_gcc,-std=gnu11,)
|
||||
CFLAGS += $(CPUFLAGS)
|
||||
ifneq ($(DEBUG),0)
|
||||
DFLAGS += -DDEBUG
|
||||
|
@ -64,6 +65,7 @@ do_strip=
|
|||
else
|
||||
DFLAGS += -DNDEBUG
|
||||
CFLAGS += -O2
|
||||
# -fno-asynchronous-unwind-tables
|
||||
CFLAGS += $(call check_gcc,-fweb,)
|
||||
CFLAGS += $(call check_gcc,-frename-registers,)
|
||||
cmd_strip=$(STRIP) $(1)
|
||||
|
|
|
@ -85,11 +85,11 @@ CFLAGS +=-mmacosx-version-min=11.0
|
|||
LDFLAGS +=-mmacosx-version-min=11.0
|
||||
USE_RPATH=1
|
||||
endif
|
||||
CFLAGS += $(call check_gcc,-std=gnu11,)
|
||||
CFLAGS += $(CPUFLAGS)
|
||||
ifeq ($(USE_RPATH),1)
|
||||
LDFLAGS+=-Wl,-rpath,@executable_path/../Frameworks
|
||||
endif
|
||||
|
||||
ifneq ($(DEBUG),0)
|
||||
DFLAGS += -DDEBUG
|
||||
CFLAGS += -g
|
||||
|
@ -97,6 +97,7 @@ do_strip=
|
|||
else
|
||||
DFLAGS += -DNDEBUG
|
||||
CFLAGS += -O2
|
||||
# -fno-asynchronous-unwind-tables
|
||||
CFLAGS += $(call check_gcc,-fweb,)
|
||||
CFLAGS += $(call check_gcc,-frename-registers,)
|
||||
cmd_strip=$(STRIP) $(1)
|
||||
|
@ -348,4 +349,3 @@ debug:
|
|||
|
||||
clean:
|
||||
rm -f $(shell find . \( -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' -o -name $(DEFAULT_TARGET) \) -print)
|
||||
|
||||
|
|
|
@ -54,9 +54,9 @@ LDFLAGS += $(QSS_LDFLAGS)
|
|||
LDFLAGS += -Wl,--no-insert-timestamp #prevent non-determinism in the exe header. mustn't be used for dlls.
|
||||
DFLAGS ?=
|
||||
CFLAGS ?= -m32 -Wall -Wno-trigraphs
|
||||
CFLAGS += $(call check_gcc,-std=gnu11,)
|
||||
CFLAGS += $(CPUFLAGS)
|
||||
CFLAGS += $(QSS_CFLAGS)
|
||||
|
||||
ifneq ($(DEBUG),0)
|
||||
DFLAGS += -DDEBUG
|
||||
CFLAGS += -g
|
||||
|
@ -64,6 +64,7 @@ do_strip=
|
|||
else
|
||||
DFLAGS += -DNDEBUG
|
||||
CFLAGS += -O2
|
||||
# -fno-asynchronous-unwind-tables
|
||||
CFLAGS += $(call check_gcc,-fweb,)
|
||||
CFLAGS += $(call check_gcc,-frename-registers,)
|
||||
cmd_strip=$(STRIP) $(1)
|
||||
|
@ -308,4 +309,3 @@ debug:
|
|||
|
||||
clean:
|
||||
rm -f $(shell find . \( -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' -o -name $(DEFAULT_TARGET) \) -print)
|
||||
|
||||
|
|
|
@ -51,9 +51,9 @@ LDFLAGS += $(QSS_LDFLAGS)
|
|||
LDFLAGS += -Wl,--no-insert-timestamp #prevent non-determinism in the exe header. mustn't be used for dlls.
|
||||
DFLAGS ?=
|
||||
CFLAGS ?= -m64 -Wall -Wno-trigraphs
|
||||
CFLAGS += $(call check_gcc,-std=gnu11,)
|
||||
CFLAGS += $(CPUFLAGS)
|
||||
CFLAGS += $(QSS_CFLAGS)
|
||||
|
||||
ifneq ($(DEBUG),0)
|
||||
DFLAGS += -DDEBUG
|
||||
CFLAGS += -g
|
||||
|
@ -61,6 +61,7 @@ do_strip=
|
|||
else
|
||||
DFLAGS += -DNDEBUG
|
||||
CFLAGS += -O2
|
||||
# -fno-asynchronous-unwind-tables
|
||||
CFLAGS += $(call check_gcc,-fweb,)
|
||||
CFLAGS += $(call check_gcc,-frename-registers,)
|
||||
cmd_strip=$(STRIP) $(1)
|
||||
|
@ -300,4 +301,3 @@ debug:
|
|||
|
||||
clean:
|
||||
rm -f $(shell find . \( -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' -o -name $(DEFAULT_TARGET) \) -print)
|
||||
|
||||
|
|
|
@ -41,11 +41,76 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
|
||||
#undef min
|
||||
#undef max
|
||||
|
||||
#if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \
|
||||
(defined(__cplusplus) && (__cplusplus >= 201103L))
|
||||
#define GENERIC_TYPES(x, separator) \
|
||||
x(int, i) separator \
|
||||
x(unsigned int, u) separator \
|
||||
x(long, l) separator \
|
||||
x(unsigned long, ul) separator \
|
||||
x(long long, ll) separator \
|
||||
x(unsigned long long, ull) separator \
|
||||
x(float, f) separator \
|
||||
x(double, d)
|
||||
|
||||
#define COMMA ,
|
||||
#define NO_COMMA
|
||||
|
||||
#define IMPL_GENERIC_FUNCS(type, suffix) \
|
||||
static inline type q_min_##suffix (type a, type b) { \
|
||||
return (a < b) ? a : b; \
|
||||
} \
|
||||
static inline type q_max_##suffix (type a, type b) { \
|
||||
return (a > b) ? a : b; \
|
||||
} \
|
||||
static inline type clamp_##suffix (type minval, type val, type maxval) { \
|
||||
return (val < minval) ? minval : ((val > maxval) ? maxval : val); \
|
||||
}
|
||||
|
||||
GENERIC_TYPES (IMPL_GENERIC_FUNCS, NO_COMMA)
|
||||
|
||||
#define SELECT_Q_MIN(type, suffix) type: q_min_##suffix
|
||||
#define q_min(a, b) _Generic((a) + (b), GENERIC_TYPES (SELECT_Q_MIN, COMMA))(a, b)
|
||||
|
||||
#define SELECT_Q_MAX(type, suffix) type: q_max_##suffix
|
||||
#define q_max(a, b) _Generic((a) + (b), GENERIC_TYPES (SELECT_Q_MAX, COMMA))(a, b)
|
||||
|
||||
#define SELECT_CLAMP(type, suffix) type: clamp_##suffix
|
||||
#define CLAMP(minval, val, maxval) _Generic((minval) + (val) + (maxval), \
|
||||
GENERIC_TYPES (SELECT_CLAMP, COMMA))(minval, val, maxval)
|
||||
|
||||
#elif defined(__GNUC__)
|
||||
/* min and max macros with type checking -- based on tyrquake. */
|
||||
#define q_max(a,b) ({ \
|
||||
const __typeof(a) a_ = (a); \
|
||||
const __typeof(b) b_ = (b); \
|
||||
(void)(&a_ == &b_); \
|
||||
(a_ > b_) ? a_ : b_; \
|
||||
})
|
||||
#define q_min(a,b) ({ \
|
||||
const __typeof(a) a_ = (a); \
|
||||
const __typeof(b) b_ = (b); \
|
||||
(void)(&a_ == &b_); \
|
||||
(a_ < b_) ? a_ : b_; \
|
||||
})
|
||||
#define CLAMP(_minval, x, _maxval) ({ \
|
||||
const __typeof(x) x_ = (x); \
|
||||
const __typeof(_minval) valmin_ = (_minval);\
|
||||
const __typeof(_maxval) valmax_ = (_maxval);\
|
||||
(void)(&x_ == &valmin_); \
|
||||
(void)(&x_ == &valmax_); \
|
||||
(x_ < valmin_) ? valmin_ : \
|
||||
(x_ > valmax_) ? valmax_ : x_; \
|
||||
})
|
||||
|
||||
#else
|
||||
#define q_min(a, b) (((a) < (b)) ? (a) : (b))
|
||||
#define q_max(a, b) (((a) > (b)) ? (a) : (b))
|
||||
#define CLAMP(_minval, x, _maxval) \
|
||||
((x) < (_minval) ? (_minval) : \
|
||||
(x) > (_maxval) ? (_maxval) : (x))
|
||||
#endif
|
||||
|
||||
#define countof(x) (sizeof(x)/sizeof((x)[0]))
|
||||
|
||||
|
|
|
@ -309,8 +309,11 @@ void Con_Init (void)
|
|||
|
||||
//johnfitz -- user settable console buffer size
|
||||
i = COM_CheckParm("-consize");
|
||||
if (i && i < com_argc-1)
|
||||
con_buffersize = q_max(CON_MINSIZE,Q_atoi(com_argv[i+1])*1024);
|
||||
if (i && i < com_argc-1) {
|
||||
con_buffersize = Q_atoi(com_argv[i+1])*1024;
|
||||
if (con_buffersize < CON_MINSIZE)
|
||||
con_buffersize = CON_MINSIZE;
|
||||
}
|
||||
else
|
||||
con_buffersize = CON_TEXTSIZE;
|
||||
//johnfitz
|
||||
|
|
|
@ -736,13 +736,13 @@ void Draw_ConsoleBackground (void)
|
|||
pic->width = vid.conwidth;
|
||||
pic->height = vid.conheight;
|
||||
|
||||
alpha = (con_forcedup) ? 1.0 : scr_conalpha.value;
|
||||
alpha = (con_forcedup) ? 1.0f : scr_conalpha.value;
|
||||
|
||||
GL_SetCanvas (CANVAS_CONSOLE); //in case this is called from weird places
|
||||
|
||||
if (alpha > 0.0)
|
||||
if (alpha > 0.0f)
|
||||
{
|
||||
if (alpha < 1.0)
|
||||
if (alpha < 1.0f)
|
||||
{
|
||||
if (premul_hud)
|
||||
glColor4f (alpha,alpha,alpha,alpha);
|
||||
|
@ -758,7 +758,7 @@ void Draw_ConsoleBackground (void)
|
|||
|
||||
Draw_Pic (0, 0, pic);
|
||||
|
||||
if (alpha < 1.0)
|
||||
if (alpha < 1.0f)
|
||||
{
|
||||
if (!premul_hud)
|
||||
{
|
||||
|
@ -914,8 +914,8 @@ void GL_SetCanvas (canvastype newcanvas)
|
|||
glViewport (glx, gly, glwidth, glheight);
|
||||
break;
|
||||
case CANVAS_MENU:
|
||||
s = q_min((float)glwidth / 320.0, (float)glheight / 200.0);
|
||||
s = CLAMP (1.0, scr_menuscale.value, s);
|
||||
s = q_min((float)glwidth / 320.0f, (float)glheight / 200.0f);
|
||||
s = CLAMP (1.0f, scr_menuscale.value, s);
|
||||
// ericw -- doubled width to 640 to accommodate long keybindings
|
||||
glOrtho (0, 640, 200, 0, -99999, 99999);
|
||||
glViewport (glx + (glwidth - 320*s) / 2, gly + (glheight - 200*s) / 2, 640*s, 200*s);
|
||||
|
@ -932,7 +932,7 @@ void GL_SetCanvas (canvastype newcanvas)
|
|||
glViewport (glx, gly, glwidth, glheight);
|
||||
break;
|
||||
case CANVAS_SBAR:
|
||||
s = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0);
|
||||
s = CLAMP (1.0f, scr_sbarscale.value, (float)glwidth / 320.0f);
|
||||
if (cl.gametype == GAME_DEATHMATCH)
|
||||
{
|
||||
glOrtho (0, glwidth / s, 48, 0, -99999, 99999);
|
||||
|
@ -945,7 +945,7 @@ void GL_SetCanvas (canvastype newcanvas)
|
|||
}
|
||||
break;
|
||||
case CANVAS_CROSSHAIR: //0,0 is center of viewport
|
||||
s = CLAMP (1.0, scr_crosshairscale.value, 10.0);
|
||||
s = CLAMP (1.0f, scr_crosshairscale.value, 10.0f);
|
||||
glOrtho (scr_vrect.width/-2/s, scr_vrect.width/2/s, scr_vrect.height/2/s, scr_vrect.height/-2/s, -99999, 99999);
|
||||
glViewport (scr_vrect.x, glheight - scr_vrect.y - scr_vrect.height, scr_vrect.width & ~1, scr_vrect.height & ~1);
|
||||
break;
|
||||
|
|
|
@ -100,7 +100,8 @@ void Fog_ParseServerMessage (void)
|
|||
red = MSG_ReadByte() / 255.0;
|
||||
green = MSG_ReadByte() / 255.0;
|
||||
blue = MSG_ReadByte() / 255.0;
|
||||
time = q_max(0.0, MSG_ReadShort() / 100.0);
|
||||
time = MSG_ReadShort() / 100.0;
|
||||
if (time < 0.0f) time = 0.0f;
|
||||
|
||||
Fog_Update (density, red, green, blue, time);
|
||||
}
|
||||
|
@ -114,6 +115,8 @@ handle the 'fog' console command
|
|||
*/
|
||||
void Fog_FogCommand_f (void)
|
||||
{
|
||||
float d, r, g, b, t;
|
||||
|
||||
switch (Cmd_Argc())
|
||||
{
|
||||
default:
|
||||
|
@ -127,43 +130,52 @@ void Fog_FogCommand_f (void)
|
|||
Con_Printf(" \"red\" is \"%f\"\n", fog_red);
|
||||
Con_Printf(" \"green\" is \"%f\"\n", fog_green);
|
||||
Con_Printf(" \"blue\" is \"%f\"\n", fog_blue);
|
||||
break;
|
||||
return;
|
||||
case 2:
|
||||
Fog_Update(q_max(0.0, atof(Cmd_Argv(1))),
|
||||
fog_red,
|
||||
fog_green,
|
||||
fog_blue,
|
||||
0.0);
|
||||
d = Q_atof(Cmd_Argv(1));
|
||||
t = 0.0f;
|
||||
r = fog_red;
|
||||
g = fog_green;
|
||||
b = fog_blue;
|
||||
break;
|
||||
case 3: //TEST
|
||||
Fog_Update(q_max(0.0, atof(Cmd_Argv(1))),
|
||||
fog_red,
|
||||
fog_green,
|
||||
fog_blue,
|
||||
atof(Cmd_Argv(2)));
|
||||
d = Q_atof(Cmd_Argv(1));
|
||||
t = Q_atof(Cmd_Argv(2));
|
||||
r = fog_red;
|
||||
g = fog_green;
|
||||
b = fog_blue;
|
||||
break;
|
||||
case 4:
|
||||
Fog_Update(fog_density,
|
||||
CLAMP(0.0, atof(Cmd_Argv(1)), 1.0),
|
||||
CLAMP(0.0, atof(Cmd_Argv(2)), 1.0),
|
||||
CLAMP(0.0, atof(Cmd_Argv(3)), 1.0),
|
||||
0.0);
|
||||
d = fog_density;
|
||||
t = 0.0f;
|
||||
r = Q_atof(Cmd_Argv(1));
|
||||
g = Q_atof(Cmd_Argv(2));
|
||||
b = Q_atof(Cmd_Argv(3));
|
||||
break;
|
||||
case 5:
|
||||
Fog_Update(q_max(0.0, atof(Cmd_Argv(1))),
|
||||
CLAMP(0.0, atof(Cmd_Argv(2)), 1.0),
|
||||
CLAMP(0.0, atof(Cmd_Argv(3)), 1.0),
|
||||
CLAMP(0.0, atof(Cmd_Argv(4)), 1.0),
|
||||
0.0);
|
||||
d = Q_atof(Cmd_Argv(1));
|
||||
r = Q_atof(Cmd_Argv(2));
|
||||
g = Q_atof(Cmd_Argv(3));
|
||||
b = Q_atof(Cmd_Argv(4));
|
||||
t = 0.0f;
|
||||
break;
|
||||
case 6: //TEST
|
||||
Fog_Update(q_max(0.0, atof(Cmd_Argv(1))),
|
||||
CLAMP(0.0, atof(Cmd_Argv(2)), 1.0),
|
||||
CLAMP(0.0, atof(Cmd_Argv(3)), 1.0),
|
||||
CLAMP(0.0, atof(Cmd_Argv(4)), 1.0),
|
||||
atof(Cmd_Argv(5)));
|
||||
d = Q_atof(Cmd_Argv(1));
|
||||
r = Q_atof(Cmd_Argv(2));
|
||||
g = Q_atof(Cmd_Argv(3));
|
||||
b = Q_atof(Cmd_Argv(4));
|
||||
t = Q_atof(Cmd_Argv(5));
|
||||
break;
|
||||
}
|
||||
|
||||
if (d < 0.0f) d = 0.0f;
|
||||
if (r < 0.0f) r = 0.0f;
|
||||
else if (r > 1.0f) r = 1.0f;
|
||||
if (g < 0.0f) g = 0.0f;
|
||||
else if (g > 1.0f) g = 1.0f;
|
||||
if (b < 0.0f) b = 0.0f;
|
||||
else if (b > 1.0f) b = 1.0f;
|
||||
Fog_Update(d, r, g, b, t);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -251,9 +263,14 @@ float *Fog_GetColor (void)
|
|||
c[3] = 1.0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
c[i] = CLAMP (0.f, c[i], 1.f);
|
||||
}
|
||||
|
||||
//find closest 24-bit RGB value, so solid-colored sky can match the fog perfectly
|
||||
for (i=0;i<3;i++)
|
||||
for (i = 0; i < 3; i++) {
|
||||
c[i] = (float)(Q_rint(c[i] * 255)) / 255.0f;
|
||||
}
|
||||
|
||||
return c;
|
||||
}
|
||||
|
|
|
@ -678,7 +678,7 @@ static texture_t *Mod_LoadMipTex(miptex_t *mt, byte *lumpend, enum srcformat *fm
|
|||
if ((srcdata + *pixelbytes) > lumpend)
|
||||
{
|
||||
Con_DPrintf("Texture %s extends past end of lump\n", mt->name);
|
||||
*pixelbytes = q_max(0, lumpend - srcdata);
|
||||
*pixelbytes = q_max((ptrdiff_t)0, lumpend - srcdata);
|
||||
}
|
||||
|
||||
memcpy ( tx+1, srcdata, *pixelbytes);
|
||||
|
|
|
@ -240,7 +240,7 @@ void GLSLGamma_GammaCorrect (void)
|
|||
// draw the texture back to the framebuffer with a fragment shader
|
||||
GL_UseProgramFunc (r_gamma_program);
|
||||
GL_Uniform1fFunc (gammaLoc, vid_gamma.value);
|
||||
GL_Uniform1fFunc (contrastLoc, q_min(2.0, q_max(1.0, vid_contrast.value)));
|
||||
GL_Uniform1fFunc (contrastLoc, q_min(2.0f, q_max(1.0f, vid_contrast.value)));
|
||||
GL_Uniform1iFunc (textureLoc, 0); // use texture unit 0
|
||||
|
||||
glDisable (GL_ALPHA_TEST);
|
||||
|
@ -731,7 +731,7 @@ R_EmitWirePoint -- johnfitz -- draws a wireframe cross shape for point entities
|
|||
*/
|
||||
void R_EmitWirePoint (vec3_t origin)
|
||||
{
|
||||
int size=8;
|
||||
const int size = 8;
|
||||
|
||||
glBegin (GL_LINES);
|
||||
glVertex3f (origin[0]-size, origin[1], origin[2]);
|
||||
|
|
|
@ -392,7 +392,7 @@ static void SCR_CalcRefdef (void)
|
|||
|
||||
//johnfitz -- rewrote this section
|
||||
size = scr_viewsize.value;
|
||||
scale = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0);
|
||||
scale = CLAMP (1.0f, scr_sbarscale.value, (float)glwidth / 320.0f);
|
||||
|
||||
if (size >= 120 || cl.intermission || (scr_sbaralpha.value < 1 || cl.qcvm.extfuncs.CSQC_DrawHud || cl.qcvm.extfuncs.CSQC_UpdateView)) //johnfitz -- scr_sbaralpha.value. Spike -- simple csqc assumes fullscreen video the same way.
|
||||
sb_lines = 0;
|
||||
|
@ -401,12 +401,12 @@ static void SCR_CalcRefdef (void)
|
|||
else
|
||||
sb_lines = 48 * scale;
|
||||
|
||||
size = q_min(scr_viewsize.value, 100) / 100;
|
||||
size = q_min(scr_viewsize.value, 100.f) / 100;
|
||||
//johnfitz
|
||||
|
||||
//johnfitz -- rewrote this section
|
||||
r_refdef.vrect.width = q_max(glwidth * size, 96); //no smaller than 96, for icons
|
||||
r_refdef.vrect.height = q_min(glheight * size, glheight - sb_lines); //make room for sbar
|
||||
r_refdef.vrect.width = q_max(glwidth * size, 96.0f); //no smaller than 96, for icons
|
||||
r_refdef.vrect.height = q_min((int)(glheight * size), glheight - sb_lines); //make room for sbar
|
||||
r_refdef.vrect.x = (glwidth - r_refdef.vrect.width)/2;
|
||||
r_refdef.vrect.y = (glheight - sb_lines - r_refdef.vrect.height)/2;
|
||||
//johnfitz
|
||||
|
|
|
@ -881,7 +881,7 @@ void Sky_DrawSkyBox (void)
|
|||
c = Fog_GetColor();
|
||||
glEnable (GL_BLEND);
|
||||
glDisable (GL_TEXTURE_2D);
|
||||
glColor4f (c[0],c[1],c[2], CLAMP(0.0,skyfog,1.0));
|
||||
glColor4f (c[0],c[1],c[2], CLAMP(0.0f,skyfog,1.0f));
|
||||
|
||||
glBegin (GL_QUADS);
|
||||
Sky_EmitSkyBoxVertex (skymins[0][i], skymins[1][i], i);
|
||||
|
@ -1032,7 +1032,7 @@ void Sky_DrawFaceQuad (glpoly_t *p)
|
|||
c = Fog_GetColor();
|
||||
glEnable (GL_BLEND);
|
||||
glDisable (GL_TEXTURE_2D);
|
||||
glColor4f (c[0],c[1],c[2], CLAMP(0.0,skyfog,1.0));
|
||||
glColor4f (c[0],c[1],c[2], CLAMP(0.0f,skyfog,1.0f));
|
||||
|
||||
glBegin (GL_QUADS);
|
||||
for (i=0, v=p->verts[0] ; i<4 ; i++, v+=VERTEXSIZE)
|
||||
|
|
|
@ -734,11 +734,15 @@ TexMgr_SafeTextureSize -- return a size with hardware and user prefs in mind
|
|||
*/
|
||||
int TexMgr_SafeTextureSize (int s)
|
||||
{
|
||||
int p = (int)gl_max_size.value;
|
||||
if (!gl_texture_NPOT)
|
||||
s = TexMgr_Pad(s);
|
||||
if ((int)gl_max_size.value > 0)
|
||||
s = q_min(TexMgr_Pad((int)gl_max_size.value), s);
|
||||
s = q_min(gl_hardware_maxsize, s);
|
||||
if (p > 0) {
|
||||
p = TexMgr_Pad(p);
|
||||
if (p < s) s = p;
|
||||
}
|
||||
if (s > gl_hardware_maxsize)
|
||||
s = gl_hardware_maxsize;
|
||||
return s;
|
||||
}
|
||||
|
||||
|
|
|
@ -646,7 +646,7 @@ qboolean Host_FilterTime (float time)
|
|||
realtime += time;
|
||||
|
||||
//johnfitz -- max fps cvar
|
||||
maxfps = CLAMP (10.0, host_maxfps.value, 1000.0);
|
||||
maxfps = CLAMP (10.f, host_maxfps.value, 1000.0);
|
||||
if (host_maxfps.value && !cls.timedemo && realtime - oldrealtime < 1.0/maxfps)
|
||||
return false; // framerate is too high
|
||||
//johnfitz
|
||||
|
|
|
@ -1081,7 +1081,9 @@ static void Host_SavegameComment (char *text)
|
|||
if (p1 != NULL) *p1 = 0;
|
||||
if (p2 != NULL) *p2 = 0;
|
||||
|
||||
memcpy (text, cl.levelname, q_min(strlen(cl.levelname),22)); //johnfitz -- only copy 22 chars.
|
||||
i = (int) strlen(cl.levelname);
|
||||
if (i > 22) i = 22;
|
||||
memcpy (text, cl.levelname, (size_t)i);
|
||||
sprintf (kills,"kills:%3i/%3i", cl.stats[STAT_MONSTERS], cl.stats[STAT_TOTALMONSTERS]);
|
||||
memcpy (text+22, kills, strlen(kills));
|
||||
// convert space to _ to make stdio happy
|
||||
|
|
|
@ -33,27 +33,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#endif
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined(USE_SDL2)
|
||||
|
||||
/* need at least SDL_2.0.0 */
|
||||
#define SDL_MIN_X 2
|
||||
#define SDL_MIN_Y 0
|
||||
#define SDL_MIN_Z 0
|
||||
#define SDL_REQUIREDVERSION (SDL_VERSIONNUM(SDL_MIN_X,SDL_MIN_Y,SDL_MIN_Z))
|
||||
#define SDL_NEW_VERSION_REJECT (SDL_VERSIONNUM(3,0,0))
|
||||
|
||||
#else
|
||||
|
||||
/* need at least SDL_1.2.10 */
|
||||
#define SDL_MIN_X 1
|
||||
#define SDL_MIN_Y 2
|
||||
#define SDL_MIN_Z 10
|
||||
#define SDL_REQUIREDVERSION (SDL_VERSIONNUM(SDL_MIN_X,SDL_MIN_Y,SDL_MIN_Z))
|
||||
/* reject 1.3.0 and newer at runtime. */
|
||||
#define SDL_NEW_VERSION_REJECT (SDL_VERSIONNUM(1,3,0))
|
||||
|
||||
#endif
|
||||
|
||||
static void Sys_AtExit (void)
|
||||
{
|
||||
SDL_Quit();
|
||||
|
@ -70,18 +49,8 @@ static void Sys_InitSDL (void)
|
|||
#endif
|
||||
|
||||
Sys_Printf("Found SDL version %i.%i.%i\n",sdl_version->major,sdl_version->minor,sdl_version->patch);
|
||||
if (SDL_VERSIONNUM(sdl_version->major,sdl_version->minor,sdl_version->patch) < SDL_REQUIREDVERSION)
|
||||
{ /*reject running under older SDL versions */
|
||||
Sys_Error("You need at least v%d.%d.%d of SDL to run this game.", SDL_MIN_X,SDL_MIN_Y,SDL_MIN_Z);
|
||||
}
|
||||
if (SDL_VERSIONNUM(sdl_version->major,sdl_version->minor,sdl_version->patch) >= SDL_NEW_VERSION_REJECT)
|
||||
{ /*reject running under newer (1.3.x) SDL */
|
||||
Sys_Error("Your version of SDL library is incompatible with me.\n"
|
||||
"You need a library version in the line of %d.%d.%d\n", SDL_MIN_X,SDL_MIN_Y,SDL_MIN_Z);
|
||||
}
|
||||
|
||||
if (SDL_Init(0) < 0)
|
||||
{
|
||||
if (SDL_Init(0) < 0) {
|
||||
Sys_Error("Couldn't init SDL: %s", SDL_GetError());
|
||||
}
|
||||
atexit(Sys_AtExit);
|
||||
|
@ -197,4 +166,3 @@ int main(int argc, char *argv[])
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
11
Quake/menu.c
11
Quake/menu.c
|
@ -2065,8 +2065,8 @@ qboolean M_Quit_TextEntry (void)
|
|||
|
||||
void M_Quit_Draw (void) //johnfitz -- modified for new quit message
|
||||
{
|
||||
char msg1[40];
|
||||
char msg2[] = "by Ozkan Sezer, Eric Wasylishen, others";/* msg2/msg3 are mostly [40] */
|
||||
char msg1[] = ENGINE_NAME_AND_VER;
|
||||
char msg2[] = "by Ozkan Sezer,Eric Wasylishen,others"; /* msg2/msg3 are [38] at most */
|
||||
char msg3[] = "Press y to quit";
|
||||
int boxlen;
|
||||
|
||||
|
@ -2078,17 +2078,14 @@ void M_Quit_Draw (void) //johnfitz -- modified for new quit message
|
|||
m_state = m_quit;
|
||||
}
|
||||
|
||||
sprintf(msg1, ENGINE_NAME_AND_VER);
|
||||
|
||||
//okay, this is kind of fucked up. M_DrawTextBox will always act as if
|
||||
//width is even. Also, the width and lines values are for the interior of the box,
|
||||
//but the x and y values include the border.
|
||||
boxlen = q_max(strlen(msg1), q_max((sizeof(msg2)-1),(sizeof(msg3)-1))) + 1;
|
||||
if (boxlen & 1) boxlen++;
|
||||
boxlen = (q_max(sizeof(msg1), q_max(sizeof(msg2),sizeof(msg3))) + 1) & ~1;
|
||||
M_DrawTextBox (160-4*(boxlen+2), 76, boxlen, 4);
|
||||
|
||||
//now do the text
|
||||
M_Print (160-4*strlen(msg1), 88, msg1);
|
||||
M_Print (160-4*(sizeof(msg1)-1), 88, msg1);
|
||||
M_Print (160-4*(sizeof(msg2)-1), 96, msg2);
|
||||
M_PrintWhite (160-4*(sizeof(msg3)-1), 104, msg3);
|
||||
}
|
||||
|
|
|
@ -80,8 +80,8 @@ char *PL_GetClipboardData (void)
|
|||
* such as an ip address, etc: do chop the size
|
||||
* here, otherwise we may experience Z_Malloc()
|
||||
* failures and all other not-oh-so-fun stuff. */
|
||||
size = q_min(MAX_CLIPBOARDTXT, size);
|
||||
data = (char *) Z_Malloc(size);
|
||||
size = q_min((size_t)(MAX_CLIPBOARDTXT), size);
|
||||
data = (char *) Z_Malloc((int)size);
|
||||
q_strlcpy (data, cliptext, size);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -56,8 +56,8 @@ char *PL_GetClipboardData (void)
|
|||
NSString* clipboardString = [pasteboard stringForType: NSPasteboardTypeString];
|
||||
if (clipboardString != NULL && [clipboardString length] > 0) {
|
||||
size_t sz = [clipboardString length] + 1;
|
||||
sz = q_min(MAX_CLIPBOARDTXT, sz);
|
||||
data = (char *) Z_Malloc(sz);
|
||||
sz = q_min((size_t)(MAX_CLIPBOARDTXT), sz);
|
||||
data = (char *) Z_Malloc((int)sz);
|
||||
#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1040) /* for ppc builds targeting 10.3 and older */
|
||||
q_strlcpy (data, [clipboardString cString], sz);
|
||||
#else
|
||||
|
|
|
@ -95,8 +95,8 @@ char *PL_GetClipboardData (void)
|
|||
* such as an ip address, etc: do chop the size
|
||||
* here, otherwise we may experience Z_Malloc()
|
||||
* failures and all other not-oh-so-fun stuff. */
|
||||
size = q_min(MAX_CLIPBOARDTXT, size);
|
||||
data = (char *) Z_Malloc(size);
|
||||
size = q_min((size_t)(MAX_CLIPBOARDTXT), size);
|
||||
data = (char *) Z_Malloc((int)size);
|
||||
q_strlcpy (data, cliptext, size);
|
||||
GlobalUnlock (hClipboardData);
|
||||
}
|
||||
|
|
|
@ -948,7 +948,7 @@ const char *ED_ParseEdict (const char *data, edict_t *ent)
|
|||
|
||||
//johnfitz -- hack to support .alpha even when progs.dat doesn't know about it
|
||||
if (!strcmp(keyname, "alpha"))
|
||||
ent->alpha = ENTALPHA_ENCODE(atof(com_token));
|
||||
ent->alpha = ENTALPHA_ENCODE(Q_atof(com_token));
|
||||
//johnfitz
|
||||
|
||||
//spike -- hacks to support func_illusionary/info_notnull with all sorts of mdls, and various particle effects
|
||||
|
|
|
@ -247,7 +247,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#define ENTALPHA_DEFAULT 0 //entity's alpha is "default" (i.e. water obeys r_wateralpha) -- must be zero so zeroed out memory works
|
||||
#define ENTALPHA_ZERO 1 //entity is invisible (lowest possible alpha)
|
||||
#define ENTALPHA_ONE 255 //entity is fully opaque (highest possible alpha)
|
||||
#define ENTALPHA_ENCODE(a) (((a)==0)?ENTALPHA_DEFAULT:Q_rint(CLAMP(1,(a)*254.0f+1,255))) //server convert to byte to send to client
|
||||
#define ENTALPHA_ENCODE(a) (((a)==0)?ENTALPHA_DEFAULT:Q_rint(CLAMP(1.0f,(a)*254.0f+1,255.0f))) //server convert to byte to send to client
|
||||
#define ENTALPHA_DECODE(a) (((a)==ENTALPHA_DEFAULT)?1.0f:((float)(a)-1)/(254)) //client convert to float for rendering
|
||||
#define ENTALPHA_TOSAVE(a) (((a)==ENTALPHA_DEFAULT)?0.0f:(((a)==ENTALPHA_ZERO)?-1.0f:((float)(a)-1)/(254))) //server convert to float for savegame
|
||||
//johnfitz
|
||||
|
|
|
@ -37,7 +37,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
|
||||
#define FITZQUAKE_VERSION 0.85 //johnfitz
|
||||
#define QUAKESPASM_VERSION 0.94
|
||||
#define QUAKESPASM_VER_PATCH 4 // helper to print a string like 0.94.4
|
||||
#define QUAKESPASM_VER_PATCH 5 // helper to print a string like 0.94.4
|
||||
#ifndef QUAKESPASM_VER_SUFFIX
|
||||
#define QUAKESPASM_VER_SUFFIX // optional version suffix string literal like "-beta1"
|
||||
#endif
|
||||
|
|
|
@ -828,9 +828,9 @@ void R_SetupAliasFrame (aliashdr_t *paliashdr, entity_t *e, lerpdata_t *lerpdata
|
|||
if (r_lerpmodels.value && !(e->model->flags & MOD_NOLERP && r_lerpmodels.value != 2))
|
||||
{
|
||||
if (e->lerpflags & LERP_FINISH && numposes == 1)
|
||||
lerpdata->blend = CLAMP (0, (cl.time - e->lerp.state.lerpstart) / (e->lerpfinish - e->lerp.state.lerpstart), 1);
|
||||
lerpdata->blend = CLAMP (0.0f, (float)(cl.time - e->lerp.state.lerpstart) / (e->lerpfinish - e->lerp.state.lerpstart), 1.0f);
|
||||
else
|
||||
lerpdata->blend = CLAMP (0, (cl.time - e->lerp.state.lerpstart) / e->lerp.state.lerptime, 1);
|
||||
lerpdata->blend = CLAMP (0.0f, (float)(cl.time - e->lerp.state.lerpstart) / e->lerp.state.lerptime, 1.0f);
|
||||
lerpdata->pose1 = e->lerp.state.previouspose;
|
||||
lerpdata->pose2 = e->lerp.state.currentpose;
|
||||
}
|
||||
|
@ -905,9 +905,9 @@ void R_SetupEntityTransform (entity_t *e, lerpdata_t *lerpdata)
|
|||
if (r_lerpmove.value && e != &cl.viewent && e->lerpflags & LERP_MOVESTEP)
|
||||
{
|
||||
if (e->lerpflags & LERP_FINISH)
|
||||
blend = CLAMP (0, (cl.time - e->movelerpstart) / (e->lerpfinish - e->movelerpstart), 1);
|
||||
blend = CLAMP (0.0f, (float)(cl.time - e->movelerpstart) / (e->lerpfinish - e->movelerpstart), 1.0f);
|
||||
else
|
||||
blend = CLAMP (0, (cl.time - e->movelerpstart) / 0.1, 1);
|
||||
blend = CLAMP (0.0f, (float)(cl.time - e->movelerpstart) / 0.1f, 1.0f);
|
||||
|
||||
//translation
|
||||
VectorSubtract (e->currentorigin, e->previousorigin, d);
|
||||
|
@ -1051,7 +1051,7 @@ void R_DrawAliasModel (entity_t *e)
|
|||
{
|
||||
aliasglsl_t *glsl;
|
||||
aliashdr_t *paliashdr;
|
||||
int i, anim, skinnum;
|
||||
int anim, skinnum;
|
||||
gltexture_t *tx, *fb;
|
||||
lerpdata_t lerpdata;
|
||||
qboolean alphatest = !!(e->model->flags & MF_HOLEY);
|
||||
|
@ -1160,9 +1160,8 @@ void R_DrawAliasModel (entity_t *e)
|
|||
}
|
||||
if (e->netstate.colormap && !gl_nocolors.value)
|
||||
{
|
||||
i = e - cl.entities;
|
||||
if (i >= 1 && i<=cl.maxclients /* && !strcmp (currententity->model->name, "progs/player.mdl") */)
|
||||
tx = playertextures[i - 1];
|
||||
if ((uintptr_t)e >= (uintptr_t)&cl.entities[1] && (uintptr_t)e <= (uintptr_t)&cl.entities[cl.maxclients]) /* && !strcmp (currententity->model->name, "progs/player.mdl") */
|
||||
tx = playertextures[e - cl.entities - 1];
|
||||
}
|
||||
if (!gl_fullbrights.value)
|
||||
fb = NULL;
|
||||
|
|
|
@ -235,8 +235,11 @@ void R_DrawSequentialPoly (msurface_t *s)
|
|||
if (s->flags & SURF_DRAWTURB)
|
||||
{
|
||||
if (currententity->alpha == ENTALPHA_DEFAULT)
|
||||
entalpha = CLAMP(0.0, GL_WaterAlphaForSurface(s), 1.0);
|
||||
|
||||
{
|
||||
entalpha = GL_WaterAlphaForSurface(s);
|
||||
if (entalpha > 1.0f) entalpha = 1.0f;
|
||||
else if (entalpha < 0.0f) entalpha = 0.0f;
|
||||
}
|
||||
if (entalpha < 1)
|
||||
{
|
||||
glDepthMask(GL_FALSE);
|
||||
|
|
|
@ -373,7 +373,7 @@ void Sbar_DrawScrollString (int x, int y, int width, const char *str)
|
|||
float scale;
|
||||
int len, ofs, left;
|
||||
|
||||
scale = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0);
|
||||
scale = CLAMP (1.0f, scr_sbarscale.value, (float)glwidth / 320.0f);
|
||||
left = x * scale;
|
||||
if (cl.gametype != GAME_DEATHMATCH)
|
||||
left += (((float)glwidth - 320.0 * scale) / 2);
|
||||
|
@ -1287,7 +1287,7 @@ void Sbar_MiniDeathmatchOverlay (void)
|
|||
float scale; //johnfitz
|
||||
scoreboard_t *s;
|
||||
|
||||
scale = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0); //johnfitz
|
||||
scale = CLAMP (1.0f, scr_sbarscale.value, (float)glwidth / 320.0f); //johnfitz
|
||||
|
||||
//MAX_SCOREBOARDNAME = 32, so total width for this overlay plus sbar is 632, but we can cut off some i guess
|
||||
if (glwidth/scale < 512 || scr_viewsize.value >= 120) //johnfitz -- test should consider scr_sbarscale
|
||||
|
|
183
Quakespasm.html
183
Quakespasm.html
|
@ -8,7 +8,7 @@
|
|||
<H1>QuakeSpasm</H1>
|
||||
|
||||
<H2></H2>
|
||||
<P><EM>Page last edited: April 2022.</EM></P>
|
||||
<P><EM>Page last edited: June 2022.</EM></P>
|
||||
|
||||
<P>
|
||||
<H2><A NAME="toc1">1.</A> <A HREF="Quakespasm.html#s1">About </A></H2>
|
||||
|
@ -36,28 +36,29 @@
|
|||
<H2><A NAME="toc5">5.</A> <A HREF="Quakespasm.html#s5">Changes</A></H2>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="toc5.1">5.1</A> <A HREF="Quakespasm.html#ss5.1">Changes in 0.94.4</A>
|
||||
<LI><A NAME="toc5.2">5.2</A> <A HREF="Quakespasm.html#ss5.2">Changes in 0.94.3</A>
|
||||
<LI><A NAME="toc5.3">5.3</A> <A HREF="Quakespasm.html#ss5.3">Changes in 0.94.2</A>
|
||||
<LI><A NAME="toc5.4">5.4</A> <A HREF="Quakespasm.html#ss5.4">Changes in 0.94.1</A>
|
||||
<LI><A NAME="toc5.5">5.5</A> <A HREF="Quakespasm.html#ss5.5">Changes in 0.94.0</A>
|
||||
<LI><A NAME="toc5.6">5.6</A> <A HREF="Quakespasm.html#ss5.6">Changes in 0.93.2</A>
|
||||
<LI><A NAME="toc5.7">5.7</A> <A HREF="Quakespasm.html#ss5.7">Changes in 0.93.1</A>
|
||||
<LI><A NAME="toc5.8">5.8</A> <A HREF="Quakespasm.html#ss5.8">Changes in 0.93.0</A>
|
||||
<LI><A NAME="toc5.9">5.9</A> <A HREF="Quakespasm.html#ss5.9">Changes in 0.92.1</A>
|
||||
<LI><A NAME="toc5.10">5.10</A> <A HREF="Quakespasm.html#ss5.10">Changes in 0.92.0</A>
|
||||
<LI><A NAME="toc5.11">5.11</A> <A HREF="Quakespasm.html#ss5.11">Changes in 0.91.0</A>
|
||||
<LI><A NAME="toc5.12">5.12</A> <A HREF="Quakespasm.html#ss5.12">Changes in 0.90.1</A>
|
||||
<LI><A NAME="toc5.13">5.13</A> <A HREF="Quakespasm.html#ss5.13">Changes in 0.90.0</A>
|
||||
<LI><A NAME="toc5.14">5.14</A> <A HREF="Quakespasm.html#ss5.14">Changes in 0.85.9</A>
|
||||
<LI><A NAME="toc5.15">5.15</A> <A HREF="Quakespasm.html#ss5.15">Changes in 0.85.8</A>
|
||||
<LI><A NAME="toc5.16">5.16</A> <A HREF="Quakespasm.html#ss5.16">Changes in 0.85.7</A>
|
||||
<LI><A NAME="toc5.17">5.17</A> <A HREF="Quakespasm.html#ss5.17">Changes in 0.85.6</A>
|
||||
<LI><A NAME="toc5.18">5.18</A> <A HREF="Quakespasm.html#ss5.18">Changes in 0.85.5</A>
|
||||
<LI><A NAME="toc5.19">5.19</A> <A HREF="Quakespasm.html#ss5.19">Changes in 0.85.4</A>
|
||||
<LI><A NAME="toc5.20">5.20</A> <A HREF="Quakespasm.html#ss5.20">Changes in 0.85.3</A>
|
||||
<LI><A NAME="toc5.21">5.21</A> <A HREF="Quakespasm.html#ss5.21">Changes in 0.85.2</A>
|
||||
<LI><A NAME="toc5.22">5.22</A> <A HREF="Quakespasm.html#ss5.22">Changes in 0.85.1</A>
|
||||
<LI><A NAME="toc5.1">5.1</A> <A HREF="Quakespasm.html#ss5.1">Changes in 0.94.5</A>
|
||||
<LI><A NAME="toc5.2">5.2</A> <A HREF="Quakespasm.html#ss5.2">Changes in 0.94.4</A>
|
||||
<LI><A NAME="toc5.3">5.3</A> <A HREF="Quakespasm.html#ss5.3">Changes in 0.94.3</A>
|
||||
<LI><A NAME="toc5.4">5.4</A> <A HREF="Quakespasm.html#ss5.4">Changes in 0.94.2</A>
|
||||
<LI><A NAME="toc5.5">5.5</A> <A HREF="Quakespasm.html#ss5.5">Changes in 0.94.1</A>
|
||||
<LI><A NAME="toc5.6">5.6</A> <A HREF="Quakespasm.html#ss5.6">Changes in 0.94.0</A>
|
||||
<LI><A NAME="toc5.7">5.7</A> <A HREF="Quakespasm.html#ss5.7">Changes in 0.93.2</A>
|
||||
<LI><A NAME="toc5.8">5.8</A> <A HREF="Quakespasm.html#ss5.8">Changes in 0.93.1</A>
|
||||
<LI><A NAME="toc5.9">5.9</A> <A HREF="Quakespasm.html#ss5.9">Changes in 0.93.0</A>
|
||||
<LI><A NAME="toc5.10">5.10</A> <A HREF="Quakespasm.html#ss5.10">Changes in 0.92.1</A>
|
||||
<LI><A NAME="toc5.11">5.11</A> <A HREF="Quakespasm.html#ss5.11">Changes in 0.92.0</A>
|
||||
<LI><A NAME="toc5.12">5.12</A> <A HREF="Quakespasm.html#ss5.12">Changes in 0.91.0</A>
|
||||
<LI><A NAME="toc5.13">5.13</A> <A HREF="Quakespasm.html#ss5.13">Changes in 0.90.1</A>
|
||||
<LI><A NAME="toc5.14">5.14</A> <A HREF="Quakespasm.html#ss5.14">Changes in 0.90.0</A>
|
||||
<LI><A NAME="toc5.15">5.15</A> <A HREF="Quakespasm.html#ss5.15">Changes in 0.85.9</A>
|
||||
<LI><A NAME="toc5.16">5.16</A> <A HREF="Quakespasm.html#ss5.16">Changes in 0.85.8</A>
|
||||
<LI><A NAME="toc5.17">5.17</A> <A HREF="Quakespasm.html#ss5.17">Changes in 0.85.7</A>
|
||||
<LI><A NAME="toc5.18">5.18</A> <A HREF="Quakespasm.html#ss5.18">Changes in 0.85.6</A>
|
||||
<LI><A NAME="toc5.19">5.19</A> <A HREF="Quakespasm.html#ss5.19">Changes in 0.85.5</A>
|
||||
<LI><A NAME="toc5.20">5.20</A> <A HREF="Quakespasm.html#ss5.20">Changes in 0.85.4</A>
|
||||
<LI><A NAME="toc5.21">5.21</A> <A HREF="Quakespasm.html#ss5.21">Changes in 0.85.3</A>
|
||||
<LI><A NAME="toc5.22">5.22</A> <A HREF="Quakespasm.html#ss5.22">Changes in 0.85.2</A>
|
||||
<LI><A NAME="toc5.23">5.23</A> <A HREF="Quakespasm.html#ss5.23">Changes in 0.85.1</A>
|
||||
</UL>
|
||||
<P>
|
||||
<H2><A NAME="toc6">6.</A> <A HREF="Quakespasm.html#s6">Copyright </A></H2>
|
||||
|
@ -71,8 +72,6 @@
|
|||
|
||||
<HR>
|
||||
<H2><A NAME="s1">1.</A> <A HREF="#toc1">About </A></H2>
|
||||
|
||||
|
||||
<P>
|
||||
<A HREF="http://quakespasm.sourceforge.net">QuakeSpasm</A>
|
||||
is a modern, cross-platform Quake engine based on
|
||||
|
@ -83,8 +82,6 @@ sound driver, some graphical niceities, and numerous bug-fixes and other improve
|
|||
SDL is probably less buggy, but SDL2 has nicer features and smoother mouse input - though no CD support.</P>
|
||||
|
||||
<H2><A NAME="s2">2.</A> <A HREF="#toc2">Downloads </A></H2>
|
||||
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI>
|
||||
|
@ -94,10 +91,7 @@ SDL is probably less buggy, but SDL2 has nicer features and smoother mouse input
|
|||
</UL>
|
||||
</P>
|
||||
|
||||
|
||||
<H2><A NAME="s3">3.</A> <A HREF="#toc3">Hints </A></H2>
|
||||
|
||||
|
||||
<P><EM>Visit the
|
||||
<A HREF="http://www.celephais.net/fitzquake">FitzQuake homepage</A> for a full run-down of the engine's commands and variables.</EM>
|
||||
<UL>
|
||||
|
@ -119,7 +113,6 @@ where DRIVER may be alsa, dsp, pulse, esd ...</LI>
|
|||
</P>
|
||||
<H2><A NAME="ss3.1">3.1</A> <A HREF="#toc3.1">Music Playback</A>
|
||||
</H2>
|
||||
|
||||
<P>Quakespasm can play various external music formats, including MP3, OGG and FLAC.
|
||||
<UL>
|
||||
<LI>Tracks should be named like "track02.ogg", "track03.ogg" ... (there is no track01) and placed into "Quake/id1/music".</LI>
|
||||
|
@ -133,14 +126,12 @@ where DRIVER may be alsa, dsp, pulse, esd ...</LI>
|
|||
|
||||
<H2><A NAME="ss3.2">3.2</A> <A HREF="#toc3.2">Controller Support</A>
|
||||
</H2>
|
||||
|
||||
<P>The SDL2 variant of Quakespasm supports Xbox 360 style game controllers.</P>
|
||||
<P>The default configuration uses the left analog stick for movement and the right for looking.</P>
|
||||
<P>If your controller doesn't work you can try placing
|
||||
<A HREF="https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt">this file</A> in your Quake directory, it is a community-maintained database that adds support for more controllers to SDL2.</P>
|
||||
|
||||
<H3>Cvars</H3>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI>joy_deadzone - Fraction of the stick travel to be deadzone, between 0 and 1. Default 0.175.</LI>
|
||||
|
@ -152,9 +143,7 @@ where DRIVER may be alsa, dsp, pulse, esd ...</LI>
|
|||
<LI>joy_enable - Set to 0 to disable controller support. Default 1.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<H3>Buttons</H3>
|
||||
|
||||
<P>Some of the controller buttons are hardcoded to allow navigating the menu:</P>
|
||||
<P>
|
||||
<UL>
|
||||
|
@ -186,7 +175,6 @@ where DRIVER may be alsa, dsp, pulse, esd ...</LI>
|
|||
|
||||
<H2><A NAME="s4">4.</A> <A HREF="#toc4">Compiling and Installation</A></H2>
|
||||
|
||||
|
||||
<P>See the Downloads section to get the sourcecode, then below for platform specific instructions.
|
||||
Quakespasm can also be built with the cross-platform Codeblocks.<BR>
|
||||
Quakespasm's (optional) custom data is now stored in the file <B>quakespasm.pak</B>. This file should be placed alongside your quakespasm binary and <B>id1</B> directory.</P>
|
||||
|
@ -221,13 +209,25 @@ Compile time options include
|
|||
</H2>
|
||||
|
||||
<P>QuakeSpasm 0.94.0 has initial support for playing the 2021 re-release content: Copy the quakespasm binary to your rerelease installation and run quakespasm as you normally do.</P>
|
||||
|
||||
|
||||
<H2><A NAME="s5">5.</A> <A HREF="#toc5">Changes</A></H2>
|
||||
|
||||
|
||||
|
||||
<H2><A NAME="ss5.1">5.1</A> <A HREF="#toc5.1">Changes in 0.94.4</A>
|
||||
<H2><A NAME="ss5.1">5.1</A> <A HREF="#toc5.1">Changes in 0.94.5</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Compatibility with new SDL2 versioning scheme.</LI>
|
||||
<LI> Revised min/max/clamp macros' usage.</LI>
|
||||
<LI> Fixed a potential undefined behavior in R_DrawAliasModel.</LI>
|
||||
<LI> Fixed parsing of the time argument of svc_fog server message. (it has been broken for more than 20 years and has never seem to have been used.)</LI>
|
||||
<LI> Other small improvements elsewhere in the code.</LI>
|
||||
<LI> Backported a few fixes to the bundled SDL2-2.0.22 version.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<H2><A NAME="ss5.2">5.2</A> <A HREF="#toc5.2">Changes in 0.94.4</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Fixed getting stuck with loading plaque upon attempting to load a bad save from the menu</LI>
|
||||
|
@ -247,9 +247,9 @@ Compile time options include
|
|||
<LI> Thanks to Andrei Drexler, 'atsb' and 'temx' for their several patches.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.2">5.2</A> <A HREF="#toc5.2">Changes in 0.94.3</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.3">5.3</A> <A HREF="#toc5.3">Changes in 0.94.3</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Handle sky textures with non-standard sizes and warn about them (e.g. ad_tears)</LI>
|
||||
|
@ -257,9 +257,9 @@ Compile time options include
|
|||
<LI> Updated included SDL2 to latest version 2.0.18.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.3">5.3</A> <A HREF="#toc5.3">Changes in 0.94.2</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.4">5.4</A> <A HREF="#toc5.4">Changes in 0.94.2</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> 2021 rerelease: Support for playing the latest update.</LI>
|
||||
|
@ -268,17 +268,17 @@ Compile time options include
|
|||
<LI> 2021 rerelease: Look for QuakeEX.kpf under userdir, too.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.4">5.4</A> <A HREF="#toc5.4">Changes in 0.94.1</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.5">5.5</A> <A HREF="#toc5.5">Changes in 0.94.1</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Fix lightmap issues after vkQuake surface mark/cull optimizations merge (sf.net bug/50)</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.5">5.5</A> <A HREF="#toc5.5">Changes in 0.94.0</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.6">5.6</A> <A HREF="#toc5.6">Changes in 0.94.0</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Initial support for playing the 'Quake 2021 re-release' content (thanks to Andrei Drexler for bulk of the work, Guillaume Plourde for Q64 bsp format support.)</LI>
|
||||
|
@ -301,9 +301,9 @@ Compile time options include
|
|||
<LI> Source repository moved to git.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.6">5.6</A> <A HREF="#toc5.6">Changes in 0.93.2</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.7">5.7</A> <A HREF="#toc5.7">Changes in 0.93.2</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Lightmaps are now dynamically allocated (from QSS), and BLOCK_WIDTH/HEIGHT raised from 128 to 256.</LI>
|
||||
|
@ -314,9 +314,9 @@ Compile time options include
|
|||
<LI> Update the third-party libraries. Other fixes/cleanups.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.7">5.7</A> <A HREF="#toc5.7">Changes in 0.93.1</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.8">5.8</A> <A HREF="#toc5.8">Changes in 0.93.1</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Fixed a fog regression which was introduced in 0.93.0.</LI>
|
||||
|
@ -328,9 +328,9 @@ Compile time options include
|
|||
<LI> Update the third-party libraries. Other fixes/cleanups.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.8">5.8</A> <A HREF="#toc5.8">Changes in 0.93.0</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.9">5.9</A> <A HREF="#toc5.9">Changes in 0.93.0</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Raise default "joy_deadzone_trigger" cvar to 0.2.</LI>
|
||||
|
@ -371,9 +371,9 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Update the third-party libraries.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.9">5.9</A> <A HREF="#toc5.9">Changes in 0.92.1</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.10">5.10</A> <A HREF="#toc5.10">Changes in 0.92.1</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Fixed large menu scale factors (was broken in 0.92.0).</LI>
|
||||
|
@ -381,9 +381,9 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Updated some of the third-party libraries.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.10">5.10</A> <A HREF="#toc5.10">Changes in 0.92.0</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.11">5.11</A> <A HREF="#toc5.11">Changes in 0.92.0</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> SDL2 Game Controller support.</LI>
|
||||
|
@ -401,12 +401,10 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Updated some of the third-party libraries. Other fixes/clean-ups.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.11">5.11</A> <A HREF="#toc5.11">Changes in 0.91.0</A>
|
||||
|
||||
<H2><A NAME="ss5.12">5.12</A> <A HREF="#toc5.12">Changes in 0.91.0</A>
|
||||
</H2>
|
||||
|
||||
|
||||
<H3>Bugfixes</H3>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Fix unwanted fog mode change upon video restart.</LI>
|
||||
|
@ -424,35 +422,27 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Prevent a possible vulnerability in MSG_ReadString (old Q1/Q2 bug).</LI>
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<H3>Visual improvements</H3>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI> New cvars r_lavaalpha, r_slimealpha, r_telealpha for fine-tuning specific liquid opacities (from DirectQ/RMQEngine, non-archived, default to 0), and new worldspawn keys _wateralpha, _lavaalpha, _slimealpha, _telealpha, _skyfog (unique to Quakespasm, similar to the behaviour of the "fog" worldspawn key).</LI>
|
||||
<LI> GLSL gamma is now supported on older hardware without NPOT extension.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<H3>Interface improvements</H3>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI> New r_pos command to show player position.</LI>
|
||||
<LI> NaN detection in traceline with "developer 1" set now warns instead of errors.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<H3>Code cleanup / Other</H3>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Update third-party libraries.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<H3>Raised limits</H3>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Default max_edicts 8192 (was 2048) and no longer saved to config.cfg.</LI>
|
||||
|
@ -461,12 +451,10 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Raised MAX_SFX to 1024 (was 512).</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.12">5.12</A> <A HREF="#toc5.12">Changes in 0.90.1</A>
|
||||
|
||||
<H2><A NAME="ss5.13">5.13</A> <A HREF="#toc5.13">Changes in 0.90.1</A>
|
||||
</H2>
|
||||
|
||||
|
||||
<H3>Bugfixes</H3>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Fix dynamic light artifact where changing lightmap are rendered one frame late (bug introduced in 0.90.0).</LI>
|
||||
|
@ -480,18 +468,14 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Fix crash on out-of-bounds skin number.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<H3>Performance</H3>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Use multithreaded OpenGL on OS X for better performance.</LI>
|
||||
<LI> New, faster mdl renderer using GLSL. Disable with "-noglslalias".</LI>
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<H3>Visual improvements</H3>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI> New gamma correction implementation using GLSL. Fixes all known gamma issues (affecting the full display, persisting after quitting, or darkening the screen on OS X). Disable with "-noglslgamma".</LI>
|
||||
|
@ -500,9 +484,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> r_noshadow_list cvar added (from MarkV.)</LI>
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<H3>Interface improvements</H3>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Support pausing demo playback with the "pause" command.</LI>
|
||||
|
@ -512,18 +494,16 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Some spam moved from developer 1 to 2: "can't find tga/lit/ent", "trying to load ent", "bad chunk length", "meshing", "PR_AlocStringSlots: realloc'ing"</LI>
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<H3>Code cleanup</H3>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Clean up IDE project files to build on fresh systems.</LI>
|
||||
<LI> Update 3rd-party libraries.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.13">5.13</A> <A HREF="#toc5.13">Changes in 0.90.0</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.14">5.14</A> <A HREF="#toc5.14">Changes in 0.90.0</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Fix issues on Windows systems with DPI scaling.</LI>
|
||||
|
@ -567,9 +547,9 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Other fixes and clean-ups.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.14">5.14</A> <A HREF="#toc5.14">Changes in 0.85.9</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.15">5.15</A> <A HREF="#toc5.15">Changes in 0.85.9</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Fixes for several undefined behaviors in C code (gcc-4.8 support.)</LI>
|
||||
|
@ -591,9 +571,9 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Several other minor fixes/cleanups.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.15">5.15</A> <A HREF="#toc5.15">Changes in 0.85.8</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.16">5.16</A> <A HREF="#toc5.16">Changes in 0.85.8</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Made Quake shareware 1.00 and 1.01 versions to be recognized properly.</LI>
|
||||
|
@ -616,9 +596,9 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Miscellaneous source code cleanups.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.16">5.16</A> <A HREF="#toc5.16">Changes in 0.85.7</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.17">5.17</A> <A HREF="#toc5.17">Changes in 0.85.7</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Added support for cross-level demo playback</LI>
|
||||
|
@ -634,9 +614,9 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Several other small changes mostly invisible to the end-user</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.17">5.17</A> <A HREF="#toc5.17">Changes in 0.85.6</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.18">5.18</A> <A HREF="#toc5.18">Changes in 0.85.6</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> More work for string buffer safety</LI>
|
||||
|
@ -645,9 +625,9 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Minor SDL video fixes.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.18">5.18</A> <A HREF="#toc5.18">Changes in 0.85.5</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.19">5.19</A> <A HREF="#toc5.19">Changes in 0.85.5</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> SDL input driver updated adding native keymap and dead key support to the console</LI>
|
||||
|
@ -664,9 +644,9 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Several code updates from uHexen2 project, several code cleanups.</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.19">5.19</A> <A HREF="#toc5.19">Changes in 0.85.4</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.20">5.20</A> <A HREF="#toc5.20">Changes in 0.85.4</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Implement music (OGG, MP3, WAV) playback</LI>
|
||||
|
@ -682,9 +662,9 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
<LI> Other minor sound and cdaudio updates</LI>
|
||||
</UL>
|
||||
</P>
|
||||
<H2><A NAME="ss5.20">5.20</A> <A HREF="#toc5.20">Changes in 0.85.3</A>
|
||||
</H2>
|
||||
|
||||
<H2><A NAME="ss5.21">5.21</A> <A HREF="#toc5.21">Changes in 0.85.3</A>
|
||||
</H2>
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Fix the "-dedicated" option (thanks Oz) and add platform specific networking code (default) rather than SDL_net</LI>
|
||||
|
@ -705,9 +685,8 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
</UL>
|
||||
</P>
|
||||
|
||||
<H2><A NAME="ss5.21">5.21</A> <A HREF="#toc5.21">Changes in 0.85.2</A>
|
||||
<H2><A NAME="ss5.22">5.22</A> <A HREF="#toc5.22">Changes in 0.85.2</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI> Replace the old "Screen size" slider with a "Scale" slider</LI>
|
||||
|
@ -724,9 +703,8 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
</UL>
|
||||
</P>
|
||||
|
||||
<H2><A NAME="ss5.22">5.22</A> <A HREF="#toc5.22">Changes in 0.85.1</A>
|
||||
<H2><A NAME="ss5.23">5.23</A> <A HREF="#toc5.23">Changes in 0.85.1</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI>64 bit CPU support</LI>
|
||||
|
@ -750,7 +728,6 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
|
||||
|
||||
<H2><A NAME="s6">6.</A> <A HREF="#toc6">Copyright </A></H2>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI>Quake and Quakespasm are released under the
|
||||
|
@ -761,7 +738,6 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
</P>
|
||||
|
||||
<H2><A NAME="s7">7.</A> <A HREF="#toc7">Contact </A></H2>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI>
|
||||
|
@ -776,7 +752,6 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
|
|||
</P>
|
||||
|
||||
<H2><A NAME="s8">8.</A> <A HREF="#toc8">Links </A></H2>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI>
|
||||
|
|
148
Quakespasm.txt
148
Quakespasm.txt
|
@ -19,38 +19,39 @@
|
|||
4.4 Quake '2021 re-release'
|
||||
|
||||
5. Changes
|
||||
5.1 Changes in 0.94.4
|
||||
5.2 Changes in 0.94.3
|
||||
5.3 Changes in 0.94.2
|
||||
5.4 Changes in 0.94.1
|
||||
5.5 Changes in 0.94.0
|
||||
5.6 Changes in 0.93.2
|
||||
5.7 Changes in 0.93.1
|
||||
5.8 Changes in 0.93.0
|
||||
5.9 Changes in 0.92.1
|
||||
5.10 Changes in 0.92.0
|
||||
5.11 Changes in 0.91.0
|
||||
5.11.1 Bugfixes
|
||||
5.11.2 Visual improvements
|
||||
5.11.3 Interface improvements
|
||||
5.11.4 Code cleanup / Other
|
||||
5.11.5 Raised limits
|
||||
5.12 Changes in 0.90.1
|
||||
5.1 Changes in 0.94.5
|
||||
5.2 Changes in 0.94.4
|
||||
5.3 Changes in 0.94.3
|
||||
5.4 Changes in 0.94.2
|
||||
5.5 Changes in 0.94.1
|
||||
5.6 Changes in 0.94.0
|
||||
5.7 Changes in 0.93.2
|
||||
5.8 Changes in 0.93.1
|
||||
5.9 Changes in 0.93.0
|
||||
5.10 Changes in 0.92.1
|
||||
5.11 Changes in 0.92.0
|
||||
5.12 Changes in 0.91.0
|
||||
5.12.1 Bugfixes
|
||||
5.12.2 Performance
|
||||
5.12.3 Visual improvements
|
||||
5.12.4 Interface improvements
|
||||
5.12.5 Code cleanup
|
||||
5.13 Changes in 0.90.0
|
||||
5.14 Changes in 0.85.9
|
||||
5.15 Changes in 0.85.8
|
||||
5.16 Changes in 0.85.7
|
||||
5.17 Changes in 0.85.6
|
||||
5.18 Changes in 0.85.5
|
||||
5.19 Changes in 0.85.4
|
||||
5.20 Changes in 0.85.3
|
||||
5.21 Changes in 0.85.2
|
||||
5.22 Changes in 0.85.1
|
||||
5.12.2 Visual improvements
|
||||
5.12.3 Interface improvements
|
||||
5.12.4 Code cleanup / Other
|
||||
5.12.5 Raised limits
|
||||
5.13 Changes in 0.90.1
|
||||
5.13.1 Bugfixes
|
||||
5.13.2 Performance
|
||||
5.13.3 Visual improvements
|
||||
5.13.4 Interface improvements
|
||||
5.13.5 Code cleanup
|
||||
5.14 Changes in 0.90.0
|
||||
5.15 Changes in 0.85.9
|
||||
5.16 Changes in 0.85.8
|
||||
5.17 Changes in 0.85.7
|
||||
5.18 Changes in 0.85.6
|
||||
5.19 Changes in 0.85.5
|
||||
5.20 Changes in 0.85.4
|
||||
5.21 Changes in 0.85.3
|
||||
5.22 Changes in 0.85.2
|
||||
5.23 Changes in 0.85.1
|
||||
|
||||
6. Copyright
|
||||
7. Contact
|
||||
|
@ -59,7 +60,8 @@
|
|||
|
||||
______________________________________________________________________
|
||||
|
||||
Page last edited: April 2022.
|
||||
|
||||
Page last edited: June 2022.
|
||||
|
||||
|
||||
1. About
|
||||
|
@ -264,7 +266,24 @@
|
|||
5. Changes
|
||||
|
||||
|
||||
5.1. Changes in 0.94.4
|
||||
5.1. Changes in 0.94.5
|
||||
|
||||
o Compatibility with new SDL2 versioning scheme.
|
||||
|
||||
o Revised min/max/clamp macros' usage.
|
||||
|
||||
o Fixed a potential undefined behavior in R_DrawAliasModel.
|
||||
|
||||
o Fixed parsing of the time argument of svc_fog server message. (it
|
||||
has been broken for more than 20 years and has never seem to have
|
||||
been used.)
|
||||
|
||||
o Other small improvements elsewhere in the code.
|
||||
|
||||
o Backported a few fixes to the bundled SDL2-2.0.22 version.
|
||||
|
||||
|
||||
5.2. Changes in 0.94.4
|
||||
|
||||
o Fixed getting stuck with loading plaque upon attempting to load a
|
||||
bad save from the menu
|
||||
|
@ -300,7 +319,7 @@
|
|||
patches.
|
||||
|
||||
|
||||
5.2. Changes in 0.94.3
|
||||
5.3. Changes in 0.94.3
|
||||
|
||||
o Handle sky textures with non-standard sizes and warn about them
|
||||
(e.g. ad_tears)
|
||||
|
@ -312,7 +331,7 @@
|
|||
o Updated included SDL2 to latest version 2.0.18.
|
||||
|
||||
|
||||
5.3. Changes in 0.94.2
|
||||
5.4. Changes in 0.94.2
|
||||
|
||||
o 2021 rerelease: Support for playing the latest update.
|
||||
|
||||
|
@ -323,13 +342,13 @@
|
|||
o 2021 rerelease: Look for QuakeEX.kpf under userdir, too.
|
||||
|
||||
|
||||
5.4. Changes in 0.94.1
|
||||
5.5. Changes in 0.94.1
|
||||
|
||||
o Fix lightmap issues after vkQuake surface mark/cull optimizations
|
||||
merge (sf.net bug/50)
|
||||
|
||||
|
||||
5.5. Changes in 0.94.0
|
||||
5.6. Changes in 0.94.0
|
||||
|
||||
o Initial support for playing the 'Quake 2021 re-release' content
|
||||
(thanks to Andrei Drexler for bulk of the work, Guillaume Plourde
|
||||
|
@ -378,7 +397,7 @@
|
|||
o Source repository moved to git.
|
||||
|
||||
|
||||
5.6. Changes in 0.93.2
|
||||
5.7. Changes in 0.93.2
|
||||
|
||||
o Lightmaps are now dynamically allocated (from QSS), and
|
||||
BLOCK_WIDTH/HEIGHT raised from 128 to 256.
|
||||
|
@ -398,7 +417,7 @@
|
|||
o Update the third-party libraries. Other fixes/cleanups.
|
||||
|
||||
|
||||
5.7. Changes in 0.93.1
|
||||
5.8. Changes in 0.93.1
|
||||
|
||||
o Fixed a fog regression which was introduced in 0.93.0.
|
||||
|
||||
|
@ -416,7 +435,7 @@
|
|||
o Update the third-party libraries. Other fixes/cleanups.
|
||||
|
||||
|
||||
5.8. Changes in 0.93.0
|
||||
5.9. Changes in 0.93.0
|
||||
|
||||
o Raise default "joy_deadzone_trigger" cvar to 0.2.
|
||||
|
||||
|
@ -501,7 +520,7 @@
|
|||
o Update the third-party libraries.
|
||||
|
||||
|
||||
5.9. Changes in 0.92.1
|
||||
5.10. Changes in 0.92.1
|
||||
|
||||
o Fixed large menu scale factors (was broken in 0.92.0).
|
||||
|
||||
|
@ -510,7 +529,7 @@
|
|||
o Updated some of the third-party libraries.
|
||||
|
||||
|
||||
5.10. Changes in 0.92.0
|
||||
5.11. Changes in 0.92.0
|
||||
|
||||
o SDL2 Game Controller support.
|
||||
|
||||
|
@ -547,9 +566,9 @@
|
|||
o Updated some of the third-party libraries. Other fixes/clean-ups.
|
||||
|
||||
|
||||
5.11. Changes in 0.91.0
|
||||
5.12. Changes in 0.91.0
|
||||
|
||||
5.11.1. Bugfixes
|
||||
5.12.1. Bugfixes
|
||||
|
||||
o Fix unwanted fog mode change upon video restart.
|
||||
|
||||
|
@ -585,7 +604,7 @@
|
|||
|
||||
o Prevent a possible vulnerability in MSG_ReadString (old Q1/Q2 bug).
|
||||
|
||||
5.11.2. Visual improvements
|
||||
5.12.2. Visual improvements
|
||||
|
||||
o New cvars r_lavaalpha, r_slimealpha, r_telealpha for fine-tuning
|
||||
specific liquid opacities (from DirectQ/RMQEngine, non-archived,
|
||||
|
@ -596,18 +615,18 @@
|
|||
o GLSL gamma is now supported on older hardware without NPOT
|
||||
extension.
|
||||
|
||||
5.11.3. Interface improvements
|
||||
5.12.3. Interface improvements
|
||||
|
||||
o New r_pos command to show player position.
|
||||
|
||||
o NaN detection in traceline with "developer 1" set now warns instead
|
||||
of errors.
|
||||
|
||||
5.11.4. Code cleanup / Other
|
||||
5.12.4. Code cleanup / Other
|
||||
|
||||
o Update third-party libraries.
|
||||
|
||||
5.11.5. Raised limits
|
||||
5.12.5. Raised limits
|
||||
|
||||
o Default max_edicts 8192 (was 2048) and no longer saved to
|
||||
config.cfg.
|
||||
|
@ -619,9 +638,9 @@
|
|||
o Raised MAX_SFX to 1024 (was 512).
|
||||
|
||||
|
||||
5.12. Changes in 0.90.1
|
||||
5.13. Changes in 0.90.1
|
||||
|
||||
5.12.1. Bugfixes
|
||||
5.13.1. Bugfixes
|
||||
|
||||
o Fix dynamic light artifact where changing lightmap are rendered one
|
||||
frame late (bug introduced in 0.90.0).
|
||||
|
@ -644,13 +663,13 @@
|
|||
|
||||
o Fix crash on out-of-bounds skin number.
|
||||
|
||||
5.12.2. Performance
|
||||
5.13.2. Performance
|
||||
|
||||
o Use multithreaded OpenGL on OS X for better performance.
|
||||
|
||||
o New, faster mdl renderer using GLSL. Disable with "-noglslalias".
|
||||
|
||||
5.12.3. Visual improvements
|
||||
5.13.3. Visual improvements
|
||||
|
||||
o New gamma correction implementation using GLSL. Fixes all known
|
||||
gamma issues (affecting the full display, persisting after
|
||||
|
@ -664,7 +683,7 @@
|
|||
|
||||
o r_noshadow_list cvar added (from MarkV.)
|
||||
|
||||
5.12.4. Interface improvements
|
||||
5.13.4. Interface improvements
|
||||
|
||||
o Support pausing demo playback with the "pause" command.
|
||||
|
||||
|
@ -681,14 +700,14 @@
|
|||
"trying to load ent", "bad chunk length", "meshing",
|
||||
"PR_AlocStringSlots: realloc'ing"
|
||||
|
||||
5.12.5. Code cleanup
|
||||
5.13.5. Code cleanup
|
||||
|
||||
o Clean up IDE project files to build on fresh systems.
|
||||
|
||||
o Update 3rd-party libraries.
|
||||
|
||||
|
||||
5.13. Changes in 0.90.0
|
||||
5.14. Changes in 0.90.0
|
||||
|
||||
o Fix issues on Windows systems with DPI scaling.
|
||||
|
||||
|
@ -796,7 +815,7 @@
|
|||
o Other fixes and clean-ups.
|
||||
|
||||
|
||||
5.14. Changes in 0.85.9
|
||||
5.15. Changes in 0.85.9
|
||||
|
||||
o Fixes for several undefined behaviors in C code (gcc-4.8 support.)
|
||||
|
||||
|
@ -843,7 +862,7 @@
|
|||
o Several other minor fixes/cleanups.
|
||||
|
||||
|
||||
5.15. Changes in 0.85.8
|
||||
5.16. Changes in 0.85.8
|
||||
|
||||
o Made Quake shareware 1.00 and 1.01 versions to be recognized
|
||||
properly.
|
||||
|
@ -890,7 +909,7 @@
|
|||
o Miscellaneous source code cleanups.
|
||||
|
||||
|
||||
5.16. Changes in 0.85.7
|
||||
5.17. Changes in 0.85.7
|
||||
|
||||
o Added support for cross-level demo playback
|
||||
|
||||
|
@ -916,7 +935,7 @@
|
|||
o Several other small changes mostly invisible to the end-user
|
||||
|
||||
|
||||
5.17. Changes in 0.85.6
|
||||
5.18. Changes in 0.85.6
|
||||
|
||||
o More work for string buffer safety
|
||||
|
||||
|
@ -929,7 +948,7 @@
|
|||
o Minor SDL video fixes.
|
||||
|
||||
|
||||
5.18. Changes in 0.85.5
|
||||
5.19. Changes in 0.85.5
|
||||
|
||||
o SDL input driver updated adding native keymap and dead key support
|
||||
to the console
|
||||
|
@ -960,7 +979,7 @@
|
|||
o Several code updates from uHexen2 project, several code cleanups.
|
||||
|
||||
|
||||
5.19. Changes in 0.85.4
|
||||
5.20. Changes in 0.85.4
|
||||
|
||||
o Implement music (OGG, MP3, WAV) playback
|
||||
|
||||
|
@ -988,7 +1007,7 @@
|
|||
o Other minor sound and cdaudio updates
|
||||
|
||||
|
||||
5.20. Changes in 0.85.3
|
||||
5.21. Changes in 0.85.3
|
||||
|
||||
o Fix the "-dedicated" option (thanks Oz) and add platform specific
|
||||
networking code (default) rather than SDL_net
|
||||
|
@ -1025,7 +1044,7 @@
|
|||
some other CD tweaks.
|
||||
|
||||
|
||||
5.21. Changes in 0.85.2
|
||||
5.22. Changes in 0.85.2
|
||||
|
||||
o Replace the old "Screen size" slider with a "Scale" slider
|
||||
|
||||
|
@ -1053,7 +1072,7 @@
|
|||
o Add OSX Makefile (tested?)
|
||||
|
||||
|
||||
5.22. Changes in 0.85.1
|
||||
5.23. Changes in 0.85.1
|
||||
|
||||
o 64 bit CPU support
|
||||
|
||||
|
@ -1126,3 +1145,4 @@
|
|||
http://www.celephais.net/board/view_thread.php?id=60452
|
||||
|
||||
o Inside3D forums: http://forums.insideqc.com
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#ifndef SDL_assert_h_
|
||||
#define SDL_assert_h_
|
||||
|
||||
#include "SDL_config.h"
|
||||
#include "SDL_stdinc.h"
|
||||
|
||||
#include "begin_code.h"
|
||||
/* Set up for C function definitions, even when using C++ */
|
||||
|
@ -51,6 +51,8 @@ assert can have unique static variables associated with it.
|
|||
/* Don't include intrin.h here because it contains C++ code */
|
||||
extern void __cdecl __debugbreak(void);
|
||||
#define SDL_TriggerBreakpoint() __debugbreak()
|
||||
#elif _SDL_HAS_BUILTIN(__builtin_debugtrap)
|
||||
#define SDL_TriggerBreakpoint() __builtin_debugtrap()
|
||||
#elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) )
|
||||
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" )
|
||||
#elif ( defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__)) ) /* this might work on other ARM targets, but this is a known quantity... */
|
||||
|
|
|
@ -38,6 +38,18 @@
|
|||
#include <winsdkver.h>
|
||||
#endif
|
||||
|
||||
/* sdkddkver.h defines more specific SDK version numbers. This is needed because older versions of the
|
||||
* Windows 10 SDK have broken declarations for the C API for DirectX 12. */
|
||||
#if !defined(HAVE_SDKDDKVER_H) && defined(__has_include)
|
||||
#if __has_include(<sdkddkver.h>)
|
||||
#define HAVE_SDKDDKVER_H 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SDKDDKVER_H
|
||||
#include <sdkddkver.h>
|
||||
#endif
|
||||
|
||||
/* This is a set of defines to configure the SDL features */
|
||||
|
||||
#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H)
|
||||
|
@ -227,7 +239,9 @@ typedef unsigned int uintptr_t;
|
|||
#endif
|
||||
|
||||
/* Enable various audio drivers */
|
||||
#if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H)
|
||||
#define SDL_AUDIO_DRIVER_WASAPI 1
|
||||
#endif
|
||||
#define SDL_AUDIO_DRIVER_DSOUND 1
|
||||
#define SDL_AUDIO_DRIVER_WINMM 1
|
||||
#define SDL_AUDIO_DRIVER_DISK 1
|
||||
|
@ -248,7 +262,11 @@ typedef unsigned int uintptr_t;
|
|||
#define SDL_HAPTIC_XINPUT 1
|
||||
|
||||
/* Enable the sensor driver */
|
||||
#ifdef HAVE_SENSORSAPI_H
|
||||
#define SDL_SENSOR_WINDOWS 1
|
||||
#else
|
||||
#define SDL_SENSOR_DUMMY 1
|
||||
#endif
|
||||
|
||||
/* Enable various shared object loading systems */
|
||||
#define SDL_LOADSO_WINDOWS 1
|
||||
|
@ -300,11 +318,6 @@ typedef unsigned int uintptr_t;
|
|||
/* Enable filesystem support */
|
||||
#define SDL_FILESYSTEM_WINDOWS 1
|
||||
|
||||
/* Enable assembly routines (Win64 doesn't have inline asm) */
|
||||
#ifndef _WIN64
|
||||
#define SDL_ASSEMBLY_ROUTINES 1
|
||||
#endif
|
||||
|
||||
#endif /* SDL_config_windows_h_ */
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
@ -87,6 +87,28 @@ _m_prefetch(void *__P)
|
|||
#endif /* __linux__ */
|
||||
#endif /* !SDL_BYTEORDER */
|
||||
|
||||
#ifndef SDL_FLOATWORDORDER /* Not defined in SDL_config.h? */
|
||||
/* predefs from newer gcc versions: */
|
||||
#if defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) && defined(__FLOAT_WORD_ORDER__)
|
||||
#if (__FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__)
|
||||
#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN
|
||||
#elif (__FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__)
|
||||
#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN
|
||||
#else
|
||||
#error Unsupported endianness
|
||||
#endif /**/
|
||||
#elif defined(__MAVERICK__)
|
||||
/* For Maverick, float words are always little-endian. */
|
||||
#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN
|
||||
#elif (defined(__arm__) || defined(__thumb__)) && !defined(__VFP_FP__) && !defined(__ARM_EABI__)
|
||||
/* For FPA, float words are always big-endian. */
|
||||
#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN
|
||||
#else
|
||||
/* By default, assume that floats words follow the memory system mode. */
|
||||
#define SDL_FLOATWORDORDER SDL_BYTEORDER
|
||||
#endif /* __FLOAT_WORD_ORDER__ */
|
||||
#endif /* !SDL_FLOATWORDORDER */
|
||||
|
||||
|
||||
#include "begin_code.h"
|
||||
/* Set up for C function definitions, even when using C++ */
|
||||
|
|
|
@ -252,10 +252,10 @@ SDL_FORCE_INLINE SDL_bool SDL_FRectEmpty(const SDL_FRect *r)
|
|||
SDL_FORCE_INLINE SDL_bool SDL_FRectEqualsEpsilon(const SDL_FRect *a, const SDL_FRect *b, const float epsilon)
|
||||
{
|
||||
return (a && b && ((a == b) ||
|
||||
((SDL_fabs(a->x - b->x) <= epsilon) &&
|
||||
(SDL_fabs(a->y - b->y) <= epsilon) &&
|
||||
(SDL_fabs(a->w - b->w) <= epsilon) &&
|
||||
(SDL_fabs(a->h - b->h) <= epsilon))))
|
||||
((SDL_fabsf(a->x - b->x) <= epsilon) &&
|
||||
(SDL_fabsf(a->y - b->y) <= epsilon) &&
|
||||
(SDL_fabsf(a->w - b->w) <= epsilon) &&
|
||||
(SDL_fabsf(a->h - b->h) <= epsilon))))
|
||||
? SDL_TRUE : SDL_FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#define SDL_REVISION "https://github.com/libsdl-org/SDL.git@981e1e3c4489add5bf6d4df5415af3cf1ef2773d"
|
||||
#define SDL_REVISION "@1594e60f8c154d3c8cea175fe88694e5aaf5e7bc"
|
||||
#define SDL_REVISION_NUMBER 0
|
||||
|
|
|
@ -462,7 +462,7 @@ extern DECLSPEC int SDLCALL SDL_GetNumAllocations(void);
|
|||
extern DECLSPEC char *SDLCALL SDL_getenv(const char *name);
|
||||
extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite);
|
||||
|
||||
extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (*compare) (const void *, const void *));
|
||||
extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (SDLCALL *compare) (const void *, const void *));
|
||||
|
||||
extern DECLSPEC int SDLCALL SDL_abs(int x);
|
||||
|
||||
|
|
|
@ -195,7 +195,7 @@ extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriorityAndPolicy(Sint64 threadID,
|
|||
*
|
||||
* \sa SDL_iPhoneSetEventPump
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
|
||||
extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (SDLCALL *callback)(void*), void *callbackParam);
|
||||
|
||||
#define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled)
|
||||
|
||||
|
|
|
@ -129,7 +129,7 @@ SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data,
|
|||
pfnSDL_CurrentEndThread pfnEndThread);
|
||||
|
||||
extern DECLSPEC SDL_Thread *SDLCALL
|
||||
SDL_CreateThreadWithStackSize(int (SDLCALL * fn) (void *),
|
||||
SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn,
|
||||
const char *name, const size_t stacksize, void *data,
|
||||
pfnSDL_CurrentBeginThread pfnBeginThread,
|
||||
pfnSDL_CurrentEndThread pfnEndThread);
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -70,7 +70,7 @@ main_getcmdline(void)
|
|||
if (!argv[i]) {
|
||||
return OutOfMemory();
|
||||
}
|
||||
CopyMemory(argv[i], arg, len);
|
||||
SDL_memcpy(argv[i], arg, len);
|
||||
SDL_free(arg);
|
||||
}
|
||||
argv[i] = NULL;
|
||||
|
|
Loading…
Reference in a new issue