17 Oct 2016

This commit is contained in:
g-cont 2016-10-17 00:00:00 +03:00 committed by Alibek Omarov
parent 388818b661
commit a951cf6f46
2 changed files with 15 additions and 6 deletions

View File

@ -32,6 +32,7 @@ BRUSH MODELS
#define IDEXTRAHEADER (('H'<<24)+('S'<<16)+('A'<<8)+'X') // little-endian "XASH"
#define EXTRA_VERSION 2 // because version 1 was occupied by old versions of XashXT
#define EXTRA_VERSION_3 3 // same as version 2 but with old lightmap resolution (1 luxel per 16 pixels)
#define DELUXEMAP_VERSION 1
#define IDDELUXEMAPHEADER (('T'<<24)+('I'<<16)+('L'<<8)+'Q') // little-endian "QLIT"

View File

@ -2665,17 +2665,23 @@ Mod_LoadBrushModel
*/
static void Mod_LoadBrushModel( model_t *mod, const void *buffer, qboolean *loaded )
{
int i, j;
int sample_size;
char *ents;
dheader_t *header;
dmodel_t *bm;
int i, j;
int sample_size;
char *ents;
dheader_t *header;
dextrahdr_t *extrahdr;
dmodel_t *bm;
if( loaded ) *loaded = false;
header = (dheader_t *)buffer;
loadmodel->type = mod_brush;
i = header->version;
// BSP31 and BSP30 have different offsets
if( i == XTBSP_VERSION )
extrahdr = (dextrahdr_t *)((byte *)buffer + sizeof( dheader31_t ));
else extrahdr = (dextrahdr_t *)((byte *)buffer + sizeof( dheader_t ));
switch( i )
{
case 28: // get support for quake1 beta
@ -2687,7 +2693,9 @@ static void Mod_LoadBrushModel( model_t *mod, const void *buffer, qboolean *load
sample_size = 16;
break;
case XTBSP_VERSION:
sample_size = 8;
if( extrahdr->id == IDEXTRAHEADER && extrahdr->version == EXTRA_VERSION_3 )
sample_size = 16;
else sample_size = 8;
break;
default:
MsgDev( D_ERROR, "%s has wrong version number (%i should be %i)", loadmodel->name, i, HLBSP_VERSION );