mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-31 09:06:46 +00:00
svn -> git Migration
This commit is contained in:
@@ -0,0 +1,195 @@
|
||||
#ifndef __EQCLIENT_WLD_H_
|
||||
#define __EQCLIENT_WLD_H_
|
||||
|
||||
#include "s3d.h"
|
||||
#include "types.h"
|
||||
|
||||
#define FRAGMENT(name) status = name(&frag_obj, obj, (wld + pos + sizeof(struct_wld_basic_frag)), frag->size, frag->nameRef)
|
||||
#define FRAGMENT_FUNC(name) int name(void **obj, wld_object *wld, uchar *buf, int len, int frag_name)
|
||||
|
||||
typedef struct struct_wld_header {
|
||||
long magic;
|
||||
long version;
|
||||
long fragmentCount;
|
||||
long header3;
|
||||
long header4;
|
||||
long stringHashSize;
|
||||
long header6;
|
||||
} struct_wld_header;
|
||||
|
||||
typedef struct struct_wld_basic_frag {
|
||||
long size;
|
||||
long id;
|
||||
long nameRef;
|
||||
} struct_wld_basic_frag;
|
||||
|
||||
|
||||
typedef struct struct_Data36 {
|
||||
long flags;
|
||||
long fragment1;
|
||||
long fragment2;
|
||||
long fragment3;
|
||||
long fragment4;
|
||||
float centerX;
|
||||
float centerY;
|
||||
float centerZ;
|
||||
long params2[3]; // 48
|
||||
float maxDist;
|
||||
float minX;
|
||||
float minY;
|
||||
float minZ;
|
||||
float maxX;
|
||||
float maxY;
|
||||
float maxZ; // 24
|
||||
short int vertexCount;
|
||||
short int texCoordsCount;
|
||||
short int normalsCount;
|
||||
short int colorCount;
|
||||
short int polygonsCount;
|
||||
short int size6;
|
||||
short int polygonTexCount;
|
||||
short int vertexTexCount;
|
||||
short int size9;
|
||||
short int scale; // 20
|
||||
} struct_Data36;
|
||||
|
||||
struct Data10 {
|
||||
long flags, size1, fragment;
|
||||
};
|
||||
|
||||
typedef struct WLDVertex {
|
||||
double x, y, z;
|
||||
float u, v;
|
||||
short skin;
|
||||
} WLDVertex;
|
||||
|
||||
typedef struct Vert {
|
||||
signed short int x, y, z;
|
||||
} Vert;
|
||||
|
||||
typedef struct TexCoordsNew {
|
||||
signed long tx, tz;
|
||||
} TexCoordsNew;
|
||||
|
||||
typedef struct TexCoordsOld {
|
||||
signed short int tx, tz;
|
||||
} TexCoordsOld;
|
||||
|
||||
typedef struct VertexNormal {
|
||||
signed char nx, ny, nz;
|
||||
} VertexNormal;
|
||||
|
||||
typedef struct VertexColor {
|
||||
char color[4];
|
||||
} VertexColor;
|
||||
|
||||
typedef struct WLDPolygon {
|
||||
short int flags, v1, v2, v3;
|
||||
} WLDPolygon;
|
||||
|
||||
typedef struct Poly {
|
||||
long int flags, v1, v2, v3, tex;
|
||||
} Poly;
|
||||
|
||||
typedef struct WLDTexture {
|
||||
int count;
|
||||
int *flags;
|
||||
int params;
|
||||
char **filenames;
|
||||
uint32 *textures;
|
||||
} WLDTexture;
|
||||
|
||||
typedef struct Mesh {
|
||||
long name;
|
||||
long polygonCount;
|
||||
long vertexCount;
|
||||
WLDVertex *verti;
|
||||
Poly *poly;
|
||||
WLDTexture *tex;
|
||||
} Mesh;
|
||||
|
||||
typedef struct ZoneMesh {
|
||||
long name;
|
||||
long polygonCount;
|
||||
long vertexCount;
|
||||
WLDVertex **verti;
|
||||
Poly **poly;
|
||||
WLDTexture *tex;
|
||||
} ZoneMesh;
|
||||
|
||||
typedef struct struct_frag {
|
||||
long type;
|
||||
long name;
|
||||
void *frag;
|
||||
}struct_frag;
|
||||
|
||||
typedef struct struct_Data21 {
|
||||
float normal[3], splitdistance;
|
||||
long region, node[2];
|
||||
} struct_Data21;
|
||||
|
||||
typedef struct struct_Data22 {
|
||||
long flags, fragment1, size1, size2, params1, size3, size4, params2, size5, size6;
|
||||
} struct_Data22;
|
||||
|
||||
typedef struct struct_Data29 {
|
||||
long region_count;
|
||||
long *region_array;
|
||||
long strlen;
|
||||
char *str;
|
||||
int region_type; // We fill this in with -1 for unknown, 1 for water, 2 for lava
|
||||
} struct_Data29;
|
||||
|
||||
/*typedef struct BSP_Region {
|
||||
|
||||
} BSP_Region;*/
|
||||
|
||||
typedef struct BSP_Node {
|
||||
long node_number;
|
||||
float normal[3], splitdistance;
|
||||
long region;
|
||||
int special;
|
||||
long left, right;
|
||||
} BSP_Node;
|
||||
|
||||
typedef struct struct_Data15 {
|
||||
uint32 ref, flags, fragment1;
|
||||
float trans[3], rot[3];
|
||||
float scale[3];
|
||||
uint32 fragment2, flags2;
|
||||
} struct_Data15;
|
||||
|
||||
typedef struct WLDPlaceable {
|
||||
float trans[3], rot[3], scale[3];
|
||||
Mesh *mesh;
|
||||
} WLDPlaceable;
|
||||
|
||||
typedef struct Placeable_LL {
|
||||
WLDPlaceable *obj;
|
||||
struct Placeable_LL *next;
|
||||
} Placeable_LL;
|
||||
|
||||
typedef struct wld_object {
|
||||
int fragCount;
|
||||
char loadBSP;
|
||||
uchar *wld;
|
||||
uchar *sHash;
|
||||
uint8 _new;
|
||||
s3d_object *s3d;
|
||||
Placeable_LL *placeable, *placeable_cur;
|
||||
struct wld_object *objs;
|
||||
struct_frag **frags;
|
||||
} wld_object;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int WLD_Init(wld_object *obj, uchar *wld, s3d_object *s3d, char loadBSP);
|
||||
int WLD_GetZoneMesh(wld_object *obj, ZoneMesh *mesh);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user