mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2024-11-10 14:42:06 +00:00
merge qw_server/model.c into common/model.c
This commit is contained in:
parent
78cc81749d
commit
b3ff01224c
2 changed files with 78 additions and 1183 deletions
112
common/model.c
112
common/model.c
|
@ -25,15 +25,28 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
// models are the only shared resource between a client and server running
|
// models are the only shared resource between a client and server running
|
||||||
// on the same machine.
|
// on the same machine.
|
||||||
|
|
||||||
#include "quakedef.h"
|
#include <string.h>
|
||||||
#include "r_local.h"
|
#include <model.h>
|
||||||
#include <lib_replace.h>
|
#include <qendian.h>
|
||||||
#include <sys.h>
|
#include <quakefs.h>
|
||||||
|
#include <common.h>
|
||||||
|
#include <protocol.h>
|
||||||
|
#include <server.h>
|
||||||
#include <mathlib.h>
|
#include <mathlib.h>
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <console.h>
|
#include <console.h>
|
||||||
#include <crc.h>
|
#include <crc.h>
|
||||||
#include <quakefs.h>
|
#include <quakefs.h>
|
||||||
|
#include <sys.h>
|
||||||
|
#include <d_iface.h>
|
||||||
|
#include <client.h>
|
||||||
|
#include <r_local.h>
|
||||||
|
|
||||||
|
#ifdef SERVERONLY
|
||||||
|
#define SV_SYS_ERROR SV_Error
|
||||||
|
#else
|
||||||
|
#define SV_SYS_ERROR Sys_Error
|
||||||
|
#endif
|
||||||
|
|
||||||
model_t *loadmodel;
|
model_t *loadmodel;
|
||||||
char loadname[32]; // for hunk tags
|
char loadname[32]; // for hunk tags
|
||||||
|
@ -49,6 +62,10 @@ byte mod_novis[MAX_MAP_LEAFS/8];
|
||||||
model_t mod_known[MAX_MOD_KNOWN];
|
model_t mod_known[MAX_MOD_KNOWN];
|
||||||
int mod_numknown;
|
int mod_numknown;
|
||||||
|
|
||||||
|
texture_t sv_r_notexture_mip;
|
||||||
|
|
||||||
|
unsigned *model_checksum;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
===============
|
===============
|
||||||
Mod_Init
|
Mod_Init
|
||||||
|
@ -93,7 +110,7 @@ mleaf_t *Mod_PointInLeaf (vec3_t p, model_t *model)
|
||||||
mplane_t *plane;
|
mplane_t *plane;
|
||||||
|
|
||||||
if (!model || !model->nodes)
|
if (!model || !model->nodes)
|
||||||
Sys_Error ("Mod_PointInLeaf: bad model");
|
SV_SYS_ERROR ("Mod_PointInLeaf: bad model");
|
||||||
|
|
||||||
node = model->nodes;
|
node = model->nodes;
|
||||||
while (1)
|
while (1)
|
||||||
|
@ -195,7 +212,7 @@ model_t *Mod_FindName (char *name)
|
||||||
model_t *mod;
|
model_t *mod;
|
||||||
|
|
||||||
if (!name[0])
|
if (!name[0])
|
||||||
Sys_Error ("Mod_ForName: NULL name");
|
SV_SYS_ERROR ("Mod_ForName: NULL name");
|
||||||
|
|
||||||
//
|
//
|
||||||
// search the currently loaded models
|
// search the currently loaded models
|
||||||
|
@ -207,7 +224,7 @@ model_t *Mod_FindName (char *name)
|
||||||
if (i == mod_numknown)
|
if (i == mod_numknown)
|
||||||
{
|
{
|
||||||
if (mod_numknown == MAX_MOD_KNOWN)
|
if (mod_numknown == MAX_MOD_KNOWN)
|
||||||
Sys_Error ("mod_numknown == MAX_MOD_KNOWN");
|
SV_SYS_ERROR ("mod_numknown == MAX_MOD_KNOWN");
|
||||||
strcpy (mod->name, name);
|
strcpy (mod->name, name);
|
||||||
mod->needload = true;
|
mod->needload = true;
|
||||||
mod_numknown++;
|
mod_numknown++;
|
||||||
|
@ -275,7 +292,7 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash)
|
||||||
if (!buf)
|
if (!buf)
|
||||||
{
|
{
|
||||||
if (crash)
|
if (crash)
|
||||||
Sys_Error ("Mod_NumForName: %s not found", mod->name);
|
SV_SYS_ERROR ("Mod_NumForName: %s not found", mod->name);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,6 +310,9 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash)
|
||||||
// call the apropriate loader
|
// call the apropriate loader
|
||||||
mod->needload = false;
|
mod->needload = false;
|
||||||
|
|
||||||
|
#ifdef SERVERONLY //XXX FIXME WTF (taniwha)
|
||||||
|
Mod_LoadBrushModel (mod, buf);
|
||||||
|
#else
|
||||||
switch (LittleLong(*(unsigned *)buf))
|
switch (LittleLong(*(unsigned *)buf))
|
||||||
{
|
{
|
||||||
case IDPOLYHEADER:
|
case IDPOLYHEADER:
|
||||||
|
@ -307,6 +327,7 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash)
|
||||||
Mod_LoadBrushModel (mod, buf);
|
Mod_LoadBrushModel (mod, buf);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return mod;
|
return mod;
|
||||||
}
|
}
|
||||||
|
@ -327,7 +348,6 @@ model_t *Mod_ForName (char *name, qboolean crash)
|
||||||
return Mod_LoadModel (mod, crash);
|
return Mod_LoadModel (mod, crash);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
|
||||||
|
@ -338,6 +358,7 @@ model_t *Mod_ForName (char *name, qboolean crash)
|
||||||
|
|
||||||
byte *mod_base;
|
byte *mod_base;
|
||||||
|
|
||||||
|
#ifndef SERVERONLY
|
||||||
int Mod_LoadExternalTexture(int number, char *texturename)
|
int Mod_LoadExternalTexture(int number, char *texturename)
|
||||||
{
|
{
|
||||||
int j, pixels;
|
int j, pixels;
|
||||||
|
@ -379,7 +400,7 @@ int Mod_LoadExternalTexture(int number, char *texturename)
|
||||||
R_InitSky (tx);
|
R_InitSky (tx);
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
|
@ -426,7 +447,7 @@ void Mod_LoadTextures (lump_t *l)
|
||||||
mt->offsets[j] = LittleLong (mt->offsets[j]);
|
mt->offsets[j] = LittleLong (mt->offsets[j]);
|
||||||
|
|
||||||
if ( (mt->width & 15) || (mt->height & 15) )
|
if ( (mt->width & 15) || (mt->height & 15) )
|
||||||
Sys_Error ("Texture %s is not 16 aligned", mt->name);
|
SV_SYS_ERROR ("Texture %s is not 16 aligned", mt->name);
|
||||||
pixels = mt->width*mt->height/64*85;
|
pixels = mt->width*mt->height/64*85;
|
||||||
tx = Hunk_AllocName (sizeof(texture_t) +pixels, loadname );
|
tx = Hunk_AllocName (sizeof(texture_t) +pixels, loadname );
|
||||||
loadmodel->textures[i] = tx;
|
loadmodel->textures[i] = tx;
|
||||||
|
@ -438,9 +459,10 @@ void Mod_LoadTextures (lump_t *l)
|
||||||
tx->offsets[j] = mt->offsets[j] + sizeof(texture_t) - sizeof(miptex_t);
|
tx->offsets[j] = mt->offsets[j] + sizeof(texture_t) - sizeof(miptex_t);
|
||||||
// the pixels immediately follow the structures
|
// the pixels immediately follow the structures
|
||||||
memcpy ( tx+1, mt+1, pixels);
|
memcpy ( tx+1, mt+1, pixels);
|
||||||
|
#ifndef SERVERONLY
|
||||||
if (!Q_strncmp(mt->name,"sky",3))
|
if (!Q_strncmp(mt->name,"sky",3))
|
||||||
R_InitSky (tx);
|
R_InitSky (tx);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -477,7 +499,7 @@ void Mod_LoadTextures (lump_t *l)
|
||||||
altmax++;
|
altmax++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Sys_Error ("Bad animating texture %s", tx->name);
|
SV_SYS_ERROR ("Bad animating texture %s", tx->name);
|
||||||
|
|
||||||
for (j=i+1 ; j<m->nummiptex ; j++)
|
for (j=i+1 ; j<m->nummiptex ; j++)
|
||||||
{
|
{
|
||||||
|
@ -505,7 +527,7 @@ void Mod_LoadTextures (lump_t *l)
|
||||||
altmax = num+1;
|
altmax = num+1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Sys_Error ("Bad animating texture %s", tx->name);
|
SV_SYS_ERROR ("Bad animating texture %s", tx->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ANIM_CYCLE 2
|
#define ANIM_CYCLE 2
|
||||||
|
@ -514,7 +536,7 @@ void Mod_LoadTextures (lump_t *l)
|
||||||
{
|
{
|
||||||
tx2 = anims[j];
|
tx2 = anims[j];
|
||||||
if (!tx2)
|
if (!tx2)
|
||||||
Sys_Error ("Missing frame %i of %s",j, tx->name);
|
SV_SYS_ERROR ("Missing frame %i of %s",j, tx->name);
|
||||||
tx2->anim_total = max * ANIM_CYCLE;
|
tx2->anim_total = max * ANIM_CYCLE;
|
||||||
tx2->anim_min = j * ANIM_CYCLE;
|
tx2->anim_min = j * ANIM_CYCLE;
|
||||||
tx2->anim_max = (j+1) * ANIM_CYCLE;
|
tx2->anim_max = (j+1) * ANIM_CYCLE;
|
||||||
|
@ -526,7 +548,7 @@ void Mod_LoadTextures (lump_t *l)
|
||||||
{
|
{
|
||||||
tx2 = altanims[j];
|
tx2 = altanims[j];
|
||||||
if (!tx2)
|
if (!tx2)
|
||||||
Sys_Error ("Missing frame %i of %s",j, tx->name);
|
SV_SYS_ERROR ("Missing frame %i of %s",j, tx->name);
|
||||||
tx2->anim_total = altmax * ANIM_CYCLE;
|
tx2->anim_total = altmax * ANIM_CYCLE;
|
||||||
tx2->anim_min = j * ANIM_CYCLE;
|
tx2->anim_min = j * ANIM_CYCLE;
|
||||||
tx2->anim_max = (j+1) * ANIM_CYCLE;
|
tx2->anim_max = (j+1) * ANIM_CYCLE;
|
||||||
|
@ -601,7 +623,7 @@ void Mod_LoadVertexes (lump_t *l)
|
||||||
|
|
||||||
in = (void *)(mod_base + l->fileofs);
|
in = (void *)(mod_base + l->fileofs);
|
||||||
if (l->filelen % sizeof(*in))
|
if (l->filelen % sizeof(*in))
|
||||||
Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
SV_SYS_ERROR ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
||||||
count = l->filelen / sizeof(*in);
|
count = l->filelen / sizeof(*in);
|
||||||
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
||||||
|
|
||||||
|
@ -629,7 +651,7 @@ void Mod_LoadSubmodels (lump_t *l)
|
||||||
|
|
||||||
in = (void *)(mod_base + l->fileofs);
|
in = (void *)(mod_base + l->fileofs);
|
||||||
if (l->filelen % sizeof(*in))
|
if (l->filelen % sizeof(*in))
|
||||||
Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
SV_SYS_ERROR ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
||||||
count = l->filelen / sizeof(*in);
|
count = l->filelen / sizeof(*in);
|
||||||
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
||||||
|
|
||||||
|
@ -665,7 +687,7 @@ void Mod_LoadEdges (lump_t *l)
|
||||||
|
|
||||||
in = (void *)(mod_base + l->fileofs);
|
in = (void *)(mod_base + l->fileofs);
|
||||||
if (l->filelen % sizeof(*in))
|
if (l->filelen % sizeof(*in))
|
||||||
Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
SV_SYS_ERROR ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
||||||
count = l->filelen / sizeof(*in);
|
count = l->filelen / sizeof(*in);
|
||||||
out = Hunk_AllocName ( (count + 1) * sizeof(*out), loadname);
|
out = Hunk_AllocName ( (count + 1) * sizeof(*out), loadname);
|
||||||
|
|
||||||
|
@ -694,7 +716,7 @@ void Mod_LoadTexinfo (lump_t *l)
|
||||||
|
|
||||||
in = (void *)(mod_base + l->fileofs);
|
in = (void *)(mod_base + l->fileofs);
|
||||||
if (l->filelen % sizeof(*in))
|
if (l->filelen % sizeof(*in))
|
||||||
Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
SV_SYS_ERROR ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
||||||
count = l->filelen / sizeof(*in);
|
count = l->filelen / sizeof(*in);
|
||||||
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
||||||
|
|
||||||
|
@ -703,6 +725,15 @@ void Mod_LoadTexinfo (lump_t *l)
|
||||||
|
|
||||||
for ( i=0 ; i<count ; i++, in++, out++)
|
for ( i=0 ; i<count ; i++, in++, out++)
|
||||||
{
|
{
|
||||||
|
#ifdef SERVERONLY
|
||||||
|
for (j=0 ; j<4 ; j++) {
|
||||||
|
out->vecs[0][j] = LittleFloat (in->vecs[0][j]);
|
||||||
|
out->vecs[1][j] = LittleFloat (in->vecs[1][j]);
|
||||||
|
}
|
||||||
|
len1 = Length (out->vecs[0]);
|
||||||
|
len2 = Length (out->vecs[1]);
|
||||||
|
if (len1 + len2 < 2 /*0.001*/)
|
||||||
|
#else
|
||||||
for (j=0 ; j<8 ; j++)
|
for (j=0 ; j<8 ; j++)
|
||||||
out->vecs[0][j] = LittleFloat (in->vecs[0][j]);
|
out->vecs[0][j] = LittleFloat (in->vecs[0][j]);
|
||||||
len1 = Length (out->vecs[0]);
|
len1 = Length (out->vecs[0]);
|
||||||
|
@ -715,30 +746,43 @@ void Mod_LoadTexinfo (lump_t *l)
|
||||||
else if (len1 < 0.99)
|
else if (len1 < 0.99)
|
||||||
out->mipadjust = 2;
|
out->mipadjust = 2;
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
out->mipadjust = 1;
|
out->mipadjust = 1;
|
||||||
|
#ifdef SERVERONLY
|
||||||
|
else
|
||||||
|
out->mipadjust = 1 / floor( (len1+len2)/2 );
|
||||||
|
#else
|
||||||
#if 0
|
#if 0
|
||||||
if (len1 + len2 < 0.001)
|
if (len1 + len2 < 0.001)
|
||||||
out->mipadjust = 1; // don't crash
|
out->mipadjust = 1; // don't crash
|
||||||
else
|
else
|
||||||
out->mipadjust = 1 / floor( (len1+len2)/2 + 0.1 );
|
out->mipadjust = 1 / floor( (len1+len2)/2 + 0.1 );
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
miptex = LittleLong (in->miptex);
|
miptex = LittleLong (in->miptex);
|
||||||
out->flags = LittleLong (in->flags);
|
out->flags = LittleLong (in->flags);
|
||||||
|
|
||||||
if (!loadmodel->textures)
|
if (!loadmodel->textures)
|
||||||
{
|
{
|
||||||
|
#ifdef SERVERONLY
|
||||||
|
out->texture = &sv_r_notexture_mip; // checkerboard texture
|
||||||
|
#else
|
||||||
out->texture = r_notexture_mip; // checkerboard texture
|
out->texture = r_notexture_mip; // checkerboard texture
|
||||||
|
#endif
|
||||||
out->flags = 0;
|
out->flags = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (miptex >= loadmodel->numtextures)
|
if (miptex >= loadmodel->numtextures)
|
||||||
Sys_Error ("miptex >= loadmodel->numtextures");
|
SV_SYS_ERROR ("miptex >= loadmodel->numtextures");
|
||||||
out->texture = loadmodel->textures[miptex];
|
out->texture = loadmodel->textures[miptex];
|
||||||
if (!out->texture)
|
if (!out->texture)
|
||||||
{
|
{
|
||||||
|
#ifdef SERVERONLY
|
||||||
|
out->texture = &sv_r_notexture_mip; // texture not found
|
||||||
|
#else
|
||||||
out->texture = r_notexture_mip; // texture not found
|
out->texture = r_notexture_mip; // texture not found
|
||||||
|
#endif
|
||||||
out->flags = 0;
|
out->flags = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -794,7 +838,7 @@ void CalcSurfaceExtents (msurface_t *s)
|
||||||
s->texturemins[i] = bmins[i] * 16;
|
s->texturemins[i] = bmins[i] * 16;
|
||||||
s->extents[i] = (bmaxs[i] - bmins[i]) * 16;
|
s->extents[i] = (bmaxs[i] - bmins[i]) * 16;
|
||||||
if ( !(tex->flags & TEX_SPECIAL) && s->extents[i] > 256)
|
if ( !(tex->flags & TEX_SPECIAL) && s->extents[i] > 256)
|
||||||
Sys_Error ("Bad surface extents");
|
SV_SYS_ERROR ("Bad surface extents");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -813,7 +857,7 @@ void Mod_LoadFaces (lump_t *l)
|
||||||
|
|
||||||
in = (void *)(mod_base + l->fileofs);
|
in = (void *)(mod_base + l->fileofs);
|
||||||
if (l->filelen % sizeof(*in))
|
if (l->filelen % sizeof(*in))
|
||||||
Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
SV_SYS_ERROR ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
||||||
count = l->filelen / sizeof(*in);
|
count = l->filelen / sizeof(*in);
|
||||||
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
||||||
|
|
||||||
|
@ -896,7 +940,7 @@ void Mod_LoadNodes (lump_t *l)
|
||||||
|
|
||||||
in = (void *)(mod_base + l->fileofs);
|
in = (void *)(mod_base + l->fileofs);
|
||||||
if (l->filelen % sizeof(*in))
|
if (l->filelen % sizeof(*in))
|
||||||
Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
SV_SYS_ERROR ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
||||||
count = l->filelen / sizeof(*in);
|
count = l->filelen / sizeof(*in);
|
||||||
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
||||||
|
|
||||||
|
@ -943,7 +987,7 @@ void Mod_LoadLeafs (lump_t *l)
|
||||||
|
|
||||||
in = (void *)(mod_base + l->fileofs);
|
in = (void *)(mod_base + l->fileofs);
|
||||||
if (l->filelen % sizeof(*in))
|
if (l->filelen % sizeof(*in))
|
||||||
Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
SV_SYS_ERROR ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
||||||
count = l->filelen / sizeof(*in);
|
count = l->filelen / sizeof(*in);
|
||||||
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
||||||
|
|
||||||
|
@ -990,7 +1034,7 @@ void Mod_LoadClipnodes (lump_t *l)
|
||||||
|
|
||||||
in = (void *)(mod_base + l->fileofs);
|
in = (void *)(mod_base + l->fileofs);
|
||||||
if (l->filelen % sizeof(*in))
|
if (l->filelen % sizeof(*in))
|
||||||
Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
SV_SYS_ERROR ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
||||||
count = l->filelen / sizeof(*in);
|
count = l->filelen / sizeof(*in);
|
||||||
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
||||||
|
|
||||||
|
@ -1081,7 +1125,7 @@ void Mod_LoadMarksurfaces (lump_t *l)
|
||||||
|
|
||||||
in = (void *)(mod_base + l->fileofs);
|
in = (void *)(mod_base + l->fileofs);
|
||||||
if (l->filelen % sizeof(*in))
|
if (l->filelen % sizeof(*in))
|
||||||
Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
SV_SYS_ERROR ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
||||||
count = l->filelen / sizeof(*in);
|
count = l->filelen / sizeof(*in);
|
||||||
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
||||||
|
|
||||||
|
@ -1092,7 +1136,7 @@ void Mod_LoadMarksurfaces (lump_t *l)
|
||||||
{
|
{
|
||||||
j = LittleShort(in[i]);
|
j = LittleShort(in[i]);
|
||||||
if (j >= loadmodel->numsurfaces)
|
if (j >= loadmodel->numsurfaces)
|
||||||
Sys_Error ("Mod_ParseMarksurfaces: bad surface number");
|
SV_SYS_ERROR ("Mod_ParseMarksurfaces: bad surface number");
|
||||||
out[i] = loadmodel->surfaces + j;
|
out[i] = loadmodel->surfaces + j;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1109,7 +1153,7 @@ void Mod_LoadSurfedges (lump_t *l)
|
||||||
|
|
||||||
in = (void *)(mod_base + l->fileofs);
|
in = (void *)(mod_base + l->fileofs);
|
||||||
if (l->filelen % sizeof(*in))
|
if (l->filelen % sizeof(*in))
|
||||||
Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
SV_SYS_ERROR ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
||||||
count = l->filelen / sizeof(*in);
|
count = l->filelen / sizeof(*in);
|
||||||
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
out = Hunk_AllocName ( count*sizeof(*out), loadname);
|
||||||
|
|
||||||
|
@ -1135,7 +1179,7 @@ void Mod_LoadPlanes (lump_t *l)
|
||||||
|
|
||||||
in = (void *)(mod_base + l->fileofs);
|
in = (void *)(mod_base + l->fileofs);
|
||||||
if (l->filelen % sizeof(*in))
|
if (l->filelen % sizeof(*in))
|
||||||
Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
SV_SYS_ERROR ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name);
|
||||||
count = l->filelen / sizeof(*in);
|
count = l->filelen / sizeof(*in);
|
||||||
out = Hunk_AllocName ( count*2*sizeof(*out), loadname);
|
out = Hunk_AllocName ( count*2*sizeof(*out), loadname);
|
||||||
|
|
||||||
|
@ -1193,7 +1237,7 @@ void Mod_LoadBrushModel (model_t *mod, void *buffer)
|
||||||
|
|
||||||
i = LittleLong (header->version);
|
i = LittleLong (header->version);
|
||||||
if (i != BSPVERSION)
|
if (i != BSPVERSION)
|
||||||
Sys_Error ("Mod_LoadBrushModel: %s has wrong version number (%i should be %i)", mod->name, i, BSPVERSION);
|
SV_SYS_ERROR ("Mod_LoadBrushModel: %s has wrong version number (%i should be %i)", mod->name, i, BSPVERSION);
|
||||||
|
|
||||||
// swap all the lumps
|
// swap all the lumps
|
||||||
mod_base = (byte *)header;
|
mod_base = (byte *)header;
|
||||||
|
@ -1396,7 +1440,7 @@ void * Mod_LoadAliasGroup (void * pin, int *pframeindex, int numv,
|
||||||
return ptemp;
|
return ptemp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef SERVERONLY
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
Mod_LoadAliasSkin
|
Mod_LoadAliasSkin
|
||||||
|
@ -1435,7 +1479,6 @@ void * Mod_LoadAliasSkin (void * pin, int *pskinindex, int skinsize,
|
||||||
return ((void *)pinskin);
|
return ((void *)pinskin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
Mod_LoadAliasSkinGroup
|
Mod_LoadAliasSkinGroup
|
||||||
|
@ -1928,6 +1971,7 @@ void Mod_LoadSpriteModel (model_t *mod, void *buffer)
|
||||||
|
|
||||||
mod->type = mod_sprite;
|
mod->type = mod_sprite;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
|
|
1149
qw_server/model.c
1149
qw_server/model.c
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue