From 87082e9f95530497b60a6a3b4a5cf65017415434 Mon Sep 17 00:00:00 2001 From: eukos Date: Thu, 23 Jul 2015 21:39:55 +0200 Subject: [PATCH] Added ASM back in for diltering, added noborder mode. --- WinQuake/Makefile | 82 ++++++++++++++++++++++----------------------- WinQuake/quakedef.h | 6 ++-- WinQuake/vid_x.c | 57 +++++++++++++++++++++++++++---- 3 files changed, 94 insertions(+), 51 deletions(-) diff --git a/WinQuake/Makefile b/WinQuake/Makefile index bae119e..33ea49c 100644 --- a/WinQuake/Makefile +++ b/WinQuake/Makefile @@ -155,7 +155,7 @@ X11_OBJS = \ $(BUILDDIR)/obj/nvs_common.o \ $(BUILDDIR)/obj/nvs_server.o \ $(BUILDDIR)/obj/nvs_server_data.o \ -# \ + \ $(BUILDDIR)/obj/d_draw.o \ $(BUILDDIR)/obj/d_draw16.o \ $(BUILDDIR)/obj/d_parta.o \ @@ -415,65 +415,65 @@ $(BUILDDIR)/obj/nvs_server_data.o :$(MOUNT_DIR)/nvs_server_data.c ##### -#$(BUILDDIR)/obj/d_copy.o : $(MOUNT_DIR)/../asm/d_copy.s -# $(DO_AS) +$(BUILDDIR)/obj/d_copy.o : $(MOUNT_DIR)/../asm/d_copy.s + $(DO_AS) -#$(BUILDDIR)/obj/d_draw.o : $(MOUNT_DIR)/../asm/d_draw.s -# $(DO_AS) +$(BUILDDIR)/obj/d_draw.o : $(MOUNT_DIR)/../asm/d_draw.s + $(DO_AS) -#$(BUILDDIR)/obj/d_draw16.o : $(MOUNT_DIR)/../asm/d_draw16.s -# $(DO_AS) +$(BUILDDIR)/obj/d_draw16.o : $(MOUNT_DIR)/../asm/d_draw16.s + $(DO_AS) -#$(BUILDDIR)/obj/d_parta.o : $(MOUNT_DIR)/../asm/d_parta.s -# $(DO_AS) +$(BUILDDIR)/obj/d_parta.o : $(MOUNT_DIR)/../asm/d_parta.s + $(DO_AS) -#$(BUILDDIR)/obj/d_polysa.o : $(MOUNT_DIR)/../asm/d_polysa.s -# $(DO_AS) +$(BUILDDIR)/obj/d_polysa.o : $(MOUNT_DIR)/../asm/d_polysa.s + $(DO_AS) -#$(BUILDDIR)/obj/d_scana.o : $(MOUNT_DIR)/../asm/d_scana.s -# $(DO_AS) +$(BUILDDIR)/obj/d_scana.o : $(MOUNT_DIR)/../asm/d_scana.s + $(DO_AS) -#$(BUILDDIR)/obj/d_spr8.o : $(MOUNT_DIR)/../asm/d_spr8.s -# $(DO_AS) +$(BUILDDIR)/obj/d_spr8.o : $(MOUNT_DIR)/../asm/d_spr8.s + $(DO_AS) -#$(BUILDDIR)/obj/d_varsa.o : $(MOUNT_DIR)/../asm/d_varsa.s -# $(DO_AS) +$(BUILDDIR)/obj/d_varsa.o : $(MOUNT_DIR)/../asm/d_varsa.s + $(DO_AS) -#$(BUILDDIR)/obj/math.o : $(MOUNT_DIR)/../asm/math.s -# $(DO_AS) +$(BUILDDIR)/obj/math.o : $(MOUNT_DIR)/../asm/math.s + $(DO_AS) -#$(BUILDDIR)/obj/r_aliasa.o : $(MOUNT_DIR)/../asm/r_aliasa.s -# $(DO_AS) +$(BUILDDIR)/obj/r_aliasa.o : $(MOUNT_DIR)/../asm/r_aliasa.s + $(DO_AS) -#$(BUILDDIR)/obj/r_drawa.o : $(MOUNT_DIR)/../asm/r_drawa.s -# $(DO_AS) +$(BUILDDIR)/obj/r_drawa.o : $(MOUNT_DIR)/../asm/r_drawa.s + $(DO_AS) -#$(BUILDDIR)/obj/r_edgea.o : $(MOUNT_DIR)/../asm/r_edgea.s -# $(DO_AS) +$(BUILDDIR)/obj/r_edgea.o : $(MOUNT_DIR)/../asm/r_edgea.s + $(DO_AS) -#$(BUILDDIR)/obj/r_varsa.o : $(MOUNT_DIR)/../asm/r_varsa.s -# $(DO_AS) +$(BUILDDIR)/obj/r_varsa.o : $(MOUNT_DIR)/../asm/r_varsa.s + $(DO_AS) -#$(BUILDDIR)/obj/surf16.o : $(MOUNT_DIR)/../asm/surf16.s -# $(DO_AS) +$(BUILDDIR)/obj/surf16.o : $(MOUNT_DIR)/../asm/surf16.s + $(DO_AS) -#$(BUILDDIR)/obj/surf8.o : $(MOUNT_DIR)/../asm/surf8.s -# $(DO_AS) +$(BUILDDIR)/obj/surf8.o : $(MOUNT_DIR)/../asm/surf8.s + $(DO_AS) -#$(BUILDDIR)/obj/surf8fst.o : $(MOUNT_DIR)/../asm/surf8fst.s -# $(DO_AS) +$(BUILDDIR)/obj/surf8fst.o : $(MOUNT_DIR)/../asm/surf8fst.s + $(DO_AS) -#$(BUILDDIR)/obj/worlda.o : $(MOUNT_DIR)/../asm/worlda.s -# $(DO_AS) +$(BUILDDIR)/obj/worlda.o : $(MOUNT_DIR)/../asm/worlda.s + $(DO_AS) -#$(BUILDDIR)/obj/r_aclipa.o : $(MOUNT_DIR)/../asm/r_aclipa.s -# $(DO_AS) +$(BUILDDIR)/obj/r_aclipa.o : $(MOUNT_DIR)/../asm/r_aclipa.s + $(DO_AS) -#$(BUILDDIR)/obj/snd_mixa.o : $(MOUNT_DIR)/../asm/snd_mixa.s -# $(DO_AS) +$(BUILDDIR)/obj/snd_mixa.o : $(MOUNT_DIR)/../asm/snd_mixa.s + $(DO_AS) -#$(BUILDDIR)/obj/sys_dosa.o : $(MOUNT_DIR)/../asm/sys_dosa.s -# $(DO_AS) +$(BUILDDIR)/obj/sys_dosa.o : $(MOUNT_DIR)/../asm/sys_dosa.s + $(DO_AS) ############################################################################# # MISC diff --git a/WinQuake/quakedef.h b/WinQuake/quakedef.h index c62f0e1..895c6d9 100644 --- a/WinQuake/quakedef.h +++ b/WinQuake/quakedef.h @@ -92,7 +92,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define ASS_MIDI // Use Apogee Sound System for MIDI playback only*WIP* #endif int inthedos; -#define NOASM +//#define NOASM #define EFFINGMOUSE // disables "Enhance Pointer Precision" // a definite MUST for debugging @@ -115,13 +115,13 @@ int protocol; // OK. int Nehahrademcompatibility; // LordHavoc: to allow playback of the early Nehahra movie segments int dpprotocol; #define DPPROTOCOLS -#define QIP_VERSION "Build 277" +#define QIP_VERSION "Build 278" #define QIP_URL "nowhere" #define VERSION 1.08 #define TNQ_VERSION 240 // todo: increment build numbers #define GLQUAKE_VERSION 1.00 #define D3DQUAKE_VERSION 0.01 -#define WINQUAKE_VERSION 2.77 // was 0.996, but WinQuake was already final +#define WINQUAKE_VERSION 2.78 // was 0.996, but WinQuake was already final #define LINUX_VERSION 1.30 #define X11_VERSION 1.10 diff --git a/WinQuake/vid_x.c b/WinQuake/vid_x.c index 005633c..791f4b6 100644 --- a/WinQuake/vid_x.c +++ b/WinQuake/vid_x.c @@ -37,6 +37,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #include #include +#include // eukara: X11 Quake noborder #include "quakedef.h" #include "d_local.h" @@ -55,6 +56,7 @@ int p_mouse_x; int p_mouse_y; int ignorenext; int bits_per_pixel; +extern int deathcam_yesiamdead; // eukara - deathcam typedef struct { @@ -62,6 +64,15 @@ typedef struct int output; } keymap_t; +typedef struct // eukara: X11 Quake noborder goodness +{ + unsigned long flags; + unsigned long functions; + unsigned long decorations; + long inputMode; + unsigned long status; +} hints_t; + viddef_t vid; // global video state unsigned short d_8to16table[256]; @@ -458,6 +469,13 @@ void VID_Init (unsigned char *palette) int num_visuals; int template_mask; + // eukara - noborder + hints_t hints; + Atom property; + + hints.flags = 2; // Specify that we're changing the window decorations. + hints.decorations = 0; // 0 (false) means that window decorations should go bye-bye. + ignorenext=0; vid.width = 320; vid.height = 200; @@ -468,7 +486,7 @@ void VID_Init (unsigned char *palette) // vid.cbits = VID_CBITS; // vid.grades = VID_GRADES; vid.fullbright = 256 - LittleLong (*((int *)vid.colormap + 2048)); - + srandom(getpid()); verbose=COM_CheckParm("-verbose"); @@ -579,13 +597,13 @@ void VID_Init (unsigned char *palette) int attribmask = CWEventMask | CWColormap | CWBorderPixel; XSetWindowAttributes attribs; Colormap tmpcmap; - + tmpcmap = XCreateColormap(x_disp, XRootWindow(x_disp, x_visinfo->screen), x_vis, AllocNone); - - attribs.event_mask = StructureNotifyMask | KeyPressMask - | KeyReleaseMask | ExposureMask | PointerMotionMask | - ButtonPressMask | ButtonReleaseMask; + + attribs.event_mask = StructureNotifyMask | KeyPressMask + | KeyReleaseMask | ExposureMask | PointerMotionMask | + ButtonPressMask | ButtonReleaseMask; attribs.border_pixel = 0; attribs.colormap = tmpcmap; @@ -600,8 +618,16 @@ void VID_Init (unsigned char *palette) x_vis, attribmask, &attribs ); - XStoreName( x_disp,x_win,"engoo X11"); + XStoreName( x_disp,x_win,"X11 engoo"); + // eukara: X11 Quake noborder START + if ((pnum=COM_CheckParm("-noborder"))) + { + property = XInternAtom(x_disp,"_MOTIF_WM_HINTS",True); + XChangeProperty(x_disp,x_win,property,property,32,PropModeReplace,(unsigned char *)&hints,5); + XMapRaised(x_disp,x_win); + } + // eukara: X11 Quake noborder END if (x_visinfo->class != TrueColor) XFreeColormap(x_disp, tmpcmap); @@ -1189,8 +1215,10 @@ void IN_Commands (void) mouse_oldbuttonstate = mouse_buttonstate; } +extern vec3_t deathcam_angles; //eukara - deathcam void IN_Move (usercmd_t *cmd) { + vec3_t tangles; if (!mouse_avail) return; @@ -1205,6 +1233,13 @@ void IN_Move (usercmd_t *cmd) mouse_x *= sensitivity->value; mouse_y *= sensitivity->value; + if (deathcam_yesiamdead){ + tangles[0] = deathcam_angles[0]; tangles[1] = deathcam_angles[1]; tangles[2] = deathcam_angles[2]; + } + else{ + tangles[0] = cl.viewangles[0]; tangles[1] = cl.viewangles[1]; tangles[2] = cl.viewangles[2]; + } + if ( (in_strafe.state & 1) || (lookstrafe->value && ((in_mlook.state & 1) ^ ((int)m_look->value & 1)) )) // 2001-12-16 M_LOOK cvar by Heffo/Maddes cmd->sidemove += m_side->value * mouse_x; else @@ -1224,6 +1259,14 @@ void IN_Move (usercmd_t *cmd) else cmd->forwardmove -= m_forward->value * mouse_y; } + + if (deathcam_yesiamdead){ + deathcam_angles[0] = tangles[0]; deathcam_angles[1] = tangles[1]; deathcam_angles[2] = tangles[2]; + } + else{ + cl.viewangles[0] = tangles[0]; cl.viewangles[1] = tangles[1]; cl.viewangles[2] = tangles[2]; + } + mouse_x = mouse_y = 0.0; }