aboutsummaryrefslogtreecommitdiff
path: root/games/quake2lnx/files/patch-src::linux::rw_in_svgalib.c
diff options
context:
space:
mode:
Diffstat (limited to 'games/quake2lnx/files/patch-src::linux::rw_in_svgalib.c')
-rw-r--r--games/quake2lnx/files/patch-src::linux::rw_in_svgalib.c222
1 files changed, 2 insertions, 220 deletions
diff --git a/games/quake2lnx/files/patch-src::linux::rw_in_svgalib.c b/games/quake2lnx/files/patch-src::linux::rw_in_svgalib.c
index 255532e3b1d6..f5502683e86f 100644
--- a/games/quake2lnx/files/patch-src::linux::rw_in_svgalib.c
+++ b/games/quake2lnx/files/patch-src::linux::rw_in_svgalib.c
@@ -1,6 +1,6 @@
--- src/linux/rw_in_svgalib.c.orig Wed Oct 9 03:54:25 2002
+++ src/linux/rw_in_svgalib.c Mon Jun 16 23:00:10 2003
-@@ -20,11 +20,23 @@
+@@ -20,7 +20,9 @@
#include <termios.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
@@ -10,21 +10,7 @@
#include <stdarg.h>
#include <stdio.h>
#include <signal.h>
- #include <sys/mman.h>
-+#ifdef Joystick
-+# if defined(__linux__)
-+# include <linux/joystick.h>
-+# elif defined(__FreeBSD__)
-+# include <sys/joystick.h>
-+# endif
-+#include <fcntl.h>
-+#include <glob.h>
-+#include <unistd.h>
-+#endif
-
- #include "vga.h"
- #include "vgakeyboard.h"
-@@ -145,26 +157,22 @@
+@@ -145,26 +147,22 @@
// 84 to 86 not used
scantokey[ 87] = K_F11;
scantokey[ 88] = K_F12;
@@ -67,207 +53,3 @@
if (keyboard_init())
Sys_Error("keyboard_init() failed");
-@@ -184,7 +192,7 @@
- }
-
- /*****************************************************************************/
--/* MOUSE */
-+/* MOUSE AND JOYSTICK */
- /*****************************************************************************/
-
- // this is inside the renderer shared lib, so these are called from vid_so
-@@ -207,6 +215,14 @@
- static cvar_t *mdev;
- static cvar_t *mrate;
-
-+#ifdef Joystick
-+static cvar_t *in_joystick;
-+static qboolean joystick_avail = false;
-+static int joy_fd, jx, jy, center_jx, center_jy;
-+static cvar_t *j_invert_y;
-+static cvar_t *j_sensitivity;
-+#endif
-+
- static qboolean mlooking;
-
- // state struct passed in Init
-@@ -254,6 +270,49 @@
- }
- #endif
-
-+#ifdef Joystick
-+void
-+InitJoystick()
-+{
-+ int i, err;
-+ glob_t pglob;
-+ struct joystick j;
-+
-+ err = glob("/dev/joy*", 0, NULL, &pglob);
-+
-+ if (err) {
-+ switch (err) {
-+ case GLOB_NOSPACE:
-+ ri.Con_Printf(PRINT_ALL, "Error, out of memory while looking for joysticks\n");
-+ break;
-+ case GLOB_NOMATCH:
-+ ri.Con_Printf(PRINT_ALL, "No joysticks found\n");
-+ break;
-+ default:
-+ ri.Con_Printf(PRINT_ALL, "Error #%d while looking for joysticks\n", err);
-+ }
-+ goto out;
-+ }
-+
-+ for (i = 0; i < pglob.gl_pathc; i++) {
-+ ri.Con_Printf(PRINT_ALL, "Trying joystick dev %s\n", pglob.gl_pathv[i]);
-+ joy_fd = open(pglob.gl_pathv[i], O_RDONLY | O_NONBLOCK);
-+ if (joy_fd == -1) {
-+ ri.Con_Printf(PRINT_ALL, "Error opening joystick dev %s\n",
-+ pglob.gl_pathv[i]);
-+ }
-+ else if (read(joy_fd, &j, sizeof(struct joystick)) != -1) {
-+ ri.Con_Printf(PRINT_ALL, "Using joystick dev %s\n", pglob.gl_pathv[i]);
-+ joystick_avail = true;
-+ center_jx = j.x; center_jy = j.y;
-+ break;
-+ }
-+ }
-+out:
-+ globfree(&pglob);
-+}
-+#endif
-+
- void RW_IN_Init(in_state_t *in_state_p)
- {
- int mtype;
-@@ -262,7 +321,12 @@
-
- // mouse variables
- m_filter = ri.Cvar_Get ("m_filter", "0", 0);
-- in_mouse = ri.Cvar_Get ("in_mouse", "1", CVAR_ARCHIVE);
-+ in_mouse = ri.Cvar_Get ("in_mouse", "1", CVAR_ARCHIVE);
-+#ifdef Joystick
-+ in_joystick = ri.Cvar_Get ("in_joystick", "1", CVAR_ARCHIVE);
-+ j_invert_y = ri.Cvar_Get ("j_invert_y", "1", CVAR_ARCHIVE);
-+ j_sensitivity = ri.Cvar_Get ("j_sensitivity", "3", 0);
-+#endif
- freelook = ri.Cvar_Get( "freelook", "0", 0 );
- lookstrafe = ri.Cvar_Get ("lookstrafe", "0", 0);
- sensitivity = ri.Cvar_Get ("sensitivity", "3", 0);
-@@ -293,11 +357,20 @@
- }
- else
- mouse_seteventhandler(mousehandler);
-+#ifdef Joystick
-+ if (in_joystick)
-+ InitJoystick();
-+#endif
- }
-
- void RW_IN_Shutdown(void)
- {
- mouse_close();
-+#ifdef Joystick
-+ if (joystick_avail)
-+ if (close(joy_fd))
-+ ri.Con_Printf(PRINT_ALL, "Error, problem closing joystick\n");
-+#endif
- }
-
- /*
-@@ -307,7 +380,14 @@
- */
- void RW_IN_Commands (void)
- {
-- if (!UseMouse)
-+#ifdef Joystick
-+ struct joystick j;
-+#endif
-+ if (!UseMouse
-+#ifdef Joystick
-+ && !joystick_avail
-+#endif
-+ )
- return;
-
- // poll mouse values
-@@ -346,6 +426,23 @@
- in_state->Key_Event_fp (K_MWHEELDOWN, false);
- }
- mwheel = 0;
-+
-+#ifdef Joystick
-+ /* FreeBSD does not fully support multi-buttoned joysticks */
-+ if (joystick_avail) {
-+ if (read(joy_fd, &j, sizeof(struct joystick)) != -1) {
-+ if (j.b1)
-+ in_state->Key_Event_fp (K_JOY1, true);
-+ else
-+ in_state->Key_Event_fp (K_JOY1, false);
-+ if (j.b2)
-+ in_state->Key_Event_fp (K_JOY2, true);
-+ else
-+ in_state->Key_Event_fp (K_JOY2, false);
-+ jx = j.x; jy = j.y;
-+ }
-+ }
-+#endif
- }
-
- /*
-@@ -355,7 +452,11 @@
- */
- void RW_IN_Move (usercmd_t *cmd)
- {
-- if (!UseMouse)
-+ if (!UseMouse
-+#ifdef Joystick
-+ && !joystick_avail
-+#endif
-+ )
- return;
-
- // poll mouse values
-@@ -374,7 +475,11 @@
- old_mouse_x = mx;
- old_mouse_y = my;
-
-- if (!mx && !my)
-+ if (!mx && !my
-+#ifdef Joystick
-+ && !joystick_avail
-+#endif
-+ )
- return;
-
- mx = my = 0; // clear for next update
-@@ -398,6 +503,28 @@
- {
- cmd->forwardmove -= m_forward->value * mouse_y;
- }
-+
-+#ifdef Joystick
-+ if (joystick_avail) {
-+ int djx = (jx - center_jx) * j_sensitivity->value / 10,
-+ djy = (jy - center_jy) * j_sensitivity->value / 10;
-+// add joy X/Y movement to cmd
-+ if ((*in_state->in_strafe_state & 1) ||
-+ (lookstrafe->value && mlooking))
-+ cmd->sidemove += m_side->value * djx;
-+ else
-+ in_state->viewangles[YAW] -= m_yaw->value * djx;
-+
-+ if ((mlooking || freelook->value) &&
-+ !(*in_state->in_strafe_state & 1)) {
-+ if (j_invert_y)
-+ in_state->viewangles[PITCH] -= m_pitch->value * djy;
-+ else
-+ in_state->viewangles[PITCH] += m_pitch->value * djy;
-+ }
-+ else cmd->forwardmove -= m_forward->value * djy;
-+ }
-+#endif
- }
-
- void RW_IN_Frame (void)