Fixed some stuff. Cygwin stuff compiles now, so maybe linux will too. I've not tested it though cos cygwin uses software gl rendering, and I'm impatient. Also boosted NUM_SPAWN_PARMS a little, so saved games will break.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3408 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2009-11-05 03:07:52 +00:00
parent 5a649378f5
commit 4c37c34c13
21 changed files with 117 additions and 34 deletions

View File

@ -344,6 +344,7 @@ GLQUAKE_OBJS = \
gl_draw.o \
gl_model.o \
gl_ngraph.o \
gl_backend.o \
gl_rlight.o \
gl_rmain.o \
gl_rmisc.o \
@ -351,13 +352,12 @@ GLQUAKE_OBJS = \
gl_heightmap.o \
gl_rsurf.o \
ltface.o \
r_2d.o \
gl_screen.o \
gl_bloom.o \
gl_vbo.o \
gl_shadow.o \
gl_shader.o \
gl_warp.o \
gl_ppl.o \
gl_vidcommon.o \
gl_hlmdl.o

View File

@ -2642,7 +2642,7 @@ void CL_UpdateBeams (void)
if (b->endtime < cl.time)
{
if (!sv.paused)
if (!cl.paused)
{ /*don't let lightning decay while paused*/
P_DelinkTrailstate(&b->trailstate);
P_DelinkTrailstate(&b->emitstate);

View File

@ -162,6 +162,8 @@ extern "C" {
#include "cdaudio.h"
#include "pmove.h"
#include "progtype.h"
#include "progdefs.h"
#ifndef CLIENTONLY
#include "progs.h"
#endif

View File

@ -234,6 +234,7 @@ enum uploadfmt
TF_TRANS8, /*8bit quake-palette image, index 255=transparent*/
TF_TRANS8_FULLBRIGHT, /*fullbright 8 - fullbright texels have alpha 255, everything else 0*/
TF_HEIGHT8, /*image data is greyscale, convert to a normalmap and load that, uploaded alpha contains the original heights*/
TF_HEIGHT8PAL, /*source data is palette values rather than actual heights, generate a fallback heightmap*/
TF_H2_T7G1, /*8bit data, odd indexes give greyscale transparence*/
TF_H2_TRANS8_0, /*8bit data, 0 is transparent, not 255*/
TF_H2_T4A4 /*8bit data, weird packing*/
@ -331,6 +332,7 @@ int R_LoadTexture(char *name, int width, int height, void *data, void *palette,
#define R_LoadTexture8(id,w,h,d,f,t) R_LoadTexture(id,w,h,t?TF_TRANS8:TF_SOLID8,d,f)
#define R_LoadTexture32(id,w,h,d,f) R_LoadTexture(id,w,h,TF_RGBA32,d,f)
#define R_LoadTextureFB(id,w,h,d,f) R_LoadTexture(id,w,h,TF_TRANS8_FULLBRIGHT,d,f)
#define R_LoadTexture8BumpPal(id,w,h,d,f) R_LoadTexture(id,w,h,TF_HEIGHT8PAL,d,f)
#define R_LoadTexture8Bump(id,w,h,d,f) R_LoadTexture(id,w,h,TF_HEIGHT8,d,f)
/*it seems a little excessive to have to include glquake (and windows headers), just to load some textures/shaders for the backend*/

View File

@ -406,7 +406,7 @@ void Sys_CloseLibrary(dllhandle_t *lib)
{
dlclose((void*)lib);
}
dllhandle_t *Sys_LoadLibrary(char *name, dllfunction_t *funcs)
dllhandle_t *Sys_LoadLibrary(const char *name, dllfunction_t *funcs)
{
int i;
dllhandle_t lib;

View File

@ -123,9 +123,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define PSET_CLASSIC
#ifndef SERVERONLY //don't be stupid, stupid.
#define CLIENTONLY
#endif
#ifndef SERVERONLY //don't be stupid, stupid.
#ifndef CLIENTONLY
#define CLIENTONLY
#endif
#endif
#else
#define SIDEVIEWS 4 //enable secondary/reverse views.
#define SP2MODELS //quake2 sprite models

View File

@ -2016,7 +2016,7 @@ static void *Q1_LoadSkins_GL (daliasskintype_t *pskintype, unsigned int skintran
if (gl_bump.ival)
{
snprintf(skinname, sizeof(skinname), "%s__%i_bump", loadname, i);
bumptexture = R_LoadTexture8Bump(skinname, outskin->skinwidth, outskin->skinheight, saved, IF_NOGAMMA, 1.0);
bumptexture = R_LoadTexture8BumpPal(skinname, outskin->skinwidth, outskin->skinheight, saved, IF_NOGAMMA);
}
}
}

View File

@ -1073,7 +1073,7 @@ texture_t *Mod_LoadWall(char *name)
oin = (qbyte *)wal+wal->offsets[0];
for (j = 0; j < wal->width*wal->height; j++)
in[j] = (d_q28to24table[oin[j]*3+0] + d_q28to24table[oin[j]*3+1] + d_q28to24table[oin[j]*3+2])/3;
tn.bump = R_LoadTexture8Bump (va("%s_bump", wal->name), tex->width, tex->height, in, true, r_shadow_bumpscale_basetexture.value);
tn.bump = R_LoadTexture8BumpPal (va("%s_bump", wal->name), tex->width, tex->height, in, true);
BZ_Free(wal);

View File

@ -27756,6 +27756,82 @@
<Filter
Name="nonwin"
>
<File
RelativePath="..\gl\gl_vidlinuxglx.c"
>
<FileConfiguration
Name="MinGLDebug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
<FileConfiguration
Name="D3DDebug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
<FileConfiguration
Name="MinGLRelease|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
<FileConfiguration
Name="GLDebug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
<FileConfiguration
Name="Release Dedicated Server|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
<FileConfiguration
Name="MRelease|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug Dedicated Server|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
<FileConfiguration
Name="MDebug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
<FileConfiguration
Name="GLRelease|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\client\in_macos.c"
>

View File

@ -740,7 +740,7 @@ static texid_t Shader_TextureForPass(const shaderpass_t *pass)
case T_GEN_VIDEOMAP:
#ifdef NOMEDIA
return shaderstate.curtexnums?shaderstate.curtexnums->base:0;
return shaderstate.curtexnums?shaderstate.curtexnums->base:r_nulltex;
#else
return Media_UpdateForShader(pass->cin);
#endif

View File

@ -97,6 +97,7 @@ texid_t GL_LoadTextureFmt (char *name, int width, int height, enum uploadfmt fmt
case TF_SOLID8:
return GL_LoadTexture(name, width, height, data, flags, 0);
case TF_HEIGHT8PAL:
case TF_HEIGHT8:
return GL_LoadTexture8Bump(name, width, height, data, flags, r_shadow_bumpscale_basetexture.value);

View File

@ -1123,7 +1123,7 @@ TRACE(("dbg: RMod_LoadTextures: inittexturedescs\n"));
for (j = 0; j < pixels; j++)
base[j] = (host_basepal[base[j]*3] + host_basepal[base[j]*3+1] + host_basepal[base[j]*3+2]) / 3;
tn.bump = R_LoadTexture8Bump(altname, tx->width, tx->height, base, true, r_shadow_bumpscale_basetexture.value); //normalise it and then bump it.
tn.bump = R_LoadTexture8BumpPal(altname, tx->width, tx->height, base, true); //normalise it and then bump it.
}
//don't do any complex quake 8bit -> glossmap. It would likly look a little ugly...
@ -1309,7 +1309,7 @@ void RMod_NowLoadExternal(void)
*heightmap++ = (data[j*4+0] + data[j*4+1] + data[j*4+2])/3;
}
tn.bump = R_LoadTexture8Bump (va("%s_bump", tx->name), width, height, heightmap-j, true, r_shadow_bumpscale_basetexture.value);
tn.bump = R_LoadTexture8BumpPal (va("%s_bump", tx->name), width, height, heightmap-j, true);
}
}
}

