mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2024-11-10 06:31:56 +00:00
Jason Nelson's patch for fixing Win32 targets
This commit is contained in:
parent
2afdb1db5f
commit
8ac1385c9f
38 changed files with 687 additions and 55 deletions
|
@ -19,6 +19,9 @@ along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
#ifdef WIN32
|
||||||
|
#pragma warning(disable:4305)
|
||||||
|
#endif
|
||||||
{-0.525731, 0.000000, 0.850651},
|
{-0.525731, 0.000000, 0.850651},
|
||||||
{-0.442863, 0.238856, 0.864188},
|
{-0.442863, 0.238856, 0.864188},
|
||||||
{-0.295242, 0.000000, 0.955423},
|
{-0.295242, 0.000000, 0.955423},
|
||||||
|
|
|
@ -25,8 +25,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
//char *date = "Dec 21 1999";
|
//char *date = "Dec 21 1999";
|
||||||
//char *time = "00:00:00";
|
//char *time = "00:00:00";
|
||||||
char *date = __DATE__ ;
|
char *ddate = __DATE__ ;
|
||||||
char *time = __TIME__ ;
|
char *dtime = __TIME__ ;
|
||||||
|
|
||||||
char *mon[12] =
|
char *mon[12] =
|
||||||
{ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
|
{ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
|
||||||
|
|
129
common/cd_win.c
129
common/cd_win.c
|
@ -27,6 +27,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#ifdef HAVE_MMSYSTEM_H
|
#ifdef HAVE_MMSYSTEM_H
|
||||||
# include <mmsystem.h>
|
# include <mmsystem.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <cdaudio.h>
|
||||||
|
|
||||||
|
#include "qtypes.h"
|
||||||
|
#include "quakedef.h"
|
||||||
|
#include "keys.h"
|
||||||
|
#include "client.h"
|
||||||
|
#include "sys.h"
|
||||||
|
#include "console.h"
|
||||||
|
#include "cvar.h"
|
||||||
|
#include <cmd.h>
|
||||||
|
|
||||||
extern HWND mainwindow;
|
extern HWND mainwindow;
|
||||||
extern cvar_t bgmvolume;
|
extern cvar_t bgmvolume;
|
||||||
|
@ -110,6 +120,125 @@ static int CDAudio_GetAudioDiskInfo(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define CD_f_DEFINED
|
||||||
|
void CD_f (void)
|
||||||
|
{
|
||||||
|
char *command;
|
||||||
|
int ret;
|
||||||
|
int n;
|
||||||
|
int startAddress;
|
||||||
|
|
||||||
|
if (Cmd_Argc() < 2)
|
||||||
|
return;
|
||||||
|
|
||||||
|
command = Cmd_Argv (1);
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "on") == 0)
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "off") == 0)
|
||||||
|
{
|
||||||
|
if (playing)
|
||||||
|
CDAudio_Stop();
|
||||||
|
enabled = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "reset") == 0)
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
if (playing)
|
||||||
|
CDAudio_Stop();
|
||||||
|
for (n = 0; n < 100; n++)
|
||||||
|
remap[n] = n;
|
||||||
|
CDAudio_GetAudioDiskInfo();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "remap") == 0)
|
||||||
|
{
|
||||||
|
ret = Cmd_Argc() - 2;
|
||||||
|
if (ret <= 0)
|
||||||
|
{
|
||||||
|
for (n = 1; n < 100; n++)
|
||||||
|
if (remap[n] != n)
|
||||||
|
Con_Printf(" %u -> %u\n", n, remap[n]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (n = 1; n <= ret; n++)
|
||||||
|
remap[n] = Q_atoi(Cmd_Argv (n+1));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "close") == 0)
|
||||||
|
{
|
||||||
|
CDAudio_CloseDoor();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!cdValid)
|
||||||
|
{
|
||||||
|
CDAudio_GetAudioDiskInfo();
|
||||||
|
if (!cdValid)
|
||||||
|
{
|
||||||
|
Con_Printf("No CD in player.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "play") == 0)
|
||||||
|
{
|
||||||
|
CDAudio_Play((byte)Q_atoi(Cmd_Argv (2)), false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "loop") == 0)
|
||||||
|
{
|
||||||
|
CDAudio_Play((byte)Q_atoi(Cmd_Argv (2)), true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "stop") == 0)
|
||||||
|
{
|
||||||
|
CDAudio_Stop();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "pause") == 0)
|
||||||
|
{
|
||||||
|
CDAudio_Pause();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "resume") == 0)
|
||||||
|
{
|
||||||
|
CDAudio_Resume();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "eject") == 0)
|
||||||
|
{
|
||||||
|
if (playing)
|
||||||
|
CDAudio_Stop();
|
||||||
|
CDAudio_Eject();
|
||||||
|
cdValid = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_strcasecmp(command, "info") == 0)
|
||||||
|
{
|
||||||
|
Con_Printf("%u tracks\n", maxTrack);
|
||||||
|
if (playing)
|
||||||
|
Con_Printf("Currently %s track %u\n", playLooping ? "looping" : "playing", playTrack);
|
||||||
|
else if (wasPlaying)
|
||||||
|
Con_Printf("Paused %s track %u\n", playLooping ? "looping" : "playing", playTrack);
|
||||||
|
Con_Printf("Volume is %f\n", cdvolume);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CDAudio_Play(byte track, qboolean looping)
|
void CDAudio_Play(byte track, qboolean looping)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <quakedef.h>
|
||||||
|
|
||||||
#ifdef HAVE_STRING_H
|
#ifdef HAVE_STRING_H
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
|
@ -40,7 +40,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <strings.h>
|
#include <strings.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_WIN32) && !defined(WINDED)
|
#if defined(_WIN32) && !defined(WINDED) && !defined(GLQUAKE)
|
||||||
void VID_LockBuffer (void);
|
void VID_LockBuffer (void);
|
||||||
void VID_UnlockBuffer (void);
|
void VID_UnlockBuffer (void);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -38,6 +38,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#endif
|
#endif
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#if !defined(HAVE_SNPRINTF) && defined(HAVE__SNPRINTF)
|
||||||
|
# define snprintf _snprintf
|
||||||
|
#endif
|
||||||
|
|
||||||
cvar_t *cvar_vars;
|
cvar_t *cvar_vars;
|
||||||
char *cvar_null_string = "";
|
char *cvar_null_string = "";
|
||||||
|
|
||||||
|
|
|
@ -297,27 +297,59 @@ void GL_MakeAliasModelDisplayLists (model_t *m, aliashdr_t *hdr)
|
||||||
trivertx_t *verts;
|
trivertx_t *verts;
|
||||||
char cache[MAX_QPATH], fullpath[MAX_OSPATH];
|
char cache[MAX_QPATH], fullpath[MAX_OSPATH];
|
||||||
QFile *f;
|
QFile *f;
|
||||||
|
long modelcrc = 0;
|
||||||
|
qboolean fCacheSynced = false;
|
||||||
|
|
||||||
aliasmodel = m;
|
aliasmodel = m;
|
||||||
paliashdr = hdr; // (aliashdr_t *)Mod_Extradata (m);
|
paliashdr = hdr; // (aliashdr_t *)Mod_Extradata (m);
|
||||||
|
|
||||||
|
modelcrc = m->numclipnodes +
|
||||||
|
m->numedges +
|
||||||
|
m->numframes +
|
||||||
|
m->numleafs +
|
||||||
|
m->nummarksurfaces +
|
||||||
|
m->nummodelsurfaces +
|
||||||
|
m->numnodes +
|
||||||
|
m->numplanes +
|
||||||
|
m->numsubmodels +
|
||||||
|
m->numsurfaces +
|
||||||
|
m->numsurfedges +
|
||||||
|
m->numtexinfo +
|
||||||
|
m->numtextures +
|
||||||
|
m->numvertexes;
|
||||||
//
|
//
|
||||||
// look for a cached version
|
// look for a cached version
|
||||||
//
|
//
|
||||||
strcpy (cache, "glquake/");
|
strcpy (cache, "glquake/");
|
||||||
COM_StripExtension (m->name+strlen("progs/"), cache+strlen("glquake/"));
|
COM_StripExtension (m->name+strlen("progs/"), cache+strlen("glquake/"));
|
||||||
strcat (cache, ".ms2");
|
strcat (cache, ".ms3");
|
||||||
|
|
||||||
COM_FOpenFile (cache, &f);
|
COM_FOpenFile (cache, &f);
|
||||||
if (f)
|
if (f)
|
||||||
{
|
{
|
||||||
Qread (f, &numcommands, 4);
|
byte sig[2];
|
||||||
Qread (f, &numorder, 4);
|
long cachecrc;
|
||||||
Qread (f, commands, numcommands * sizeof(commands[0]));
|
|
||||||
Qread (f, vertexorder, numorder * sizeof(vertexorder[0]));
|
Qread (f, sig, sizeof(sig));
|
||||||
Qclose (f);
|
Qread (f, &cachecrc, sizeof(cachecrc));
|
||||||
|
|
||||||
|
if ((memcmp(sig, "QF", sizeof("QF")) != 0) ||
|
||||||
|
cachecrc != modelcrc)
|
||||||
|
{
|
||||||
|
Con_Printf ("Mismatched mesh on model %s\n",m->name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Qread (f, &numcommands, 4);
|
||||||
|
Qread (f, &numorder, 4);
|
||||||
|
Qread (f, commands, numcommands * sizeof(commands[0]));
|
||||||
|
Qread (f, vertexorder, numorder * sizeof(vertexorder[0]));
|
||||||
|
Qclose (f);
|
||||||
|
fCacheSynced = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (!fCacheSynced)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// build it from scratch
|
// build it from scratch
|
||||||
|
@ -343,6 +375,10 @@ void GL_MakeAliasModelDisplayLists (model_t *m, aliashdr_t *hdr)
|
||||||
|
|
||||||
if (f)
|
if (f)
|
||||||
{
|
{
|
||||||
|
byte sig[2];
|
||||||
|
memcpy(sig, "QF", sizeof("QF"));
|
||||||
|
Qwrite(f, sig, sizeof(sig));
|
||||||
|
Qwrite(f, &modelcrc, sizeof(modelcrc));
|
||||||
Qwrite(f, &numcommands, 4);
|
Qwrite(f, &numcommands, 4);
|
||||||
Qwrite(f, &numorder, 4);
|
Qwrite(f, &numorder, 4);
|
||||||
Qwrite(f, commands, numcommands * sizeof(commands[0]));
|
Qwrite(f, commands, numcommands * sizeof(commands[0]));
|
||||||
|
|
|
@ -26,6 +26,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "winquake.h"
|
#include "winquake.h"
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
#include <commctrl.h>
|
#include <commctrl.h>
|
||||||
|
#include "sys.h"
|
||||||
|
#include "vid.h"
|
||||||
|
#include "glquake.h"
|
||||||
|
#include "keys.h"
|
||||||
|
#include "screen.h"
|
||||||
|
#include "plugin.h"
|
||||||
|
|
||||||
#define MAX_MODE_LIST 30
|
#define MAX_MODE_LIST 30
|
||||||
#define VID_ROW_SIZE 3
|
#define VID_ROW_SIZE 3
|
||||||
|
@ -1575,6 +1581,10 @@ void VID_Init (unsigned char *palette)
|
||||||
HDC hdc;
|
HDC hdc;
|
||||||
DEVMODE devmode;
|
DEVMODE devmode;
|
||||||
|
|
||||||
|
plugin_load("input");
|
||||||
|
|
||||||
|
IN->Init();
|
||||||
|
|
||||||
S_Init();
|
S_Init();
|
||||||
|
|
||||||
memset(&devmode, 0, sizeof(devmode));
|
memset(&devmode, 0, sizeof(devmode));
|
||||||
|
|
|
@ -47,11 +47,11 @@
|
||||||
#include <sound.h>
|
#include <sound.h>
|
||||||
#include <cdaudio.h>
|
#include <cdaudio.h>
|
||||||
#include <keys.h>
|
#include <keys.h>
|
||||||
#include <menu.h>
|
|
||||||
#include <draw.h>
|
#include <draw.h>
|
||||||
#include <screen.h>
|
#include <screen.h>
|
||||||
#include <sbar.h>
|
#include <sbar.h>
|
||||||
#include <mathlib.h>
|
#include <mathlib.h>
|
||||||
|
#include <menu.h>
|
||||||
|
|
||||||
extern int host_hunklevel;
|
extern int host_hunklevel;
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#endif
|
#endif
|
||||||
#include <dinput.h>
|
#include <dinput.h>
|
||||||
//#include "dosisms.h"
|
//#include "dosisms.h"
|
||||||
|
#include "client.h"
|
||||||
|
#include <cmd.h>
|
||||||
|
#include <console.h>
|
||||||
|
#include <qargs.h>
|
||||||
|
#include <lib_replace.h>
|
||||||
|
#include <keys.h>
|
||||||
|
|
||||||
#define DINPUT_BUFFERSIZE 16
|
#define DINPUT_BUFFERSIZE 16
|
||||||
#define iDirectInputCreate(a,b,c,d) pDirectInputCreate(a,b,c,d)
|
#define iDirectInputCreate(a,b,c,d) pDirectInputCreate(a,b,c,d)
|
||||||
|
|
|
@ -23,9 +23,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "qtypes.h"
|
#include <qtypes.h>
|
||||||
#include "quakedef.h"
|
#include <quakedef.h>
|
||||||
#include "mathlib.h"
|
#include <mathlib.h>
|
||||||
#include "model.h"
|
#include "model.h"
|
||||||
|
|
||||||
void Sys_Error (char *error, ...);
|
void Sys_Error (char *error, ...);
|
||||||
|
|
|
@ -29,12 +29,17 @@
|
||||||
59 Temple Place - Suite 330
|
59 Temple Place - Suite 330
|
||||||
Boston, MA 02111-1307, USA.
|
Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#ifndef WIN32
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
#else
|
||||||
|
#define LIBDIR ""
|
||||||
|
#include "input.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <net.h>
|
#include <net.h>
|
||||||
|
@ -43,6 +48,10 @@
|
||||||
|
|
||||||
cvar_t drv_path = {"drv_path", ".:" LIBDIR "/quakeforge"};
|
cvar_t drv_path = {"drv_path", ".:" LIBDIR "/quakeforge"};
|
||||||
|
|
||||||
|
input_pi *IN;
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
|
|
||||||
void *_plugin_load(const char *filename)
|
void *_plugin_load(const char *filename)
|
||||||
{
|
{
|
||||||
void *h;
|
void *h;
|
||||||
|
@ -105,3 +114,30 @@ void plugin_unload(void *handle)
|
||||||
dlclose(handle);
|
dlclose(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
input_pi Winput;
|
||||||
|
int IN_Init();
|
||||||
|
void IN_Move(usercmd_t *);
|
||||||
|
void IN_Commands();
|
||||||
|
void Sys_SendKeyEvents();
|
||||||
|
void IN_Shutdown (void);
|
||||||
|
|
||||||
|
int plugin_load(char *filename)
|
||||||
|
{
|
||||||
|
IN = &Winput;
|
||||||
|
Winput.description = "Windows Input";
|
||||||
|
Winput.Init = IN_Init;
|
||||||
|
Winput.Move = IN_Move;
|
||||||
|
Winput.Commands = IN_Frame;
|
||||||
|
Winput.SendKeyEvents = IN_SendKeyEvents;
|
||||||
|
Winput.Shutdown = IN_Shutdown;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void plugin_unload(void *handle)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -26,6 +26,28 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include <net.h>
|
#include <net.h>
|
||||||
|
|
||||||
|
// Input plugin interface.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
void *handle;
|
||||||
|
char *filename;
|
||||||
|
char *description;
|
||||||
|
|
||||||
|
int (*Init)();
|
||||||
|
void (*Shutdown)();
|
||||||
|
void (*Commands)();
|
||||||
|
void (*SendKeyEvents)();
|
||||||
|
void (*Move)(usercmd_t *);
|
||||||
|
} input_pi;
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
#ifdef IN
|
||||||
|
#undef IN
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern input_pi *IN;
|
||||||
|
|
||||||
int plugin_load(char *filename);
|
int plugin_load(char *filename);
|
||||||
void plugin_unload(void *handle);
|
void plugin_unload(void *handle);
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <cmd.h>
|
#include <cmd.h>
|
||||||
#include <console.h>
|
#include <console.h>
|
||||||
#include <client.h>
|
#include <client.h>
|
||||||
|
#include "lib_replace.h"
|
||||||
|
|
||||||
usercmd_t nullcmd; // guarenteed to be zero
|
usercmd_t nullcmd; // guarenteed to be zero
|
||||||
|
|
||||||
|
@ -89,7 +90,7 @@ void COM_InitArgv (int argc, char **argv)
|
||||||
for (com_argc=0, len=0 ; com_argc < argc ; com_argc++)
|
for (com_argc=0, len=0 ; com_argc < argc ; com_argc++)
|
||||||
{
|
{
|
||||||
largv[com_argc] = argv[com_argc];
|
largv[com_argc] = argv[com_argc];
|
||||||
if (!Q_strcmp ("-safe", argv[com_argc]))
|
if ((argv[com_argc]) && !Q_strcmp ("-safe", argv[com_argc]))
|
||||||
safe = true;
|
safe = true;
|
||||||
len += strlen (argv[com_argc]) + 1;
|
len += strlen (argv[com_argc]) + 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <qtypes.h>
|
#include <qtypes.h>
|
||||||
#include <quakefs.h>
|
#include <quakefs.h>
|
||||||
|
@ -33,6 +35,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <zone.h>
|
#include <zone.h>
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <draw.h>
|
#include <draw.h>
|
||||||
|
#ifdef WIN32
|
||||||
|
#include <io.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
All of Quake's data access is through a hierchal file system, but the contents of the file system can be transparently merged from several sources.
|
All of Quake's data access is through a hierchal file system, but the contents of the file system can be transparently merged from several sources.
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "quakeio.h"
|
#include "quakeio.h"
|
||||||
|
#ifdef WIN32
|
||||||
|
#include <io.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
QFile *Qopen(const char *path, const char *mode)
|
QFile *Qopen(const char *path, const char *mode)
|
||||||
{
|
{
|
||||||
|
@ -53,6 +57,7 @@ QFile *Qdopen(int fd, const char *mode)
|
||||||
}
|
}
|
||||||
*p++=*mode;
|
*p++=*mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
*p=0;
|
*p=0;
|
||||||
|
|
||||||
file=calloc(sizeof(*file),1);
|
file=calloc(sizeof(*file),1);
|
||||||
|
@ -74,6 +79,9 @@ QFile *Qdopen(int fd, const char *mode)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef WIN32
|
||||||
|
_setmode(_fileno(file->file),_O_BINARY);
|
||||||
|
#endif
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,7 +137,7 @@ int Qprintf(QFile *file, const char *fmt, ...)
|
||||||
#else
|
#else
|
||||||
(void)vsprintf(buf, fmt, args);
|
(void)vsprintf(buf, fmt, args);
|
||||||
#endif
|
#endif
|
||||||
va_end(va);
|
va_end(args);
|
||||||
ret = strlen(buf); /* some *sprintf don't return the nb of bytes written */
|
ret = strlen(buf); /* some *sprintf don't return the nb of bytes written */
|
||||||
if (ret>0)
|
if (ret>0)
|
||||||
ret=gzwrite(file, buf, (unsigned)ret);
|
ret=gzwrite(file, buf, (unsigned)ret);
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#ifdef HAS_ZLIB
|
#ifdef HAS_ZLIB
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
|
#else
|
||||||
|
#include <nozip.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -26,6 +26,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "cvar.h"
|
#include "cvar.h"
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
#include "console.h"
|
#include "console.h"
|
||||||
|
#include "client.h"
|
||||||
|
|
||||||
cvar_t baseskin = {"baseskin", "base"};
|
cvar_t baseskin = {"baseskin", "base"};
|
||||||
cvar_t noskins = {"noskins", "0"};
|
cvar_t noskins = {"noskins", "0"};
|
||||||
|
@ -242,8 +243,10 @@ void Skin_NextDownload (void)
|
||||||
Skin_Find (sc);
|
Skin_Find (sc);
|
||||||
if (noskins.value)
|
if (noskins.value)
|
||||||
continue;
|
continue;
|
||||||
|
#ifndef UQUAKE
|
||||||
if (!CL_CheckOrDownloadFile(va("skins/%s.pcx", sc->skin->name)))
|
if (!CL_CheckOrDownloadFile(va("skins/%s.pcx", sc->skin->name)))
|
||||||
return; // started a download
|
return; // started a download
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
cls.downloadtype = dl_none;
|
cls.downloadtype = dl_none;
|
||||||
|
|
|
@ -25,6 +25,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
# include <mmsystem.h>
|
# include <mmsystem.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "qtypes.h"
|
||||||
|
#include "sound.h"
|
||||||
|
#include "qargs.h"
|
||||||
|
#include "console.h"
|
||||||
|
|
||||||
|
#include <sound.h>
|
||||||
|
|
||||||
#ifdef HAVE_DSOUND
|
#ifdef HAVE_DSOUND
|
||||||
#define iDirectSoundCreate(a,b,c) pDirectSoundCreate(a,b,c)
|
#define iDirectSoundCreate(a,b,c) pDirectSoundCreate(a,b,c)
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "d_local.h"
|
#include "d_local.h"
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
#include <mgraph.h>
|
#include <mgraph.h>
|
||||||
|
#include <screen.h>
|
||||||
|
#include <view.h>
|
||||||
|
#include <cmd.h>
|
||||||
|
#include <keys.h>
|
||||||
|
#include <cdaudio.h>
|
||||||
|
#include <lib_replace.h>
|
||||||
|
#include <sound.h>
|
||||||
|
#include <keys.h>
|
||||||
|
#include <cvar.h>
|
||||||
|
#include <menu.h>
|
||||||
|
#include <sys.h>
|
||||||
|
#include <lib_replace.h>
|
||||||
|
#include <draw.h>
|
||||||
|
#include <console.h>
|
||||||
|
#include <client.h>
|
||||||
|
#include <screen.h>
|
||||||
|
#include "plugin.h"
|
||||||
|
|
||||||
|
|
||||||
#ifndef CDS_FULLSCREEN
|
#ifndef CDS_FULLSCREEN
|
||||||
# define CDS_FULLSCREEN 0x00000004
|
# define CDS_FULLSCREEN 0x00000004
|
||||||
|
@ -2108,6 +2126,10 @@ void VID_Init (unsigned char *palette)
|
||||||
int basenummodes;
|
int basenummodes;
|
||||||
byte *ptmp;
|
byte *ptmp;
|
||||||
|
|
||||||
|
plugin_load("input");
|
||||||
|
|
||||||
|
IN->Init();
|
||||||
|
|
||||||
Cvar_RegisterVariable (&vid_mode);
|
Cvar_RegisterVariable (&vid_mode);
|
||||||
Cvar_RegisterVariable (&vid_wait);
|
Cvar_RegisterVariable (&vid_wait);
|
||||||
Cvar_RegisterVariable (&vid_nopageflip);
|
Cvar_RegisterVariable (&vid_nopageflip);
|
||||||
|
|
65
common/wad.c
65
common/wad.c
|
@ -27,6 +27,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "quakefs.h"
|
#include "quakefs.h"
|
||||||
#include "qendian.h"
|
#include "qendian.h"
|
||||||
#include "sys.h"
|
#include "sys.h"
|
||||||
|
#include "console.h"
|
||||||
|
|
||||||
int wad_numlumps;
|
int wad_numlumps;
|
||||||
lumpinfo_t *wad_lumps;
|
lumpinfo_t *wad_lumps;
|
||||||
|
@ -65,7 +66,59 @@ void W_CleanupName (char *in, char *out)
|
||||||
out[i] = 0;
|
out[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef QUAKEWORLD
|
||||||
|
/*
|
||||||
|
====================
|
||||||
|
W_OpenWadFile
|
||||||
|
====================
|
||||||
|
*/
|
||||||
|
wadfile_t * W_OpenWadFile (char *filename)
|
||||||
|
{
|
||||||
|
lumpinfo_t *lump_p;
|
||||||
|
wadinfo_t header;
|
||||||
|
unsigned i;
|
||||||
|
int infotableofs;
|
||||||
|
int wadhandle;
|
||||||
|
wadfile_t *wadfile = NULL;
|
||||||
|
|
||||||
|
wadfile = Hunk_Alloc (sizeof(wadfile_t));
|
||||||
|
if (!wadfile)
|
||||||
|
Sys_Error ("W_LoadWadFile: couldn't allocate wadfile.n");
|
||||||
|
|
||||||
|
if (Sys_FileOpenRead (filename, &wadhandle) == -1)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
Sys_FileRead(wadhandle, (void *)&header, sizeof(header));
|
||||||
|
|
||||||
|
|
||||||
|
if (header.identification[0] != 'W'
|
||||||
|
|| header.identification[1] != 'A'
|
||||||
|
|| header.identification[2] != 'D'
|
||||||
|
|| header.identification[3] != '2')
|
||||||
|
Sys_Error ("Wad file %s doesn't have WAD2 id\n",filename);
|
||||||
|
|
||||||
|
wadfile->wad_numlumps = LittleLong(header.numlumps);
|
||||||
|
infotableofs = LittleLong(header.infotableofs);
|
||||||
|
wadfile->wad_lumps = (lumpinfo_t *)Hunk_Alloc(sizeof(lumpinfo_t) * wadfile->wad_numlumps);
|
||||||
|
|
||||||
|
Sys_FileSeek (wadhandle, infotableofs);
|
||||||
|
Sys_FileRead (wadhandle, wadfile->wad_lumps, (sizeof(lumpinfo_t) * wadfile->wad_numlumps));
|
||||||
|
|
||||||
|
for (i=0, lump_p = wadfile->wad_lumps ; i<wadfile->wad_numlumps ; i++,lump_p++)
|
||||||
|
{
|
||||||
|
lump_p->filepos = LittleLong(lump_p->filepos);
|
||||||
|
lump_p->size = LittleLong(lump_p->size);
|
||||||
|
W_CleanupName (lump_p->name, lump_p->name);
|
||||||
|
if (lump_p->type == TYP_QPIC)
|
||||||
|
SwapPic ( (qpic_t *)(wadfile->wad_base + lump_p->filepos));
|
||||||
|
}
|
||||||
|
Con_Printf("Added WAD file %s.\n", filename);
|
||||||
|
wadfile->wad_handle = wadhandle;
|
||||||
|
return (wadfile);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
====================
|
====================
|
||||||
|
@ -79,6 +132,8 @@ void W_LoadWadFile (char *filename)
|
||||||
unsigned i;
|
unsigned i;
|
||||||
int infotableofs;
|
int infotableofs;
|
||||||
|
|
||||||
|
FILE *f = fopen("debug.log", "w");
|
||||||
|
|
||||||
wad_base = COM_LoadHunkFile (filename);
|
wad_base = COM_LoadHunkFile (filename);
|
||||||
if (!wad_base)
|
if (!wad_base)
|
||||||
Sys_Error ("W_LoadWadFile: couldn't load %s", filename);
|
Sys_Error ("W_LoadWadFile: couldn't load %s", filename);
|
||||||
|
@ -95,14 +150,19 @@ void W_LoadWadFile (char *filename)
|
||||||
infotableofs = LittleLong(header->infotableofs);
|
infotableofs = LittleLong(header->infotableofs);
|
||||||
wad_lumps = (lumpinfo_t *)(wad_base + infotableofs);
|
wad_lumps = (lumpinfo_t *)(wad_base + infotableofs);
|
||||||
|
|
||||||
|
|
||||||
for (i=0, lump_p = wad_lumps ; i<wad_numlumps ; i++,lump_p++)
|
for (i=0, lump_p = wad_lumps ; i<wad_numlumps ; i++,lump_p++)
|
||||||
{
|
{
|
||||||
lump_p->filepos = LittleLong(lump_p->filepos);
|
lump_p->filepos = LittleLong(lump_p->filepos);
|
||||||
lump_p->size = LittleLong(lump_p->size);
|
lump_p->size = LittleLong(lump_p->size);
|
||||||
W_CleanupName (lump_p->name, lump_p->name);
|
W_CleanupName (lump_p->name, lump_p->name);
|
||||||
|
fprintf(f, "%i: %s\n", i, lump_p->name);
|
||||||
if (lump_p->type == TYP_QPIC)
|
if (lump_p->type == TYP_QPIC)
|
||||||
SwapPic ( (qpic_t *)(wad_base + lump_p->filepos));
|
SwapPic ( (qpic_t *)(wad_base + lump_p->filepos));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,9 +176,9 @@ lumpinfo_t *W_GetLumpinfo (char *name)
|
||||||
int i;
|
int i;
|
||||||
lumpinfo_t *lump_p;
|
lumpinfo_t *lump_p;
|
||||||
char clean[16];
|
char clean[16];
|
||||||
|
|
||||||
W_CleanupName (name, clean);
|
W_CleanupName (name, clean);
|
||||||
|
|
||||||
for (lump_p=wad_lumps, i=0 ; i<wad_numlumps ; i++,lump_p++)
|
for (lump_p=wad_lumps, i=0 ; i<wad_numlumps ; i++,lump_p++)
|
||||||
{
|
{
|
||||||
if (!strcmp(clean, lump_p->name))
|
if (!strcmp(clean, lump_p->name))
|
||||||
|
@ -126,6 +186,7 @@ lumpinfo_t *W_GetLumpinfo (char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
Sys_Error ("W_GetLumpinfo: %s not found", name);
|
Sys_Error ("W_GetLumpinfo: %s not found", name);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
10
common/wad.h
10
common/wad.h
|
@ -67,6 +67,16 @@ typedef struct
|
||||||
char name[16]; // must be null terminated
|
char name[16]; // must be null terminated
|
||||||
} lumpinfo_t;
|
} lumpinfo_t;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int wad_numlumps;
|
||||||
|
lumpinfo_t *wad_lumps;
|
||||||
|
byte *wad_base;
|
||||||
|
int wad_handle;
|
||||||
|
}wadfile_t;
|
||||||
|
|
||||||
|
wadfile_t * W_OpenWadFile (char *filename);
|
||||||
|
|
||||||
extern int wad_numlumps;
|
extern int wad_numlumps;
|
||||||
extern lumpinfo_t *wad_lumps;
|
extern lumpinfo_t *wad_lumps;
|
||||||
extern byte *wad_base;
|
extern byte *wad_base;
|
||||||
|
|
|
@ -28,6 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "sbar.h"
|
#include "sbar.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "draw.h"
|
#include "draw.h"
|
||||||
|
#include <client.h>
|
||||||
|
|
||||||
extern byte *draw_chars; // 8*8 graphic characters
|
extern byte *draw_chars; // 8*8 graphic characters
|
||||||
|
|
||||||
|
|
|
@ -34,10 +34,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
#include "sbar.h"
|
#include "sbar.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "sound.h"
|
#include "sound.h"
|
||||||
|
#include <plugin.h>
|
||||||
|
#include "mathlib.h"
|
||||||
#include <input.h>
|
#include <input.h>
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
#include <client.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <input.h>
|
#include <input.h>
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
#include <mathlib.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
|
|
@ -24,9 +24,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "quakedef.h"
|
#include "quakedef.h"
|
||||||
#include "winquake.h"
|
#include "winquake.h"
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
#include "sys.h"
|
||||||
|
#include "screen.h"
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
#include <io.h>
|
||||||
|
|
||||||
#define MINIMUM_WIN_MEMORY 0x0c00000
|
#define MINIMUM_WIN_MEMORY 0x0c00000
|
||||||
#define MAXIMUM_WIN_MEMORY 0x1000000
|
#define MAXIMUM_WIN_MEMORY 0x1000000
|
||||||
|
@ -78,6 +82,140 @@ FILE IO
|
||||||
===============================================================================
|
===============================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
===============================================================================
|
||||||
|
|
||||||
|
FILE IO
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MAX_HANDLES 10
|
||||||
|
FILE *sys_handles[MAX_HANDLES];
|
||||||
|
|
||||||
|
int findhandle (void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i=1 ; i<MAX_HANDLES ; i++)
|
||||||
|
if (!sys_handles[i])
|
||||||
|
return i;
|
||||||
|
Sys_Error ("out of handles");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================
|
||||||
|
filelength
|
||||||
|
================
|
||||||
|
*/
|
||||||
|
int wfilelength (FILE *f)
|
||||||
|
{
|
||||||
|
int pos;
|
||||||
|
int end;
|
||||||
|
int t;
|
||||||
|
|
||||||
|
t = VID_ForceUnlockedAndReturnState ();
|
||||||
|
|
||||||
|
pos = ftell (f);
|
||||||
|
fseek (f, 0, SEEK_END);
|
||||||
|
end = ftell (f);
|
||||||
|
fseek (f, pos, SEEK_SET);
|
||||||
|
|
||||||
|
VID_ForceLockState (t);
|
||||||
|
|
||||||
|
return end;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Sys_FileOpenRead (char *path, int *hndl)
|
||||||
|
{
|
||||||
|
FILE *f;
|
||||||
|
int i, retval;
|
||||||
|
int t;
|
||||||
|
|
||||||
|
t = VID_ForceUnlockedAndReturnState ();
|
||||||
|
|
||||||
|
i = findhandle ();
|
||||||
|
|
||||||
|
f = fopen(path, "rb");
|
||||||
|
|
||||||
|
if (!f)
|
||||||
|
{
|
||||||
|
*hndl = -1;
|
||||||
|
retval = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sys_handles[i] = f;
|
||||||
|
*hndl = i;
|
||||||
|
retval = wfilelength(f);
|
||||||
|
}
|
||||||
|
|
||||||
|
VID_ForceLockState (t);
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Sys_FileOpenWrite (char *path)
|
||||||
|
{
|
||||||
|
FILE *f;
|
||||||
|
int i;
|
||||||
|
int t;
|
||||||
|
|
||||||
|
t = VID_ForceUnlockedAndReturnState ();
|
||||||
|
|
||||||
|
i = findhandle ();
|
||||||
|
|
||||||
|
f = fopen(path, "wb");
|
||||||
|
if (!f)
|
||||||
|
Sys_Error ("Error opening %s: %s", path,strerror(errno));
|
||||||
|
sys_handles[i] = f;
|
||||||
|
|
||||||
|
VID_ForceLockState (t);
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sys_FileClose (int handle)
|
||||||
|
{
|
||||||
|
int t;
|
||||||
|
|
||||||
|
t = VID_ForceUnlockedAndReturnState ();
|
||||||
|
fclose (sys_handles[handle]);
|
||||||
|
sys_handles[handle] = NULL;
|
||||||
|
VID_ForceLockState (t);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sys_FileSeek (int handle, int position)
|
||||||
|
{
|
||||||
|
int t;
|
||||||
|
|
||||||
|
t = VID_ForceUnlockedAndReturnState ();
|
||||||
|
fseek (sys_handles[handle], position, SEEK_SET);
|
||||||
|
VID_ForceLockState (t);
|
||||||
|
}
|
||||||
|
|
||||||
|
int Sys_FileRead (int handle, void *dest, int count)
|
||||||
|
{
|
||||||
|
int t, x;
|
||||||
|
|
||||||
|
t = VID_ForceUnlockedAndReturnState ();
|
||||||
|
x = fread (dest, 1, count, sys_handles[handle]);
|
||||||
|
VID_ForceLockState (t);
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Sys_FileWrite (int handle, void *data, int count)
|
||||||
|
{
|
||||||
|
int t, x;
|
||||||
|
|
||||||
|
t = VID_ForceUnlockedAndReturnState ();
|
||||||
|
x = fwrite (data, 1, count, sys_handles[handle]);
|
||||||
|
VID_ForceLockState (t);
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/*
|
/*
|
||||||
================
|
================
|
||||||
|
@ -106,6 +244,13 @@ SYSTEM IO
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
*/
|
*/
|
||||||
|
/*void MaskExceptions (void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sys_SetFPCW (void)
|
||||||
|
{
|
||||||
|
}*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
================
|
================
|
||||||
|
@ -438,7 +583,7 @@ void Sys_Sleep (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Sys_SendKeyEvents (void)
|
void IN_SendKeyEvents (void)
|
||||||
{
|
{
|
||||||
MSG msg;
|
MSG msg;
|
||||||
|
|
||||||
|
@ -616,12 +761,12 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
// yield the CPU for a little while when paused, minimized, or not the focus
|
// yield the CPU for a little while when paused, minimized, or not the focus
|
||||||
if ((cl.paused && (!ActiveApp && !DDActive)) || Minimized || block_drawing)
|
/* if ((cl.paused && (!ActiveApp && !DDActive)) || Minimized || block_drawing)
|
||||||
{
|
{
|
||||||
SleepUntilInput (PAUSE_SLEEP);
|
SleepUntilInput (PAUSE_SLEEP);
|
||||||
scr_skipupdate = 1; // no point in bothering to draw
|
scr_skipupdate = 1; // no point in bothering to draw
|
||||||
}
|
}
|
||||||
else if (!ActiveApp && !DDActive)
|
else*/ if (!ActiveApp && !DDActive)
|
||||||
{
|
{
|
||||||
SleepUntilInput (NOT_FOCUS_SLEEP);
|
SleepUntilInput (NOT_FOCUS_SLEEP);
|
||||||
}
|
}
|
||||||
|
@ -636,3 +781,33 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================
|
||||||
|
SV_Error
|
||||||
|
|
||||||
|
Sends a datagram to all the clients informing them of the server crash,
|
||||||
|
then exits
|
||||||
|
================
|
||||||
|
*/
|
||||||
|
void SV_Error (char *error, ...)
|
||||||
|
{
|
||||||
|
va_list argptr;
|
||||||
|
static char string[1024];
|
||||||
|
static qboolean inerror = false;
|
||||||
|
|
||||||
|
if (inerror)
|
||||||
|
Sys_Error ("SV_Error: recursively entered (%s)", string);
|
||||||
|
|
||||||
|
inerror = true;
|
||||||
|
|
||||||
|
va_start (argptr, error);
|
||||||
|
vsnprintf (string, sizeof(string), error, argptr);
|
||||||
|
va_end (argptr);
|
||||||
|
|
||||||
|
Con_Printf ("SV_Error: %s\n",string);
|
||||||
|
|
||||||
|
//SV_FinalMessage (va("server crashed: %s\n", string));
|
||||||
|
|
||||||
|
|
||||||
|
Sys_Error ("SV_Error: %s\n",string);
|
||||||
|
}
|
||||||
|
|
|
@ -71,16 +71,16 @@ BEGIN
|
||||||
167,28
|
167,28
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_PROGRESS DIALOGEX 0, 0, 333, 75
|
IDD_PROGRESS DIALOGEX 0, 0, 335, 75
|
||||||
STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP |
|
STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP |
|
||||||
WS_VISIBLE
|
WS_VISIBLE
|
||||||
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE
|
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE
|
||||||
FONT 8, "MS Sans Serif", 0, 0, 0x1
|
FONT 8, "MS Sans Serif"
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Creating 15 bit inverse palette. This is only done once, so just be patient for the next 30-60 seconds.",
|
LTEXT "Creating 15 bit inverse palette. This is only done once, so just be patient for the next 30-60 seconds.",
|
||||||
IDC_STATIC,7,51,319,10
|
IDC_STATIC,7,51,319,10
|
||||||
CONTROL 112,IDC_STATIC,"Static",SS_BITMAP | SS_REALSIZEIMAGE,0,0,
|
CONTROL 112,IDC_STATIC,"Static",SS_BITMAP | SS_REALSIZEIMAGE,0,0,
|
||||||
333,49
|
335,49
|
||||||
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",0x0,7,61,
|
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",0x0,7,61,
|
||||||
319,11
|
319,11
|
||||||
END
|
END
|
||||||
|
@ -91,7 +91,7 @@ END
|
||||||
// Bitmap
|
// Bitmap
|
||||||
//
|
//
|
||||||
|
|
||||||
IDB_QWBITMAP BITMAP DISCARDABLE "quakeworld.bmp"
|
IDB_QWBITMAP BITMAP DISCARDABLE "qwcl.bmp"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
|
@ -117,7 +117,7 @@ END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_STRING1 "WinQuake"
|
IDS_STRING1 "QuakeForge"
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // English (U.S.) resources
|
#endif // English (U.S.) resources
|
||||||
|
|
|
@ -38,6 +38,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#ifdef HAVE_SYS_IOCTL_H
|
#ifdef HAVE_SYS_IOCTL_H
|
||||||
|
|
|
@ -33,6 +33,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <protocol.h>
|
#include <protocol.h>
|
||||||
#include <server.h>
|
#include <server.h>
|
||||||
#include <mathlib.h>
|
#include <mathlib.h>
|
||||||
|
#include <quakedef.h>
|
||||||
|
#include <quakedef.h>
|
||||||
|
|
||||||
model_t *loadmodel;
|
model_t *loadmodel;
|
||||||
char loadname[32]; // for hunk tags
|
char loadname[32]; // for hunk tags
|
||||||
|
|
|
@ -25,6 +25,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#ifdef HAVE_STRINGS_H
|
#ifdef HAVE_STRINGS_H
|
||||||
#include <strings.h>
|
#include <strings.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include "sys.h"
|
||||||
|
|
||||||
|
|
||||||
#include <quakedef.h>
|
#include <quakedef.h>
|
||||||
#include <qtypes.h>
|
#include <qtypes.h>
|
||||||
|
@ -722,7 +724,7 @@ void SVC_DirectConnect (void)
|
||||||
if (newcl->spectator)
|
if (newcl->spectator)
|
||||||
Con_Printf ("Spectator %s connected\n", newcl->name);
|
Con_Printf ("Spectator %s connected\n", newcl->name);
|
||||||
else
|
else
|
||||||
Con_DPrintf ("Client %s connected\n", newcl->name);
|
Con_Printf ("Client %s connected\n", newcl->name);
|
||||||
newcl->sendinfo = true;
|
newcl->sendinfo = true;
|
||||||
|
|
||||||
// QuakeForge stuff.
|
// QuakeForge stuff.
|
||||||
|
|
|
@ -21,10 +21,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/timeb.h>
|
#include <sys/timeb.h>
|
||||||
#include "qwsvdef.h"
|
//#include "qwsvdef.h"
|
||||||
#include <winsock.h>
|
#include <winsock.h>
|
||||||
#include <conio.h>
|
#include <conio.h>
|
||||||
|
|
||||||
|
#include "quakedef.h"
|
||||||
|
#include <qtypes.h>
|
||||||
|
#include <sys.h>
|
||||||
|
#include <common.h>
|
||||||
|
#include <lib_replace.h>
|
||||||
|
#include <client.h>
|
||||||
|
|
||||||
|
|
||||||
extern cvar_t sys_nostdout;
|
extern cvar_t sys_nostdout;
|
||||||
|
|
||||||
|
|
|
@ -36,9 +36,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <sound.h>
|
#include <sound.h>
|
||||||
#include <screen.h>
|
#include <screen.h>
|
||||||
#include <menu.h>
|
#include <menu.h>
|
||||||
|
#include <mathlib.h>
|
||||||
#include <input.h>
|
#include <input.h>
|
||||||
#include <plugin.h>
|
#include <plugin.h>
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -29,6 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <sys.h>
|
#include <sys.h>
|
||||||
#include <mathlib.h>
|
#include <mathlib.h>
|
||||||
#include <console.h>
|
#include <console.h>
|
||||||
|
#include <quakefs.h>
|
||||||
|
|
||||||
model_t *loadmodel;
|
model_t *loadmodel;
|
||||||
char loadname[32]; // for hunk tags
|
char loadname[32]; // for hunk tags
|
||||||
|
@ -351,6 +352,48 @@ model_t *Mod_ForName (char *name, qboolean crash)
|
||||||
|
|
||||||
byte *mod_base;
|
byte *mod_base;
|
||||||
|
|
||||||
|
int Mod_LoadExternalTexture(int number, char *texturename)
|
||||||
|
{
|
||||||
|
int j, pixels;
|
||||||
|
miptex_t *mt;
|
||||||
|
texture_t *tx;
|
||||||
|
char texturepathname[1024];
|
||||||
|
if (texturename[0] == '\0')
|
||||||
|
return (0);
|
||||||
|
|
||||||
|
sprintf(texturepathname, "/id1/gfx/%s", texturename);
|
||||||
|
|
||||||
|
mt = (miptex_t *)COM_LoadHunkFile(texturepathname);
|
||||||
|
|
||||||
|
if (!mt)
|
||||||
|
{
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
mt->width = LittleLong (mt->width);
|
||||||
|
mt->height = LittleLong (mt->height);
|
||||||
|
for (j=0 ; j<MIPLEVELS ; j++)
|
||||||
|
mt->offsets[j] = LittleLong (mt->offsets[j]);
|
||||||
|
|
||||||
|
if ( (mt->width & 15) || (mt->height & 15) )
|
||||||
|
Sys_Error ("Texture %s is not 16 aligned", mt->name);
|
||||||
|
pixels = mt->width*mt->height/64*85;
|
||||||
|
tx = Hunk_AllocName (sizeof(texture_t) +pixels, loadname );
|
||||||
|
loadmodel->textures[number] = tx;
|
||||||
|
|
||||||
|
memcpy (tx->name, mt->name, sizeof(tx->name));
|
||||||
|
|
||||||
|
tx->width = mt->width;
|
||||||
|
tx->height = mt->height;
|
||||||
|
for (j=0 ; j<MIPLEVELS ; j++)
|
||||||
|
tx->offsets[j] = mt->offsets[j] + sizeof(texture_t) - sizeof(miptex_t);
|
||||||
|
// the pixels immediately follow the structures
|
||||||
|
memcpy ( tx+1, mt+1, pixels);
|
||||||
|
|
||||||
|
if (!Q_strncmp(mt->name,"sky",3))
|
||||||
|
R_InitSky (tx);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
|
@ -386,6 +429,12 @@ void Mod_LoadTextures (lump_t *l)
|
||||||
mt = (miptex_t *)((byte *)m + m->dataofs[i]);
|
mt = (miptex_t *)((byte *)m + m->dataofs[i]);
|
||||||
mt->width = LittleLong (mt->width);
|
mt->width = LittleLong (mt->width);
|
||||||
mt->height = LittleLong (mt->height);
|
mt->height = LittleLong (mt->height);
|
||||||
|
if (mt->height == -1 && mt->width == -1)
|
||||||
|
{
|
||||||
|
if (Mod_LoadExternalTexture(i, mt->name));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
for (j=0 ; j<MIPLEVELS ; j++)
|
for (j=0 ; j<MIPLEVELS ; j++)
|
||||||
mt->offsets[j] = LittleLong (mt->offsets[j]);
|
mt->offsets[j] = LittleLong (mt->offsets[j]);
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "quakedef.h"
|
#include "quakedef.h"
|
||||||
#include "winquake.h"
|
#include "winquake.h"
|
||||||
|
|
||||||
|
#include "net_loop.h"
|
||||||
|
#include "net_dgrm.h"
|
||||||
|
#include "net_ser.h"
|
||||||
|
#include "lib_replace.h"
|
||||||
|
#include "console.h"
|
||||||
|
#include "sys.h"
|
||||||
|
|
||||||
extern cvar_t hostname;
|
extern cvar_t hostname;
|
||||||
|
|
||||||
#define MAXHOSTNAMELEN 256
|
#define MAXHOSTNAMELEN 256
|
||||||
|
|
|
@ -24,6 +24,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "winquake.h"
|
#include "winquake.h"
|
||||||
#include <wsipx.h>
|
#include <wsipx.h>
|
||||||
#include "net_wipx.h"
|
#include "net_wipx.h"
|
||||||
|
#include "net.h"
|
||||||
|
#include "console.h"
|
||||||
|
#include "lib_replace.h"
|
||||||
|
#include "sys.h"
|
||||||
|
|
||||||
extern cvar_t hostname;
|
extern cvar_t hostname;
|
||||||
|
|
||||||
|
|
|
@ -38,9 +38,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <lib_replace.h>
|
#include <lib_replace.h>
|
||||||
#include <menu.h>
|
#include <menu.h>
|
||||||
#include <view.h>
|
#include <view.h>
|
||||||
|
#include <mathlib.h>
|
||||||
#include <input.h>
|
#include <input.h>
|
||||||
#include <plugin.h>
|
#include <plugin.h>
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -23,6 +23,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "quakedef.h"
|
#include "quakedef.h"
|
||||||
#include "winquake.h"
|
#include "winquake.h"
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
#include "sys.h"
|
||||||
|
#include "screen.h"
|
||||||
|
#include "qargs.h"
|
||||||
|
#include "console.h"
|
||||||
|
#include "lib_replace.h"
|
||||||
|
#include "conproc.h"
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
@ -62,6 +69,20 @@ void Sys_PopFPCW (void);
|
||||||
volatile int sys_checksum;
|
volatile int sys_checksum;
|
||||||
|
|
||||||
|
|
||||||
|
void Sys_DebugLog(char *file, char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list argptr;
|
||||||
|
static char data[1024];
|
||||||
|
int fd;
|
||||||
|
|
||||||
|
va_start(argptr, fmt);
|
||||||
|
vsnprintf(data, sizeof(data), fmt, argptr);
|
||||||
|
va_end(argptr);
|
||||||
|
fd = open(file, O_WRONLY | O_CREAT | O_APPEND, 0666);
|
||||||
|
write(fd, data, strlen(data));
|
||||||
|
close(fd);
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
================
|
================
|
||||||
Sys_PageIn
|
Sys_PageIn
|
||||||
|
@ -110,13 +131,12 @@ int findhandle (void)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
/*
|
/*
|
||||||
================
|
================
|
||||||
filelength
|
filelength
|
||||||
================
|
================
|
||||||
*/
|
*/
|
||||||
int filelength (QFile *f)
|
int wfilelength (QFile *f)
|
||||||
{
|
{
|
||||||
int pos;
|
int pos;
|
||||||
int end;
|
int end;
|
||||||
|
@ -133,7 +153,6 @@ int filelength (QFile *f)
|
||||||
|
|
||||||
return end;
|
return end;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
int Sys_FileOpenRead (char *path, int *hndl)
|
int Sys_FileOpenRead (char *path, int *hndl)
|
||||||
{
|
{
|
||||||
|
@ -156,7 +175,7 @@ int Sys_FileOpenRead (char *path, int *hndl)
|
||||||
{
|
{
|
||||||
sys_handles[i] = f;
|
sys_handles[i] = f;
|
||||||
*hndl = i;
|
*hndl = i;
|
||||||
retval = filelength(f);
|
retval = wfilelength(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
VID_ForceLockState (t);
|
VID_ForceLockState (t);
|
||||||
|
@ -246,11 +265,9 @@ void Sys_MakeCodeWriteable (unsigned long startaddr, unsigned long length)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef _M_IX86
|
#if 0
|
||||||
|
|
||||||
|
|
||||||
void Sys_SetFPCW (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void Sys_PushFPCW_SetHigh (void)
|
void Sys_PushFPCW_SetHigh (void)
|
||||||
{
|
{
|
||||||
|
@ -260,9 +277,6 @@ void Sys_PopFPCW (void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void MaskExceptions (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -601,7 +615,7 @@ void Sys_Sleep (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Sys_SendKeyEvents (void)
|
void IN_SendKeyEvents (void)
|
||||||
{
|
{
|
||||||
MSG msg;
|
MSG msg;
|
||||||
|
|
||||||
|
@ -832,12 +846,12 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// yield the CPU for a little while when paused, minimized, or not the focus
|
// yield the CPU for a little while when paused, minimized, or not the focus
|
||||||
if ((cl.paused && (!ActiveApp && !DDActive)) || Minimized || block_drawing)
|
/*if ((cl.paused && (!ActiveApp && !DDActive)) || Minimized || block_drawing)
|
||||||
{
|
{
|
||||||
SleepUntilInput (PAUSE_SLEEP);
|
SleepUntilInput (PAUSE_SLEEP);
|
||||||
scr_skipupdate = 1; // no point in bothering to draw
|
scr_skipupdate = 1; // no point in bothering to draw
|
||||||
}
|
}
|
||||||
else if (!ActiveApp && !DDActive)
|
else */if (!ActiveApp && !DDActive)
|
||||||
{
|
{
|
||||||
SleepUntilInput (NOT_FOCUS_SLEEP);
|
SleepUntilInput (NOT_FOCUS_SLEEP);
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,12 +61,12 @@ IDI_ICON2 ICON DISCARDABLE "quake.ico"
|
||||||
// Dialog
|
// Dialog
|
||||||
//
|
//
|
||||||
|
|
||||||
IDD_DIALOG1 DIALOGEX 0, 0, 62, 21
|
IDD_DIALOG1 DIALOGEX 0, 0, 72, 21
|
||||||
STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP
|
STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP
|
||||||
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE
|
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE
|
||||||
FONT 16, "Times New Roman", 0, 0, 0x1
|
FONT 16, "Times New Roman"
|
||||||
BEGIN
|
BEGIN
|
||||||
CTEXT "Starting Quake...",IDC_STATIC,4,6,54,8
|
CTEXT "Starting QuakeForge...",IDC_STATIC,4,6,64,8
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_PROGRESS DIALOGEX 0, 0, 333, 45
|
IDD_PROGRESS DIALOGEX 0, 0, 333, 45
|
||||||
|
@ -79,7 +79,7 @@ BEGIN
|
||||||
IDC_STATIC,7,19,319,10
|
IDC_STATIC,7,19,319,10
|
||||||
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",0x0,7,29,
|
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",0x0,7,29,
|
||||||
319,11
|
319,11
|
||||||
LTEXT "Starting Quake...",IDC_STATIC,7,4,54,8
|
LTEXT "Starting QuakeForge...",IDC_STATIC,7,4,72,8
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ BEGIN
|
||||||
IDD_DIALOG1, DIALOG
|
IDD_DIALOG1, DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
LEFTMARGIN, 4
|
LEFTMARGIN, 4
|
||||||
RIGHTMARGIN, 58
|
RIGHTMARGIN, 68
|
||||||
TOPMARGIN, 6
|
TOPMARGIN, 6
|
||||||
BOTTOMMARGIN, 16
|
BOTTOMMARGIN, 16
|
||||||
HORZGUIDE, 6
|
HORZGUIDE, 6
|
||||||
|
@ -111,7 +111,7 @@ END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_STRING1 "WinQuake"
|
IDS_STRING1 "QuakeForge"
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // English (U.S.) resources
|
#endif // English (U.S.) resources
|
||||||
|
|
Loading…
Reference in a new issue