/*
-GenSurf plugin for GtkRadiant
-Copyright (C) 2001 David Hyde, Loki software and qeradiant.com
+ GenSurf plugin for GtkRadiant
+ Copyright (C) 2001 David Hyde, Loki software and qeradiant.com
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
#include <stdlib.h>
#include <math.h>
typedef struct palette_s
{
- guint8 r,g,b;
+ guint8 r,g,b;
} palette_t;
-#define MIP_VERSION 2
-#define PAL_SIZE 256
-#define MIPLEVELS 16
+#define MIP_VERSION 2
+#define PAL_SIZE 256
+#define MIPLEVELS 16
typedef struct miptex_s
{
- int version;
- char name[32];
- unsigned width[MIPLEVELS], height[MIPLEVELS];
- unsigned offsets[MIPLEVELS]; // four mip maps stored
- char animname[32]; // next frame in animation chain
- palette_t palette[PAL_SIZE];
- int flags;
- int contents;
- int value;
+ int version;
+ char name[32];
+ unsigned width[MIPLEVELS], height[MIPLEVELS];
+ unsigned offsets[MIPLEVELS]; // four mip maps stored
+ char animname[32]; // next frame in animation chain
+ palette_t palette[PAL_SIZE];
+ int flags;
+ int contents;
+ int value;
} miptex_t;
//=============================================================
-int GetDefSurfaceProps(char *Tex)
-{
- return 0; // leo: only used for Heretic 2, fix later
- /*
- char path[NAME_MAX];
- char *p;
- int flags;
- miptex_t *mt;
- FILE *f;
- int length;
- int pos;
+int GetDefSurfaceProps( char *Tex ){
+ return 0; // leo: only used for Heretic 2, fix later
+ /*
+ char path[NAME_MAX];
+ char *p;
+ int flags;
+ miptex_t *mt;
+ FILE *f;
+ int length;
+ int pos;
- if(Game != HERETIC2) return 0;
- if(!strlen(Tex)) return 0;
+ if(Game != HERETIC2) return 0;
+ if(!strlen(Tex)) return 0;
- mt = NULL;
- flags = 0;
- if(UsePak[Game])
- {
- FILE *fpak;
- pak_header_t pakheader;
- pak_item_t pakitem;
- int i;
- int num;
- int numitems;
+ mt = NULL;
+ flags = 0;
+ if(UsePak[Game])
+ {
+ FILE *fpak;
+ pak_header_t pakheader;
+ pak_item_t pakitem;
+ int i;
+ int num;
+ int numitems;
- if (NULL != (fpak = fopen(pakfile[Game], "rb")))
- {
- sprintf(path,"textures/%s.m8",Tex);
- g_strdown(path);
- num=fread(&pakheader,1,sizeof(pak_header_t),fpak);
- if((size_t)num < sizeof(pak_header_t))
- {
- fclose(fpak);
- return 0;
- }
- if(strncmp(pakheader.id,"PACK",4))
- {
- fclose(fpak);
- return 0;
- }
- numitems = pakheader.dsize/sizeof(pak_item_t);
- fseek(fpak,pakheader.dstart,SEEK_SET);
- for(i=0; i<numitems; i++)
- {
- fread(&pakitem,1,sizeof(pak_item_t),fpak);
- if(strstr(pakitem.name,path))
- {
- fseek(fpak,pakitem.start,SEEK_SET);
- if((mt = (miptex_t*)malloc(sizeof(miptex_t)))==NULL)
- {
- fclose(fpak);
- return 0;
- }
- else
- {
- fread(mt, 1, sizeof(miptex_t), fpak);
- flags = mt->flags;
- free(mt);
- }
- }
- }
- fclose(fpak);
- }
- }
- else
- {
- // Assume .map will be output to gamedir/maps, then back up
- // to the gamedir and append /textures. Ugly but it should work
- strcpy(path,gszMapFile);
- g_strdown(path);
- p = strstr(path,"maps");
- if(!p) return 0;
- p[0] = '\0';
- strcat(path,"textures/");
- strcat(path,Tex);
- strcat(path,".m8");
- f = fopen (path, "rb");
- if (!f)
- flags = 0;
- else
- {
- pos = ftell (f);
- fseek (f, 0, SEEK_END);
- length = ftell (f);
- fseek (f, pos, SEEK_SET);
- if((mt = (miptex_t*)malloc(length+1))==NULL)
- flags = 0;
- else
- {
- ((char *)mt)[length] = 0;
- fread(mt, 1, length, f);
- fclose (f);
- flags = mt->flags;
- free(mt);
- }
- }
- }
- return flags;
- */
+ if (NULL != (fpak = fopen(pakfile[Game], "rb")))
+ {
+ sprintf(path,"textures/%s.m8",Tex);
+ g_strdown(path);
+ num=fread(&pakheader,1,sizeof(pak_header_t),fpak);
+ if((size_t)num < sizeof(pak_header_t))
+ {
+ fclose(fpak);
+ return 0;
+ }
+ if(strncmp(pakheader.id,"PACK",4))
+ {
+ fclose(fpak);
+ return 0;
+ }
+ numitems = pakheader.dsize/sizeof(pak_item_t);
+ fseek(fpak,pakheader.dstart,SEEK_SET);
+ for(i=0; i<numitems; i++)
+ {
+ fread(&pakitem,1,sizeof(pak_item_t),fpak);
+ if(strstr(pakitem.name,path))
+ {
+ fseek(fpak,pakitem.start,SEEK_SET);
+ if((mt = (miptex_t*)malloc(sizeof(miptex_t)))==NULL)
+ {
+ fclose(fpak);
+ return 0;
+ }
+ else
+ {
+ fread(mt, 1, sizeof(miptex_t), fpak);
+ flags = mt->flags;
+ free(mt);
+ }
+ }
+ }
+ fclose(fpak);
+ }
+ }
+ else
+ {
+ // Assume .map will be output to gamedir/maps, then back up
+ // to the gamedir and append /textures. Ugly but it should work
+ strcpy(path,gszMapFile);
+ g_strdown(path);
+ p = strstr(path,"maps");
+ if(!p) return 0;
+ p[0] = '\0';
+ strcat(path,"textures/");
+ strcat(path,Tex);
+ strcat(path,".m8");
+ f = fopen (path, "rb");
+ if (!f)
+ flags = 0;
+ else
+ {
+ pos = ftell (f);
+ fseek (f, 0, SEEK_END);
+ length = ftell (f);
+ fseek (f, pos, SEEK_SET);
+ if((mt = (miptex_t*)malloc(length+1))==NULL)
+ flags = 0;
+ else
+ {
+ ((char *)mt)[length] = 0;
+ fread(mt, 1, length, f);
+ fclose (f);
+ flags = mt->flags;
+ free(mt);
+ }
+ }
+ }
+ return flags;
+ */
}