mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2025-02-07 15:41:03 +00:00
Sledge hammer applied..
The input stuff is now somewhat modular, I'll get everything working soon enough, right now things are hardwired to svgalib, but its ok..
This commit is contained in:
parent
8b8d089502
commit
0e8ba8d814
16 changed files with 549 additions and 230 deletions
|
@ -19,7 +19,8 @@ mandir := @mandir@
|
||||||
|
|
||||||
TARGET_DIR := $(PROJECT_ODIR)/targets
|
TARGET_DIR := $(PROJECT_ODIR)/targets
|
||||||
BUILD_DIR := $(TARGET_DIR)/common
|
BUILD_DIR := $(TARGET_DIR)/common
|
||||||
OBJ_PATTERN := $(BUILD_DIR)/sound_lib/%.o $(BUILD_DIR)/common_lib/%.o
|
OBJ_PATTERN := $(BUILD_DIR)/sound_lib/%.o $(BUILD_DIR)/common_lib/%.o \
|
||||||
|
$(BUILD_DIR)/input_libs/%.o
|
||||||
|
|
||||||
SOUND_LIB := sound_lib.a
|
SOUND_LIB := sound_lib.a
|
||||||
|
|
||||||
|
@ -59,6 +60,10 @@ else
|
||||||
OPTFLAGS = -g
|
OPTFLAGS = -g
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(HAS_SVGA),yes)
|
||||||
|
IN_SVGALIB_LIB := in_svgalib.so
|
||||||
|
endif
|
||||||
|
|
||||||
lib_targets = $(SOUND_LIB) $(CD_LIB) $(COMMON_LIB)
|
lib_targets = $(SOUND_LIB) $(CD_LIB) $(COMMON_LIB)
|
||||||
targets = $(lib_targets)
|
targets = $(lib_targets)
|
||||||
CLEAN_TARGETS = $(patsubst %,clean-%, $(targets))
|
CLEAN_TARGETS = $(patsubst %,clean-%, $(targets))
|
||||||
|
@ -142,7 +147,7 @@ $(OBJ_PATTERN): $(SRC_DIR)/%.s
|
||||||
# Specific target rules
|
# Specific target rules
|
||||||
#
|
#
|
||||||
|
|
||||||
# Lib Software targets
|
# Sound lib targets..
|
||||||
|
|
||||||
SOUND_LIB_OBJS = $(patsubst %,$(BUILD_DIR)/sound_lib/%,$(addsuffix \
|
SOUND_LIB_OBJS = $(patsubst %,$(BUILD_DIR)/sound_lib/%,$(addsuffix \
|
||||||
.@OBJEXT@, $(basename $(SOUND_SRC) .c .s)))
|
.@OBJEXT@, $(basename $(SOUND_SRC) .c .s)))
|
||||||
|
@ -157,6 +162,21 @@ $(TARGET_DIR)/sound_lib.a: $(SOUND_LIB_OBJS)
|
||||||
ar cru $@ $(SOUND_LIB_OBJS)
|
ar cru $@ $(SOUND_LIB_OBJS)
|
||||||
@RANLIB@ $@
|
@RANLIB@ $@
|
||||||
|
|
||||||
|
# Input lib targets..
|
||||||
|
|
||||||
|
ifneq ($(IN_SVGALIB_LIB),)
|
||||||
|
|
||||||
|
IN_SVGALIB_OBJS = $(BUILD_DIR)/input_libs/in_svgalib.@OBJEXT@
|
||||||
|
|
||||||
|
in_svgalib_DIR:
|
||||||
|
@DIR=input_libs; $(MAKE_SURE_DIR)
|
||||||
|
|
||||||
|
$(IN_SVGALIB_LIB): in_svgalib_DIR $(TARGET_DIR)/$(IN_SVGALIB_LIB)
|
||||||
|
|
||||||
|
$(TARGET_DIR)/$(IN_SVGALIB_LIB): $(IN_SVGALIB_OBJS)
|
||||||
|
$(CC) $(CFLAGS) $(LDFLAGS) -lvga -shared -rdynamic -o $@ $(IN_SVGALIB_OBJS)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
#
|
#
|
||||||
|
|
|
@ -33,7 +33,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <console.h>
|
#include <console.h>
|
||||||
#include <net.h>
|
#include <net.h>
|
||||||
#include <protocol.h>
|
#include <protocol.h>
|
||||||
#include <input.h>
|
#include <plugin.h>
|
||||||
|
|
||||||
cvar_t cl_nodelta = {"cl_nodelta","0"};
|
cvar_t cl_nodelta = {"cl_nodelta","0"};
|
||||||
|
|
||||||
|
@ -437,7 +437,7 @@ void CL_SendCmd (void)
|
||||||
CL_BaseMove (cmd);
|
CL_BaseMove (cmd);
|
||||||
|
|
||||||
// allow mice or other external controllers to add to the move
|
// allow mice or other external controllers to add to the move
|
||||||
IN_Move (cmd);
|
IN->Move (cmd);
|
||||||
|
|
||||||
// if we are spectator, try autocam
|
// if we are spectator, try autocam
|
||||||
if (cl.spectator)
|
if (cl.spectator)
|
||||||
|
|
|
@ -361,8 +361,11 @@ void CL_Connect_f (void)
|
||||||
{
|
{
|
||||||
char *server;
|
char *server;
|
||||||
|
|
||||||
if (Cmd_Argc() != 2)
|
Con_Printf("Cmd_Argc(): %d\n", Cmd_Argc());
|
||||||
{
|
Con_Printf("Args: ");
|
||||||
|
Cmd_Echo_f();
|
||||||
|
|
||||||
|
if (Cmd_Argc() != 2) {
|
||||||
Con_Printf ("usage: connect <server>\n");
|
Con_Printf ("usage: connect <server>\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1397,7 +1400,8 @@ void CL_SendCmd (void)
|
||||||
CL_BaseMove (&cmd);
|
CL_BaseMove (&cmd);
|
||||||
|
|
||||||
// allow mice or other external controllers to add to the move
|
// allow mice or other external controllers to add to the move
|
||||||
IN_Move (&cmd);
|
//(*IN_Move) (&cmd);
|
||||||
|
IN->Move(&cmd);
|
||||||
|
|
||||||
// send the unreliable message
|
// send the unreliable message
|
||||||
CL_SendMove (&cmd);
|
CL_SendMove (&cmd);
|
||||||
|
|
|
@ -119,5 +119,6 @@ void Cmd_ForwardToServer (void);
|
||||||
// so when they are typed in at the console, they will need to be forwarded.
|
// so when they are typed in at the console, they will need to be forwarded.
|
||||||
|
|
||||||
void Cmd_StuffCmds_f (void);
|
void Cmd_StuffCmds_f (void);
|
||||||
|
void Cmd_Echo_f (void);
|
||||||
|
|
||||||
#endif // _CMD_H
|
#endif // _CMD_H
|
||||||
|
|
|
@ -641,7 +641,7 @@ skipwhite:
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse single characters
|
// parse single characters
|
||||||
if (c=='{' || c=='}'|| c==')'|| c=='(' || c=='\'' || c==':')
|
if (c=='{' || c=='}'|| c==')'|| c=='(' || c=='\'')
|
||||||
{
|
{
|
||||||
com_token[len] = c;
|
com_token[len] = c;
|
||||||
len++;
|
len++;
|
||||||
|
@ -656,7 +656,7 @@ skipwhite:
|
||||||
data++;
|
data++;
|
||||||
len++;
|
len++;
|
||||||
c = *data;
|
c = *data;
|
||||||
if (c=='{' || c=='}'|| c==')'|| c=='(' || c=='\'' || c==':')
|
if (c=='{' || c=='}'|| c==')'|| c=='(' || c=='\'')
|
||||||
break;
|
break;
|
||||||
} while (c>32);
|
} while (c>32);
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <draw.h>
|
#include <draw.h>
|
||||||
#include <cmd.h>
|
#include <cmd.h>
|
||||||
#include <sys.h>
|
#include <sys.h>
|
||||||
|
#include <plugin.h>
|
||||||
|
|
||||||
int con_ormask;
|
int con_ormask;
|
||||||
console_t con_main;
|
console_t con_main;
|
||||||
|
@ -674,7 +675,7 @@ void Con_NotifyBox (char *text)
|
||||||
{
|
{
|
||||||
t1 = Sys_DoubleTime ();
|
t1 = Sys_DoubleTime ();
|
||||||
SCR_UpdateScreen ();
|
SCR_UpdateScreen ();
|
||||||
Sys_SendKeyEvents ();
|
IN->SendKeyEvents ();
|
||||||
t2 = Sys_DoubleTime ();
|
t2 = Sys_DoubleTime ();
|
||||||
realtime += t2-t1; // make the cursor blink
|
realtime += t2-t1; // make the cursor blink
|
||||||
} while (key_count < 0);
|
} while (key_count < 0);
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
|
|
||||||
|
#include <plugin.h>
|
||||||
#include <net.h>
|
#include <net.h>
|
||||||
#include <console.h>
|
#include <console.h>
|
||||||
#include <quakedef.h>
|
#include <quakedef.h>
|
||||||
|
@ -252,10 +253,10 @@ Host_FrameMain ( float time )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// get new key events
|
// get new key events
|
||||||
Sys_SendKeyEvents ();
|
IN->SendKeyEvents ();
|
||||||
|
|
||||||
// allow mice or other external controllers to add commands
|
// allow mice or other external controllers to add commands
|
||||||
IN_Commands ();
|
IN->Commands ();
|
||||||
|
|
||||||
// process console commands
|
// process console commands
|
||||||
Cbuf_Execute ();
|
Cbuf_Execute ();
|
||||||
|
@ -578,8 +579,9 @@ Host_Init ( quakeparms_t *parms)
|
||||||
if (!host_colormap)
|
if (!host_colormap)
|
||||||
Sys_Error ("Couldn't load gfx/colormap.lmp");
|
Sys_Error ("Couldn't load gfx/colormap.lmp");
|
||||||
|
|
||||||
|
plugin_load("./in_svgalib.so");
|
||||||
|
IN->Init();
|
||||||
VID_Init(host_basepal);
|
VID_Init(host_basepal);
|
||||||
IN_Init();
|
|
||||||
Draw_Init();
|
Draw_Init();
|
||||||
SCR_Init();
|
SCR_Init();
|
||||||
R_Init();
|
R_Init();
|
||||||
|
@ -640,7 +642,8 @@ Host_Shutdown( void )
|
||||||
CDAudio_Shutdown ();
|
CDAudio_Shutdown ();
|
||||||
NET_Shutdown ();
|
NET_Shutdown ();
|
||||||
S_Shutdown();
|
S_Shutdown();
|
||||||
IN_Shutdown ();
|
IN->Shutdown();
|
||||||
|
plugin_unload(IN->handle);
|
||||||
|
|
||||||
#if QUAKEWORLD
|
#if QUAKEWORLD
|
||||||
if (host_basepal) {
|
if (host_basepal) {
|
||||||
|
|
|
@ -39,6 +39,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <vga.h>
|
#include <vga.h>
|
||||||
#include <vgakeyboard.h>
|
#include <vgakeyboard.h>
|
||||||
#include <vgamouse.h>
|
#include <vgamouse.h>
|
||||||
|
#include <plugin.h>
|
||||||
|
|
||||||
|
|
||||||
static int UseKeyboard = 1;
|
static int UseKeyboard = 1;
|
||||||
|
@ -67,36 +68,7 @@ static cvar_t mouse_button_commands[3] =
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
static void keyhandler(int scancode, int state)
|
||||||
static void
|
|
||||||
vtswitch(int newconsole)
|
|
||||||
{
|
|
||||||
int fd;
|
|
||||||
struct vt_stat x;
|
|
||||||
|
|
||||||
/* switch consoles and wait until reactivated */
|
|
||||||
fd = open("/dev/console", O_RDONLY);
|
|
||||||
ioctl(fd, VT_GETSTATE, &x);
|
|
||||||
ioctl(fd, VT_ACTIVATE, newconsole);
|
|
||||||
ioctl(fd, VT_WAITACTIVE, x.v_active);
|
|
||||||
close(fd);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
matchmouse(int mouse, char *name)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i=0 ; i < NUM_MICE ; i++) {
|
|
||||||
if (!strcmp(mice[i].name, name)) return i;
|
|
||||||
}
|
|
||||||
return mouse;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
keyhandler(int scancode, int state)
|
|
||||||
{
|
{
|
||||||
int sc;
|
int sc;
|
||||||
|
|
||||||
|
@ -123,14 +95,13 @@ static void mousehandler(int buttonstate, int dx, int dy, int dz, int drx, int d
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void Force_CenterView_f(void)
|
||||||
Force_CenterView_f(void)
|
|
||||||
{
|
{
|
||||||
cl.viewangles[PITCH] = 0;
|
cl.viewangles[PITCH] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void IN_Init(void)
|
void S_IN_Init(void)
|
||||||
{
|
{
|
||||||
if (COM_CheckParm("-nokbd")) UseKeyboard = 0;
|
if (COM_CheckParm("-nokbd")) UseKeyboard = 0;
|
||||||
if (COM_CheckParm("-nomouse")) UseMouse = 0;
|
if (COM_CheckParm("-nomouse")) UseMouse = 0;
|
||||||
|
@ -302,8 +273,7 @@ static void IN_init_mouse()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void S_IN_Shutdown(void)
|
||||||
IN_Shutdown(void)
|
|
||||||
{
|
{
|
||||||
if (UseMouse) mouse_close();
|
if (UseMouse) mouse_close();
|
||||||
if (UseKeyboard) keyboard_close();
|
if (UseKeyboard) keyboard_close();
|
||||||
|
@ -311,8 +281,7 @@ IN_Shutdown(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void S_IN_SendKeyEvents(void)
|
||||||
Sys_SendKeyEvents(void)
|
|
||||||
{
|
{
|
||||||
if (!in_svgalib_inited) return;
|
if (!in_svgalib_inited) return;
|
||||||
|
|
||||||
|
@ -322,8 +291,7 @@ Sys_SendKeyEvents(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void S_IN_Commands(void)
|
||||||
IN_Commands(void)
|
|
||||||
{
|
{
|
||||||
#ifdef QUAKEWORLD
|
#ifdef QUAKEWORLD
|
||||||
if (UseMouse)
|
if (UseMouse)
|
||||||
|
@ -362,8 +330,7 @@ IN_Commands(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void S_IN_Move(usercmd_t *cmd)
|
||||||
IN_Move(usercmd_t *cmd)
|
|
||||||
{
|
{
|
||||||
if (!UseMouse) return;
|
if (!UseMouse) return;
|
||||||
|
|
||||||
|
@ -412,3 +379,20 @@ IN_Move(usercmd_t *cmd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input_pi svgalib_ip =
|
||||||
|
{
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
"svgalib input module",
|
||||||
|
S_IN_Init,
|
||||||
|
S_IN_Shutdown,
|
||||||
|
S_IN_Commands,
|
||||||
|
S_IN_SendKeyEvents,
|
||||||
|
S_IN_Move,
|
||||||
|
};
|
||||||
|
|
||||||
|
input_pi *get_input_plugin_info()
|
||||||
|
{
|
||||||
|
return &svgalib_ip;
|
||||||
|
}
|
||||||
|
|
|
@ -21,18 +21,3 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
// input.h -- external (non-keyboard) input devices
|
// input.h -- external (non-keyboard) input devices
|
||||||
|
|
||||||
void IN_Init (void);
|
|
||||||
|
|
||||||
void IN_Shutdown (void);
|
|
||||||
|
|
||||||
void IN_Commands (void);
|
|
||||||
// oportunity for devices to stick commands on the script buffer
|
|
||||||
|
|
||||||
void IN_Move (usercmd_t *cmd);
|
|
||||||
// add additional movement on top of the keyboard move cmd
|
|
||||||
|
|
||||||
void IN_ModeChanged (void);
|
|
||||||
// called whenever screen dimensions change
|
|
||||||
|
|
||||||
void IN_ClearStates (void);
|
|
||||||
// restores all button and position states to defaults
|
|
||||||
|
|
166
common/keys.c
166
common/keys.c
|
@ -255,103 +255,97 @@ void Key_Console (int key)
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case KP_ENTER:
|
case KP_ENTER:
|
||||||
case K_ENTER:
|
case K_ENTER:
|
||||||
// backslash text are commands, else chat
|
// backslash text are commands, else chat
|
||||||
if (key_lines[edit_line][1] == '\\' || key_lines[edit_line][1] == '/')
|
if (key_lines[edit_line][1] == '\\' || key_lines[edit_line][1] == '/')
|
||||||
Cbuf_AddText (key_lines[edit_line]+2); // skip the >
|
Cbuf_AddText (key_lines[edit_line]+2); // skip the >
|
||||||
else if (CheckForCommand())
|
else if (CheckForCommand())
|
||||||
Cbuf_AddText (key_lines[edit_line]+1); // valid command
|
Cbuf_AddText (key_lines[edit_line]+1); // valid command
|
||||||
else
|
else { // convert to a chat message
|
||||||
{ // convert to a chat message
|
if (cls.state >= ca_connected)
|
||||||
if (cls.state >= ca_connected)
|
Cbuf_AddText ("say ");
|
||||||
Cbuf_AddText ("say ");
|
Cbuf_AddText (key_lines[edit_line]+1); // skip the >
|
||||||
Cbuf_AddText (key_lines[edit_line]+1); // skip the >
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Cbuf_AddText ("\n");
|
Cbuf_AddText ("\n");
|
||||||
Con_Printf ("%s\n",key_lines[edit_line]);
|
Con_Printf ("%s\n",key_lines[edit_line]);
|
||||||
edit_line = (edit_line + 1) & 31;
|
edit_line = (edit_line + 1) & 31;
|
||||||
history_line = edit_line;
|
history_line = edit_line;
|
||||||
key_lines[edit_line][0] = ']';
|
key_lines[edit_line][0] = ']';
|
||||||
key_linepos = 1;
|
key_linepos = 1;
|
||||||
if (cls.state == ca_disconnected)
|
if (cls.state == ca_disconnected)
|
||||||
SCR_UpdateScreen (); // force an update, because the command
|
SCR_UpdateScreen (); // force an update, because the command
|
||||||
// may take some time
|
// may take some time
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case K_TAB:
|
case K_TAB:
|
||||||
// command completion
|
// command completion
|
||||||
CompleteCommand ();
|
CompleteCommand ();
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case K_BACKSPACE:
|
case K_BACKSPACE:
|
||||||
case KP_LEFTARROW:
|
case KP_LEFTARROW:
|
||||||
case K_LEFTARROW:
|
case K_LEFTARROW:
|
||||||
if (key_linepos > 1)
|
if (key_linepos > 1)
|
||||||
key_linepos--;
|
key_linepos--;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case KP_UPARROW:
|
case KP_UPARROW:
|
||||||
case K_UPARROW:
|
case K_UPARROW:
|
||||||
do
|
do {
|
||||||
{
|
history_line = (history_line - 1) & 31;
|
||||||
history_line = (history_line - 1) & 31;
|
} while (history_line != edit_line
|
||||||
} while (history_line != edit_line
|
&& !key_lines[history_line][1]);
|
||||||
&& !key_lines[history_line][1]);
|
if (history_line == edit_line)
|
||||||
if (history_line == edit_line)
|
history_line = (edit_line+1)&31;
|
||||||
history_line = (edit_line+1)&31;
|
|
||||||
Q_strcpy(key_lines[edit_line], key_lines[history_line]);
|
|
||||||
key_linepos = Q_strlen(key_lines[edit_line]);
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case KP_DOWNARROW:
|
|
||||||
case K_DOWNARROW:
|
|
||||||
if (history_line == edit_line) return;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
history_line = (history_line + 1) & 31;
|
|
||||||
}
|
|
||||||
while (history_line != edit_line
|
|
||||||
&& !key_lines[history_line][1]);
|
|
||||||
if (history_line == edit_line)
|
|
||||||
{
|
|
||||||
key_lines[edit_line][0] = ']';
|
|
||||||
key_linepos = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Q_strcpy(key_lines[edit_line], key_lines[history_line]);
|
Q_strcpy(key_lines[edit_line], key_lines[history_line]);
|
||||||
key_linepos = Q_strlen(key_lines[edit_line]);
|
key_linepos = Q_strlen(key_lines[edit_line]);
|
||||||
}
|
return;
|
||||||
return;
|
break;
|
||||||
break;
|
case KP_DOWNARROW:
|
||||||
|
case K_DOWNARROW:
|
||||||
|
if (history_line == edit_line) return;
|
||||||
|
do {
|
||||||
|
history_line = (history_line + 1) & 31;
|
||||||
|
} while (history_line != edit_line
|
||||||
|
&& !key_lines[history_line][1]);
|
||||||
|
|
||||||
|
if (history_line == edit_line) {
|
||||||
|
key_lines[edit_line][0] = ']';
|
||||||
|
key_linepos = 1;
|
||||||
|
} else {
|
||||||
|
Q_strcpy(key_lines[edit_line], key_lines[history_line]);
|
||||||
|
key_linepos = Q_strlen(key_lines[edit_line]);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
break;
|
||||||
case K_MWHEELUP:
|
case K_MWHEELUP:
|
||||||
case KP_PGUP:
|
case KP_PGUP:
|
||||||
case K_PGUP:
|
case K_PGUP:
|
||||||
con->display -= 2;
|
con->display -= 2;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case K_MWHEELDOWN:
|
case K_MWHEELDOWN:
|
||||||
case KP_PGDN:
|
case KP_PGDN:
|
||||||
case K_PGDN:
|
case K_PGDN:
|
||||||
con->display += 2;
|
con->display += 2;
|
||||||
if (con->display > con->current)
|
if (con->display > con->current)
|
||||||
con->display = con->current;
|
con->display = con->current;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case KP_HOME:
|
case KP_HOME:
|
||||||
case K_HOME:
|
case K_HOME:
|
||||||
con->display = con->current - con_totallines + 10;
|
con->display = con->current - con_totallines + 10;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case KP_END:
|
case KP_END:
|
||||||
case K_END:
|
case K_END:
|
||||||
con->display = con->current;
|
con->display = con->current;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
@ -780,18 +774,18 @@ void Key_Event (int key, qboolean down)
|
||||||
return;
|
return;
|
||||||
switch (key_dest)
|
switch (key_dest)
|
||||||
{
|
{
|
||||||
case key_message:
|
case key_message:
|
||||||
Key_Message (key);
|
Key_Message (key);
|
||||||
break;
|
break;
|
||||||
case key_menu:
|
case key_menu:
|
||||||
M_Keydown (key);
|
M_Keydown (key);
|
||||||
break;
|
break;
|
||||||
case key_game:
|
case key_game:
|
||||||
case key_console:
|
case key_console:
|
||||||
M_ToggleMenu_f ();
|
M_ToggleMenu_f ();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Sys_Error ("Bad key_dest");
|
Sys_Error ("Bad key_dest");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -386,11 +386,7 @@ typedef struct usercmd_s
|
||||||
{
|
{
|
||||||
byte msec;
|
byte msec;
|
||||||
vec3_t angles;
|
vec3_t angles;
|
||||||
#ifdef UQUAKE
|
|
||||||
float forwardmove, sidemove, upmove;
|
|
||||||
#elif QUAKEWORLD
|
|
||||||
short forwardmove, sidemove, upmove;
|
short forwardmove, sidemove, upmove;
|
||||||
#endif
|
|
||||||
byte buttons;
|
byte buttons;
|
||||||
byte impulse;
|
byte impulse;
|
||||||
#ifdef QUAKE2
|
#ifdef QUAKE2
|
||||||
|
|
|
@ -35,7 +35,7 @@ void Sys_FileClose (int handle);
|
||||||
void Sys_FileSeek (int handle, int position);
|
void Sys_FileSeek (int handle, int position);
|
||||||
int Sys_FileRead (int handle, void *dest, int count);
|
int Sys_FileRead (int handle, void *dest, int count);
|
||||||
int Sys_FileWrite (int handle, void *data, int count);
|
int Sys_FileWrite (int handle, void *data, int count);
|
||||||
int Sys_FileTime (char *path);
|
int Sys_FileTime (char *path);
|
||||||
void Sys_mkdir (char *path);
|
void Sys_mkdir (char *path);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -61,11 +61,6 @@ double Sys_DoubleTime (void);
|
||||||
char *Sys_ConsoleInput (void);
|
char *Sys_ConsoleInput (void);
|
||||||
|
|
||||||
void Sys_Sleep (void);
|
void Sys_Sleep (void);
|
||||||
// called to yield for a little bit so as
|
|
||||||
// not to hog cpu when paused or debugging
|
|
||||||
|
|
||||||
void Sys_SendKeyEvents (void);
|
|
||||||
// Perform Key_Event () callbacks until the input que is empty
|
|
||||||
|
|
||||||
void Sys_LowFPPrecision (void);
|
void Sys_LowFPPrecision (void);
|
||||||
void Sys_HighFPPrecision (void);
|
void Sys_HighFPPrecision (void);
|
||||||
|
|
16
configure.in
16
configure.in
|
@ -105,10 +105,6 @@ AC_ARG_ENABLE(ipv6,
|
||||||
NET_SOURCE=net_udp.c
|
NET_SOURCE=net_udp.c
|
||||||
)
|
)
|
||||||
|
|
||||||
AC_ARG_ENABLE(alsa,
|
|
||||||
[ --enable-alsa enable alsa support],
|
|
||||||
)
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(zlib,
|
AC_ARG_ENABLE(zlib,
|
||||||
[ --disable-zlib disable zlib support],
|
[ --disable-zlib disable zlib support],
|
||||||
)
|
)
|
||||||
|
@ -126,7 +122,7 @@ fi
|
||||||
|
|
||||||
dnl Check for dlopen
|
dnl Check for dlopen
|
||||||
if test "x$ac_cv_func_dlopen" = "xno"; then
|
if test "x$ac_cv_func_dlopen" = "xno"; then
|
||||||
AC_CHECK_LIB(dl, dlopen, DYN_LIBS="$DYN_LIBS -ldl"
|
AC_CHECK_LIB(dl, dlopen, LIBS="$LIBS -ldl"
|
||||||
have_dynload=yes
|
have_dynload=yes
|
||||||
AC_DEFINE(HAVE_DLOPEN))
|
AC_DEFINE(HAVE_DLOPEN))
|
||||||
else
|
else
|
||||||
|
@ -548,17 +544,15 @@ AC_CHECK_LIB(mme,waveOutOpen,HAVE_LIBMME=yes)
|
||||||
SOUND_LIBS=""
|
SOUND_LIBS=""
|
||||||
SOUND_STYLE=""
|
SOUND_STYLE=""
|
||||||
AC_MSG_CHECKING(for sound support)
|
AC_MSG_CHECKING(for sound support)
|
||||||
if test "x$enable_alsa" = "xyes"; then
|
if test -z "$SOUND_STYLE" -a "x$ac_cv_header_sys_asoundlib_h" = "xyes"; then
|
||||||
if test -z "$SOUND_STYLE" -a "x$ac_cv_header_sys_asoundlib_h" = "xyes"; then
|
AC_EGREP_CPP([QF_maGiC_VALUE],[
|
||||||
AC_EGREP_CPP([QF_maGiC_VALUE],[
|
|
||||||
#include <sys/asoundlib.h>
|
#include <sys/asoundlib.h>
|
||||||
#if defined(SND_LIB_MAJOR) && defined(SND_LIB_MINOR)
|
#if defined(SND_LIB_MAJOR) && defined(SND_LIB_MINOR)
|
||||||
#if SND_LIB_MAJOR>0 || (SND_LIB_MAJOR==0 && SND_LIB_MINOR>=5)
|
#if SND_LIB_MAJOR>0 || (SND_LIB_MAJOR==0 && SND_LIB_MINOR>=5)
|
||||||
QF_maGiC_VALUE
|
QF_maGiC_VALUE
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
],[ SOUND_STYLE="ALSA" SOUND_LIBS="-lasound"])
|
],[ SOUND_STYLE="ALSA" SOUND_LIBS="-lasound"])
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -z "$SOUND_STYLE" -a "x$ac_cv_header_sys_soundcard_h" = "xyes"; then
|
if test -z "$SOUND_STYLE" -a "x$ac_cv_header_sys_soundcard_h" = "xyes"; then
|
||||||
|
@ -783,7 +777,7 @@ AC_SUBST(SDL_CFLAGS)
|
||||||
AC_SUBST(SDL_LIBS)
|
AC_SUBST(SDL_LIBS)
|
||||||
AC_SUBST(SOUND_STYLE)
|
AC_SUBST(SOUND_STYLE)
|
||||||
AC_SUBST(SOUND_LIBS)
|
AC_SUBST(SOUND_LIBS)
|
||||||
AC_SUBST(DYN_LIBS)
|
AC_SUBST(LIBS)
|
||||||
AC_SUBST(INTEL_ARCH)
|
AC_SUBST(INTEL_ARCH)
|
||||||
AC_SUBST(NO_ASMOPT)
|
AC_SUBST(NO_ASMOPT)
|
||||||
AC_SUBST(NET_LIBS)
|
AC_SUBST(NET_LIBS)
|
||||||
|
|
|
@ -6,9 +6,10 @@
|
||||||
PROJECT_DIR := @top_srcdir@
|
PROJECT_DIR := @top_srcdir@
|
||||||
PROJECT_ODIR := ..
|
PROJECT_ODIR := ..
|
||||||
SRC_DIR := @srcdir@
|
SRC_DIR := @srcdir@
|
||||||
|
QW_COMMON_DIR := $(PROJECT_DIR)/qw_common
|
||||||
COMMON_DIR := $(PROJECT_DIR)/common
|
COMMON_DIR := $(PROJECT_DIR)/common
|
||||||
COMMON_ODIR := $(PROJECT_ODIR)/common
|
COMMON_ODIR := $(PROJECT_ODIR)/common
|
||||||
BIN_PREFIX := common
|
BIN_PREFIX := qw-client
|
||||||
|
|
||||||
DESTDIR :=
|
DESTDIR :=
|
||||||
|
|
||||||
|
@ -18,15 +19,18 @@ bindir := @bindir@
|
||||||
mandir := @mandir@
|
mandir := @mandir@
|
||||||
|
|
||||||
TARGET_DIR := $(PROJECT_ODIR)/targets
|
TARGET_DIR := $(PROJECT_ODIR)/targets
|
||||||
BUILD_DIR := $(TARGET_DIR)/common
|
BUILD_DIR := $(TARGET_DIR)/qw_client
|
||||||
OBJ_PATTERN := $(BUILD_DIR)/sound_lib/%.o $(BUILD_DIR)/common_lib/%.o
|
OBJ_PATTERN := $(BUILD_DIR)/common_lib/%.@OBJEXT@ \
|
||||||
|
$(BUILD_DIR)/%.@OBJEXT@
|
||||||
|
DEP_PATTERN := $(BUILD_DIR)/%.d $(BUILD_DIR)/common_lib/%.d
|
||||||
|
GL_OBJ_PATTERN := $(BUILD_DIR)/gl/%.@OBJEXT@
|
||||||
|
GL_DEP_PATTERN := $(BUILD_DIR)/gl/%.d
|
||||||
|
|
||||||
SOUND_LIB := sound_lib.a
|
LDFLAGS = @LDFLAGS@ @SOUND_LIBS@ @NET_LIBS@ -lm -rdynamic
|
||||||
|
|
||||||
LDFLAGS = @LDFLAGS@ -lm
|
|
||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
INTEL_ARCH = @INTEL_ARCH@
|
INTEL_ARCH = @INTEL_ARCH@
|
||||||
|
NO_ASMOPT = @NO_ASMOPT@
|
||||||
|
|
||||||
ifneq ($(SRC_DIR),.)
|
ifneq ($(SRC_DIR),.)
|
||||||
SRC_DIR_INC = -I$(SRC_DIR)
|
SRC_DIR_INC = -I$(SRC_DIR)
|
||||||
|
@ -51,6 +55,40 @@ MAKE_SURE_DIR = if test -d "$(BUILD_DIR)/$$DIR"; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
#
|
||||||
|
# Client targets
|
||||||
|
#
|
||||||
|
|
||||||
|
COMMON_LIB=common_lib.a
|
||||||
|
|
||||||
|
ifeq ($(HAS_SVGA),yes)
|
||||||
|
SVGAQUAKE = $(BIN_PREFIX)-svga
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(HAS_GGI),yes)
|
||||||
|
GGIQUAKE = $(BIN_PREFIX)-ggi
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(HAS_SDL),yes)
|
||||||
|
SDLQUAKE = $(BIN_PREFIX)-sdl
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(HAS_X11),yes)
|
||||||
|
X11QUAKE = $(BIN_PREFIX)-x11
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(HAS_MGL),yes)
|
||||||
|
MGLQUAKE = $(BIN_PREFIX)-mgl
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(HAS_OGL),yes)
|
||||||
|
GLQUAKE =$(BIN_PREFIX)-gl
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(HAS_TDFXGL),yes)
|
||||||
|
TDFXQUAKE= $(BIN_PREFIX)-3dfx
|
||||||
|
endif
|
||||||
|
|
||||||
RELEASE = @RELEASE@
|
RELEASE = @RELEASE@
|
||||||
ifeq ($(RELEASE),yes)
|
ifeq ($(RELEASE),yes)
|
||||||
|
@ -59,10 +97,13 @@ else
|
||||||
OPTFLAGS = -g
|
OPTFLAGS = -g
|
||||||
endif
|
endif
|
||||||
|
|
||||||
lib_targets = $(SOUND_LIB) $(CD_LIB) $(COMMON_LIB)
|
soft_targets = $(SVGAQUAKE) $(GGIQUAKE) $(SDLQUAKE) $(X11QUAKE) $(MGLQUAKE)
|
||||||
targets = $(lib_targets)
|
gl_targets = $(GLQUAKE) $(TDFXQUAKE)
|
||||||
|
lib_targets = $(COMMON_LIB)
|
||||||
|
targets = $(lib_targets) $(soft_targets) $(gl_targets)
|
||||||
CLEAN_TARGETS = $(patsubst %,clean-%, $(targets))
|
CLEAN_TARGETS = $(patsubst %,clean-%, $(targets))
|
||||||
.PHONY: $(targets) $(CLEAN_TARGETS)
|
.PHONY: $(targets) $(CLEAN_TARGETS) clean-soft clean-gl clean-common_lib \
|
||||||
|
clean-client
|
||||||
|
|
||||||
all: $(targets)
|
all: $(targets)
|
||||||
########################################################################
|
########################################################################
|
||||||
|
@ -70,51 +111,71 @@ all: $(targets)
|
||||||
# Source files
|
# Source files
|
||||||
#
|
#
|
||||||
|
|
||||||
ifeq ($(INTEL_ARCH),yes)
|
ifneq ($(NO_ASMOPT),yes)
|
||||||
|
|
||||||
# Source file the Intel archictecture only
|
# Source file the Intel archictecture only
|
||||||
|
|
||||||
SOUND_SRC += snd_mixa.s
|
CFLAGS = -Did386=1
|
||||||
|
CL_ADDITIONAL_GENERAL_SRC = sys_dosa.s math.s worlda.s
|
||||||
|
SWREND_SRC_PLAT = d_draw.s d_draw16.s d_parta.s d_polysa.s d_scana.s \
|
||||||
|
d_spr8.s d_varsa.s r_aclipa.s r_aliasa.s \
|
||||||
|
r_drawa.s r_edgea.s r_varsa.s surf16.s surf8.s
|
||||||
else
|
else
|
||||||
|
|
||||||
# Source files for non-Intel platforms
|
# Source files for non-Intel platforms
|
||||||
|
|
||||||
|
CFLAGS = -Did386=0
|
||||||
|
SWREND_SRC_PLAT = nonintel.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# System specific source files
|
# System specific source files
|
||||||
|
|
||||||
CD_AUDIO_SRC = cd_wrapper.c
|
CD_AUDIO_SRC = cd_wrapper.c
|
||||||
|
|
||||||
# Sound source
|
SYS_SRC = sys_common.c @QW_CL_SYS_SRC@
|
||||||
|
|
||||||
SOUND_STYLE = @SOUND_STYLE@
|
|
||||||
|
|
||||||
ifeq ($(SOUND_STYLE),ALSA)
|
|
||||||
SOUND_SRC += snd_dma.c snd_alsa.c
|
|
||||||
endif
|
|
||||||
ifeq ($(SOUND_STYLE),OSS)
|
|
||||||
SOUND_SRC += snd_dma.c snd_oss.c
|
|
||||||
endif
|
|
||||||
ifeq ($(SOUND_STYLE),Solaris)
|
|
||||||
SOUND_SRC += snd_dma.c snd_sun.c
|
|
||||||
endif
|
|
||||||
ifeq ($(SOUND_STYLE),MME)
|
|
||||||
SOUND_SRC += snd_dma.c snd_mme.c
|
|
||||||
endif
|
|
||||||
ifeq ($(SOUND_STYLE),Windows)
|
|
||||||
SOUND_SRC += snd_dma.c snd_win.c
|
|
||||||
endif
|
|
||||||
ifeq ($(SOUND_STYLE),NULL)
|
|
||||||
SOUND_SRC += snd_null.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
SOUND_SRC += snd_mem.c snd_mix.c
|
|
||||||
|
|
||||||
# Networking source files
|
# Networking source files
|
||||||
#
|
|
||||||
# Uncomment the second line to add IPv6 support
|
|
||||||
|
|
||||||
QW_NET_SRC = net_udp.c net_com.c mdfour.c
|
QW_NET_SRC = @NET_SOURCE@ net_com.c mdfour.c
|
||||||
#QW_NET_SRC = net_udp6.c net_com.c mdfour.c
|
|
||||||
|
# Common source files
|
||||||
|
|
||||||
|
MISC_SRC = common.c crc.c cvar.c cmd.c mathlib.c register_check.c \
|
||||||
|
wad.c zone.c cvars.c qendian.c lib_replace.c quakefs.c \
|
||||||
|
quakeio.c qargs.c plugin.c
|
||||||
|
|
||||||
|
# GL renderer source
|
||||||
|
|
||||||
|
GL_REND_SRC = gl_screen.c gl_model.c gl_draw.c gl_mesh.c gl_refrag.c \
|
||||||
|
gl_rlight.c gl_rmain.c gl_rmisc.c gl_rsurf.c gl_warp.c \
|
||||||
|
nonintel.c gl_ngraph.c gl_view.c gl_rpart.c gl_cl_parse.c
|
||||||
|
|
||||||
|
# Software renderer source
|
||||||
|
|
||||||
|
SW_REND_SRC = screen.c $(SWREND_SRC_PLAT) draw.c \
|
||||||
|
d_edge.c d_fill.c d_init.c d_modech.c d_part.c d_polyse.c d_scan.c \
|
||||||
|
d_sky.c d_sprite.c d_surf.c d_vars.c d_zpoint.c r_aclip.c r_alias.c \
|
||||||
|
r_bsp.c r_draw.c r_edge.c r_efrag.c r_light.c r_main.c r_misc.c \
|
||||||
|
r_sky.c r_sprite.c r_surf.c r_vars.c sw_view.c sw_rpart.c sw_cl_parse.c
|
||||||
|
|
||||||
|
# Client source files
|
||||||
|
|
||||||
|
CL_SRC = cl_demo.c cl_input.c cl_main.c cl_parse.c cl_tent.c
|
||||||
|
QW_CL_SRC = cl_cam.c cl_ents.c cl_pred.c host.c world.c
|
||||||
|
CL_GUI_SRC= console.c sbar.c view.c keys.c menu.c
|
||||||
|
|
||||||
|
# Server source files
|
||||||
|
|
||||||
|
SRV_SRC = sv_main.c sv_user.c sv_move.c sv_phys.c
|
||||||
|
QW_SRV_SRC = sv_ccmds.c sv_ents.c sv_init.c sv_send.c sv_nchan.c world.c
|
||||||
|
SRV_PR_SRC = pr_cmds.c pr_edict.c pr_exec.c
|
||||||
|
|
||||||
|
|
||||||
|
QW_GENERAL_SRC = pmove.c pmovetst.c
|
||||||
|
|
||||||
|
# Source common to QW/UQuake
|
||||||
|
CL_COMMON_SRC = $(MISC_SRC) $(CL_GUI_SRC) $(CL_SRC) \
|
||||||
|
$(CL_ADDITIONAL_GENERAL_SRC) $(CD_AUDIO_SRC) r_part.c
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
|
@ -122,9 +183,59 @@ QW_NET_SRC = net_udp.c net_com.c mdfour.c
|
||||||
# Directory specific stuff
|
# Directory specific stuff
|
||||||
#
|
#
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
CFLAGS = @CFLAGS@ $(OPTFLAGS) $(DEFS) -I. \
|
CFLAGS += @CFLAGS@ -DQUAKEWORLD $(OPTFLAGS) $(DEFS) -I. \
|
||||||
$(SRC_DIR_INC) -I$(COMMON_ODIR) -I$(COMMON_DIR)
|
$(SRC_DIR_INC) -I$(QW_COMMON_DIR) -I$(COMMON_ODIR) -I$(COMMON_DIR)
|
||||||
|
|
||||||
|
GENERAL_SRC = $(CL_COMMON_SRC) \
|
||||||
|
$(QW_CL_SRC) $(QW_NET_SRC) net_chan.c skin.c \
|
||||||
|
$(SYS_SRC) $(QW_GENERAL_SRC)
|
||||||
|
|
||||||
|
# FIXME: add dos/win specifc source
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
#
|
||||||
|
# Dependency Rules
|
||||||
|
#
|
||||||
|
|
||||||
|
$(DEP_PATTERN): $(SRC_DIR)/%.c
|
||||||
|
set -e; $(CC) -M $(CFLAGS) $< \
|
||||||
|
| sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \
|
||||||
|
[ -s $@ ] || rm -f $@
|
||||||
|
|
||||||
|
$(DEP_PATTERN): $(SRC_DIR)/%.s
|
||||||
|
set -e; $(CC) -M $(CFLAGS) -x assembler-with-cpp $< \
|
||||||
|
| sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \
|
||||||
|
[ -s $@ ] || rm -f $@
|
||||||
|
|
||||||
|
$(DEP_PATTERN): $(COMMON_DIR)/%.c
|
||||||
|
set -e; $(CC) -M $(CFLAGS) $< \
|
||||||
|
| sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \
|
||||||
|
[ -s $@ ] || rm -f $@
|
||||||
|
|
||||||
|
$(DEP_PATTERN): $(COMMON_DIR)/%.s
|
||||||
|
set -e; $(CC) -M $(CFLAGS) -x assembler-with-cpp $< \
|
||||||
|
| sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \
|
||||||
|
[ -s $@ ] || rm -f $@
|
||||||
|
|
||||||
|
$(DEP_PATTERN): $(QW_COMMON_DIR)/%.c
|
||||||
|
set -e; $(CC) -M $(CFLAGS) $< \
|
||||||
|
| sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \
|
||||||
|
[ -s $@ ] || rm -f $@
|
||||||
|
|
||||||
|
$(DEP_PATTERN): $(QW_COMMON_DIR)/%.s
|
||||||
|
set -e; $(CC) -M $(CFLAGS) -x assembler-with-cpp $< \
|
||||||
|
| sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \
|
||||||
|
[ -s $@ ] || rm -f $@
|
||||||
|
|
||||||
|
$(GL_DEP_PATTERN): $(COMMON_DIR)/%.c
|
||||||
|
set -e; $(CC) -M $(CFLAGS) $(GL_CFLAGS) $< \
|
||||||
|
| sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \
|
||||||
|
[ -s $@ ] || rm -f $@
|
||||||
|
|
||||||
|
$(GL_DEP_PATTERN): $(COMMON_DIR)/%.s
|
||||||
|
set -e; $(CC) -M $(CFLAGS) $(GL_CFLAGS) -x assembler-with-cpp $< \
|
||||||
|
| sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \
|
||||||
|
[ -s $@ ] || rm -f $@
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
#
|
#
|
||||||
|
@ -137,26 +248,254 @@ $(OBJ_PATTERN): $(SRC_DIR)/%.c
|
||||||
$(OBJ_PATTERN): $(SRC_DIR)/%.s
|
$(OBJ_PATTERN): $(SRC_DIR)/%.s
|
||||||
$(CC) $(CFLAGS) -x assembler-with-cpp -o $@ -c $<
|
$(CC) $(CFLAGS) -x assembler-with-cpp -o $@ -c $<
|
||||||
|
|
||||||
|
$(OBJ_PATTERN): $(COMMON_DIR)/%.c
|
||||||
|
$(CC) $(CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(OBJ_PATTERN): $(COMMON_DIR)/%.s
|
||||||
|
$(CC) $(CFLAGS) -x assembler-with-cpp -o $@ -c $<
|
||||||
|
|
||||||
|
$(OBJ_PATTERN): $(QW_COMMON_DIR)/%.c
|
||||||
|
$(CC) $(CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(OBJ_PATTERN): $(QW_COMMON_DIR)/%.s
|
||||||
|
$(CC) $(CFLAGS) -x assembler-with-cpp -o $@ -c $<
|
||||||
|
|
||||||
|
$(GL_OBJ_PATTERN): $(SRC_DIR)/%.c
|
||||||
|
$(CC) $(CFLAGS) $(GL_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(GL_OBJ_PATTERN): $(SRC_DIR)/%.s
|
||||||
|
$(CC) $(CFLAGS) $(GL_CFLAGS) -x assembler-with-cpp -o $@ -c $<
|
||||||
|
|
||||||
|
$(GL_OBJ_PATTERN): $(COMMON_DIR)/%.c
|
||||||
|
$(CC) $(CFLAGS) $(GL_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(GL_OBJ_PATTERN): $(COMMON_DIR)/%.s
|
||||||
|
$(CC) $(CFLAGS) $(GL_CFLAGS) -x assembler-with-cpp -o $@ -c $<
|
||||||
|
|
||||||
|
$(GL_OBJ_PATTERN): $(QW_COMMON_DIR)/%.c
|
||||||
|
$(CC) $(CFLAGS) $(GL_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(GL_OBJ_PATTERN): $(QW_COMMON_DIR)/%.s
|
||||||
|
$(CC) $(CFLAGS) $(GL_CFLAGS) -x assembler-with-cpp -o $@ -c $<
|
||||||
|
|
||||||
|
client_DIR:
|
||||||
|
@DIR=client; $(MAKE_SURE_DIR)
|
||||||
|
|
||||||
|
gl_DIR:
|
||||||
|
@DIR=gl; $(MAKE_SURE_DIR)
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
#
|
#
|
||||||
# Specific target rules
|
# Specific target rules
|
||||||
#
|
#
|
||||||
|
|
||||||
# Lib Software targets
|
# Lib Software targets
|
||||||
|
ALL_COMMON_LIB_OBJS = $(patsubst %,$(BUILD_DIR)/common_lib/%,$(addsuffix \
|
||||||
|
.@OBJEXT@, $(basename $(GENERAL_SRC) .c .s)))
|
||||||
|
|
||||||
SOUND_LIB_OBJS = $(patsubst %,$(BUILD_DIR)/sound_lib/%,$(addsuffix \
|
ALL_COMMON_LIB_DEPS = $(patsubst %,$(BUILD_DIR)/common_lib/%,$(addsuffix .d,\
|
||||||
.@OBJEXT@, $(basename $(SOUND_SRC) .c .s)))
|
$(basename $(GENERAL_SRC) .c .s)))
|
||||||
|
|
||||||
sound_lib_DIR:
|
$(BUILD_DIR)/common_lib:
|
||||||
@DIR=sound_lib; $(MAKE_SURE_DIR)
|
@DIR=common_lib; $(MAKE_SURE_DIR)
|
||||||
|
|
||||||
$(SOUND_LIB): sound_lib_DIR $(TARGET_DIR)/sound_lib.a
|
$(COMMON_LIB): $(BUILD_DIR)/common_lib $(BUILD_DIR)/common_lib.a
|
||||||
|
|
||||||
$(TARGET_DIR)/sound_lib.a: $(SOUND_LIB_OBJS)
|
$(BUILD_DIR)/common_lib.a: $(BUILD_DIR)/common_lib $(ALL_COMMON_LIB_OBJS)
|
||||||
#gcc -Wall -shared -o $@ $(SOUND_LIB_OBJS)
|
ar cru $@ $(ALL_COMMON_LIB_OBJS)
|
||||||
ar cru $@ $(SOUND_LIB_OBJS)
|
|
||||||
@RANLIB@ $@
|
@RANLIB@ $@
|
||||||
|
|
||||||
|
# X11 Software target
|
||||||
|
|
||||||
|
ifneq ($(X11QUAKE),)
|
||||||
|
|
||||||
|
ALL_X11_SRC = $(SW_REND_SRC) @X11_VID_SRC@\
|
||||||
|
model.c
|
||||||
|
ALL_X11_OBJS = $(patsubst %,$(BUILD_DIR)/%,$(addsuffix .@OBJEXT@,\
|
||||||
|
$(basename $(ALL_X11_SRC) .c .s))) \
|
||||||
|
$(BUILD_DIR)/common_lib.a $(TARGET_DIR)/sound_lib.a
|
||||||
|
|
||||||
|
X11_CFLAGS = -DX11 @X_CFLAGS@
|
||||||
|
X11_LDFLAGS = @X_LIBS@ -lX11 @X11_SHM_LIB@ @X_EXTRA_LIBS@
|
||||||
|
|
||||||
|
# FIXME: This rule is pathological because of the seperate sunx driver,
|
||||||
|
# either merge it into vid_x.c or make a seperate sun target. In either
|
||||||
|
# case, find the moro^wpeople responsible for this and other stupidities
|
||||||
|
# in Solaris and "educate" them.
|
||||||
|
$(BUILD_DIR)/$(addsuffix .@OBJEXT@,$(basename @X11_VID_SRC@ .c)):\
|
||||||
|
$(COMMON_DIR)/@X11_VID_SRC@
|
||||||
|
$(CC) $(CFLAGS) $(X11_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(X11QUAKE): $(BUILD_DIR)/../$(X11QUAKE)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/../$(X11QUAKE): $(ALL_X11_OBJS)
|
||||||
|
$(CC) $(CFLAGS) $(ALL_X11_OBJS) $(X11_LDFLAGS) $(LDFLAGS) $(LIBS) \
|
||||||
|
-o $(BUILD_DIR)/../$(X11QUAKE)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
# SVGALib software target
|
||||||
|
|
||||||
|
ifneq ($(SVGAQUAKE),)
|
||||||
|
ALL_SVGA_SRC = $(SW_REND_SRC) \
|
||||||
|
vid_svgalib.c d_copy.s model.c
|
||||||
|
ALL_SVGA_OBJS = $(patsubst %,$(BUILD_DIR)/%,$(addsuffix .@OBJEXT@,\
|
||||||
|
$(basename $(ALL_SVGA_SRC) .c .s))) \
|
||||||
|
$(BUILD_DIR)/common_lib.a $(TARGET_DIR)/sound_lib.a
|
||||||
|
|
||||||
|
SVGA_CFLAGS = @SVGA_CFLAGS@
|
||||||
|
SVGA_LDFLAGS = @SVGA_LIBS@
|
||||||
|
|
||||||
|
# Not sure why this -O is needed, but it is...
|
||||||
|
$(BUILD_DIR)/vid_svgalib.@OBJEXT@: $(COMMON_DIR)/vid_svgalib.c
|
||||||
|
$(CC) -O $(CFLAGS) $(SVGA_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(BUILD_DIR)/d_copy.@OBJEXT@: $(COMMON_DIR)/d_copy.s
|
||||||
|
$(CC) $(CFLAGS) -x assembler-with-cpp -o $@ -c $<
|
||||||
|
|
||||||
|
$(SVGAQUAKE): $(BUILD_DIR)/../$(SVGAQUAKE)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/../$(SVGAQUAKE): $(ALL_SVGA_OBJS)
|
||||||
|
$(CC) $(CFLAGS) $(ALL_SVGA_OBJS) $(SVGA_LDFLAGS) $(LDFLAGS) $(LIBS) \
|
||||||
|
-o $(BUILD_DIR)/../$(SVGAQUAKE)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
# GGI software target
|
||||||
|
|
||||||
|
ifneq ($(GGIQUAKE),)
|
||||||
|
|
||||||
|
# Map the list of source files into a list of object files
|
||||||
|
ALL_GGI_SRC = $(SW_REND_SRC) vid_ggi.c\
|
||||||
|
model.c
|
||||||
|
ALL_GGI_OBJS = $(patsubst %,$(BUILD_DIR)/%,$(addsuffix .@OBJEXT@,\
|
||||||
|
$(basename $(ALL_GGI_SRC) .c .s))) \
|
||||||
|
$(BUILD_DIR)/common_lib.a $(TARGET_DIR)/sound_lib.a
|
||||||
|
|
||||||
|
GGI_SRC = vid_ggi.c
|
||||||
|
GGI_CFLAGS = -DGGI @GGI_CFLAGS@
|
||||||
|
GGI_LDFLAGS = @GGI_LIBS@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/vid_ggi.@OBJEXT@: $(COMMON_DIR)/vid_ggi.c
|
||||||
|
$(CC) $(CFLAGS) $(GGI_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(GGIQUAKE): $(BUILD_DIR)/../$(GGIQUAKE)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/../$(GGIQUAKE): $(ALL_GGI_OBJS)
|
||||||
|
$(CC) $(CFLAGS) $(ALL_GGI_OBJS) $(GGI_LDFLAGS) $(LDFLAGS) $(LIBS) \
|
||||||
|
-o $(BUILD_DIR)/../$(GGIQUAKE)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
# SDL software target
|
||||||
|
|
||||||
|
ifneq ($(SDLQUAKE),)
|
||||||
|
ALL_SDL_SRC = $(SW_REND_SRC) $(SDL_SRC) vid_sdl.c cd_sdl.c\
|
||||||
|
model.c
|
||||||
|
ALL_SDL_OBJS = $(patsubst %,$(BUILD_DIR)/%,$(addsuffix .@OBJEXT@,\
|
||||||
|
$(basename $(ALL_SDL_SRC) .c .s))) \
|
||||||
|
$(BUILD_DIR)/common_lib.a $(TARGET_DIR)/sound_lib.a
|
||||||
|
|
||||||
|
SDL_CFLAGS = @SDL_CFLAGS@ -DSDL
|
||||||
|
SDL_LDFLAGS = @SDL_LIBS@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/vid_sdl.@OBJEXT@: $(COMMON_DIR)/vid_sdl.c
|
||||||
|
$(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(BUILD_DIR)/cd_sdl.@OBJEXT@: $(COMMON_DIR)/cd_sdl.c
|
||||||
|
$(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(SDLQUAKE): $(BUILD_DIR)/../$(SDLQUAKE)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/../$(SDLQUAKE): $(ALL_SDL_OBJS)
|
||||||
|
$(CC) $(CFLAGS) $(ALL_SDL_OBJS) $(SDL_LDFLAGS) $(LDFLAGS) $(LIBS) \
|
||||||
|
-o $(BUILD_DIR)/../$(SDLQUAKE)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
# MGL software target
|
||||||
|
|
||||||
|
ifneq ($(MGLQUAKE),)
|
||||||
|
|
||||||
|
# Map the list of source files into a list of object files
|
||||||
|
ALL_MGL_SRC = $(SW_REND_SRC) \
|
||||||
|
vid_win.c model.c
|
||||||
|
ALL_MGL_OBJS = $(patsubst %,$(BUILD_DIR)/%,$(addsuffix .@OBJEXT@,\
|
||||||
|
$(basename $(ALL_MGL_SRC) .c .s))) \
|
||||||
|
$(BUILD_DIR)/common_lib.a $(TARGET_DIR)/sound_lib.a
|
||||||
|
|
||||||
|
MGL_CFLAGS = -DMGL @MGL_CFLAGS@
|
||||||
|
MGL_LDFLAGS = @MGL_LIBS@ -lm
|
||||||
|
|
||||||
|
$(BUILD_DIR)/vid_mgl.@OBJEXT@: $(COMMON_DIR)/vid_mgl.c
|
||||||
|
$(CC) $(CFLAGS) $(MGL_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(MGLQUAKE): $(BUILD_DIR)/../$(MGLQUAKE)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/../$(MGLQUAKE): $(ALL_MGL_OBJS)
|
||||||
|
$(CC) $(CFLAGS) $(ALL_MGL_OBJS) $(MGL_LDFLAGS) $(LDFLAGS) $(LIBS) \
|
||||||
|
-o $(BUILD_DIR)/../$(MGLQUAKE)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
# X11 GL target
|
||||||
|
|
||||||
|
ifneq ($(GLQUAKE),)
|
||||||
|
|
||||||
|
GLX_GL_SRC = gl_vidglx.c dga_check.c
|
||||||
|
ALL_GL_SRC = $(GL_REND_SRC) $(GLX_GL_SRC)
|
||||||
|
|
||||||
|
GL_REND_OBJS = $(patsubst %,$(BUILD_DIR)/gl/%,$(addsuffix .@OBJEXT@,\
|
||||||
|
$(basename $(GL_REND_SRC) .c .s)))
|
||||||
|
|
||||||
|
GLX_GL_OBJS = $(patsubst %,$(BUILD_DIR)/%,$(addsuffix .@OBJEXT@,\
|
||||||
|
$(basename $(GLX_GL_SRC) .c .s)))
|
||||||
|
|
||||||
|
ALL_GL_OBJS = $(GLX_GL_OBJS) $(GL_REND_OBJS) \
|
||||||
|
$(BUILD_DIR)/common_lib.a $(TARGET_DIR)/sound_lib.a
|
||||||
|
|
||||||
|
GL_CFLAGS = @OGL_CFLAGS@
|
||||||
|
GL_LDFLAGS = $(X11_LDFLAGS) @OGL_LIBS@ @DGA_LIBS@ @DYN_LIBS@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/gl_vidglx.@OBJEXT@: $(COMMON_DIR)/gl_vidglx.c
|
||||||
|
$(CC) $(CFLAGS) $(GL_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(BUILD_DIR)/dga_check.@OBJEXT@: $(COMMON_DIR)/dga_check.c
|
||||||
|
$(CC) $(CFLAGS) $(X11_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(GLQUAKE): gl_DIR $(BUILD_DIR)/../$(GLQUAKE)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/../$(GLQUAKE): $(ALL_GL_OBJS)
|
||||||
|
$(CC) $(CFLAGS) $(ALL_GL_OBJS) $(GL_LDFLAGS) $(LDFLAGS) $(LIBS) \
|
||||||
|
-o $(BUILD_DIR)/../$(GLQUAKE)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# 3Dfx GL MCD target
|
||||||
|
|
||||||
|
ifneq ($(TDFXQUAKE),)
|
||||||
|
|
||||||
|
ALL_TDFX_SRC = $(GL_REND_SRC) \
|
||||||
|
gl_vidlinux_3dfx.c
|
||||||
|
ALL_TDFX_OBJS = $(patsubst %,$(BUILD_DIR)/%,$(addsuffix .@OBJEXT@,\
|
||||||
|
$(basename $(ALL_TDFX_SRC) .c .s))) \
|
||||||
|
$(BUILD_DIR)/common_lib.a $(TARGET_DIR)/sound_lib.a
|
||||||
|
|
||||||
|
TDFX_CFLAGS = @OGL_CFLAGS@ @GLIDE_CFLAGS@
|
||||||
|
TDFX_LDFLAGS = @SVGA_LIBS@ @TDFXGL_LIBS@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/gl_vidlinux_3dfx.@OBJEXT@: $(COMMON_DIR)/gl_vidlinux_3dfx.c
|
||||||
|
$(CC) $(CFLAGS) $(TDFX_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(TDFXQUAKE): gl_DIR $(BUILD_DIR)/../$(TDFXQUAKE)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/../$(TDFXQUAKE): $(ALL_TDFX_OBJS)
|
||||||
|
$(CC) $(CFLAGS) $(ALL_TDFX_OBJS) $(TDFX_LDFLAGS) $(LDFLAGS) $(LIBS) \
|
||||||
|
-o $(BUILD_DIR)/../$(TDFXQUAKE)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
#
|
#
|
||||||
|
@ -169,16 +508,16 @@ distclean: clean
|
||||||
$(CLEAN_TARGETS):
|
$(CLEAN_TARGETS):
|
||||||
rm -f $(BUILD_DIR)/../$(subst clean-,,$@)
|
rm -f $(BUILD_DIR)/../$(subst clean-,,$@)
|
||||||
|
|
||||||
clean-sound_lib:
|
clean-soft clean-gl clean-client clean-common_lib:
|
||||||
rm -rf $(BUILD_DIR)/$(subst clean-,,$@)
|
rm -rf $(BUILD_DIR)/$(subst clean-,,$@)
|
||||||
|
|
||||||
clean: clean-sound_lib $(CLEAN_TARGETS)
|
clean: clean-client clean-common_lib $(CLEAN_TARGETS)
|
||||||
-rmdir $(BUILD_DIR)
|
-rmdir $(BUILD_DIR)
|
||||||
|
|
||||||
install: $(targets)
|
install: $(targets)
|
||||||
$(PROJECT_DIR)/mkinstalldirs $(DESTDIR)/$(bindir)
|
$(PROJECT_DIR)/mkinstalldirs $(DESTDIR)/$(bindir)
|
||||||
for i in $(targets); do \
|
for i in $(targets); do \
|
||||||
$(PROJECT_DIR)/install-sh -m 755 $(BUILD_DIR)/../$$i \
|
$(PROJECT_DIR)/install-sh -m 755 $(TARGET_DIR)/$$i \
|
||||||
$(DESTDIR)/$(bindir)/$$i; \
|
$(DESTDIR)/$(bindir)/$$i; \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
@ -1090,6 +1090,8 @@ void CL_ParseServerMessage (void)
|
||||||
switch (cmd)
|
switch (cmd)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
|
Con_Printf("cmd: %x\n", cmd);
|
||||||
|
|
||||||
Host_EndGame ("CL_ParseServerMessage: Illegible server message");
|
Host_EndGame ("CL_ParseServerMessage: Illegible server message");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,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 "sound.h"
|
#include "sound.h"
|
||||||
|
#include <plugin.h>
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
@ -1029,7 +1030,7 @@ int SCR_ModalMessage (char *text)
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
key_count = -1; // wait for a key down and up
|
key_count = -1; // wait for a key down and up
|
||||||
Sys_SendKeyEvents ();
|
IN->SendKeyEvents();
|
||||||
} while (key_lastpress != 'y' && key_lastpress != 'n' && key_lastpress != K_ESCAPE);
|
} while (key_lastpress != 'y' && key_lastpress != 'n' && key_lastpress != K_ESCAPE);
|
||||||
|
|
||||||
scr_fullupdate = 0;
|
scr_fullupdate = 0;
|
||||||
|
|
Loading…
Reference in a new issue