View File

@ -720,12 +720,8 @@ GL_BeginRendering
=================
*/
void GL_BeginRendering (int *x, int *y, int *width, int *height)
void GL_BeginRendering (void)
{
// if (!wglMakeCurrent( maindc, baseRC ))
// Sys_Error ("wglMakeCurrent failed");
// qglViewport (*x, *y, *width, *height);
}
@ -776,8 +772,7 @@ qboolean GLVID_Init (rendererstate_t *info, unsigned char *palette)
return false;
}
vid.maxwarpwidth = WARP_WIDTH;
vid.maxwarpheight = WARP_HEIGHT;
vid.pixeloffset = 0;
vid.colormap = host_colormap;
// interpret command-line params

View File

@ -134,8 +134,6 @@ typedef union eval_s
#endif
*/
#define MAX_ENT_LEAFS 16
typedef struct edictrun_s
{
pbool isfree;

View File

@ -315,3 +315,6 @@ comextqcfields
#undef comfieldstring
#undef comfieldfunction
} comextentvars_t;
#define MAX_ENT_LEAFS 16

View File

@ -26,7 +26,7 @@ struct edict_s;
#define MAX_PROGS 64
#define MAXADDONS 16
#define NUM_SPAWN_PARMS 32 //moved from server.h because of include ordering :(.
#define NUM_SPAWN_PARMS 64 //moved from server.h because of include ordering :(.
#define NewGetEdictFieldValue GetEdictFieldValue
void Q_SetProgsParms(qboolean forcompiler);
@ -47,9 +47,6 @@ void PR_RunThreads(void);
#define PR_MAINPROGS 0 //this is a constant that should really be phased out. But seeing as QCLIB requires some sort of master progs due to extern funcs...
//maybe go through looking for extern funcs, and remember which were not allocated. It would then be a first come gets priority. Not too bad I supppose.
#include "progtype.h"
#include "progdefs.h"
extern int compileactive;
typedef enum {PROG_NONE, PROG_QW, PROG_NQ, PROG_H2, PROG_PREREL, PROG_UNKNOWN} progstype_t; //unknown obtains NQ behaviour
@ -117,7 +114,6 @@ typedef struct
} worldode_t;
#endif
#define MAX_ENT_LEAFS 16
typedef struct edict_s
{
//these 5 shared with qclib

View File

@ -55,6 +55,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "cmd.h"
#include "model.h"
#include "crc.h"
#include "progtype.h"
#include "progdefs.h"
#include "progs.h"
#include "q2game.h"

View File

@ -274,8 +274,10 @@ void SV_Loadgame_f(void)
cl->connection_started = realtime+20;
cl->istobeloaded = true;
for (i=0 ; i<NUM_SPAWN_PARMS ; i++)
for (i=0 ; i<16 ; i++)
fscanf (f, "%f\n", &cl->spawn_parms[i]);
for (; i < NUM_SPAWN_PARMS; i++)
cl->spawn_parms[i] = 0;
}
else //fte QuakeWorld saves ALL the clients on the server.
{

View File

@ -1130,10 +1130,12 @@ void ClientReliableWrite_SZ(client_t *cl, void *data, int len);
#define RANK_CUFFED 4
#define RANK_CRIPPLED 8 //ha ha... get speed cheaters with this!... :o)
#define NUM_RANK_SPAWN_PARMS 32
typedef struct { //stats info
int kills;
int deaths;
float parm[NUM_SPAWN_PARMS];
float parm[NUM_RANK_SPAWN_PARMS];
float timeonserver;
qbyte flags1;
qbyte trustlevel;

View File

@ -429,7 +429,7 @@ void SV_DropClient (client_t *drop)
pr_global_struct->self = EDICT_TO_PROG(svprogfuncs, drop->edict);
if (pr_nqglobal_struct->SetChangeParms)
PR_ExecuteProgram (svprogfuncs, pr_global_struct->SetChangeParms);
for (j=0 ; j<NUM_SPAWN_PARMS ; j++)
for (j=0 ; j<NUM_RANK_SPAWN_PARMS ; j++)
if (spawnparamglobals[j])
rs.parm[j] = *spawnparamglobals[j];
Rank_SetPlayerStats(drop->rankid, &rs);
@ -2249,8 +2249,10 @@ client_t *SVC_DirectConnect(void)
}
else
{
for (i=0 ; i<NUM_SPAWN_PARMS ; i++)
for (i=0 ; i<NUM_RANK_SPAWN_PARMS ; i++)
newcl->spawn_parms[i] = rs.parm[i];
for (; i < NUM_SPAWN_PARMS; i++)
newcl->spawn_parms[i] = 0;
}
if (rs.timeonserver > 3*60) //woo. Ages.
@ -4077,7 +4079,7 @@ qboolean ReloadRanking(client_t *cl, char *newname)
pr_global_struct->self = EDICT_TO_PROG(svprogfuncs, cl->edict);
if (pr_nqglobal_struct->SetChangeParms)
PR_ExecuteProgram (svprogfuncs, pr_global_struct->SetChangeParms);
for (j=0 ; j<NUM_SPAWN_PARMS ; j++)
for (j=0 ; j<NUM_RANK_SPAWN_PARMS ; j++)
if (spawnparamglobals[j])
rs.parm[j] = *spawnparamglobals[j];
Rank_SetPlayerStats(cl->rankid, &rs);

View File

@ -30,7 +30,7 @@ cvar_t rank_needlogin = SCVAR("rank_needlogin", "0");
cvar_t rank_filename = SCVAR("rank_filename", "");
char rank_cvargroup[] = "server rankings";
#define RANKFILE_VERSION 0x00000000
#define RANKFILE_VERSION ((NUM_RANK_SPAWN_PARMS==32)?0:0x00000001)
#define RANKFILE_IDENT *(int*)"RANK"
void inline READ_PLAYERSTATS(int x, rankstats_t *os)
@ -42,7 +42,7 @@ void inline READ_PLAYERSTATS(int x, rankstats_t *os)
os->kills = swaplong(os->kills);
os->deaths = swaplong(os->deaths);
for (i = 0; i < NUM_SPAWN_PARMS; i++)
for (i = 0; i < NUM_RANK_SPAWN_PARMS; i++)
os->parm[i] = swapfloat(os->parm[i]);
os->timeonserver = swapfloat(os->timeonserver);
// os->flags1 = (os->flags1);
@ -60,7 +60,7 @@ void inline WRITE_PLAYERSTATS(int x, rankstats_t *os)
ns.kills = swaplong(os->kills);
ns.deaths = swaplong(os->deaths);
for (i = 0; i < NUM_SPAWN_PARMS; i++)
for (i = 0; i < NUM_RANK_SPAWN_PARMS; i++)
ns.parm[i] = swapfloat(os->parm[i]);
ns.timeonserver = swapfloat(os->timeonserver);
ns.flags1 = (os->flags1);