X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=model_shared.h;h=9d4c30478a17fb4358f340a1beab6668eb5bdf01;hb=35b6b522b4b9300121a15f94c1065273bab3e9a5;hp=90657ed2e1b2cadb882b0ed46e9a5b5729e343d5;hpb=bc8b80ee19f7a87e326fa765427d0c4e8dfe9940;p=xonotic%2Fdarkplaces.git diff --git a/model_shared.h b/model_shared.h index 90657ed2..9d4c3047 100644 --- a/model_shared.h +++ b/model_shared.h @@ -115,8 +115,6 @@ typedef struct model_s // brush model specific int firstmodelsurface, nummodelsurfaces; - // LordHavoc: sorted surface pointer array, sorted by shader type and then by texture - msurface_t **modelsortedsurfaces; // [nummodelsurfaces] // lightmap format, set to r_lightmaprgba when model is loaded int lightmaprgba; @@ -145,6 +143,9 @@ typedef struct model_s int numsurfaces; msurface_t *surfaces; + int *surfacevisframes; + int *surfacepvsframes; + msurface_t *surfacepvsnext; int numsurfedges; int *surfedges; @@ -153,12 +154,12 @@ typedef struct model_s dclipnode_t *clipnodes; int nummarksurfaces; - msurface_t **marksurfaces; + int *marksurfaces; hull_t hulls[MAX_MAP_HULLS]; int numtextures; - texture_t **textures; + texture_t *textures; qbyte *visdata; qbyte *lightdata; @@ -185,6 +186,7 @@ typedef struct model_s float *mdlmd2data_texcoords; md2frame_t *mdlmd2data_frames; trivertx_t *mdlmd2data_pose; + int *mdlmd2data_triangleneighbors; // for Zymotic models void *zymdata_header; @@ -193,11 +195,11 @@ typedef struct model_s mspriteframe_t *sprdata_frames; // draw the model - void(*Draw)(void); + void(*Draw)(struct entity_render_s *ent); // draw the model's sky polygons (only used by brush models) - void(*DrawSky)(void); + void(*DrawSky)(struct entity_render_s *ent); // draw the model's shadows - void(*DrawShadow)(void); + void(*DrawShadow)(struct entity_render_s *ent); // memory pool for allocations mempool_t *mempool; @@ -222,20 +224,20 @@ extern cvar_t r_fullbrights; void Mod_Init (void); void Mod_CheckLoaded (model_t *mod); void Mod_ClearAll (void); -model_t *Mod_ForName (char *name, qboolean crash, qboolean checkdisk, qboolean isworldmodel); -void Mod_TouchModel (char *name); +model_t *Mod_FindName (const char *name); +model_t *Mod_ForName (const char *name, qboolean crash, qboolean checkdisk, qboolean isworldmodel); +void Mod_TouchModel (const char *name); void Mod_UnloadModel (model_t *mod); -mleaf_t *Mod_PointInLeaf (float *p, model_t *model); -qbyte *Mod_LeafPVS (mleaf_t *leaf, model_t *model); - void Mod_ClearUsed(void); void Mod_PurgeUnused(void); +void Mod_LoadModels(void); extern model_t *loadmodel; extern char loadname[32]; // for hunk tags -extern model_t *Mod_FindName (char *name); +int Mod_FindTriangleWithEdge(int *elements, int numtriangles, int start, int end); +void Mod_BuildTriangleNeighbors(int *neighbors, int *elements, int numtriangles); #endif // __MODEL__