FTEQW
Documentation of the FTE engine source tree.
gl_heightmap.c File Reference

Enumerations

enum  {
  hmcmd_brush_delete , hmcmd_brush_insert , hmcmd_prespawning , hmcmd_prespawned ,
  hmcmd_patch_insert , hmcmd_ent_edit = 0x40 , hmcmd_ent_remove
}
 
enum  {
  tid_linear , tid_exponential , tid_square_linear , tid_square_exponential ,
  tid_flat
}
 

Functions

void validatelinks (link_t *firstnode)
 
void validatelinks2 (link_t *firstnode, link_t *panic)
 
void QDECL Terr_FinishedSection (hmsection_t *s, qboolean success)
 
qboolean Terr_DownloadedSection (char *fname)
 
int Heightmap_Save (heightmap_t *hm)
 
qboolean Terrain_LocateSection (const char *name, flocation_t *loc)
 
void Terr_DestroySection (heightmap_t *hm, hmsection_t *s, qboolean lightmapreusable)
 
void Terr_PurgeTerrainModel (model_t *mod, qboolean lightmapsonly, qboolean lightmapreusable)
 
void Terr_FreeModel (model_t *mod)
 
void Terr_DrawTerrainWater (heightmap_t *hm, float *mins, float *maxs, struct hmwater_s *w)
 
void Terr_DrawInBounds (struct tdibctx *ctx, int x, int y, int w, int h)
 
void Terr_DrawTerrainModel (batch_t **batches, entity_t *e)
 
void Terrain_ClipDecal (fragmentdecal_t *dec, float *center, float radius, model_t *model)
 
unsigned int Heightmap_PointContentsHM (heightmap_t *hm, float clipmipsz, const vec3_t org)
 
unsigned int Heightmap_PointContents (model_t *model, const vec3_t axis[3], const vec3_t org)
 
unsigned int Heightmap_NativeBoxContents (model_t *model, int hulloverride, const framestate_t *framestate, const vec3_t axis[3], const vec3_t org, const vec3_t mins, const vec3_t maxs)
 
float Heightmap_Normal (heightmap_t *hm, vec2_t org, vec3_t norm)
 
qboolean Heightmap_Trace (struct model_s *model, int hulloverride, const framestate_t *framestate, const vec3_t mataxis[3], const vec3_t start, const vec3_t end, const vec3_t mins, const vec3_t maxs, qboolean capsule, unsigned int against, struct trace_s *trace)
 
qboolean Heightmap_Trace_Test (struct model_s *model, int hulloverride, const framestate_t *framestate, const vec3_t mataxis[3], const vec3_t start, const vec3_t end, const vec3_t mins, const vec3_t maxs, qboolean capsule, unsigned int against, struct trace_s *trace)
 
unsigned int Heightmap_FatPVS (model_t *mod, const vec3_t org, pvsbuffer_t *fte_restrict pvsbuffer, qboolean add)
 
qboolean Heightmap_EdictInFatPVS (model_t *mod, const struct pvscache_s *edict, const qbyte *pvsdata, const int *areas)
 
void Heightmap_FindTouchedLeafs (model_t *mod, pvscache_t *ent, const float *mins, const float *maxs)
 
void Heightmap_LightPointValues (model_t *mod, const vec3_t point, vec3_t res_diffuse, vec3_t res_ambient, vec3_t res_dir)
 
void Heightmap_StainNode (model_t *mod, float *parms)
 
void Heightmap_MarkLights (dlight_t *light, dlightbitmask_t bit, mnode_t *node)
 
qbyteHeightmap_ClusterPVS (model_t *model, int num, pvsbuffer_t *buffer, pvsmerge_t merge)
 
int Heightmap_ClusterForPoint (model_t *model, const vec3_t point, int *area)
 
void ted_texkill (hmsection_t *s, const char *killtex)
 
void QCBUILTIN PF_terrain_edit (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void Terr_ParseEntityLump (model_t *mod, heightmap_t *heightmap)
 
void Terr_FinishTerrain (model_t *mod)
 
heightmap_tCL_BrushEdit_ForceContext (model_t *mod)
 
void CL_Parse_BrushEdit (void)
 
qboolean SV_Prespawn_Brushes (sizebuf_t *msg, unsigned int *modelindex, unsigned int *lastid)
 
qboolean SV_Parse_BrushEdit (void)
 
void QCBUILTIN PF_patch_getcp (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void QCBUILTIN PF_patch_evaluate (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void QCBUILTIN PF_patch_getmesh (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void QCBUILTIN PF_brush_get (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void QCBUILTIN PF_brush_create (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void QCBUILTIN PF_patch_create (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void QCBUILTIN PF_brush_delete (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void QCBUILTIN PF_brush_selected (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void QCBUILTIN PF_brush_calcfacepoints (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void QCBUILTIN PF_brush_getfacepoints (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void QCBUILTIN PF_brush_findinvolume (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
 
void Terr_WriteBrushInfo (vfsfile_t *file, brushes_t *br)
 
void Terr_WriteMapFile (vfsfile_t *file, model_t *mod)
 
void Mod_Terrain_Save_f (void)
 
qboolean Terr_ReformEntitiesLump (model_t *mod, heightmap_t *hm, char *entities)
 
qboolean QDECL Terr_LoadTerrainModel (model_t *mod, void *buffer, size_t bufsize)
 
voidMod_LoadTerrainInfo (model_t *mod, char *loadname, qboolean force)
 
void Mod_Terrain_Create_f (void)
 
void Mod_Terrain_Convert_f (void)
 
void Mod_Terrain_Reload_f (void)
 
plugterrainfuncs_tTerr_GetTerrainFuncs (size_t structsize)
 
void Terr_Init (void)
 

Variables

cvar_t mod_terrain_networked = CVARD("mod_terrain_networked", "0", "Terrain edits are networked. Clients will download sections on demand, and servers will notify clients of changes.")
 
cvar_t mod_terrain_defaulttexture = CVARD("mod_terrain_defaulttexture", "", "Newly created terrain tiles will use this texture. This should generally be updated by the terrain editor.")
 
cvar_t mod_terrain_savever = CVARD("mod_terrain_savever", "", "Which terrain section version to write if terrain was edited.")
 
cvar_t mod_terrain_sundir = CVARD("mod_terrain_sundir", "0.4 0.7 2", "The direction of the sun (vector will be normalised).")
 
cvar_t mod_terrain_ambient = CVARD("mod_terrain_ambient", "0.5", "Proportion of ambient light.")
 
cvar_t mod_terrain_shadows = CVARD("mod_terrain_shadows", "0", "Cast rays to determine whether parts of the terrain should be in shadow.")
 
cvar_t mod_terrain_shadow_dist = CVARD("mod_terrain_shadow_dist", "2048", "How far rays should be cast in order to look for occlusing geometry.")
 
cvar_t mod_terrain_brushlights = CVARD("mod_map_lights", "0", "Calculates lighting on brushes/patches.")
 
cvar_t mod_terrain_brushtexscale = CVARD("mod_map_texscale", "1", "Defines the scale of texture texels. Use 1 for quake+quake2 maps, and 0.5 for quake3 maps.")
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
hmcmd_brush_delete 
hmcmd_brush_insert 
hmcmd_prespawning 
hmcmd_prespawned 
hmcmd_patch_insert 
hmcmd_ent_edit 
hmcmd_ent_remove 

◆ anonymous enum

anonymous enum
Enumerator
tid_linear 
tid_exponential 
tid_square_linear 
tid_square_exponential 
tid_flat 

Function Documentation

◆ CL_BrushEdit_ForceContext()

heightmap_t * CL_BrushEdit_ForceContext ( model_t mod)

◆ CL_Parse_BrushEdit()

void CL_Parse_BrushEdit ( void  )

◆ Heightmap_ClusterForPoint()

int Heightmap_ClusterForPoint ( model_t model,
const vec3_t  point,
int area 
)

◆ Heightmap_ClusterPVS()

qbyte * Heightmap_ClusterPVS ( model_t model,
int  num,
pvsbuffer_t buffer,
pvsmerge_t  merge 
)

◆ Heightmap_EdictInFatPVS()

qboolean Heightmap_EdictInFatPVS ( model_t mod,
const struct pvscache_s edict,
const qbyte pvsdata,
const int areas 
)

◆ Heightmap_FatPVS()

unsigned int Heightmap_FatPVS ( model_t mod,
const vec3_t  org,
pvsbuffer_t *fte_restrict  pvsbuffer,
qboolean  add 
)

◆ Heightmap_FindTouchedLeafs()

void Heightmap_FindTouchedLeafs ( model_t mod,
pvscache_t ent,
const float *  mins,
const float *  maxs 
)

◆ Heightmap_LightPointValues()

void Heightmap_LightPointValues ( model_t mod,
const vec3_t  point,
vec3_t  res_diffuse,
vec3_t  res_ambient,
vec3_t  res_dir 
)

◆ Heightmap_MarkLights()

void Heightmap_MarkLights ( dlight_t light,
dlightbitmask_t  bit,
mnode_t node 
)

◆ Heightmap_NativeBoxContents()

unsigned int Heightmap_NativeBoxContents ( model_t model,
int  hulloverride,
const framestate_t framestate,
const vec3_t  axis[3],
const vec3_t  org,
const vec3_t  mins,
const vec3_t  maxs 
)

◆ Heightmap_Normal()

float Heightmap_Normal ( heightmap_t hm,
vec2_t  org,
vec3_t  norm 
)

◆ Heightmap_PointContents()

unsigned int Heightmap_PointContents ( model_t model,
const vec3_t  axis[3],
const vec3_t  org 
)

◆ Heightmap_PointContentsHM()

unsigned int Heightmap_PointContentsHM ( heightmap_t hm,
float  clipmipsz,
const vec3_t  org 
)

◆ Heightmap_Save()

int Heightmap_Save ( heightmap_t hm)

◆ Heightmap_StainNode()

void Heightmap_StainNode ( model_t mod,
float *  parms 
)

◆ Heightmap_Trace()

qboolean Heightmap_Trace ( struct model_s model,
int  hulloverride,
const framestate_t framestate,
const vec3_t  mataxis[3],
const vec3_t  start,
const vec3_t  end,
const vec3_t  mins,
const vec3_t  maxs,
qboolean  capsule,
unsigned int  against,
struct trace_s trace 
)

◆ Heightmap_Trace_Test()

qboolean Heightmap_Trace_Test ( struct model_s model,
int  hulloverride,
const framestate_t framestate,
const vec3_t  mataxis[3],
const vec3_t  start,
const vec3_t  end,
const vec3_t  mins,
const vec3_t  maxs,
qboolean  capsule,
unsigned int  against,
struct trace_s trace 
)

◆ Mod_LoadTerrainInfo()

void * Mod_LoadTerrainInfo ( model_t mod,
char *  loadname,
qboolean  force 
)

◆ Mod_Terrain_Convert_f()

void Mod_Terrain_Convert_f ( void  )

◆ Mod_Terrain_Create_f()

void Mod_Terrain_Create_f ( void  )

◆ Mod_Terrain_Reload_f()

void Mod_Terrain_Reload_f ( void  )

◆ Mod_Terrain_Save_f()

void Mod_Terrain_Save_f ( void  )

◆ PF_brush_calcfacepoints()

void QCBUILTIN PF_brush_calcfacepoints ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ PF_brush_create()

void QCBUILTIN PF_brush_create ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ PF_brush_delete()

void QCBUILTIN PF_brush_delete ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ PF_brush_findinvolume()

void QCBUILTIN PF_brush_findinvolume ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ PF_brush_get()

void QCBUILTIN PF_brush_get ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ PF_brush_getfacepoints()

void QCBUILTIN PF_brush_getfacepoints ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ PF_brush_selected()

void QCBUILTIN PF_brush_selected ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ PF_patch_create()

void QCBUILTIN PF_patch_create ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ PF_patch_evaluate()

void QCBUILTIN PF_patch_evaluate ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ PF_patch_getcp()

void QCBUILTIN PF_patch_getcp ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ PF_patch_getmesh()

void QCBUILTIN PF_patch_getmesh ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ PF_terrain_edit()

void QCBUILTIN PF_terrain_edit ( pubprogfuncs_t prinst,
struct globalvars_s pr_globals 
)

◆ SV_Parse_BrushEdit()

qboolean SV_Parse_BrushEdit ( void  )

◆ SV_Prespawn_Brushes()

qboolean SV_Prespawn_Brushes ( sizebuf_t msg,
unsigned int modelindex,
unsigned int lastid 
)

◆ ted_texkill()

void ted_texkill ( hmsection_t s,
const char *  killtex 
)

◆ Terr_DestroySection()

void Terr_DestroySection ( heightmap_t hm,
hmsection_t s,
qboolean  lightmapreusable 
)

◆ Terr_DownloadedSection()

qboolean Terr_DownloadedSection ( char *  fname)

◆ Terr_DrawInBounds()

void Terr_DrawInBounds ( struct tdibctx *  ctx,
int  x,
int  y,
int  w,
int  h 
)

◆ Terr_DrawTerrainModel()

void Terr_DrawTerrainModel ( batch_t **  batches,
entity_t e 
)

◆ Terr_DrawTerrainWater()

void Terr_DrawTerrainWater ( heightmap_t hm,
float *  mins,
float *  maxs,
struct hmwater_s w 
)

◆ Terr_FinishedSection()

void QDECL Terr_FinishedSection ( hmsection_t s,
qboolean  success 
)

◆ Terr_FinishTerrain()

void Terr_FinishTerrain ( model_t mod)

◆ Terr_FreeModel()

void Terr_FreeModel ( model_t mod)

◆ Terr_GetTerrainFuncs()

plugterrainfuncs_t * Terr_GetTerrainFuncs ( size_t  structsize)

◆ Terr_Init()

void Terr_Init ( void  )

◆ Terr_LoadTerrainModel()

qboolean QDECL Terr_LoadTerrainModel ( model_t mod,
void buffer,
size_t  bufsize 
)

◆ Terr_ParseEntityLump()

void Terr_ParseEntityLump ( model_t mod,
heightmap_t heightmap 
)

◆ Terr_PurgeTerrainModel()

void Terr_PurgeTerrainModel ( model_t mod,
qboolean  lightmapsonly,
qboolean  lightmapreusable 
)

◆ Terr_ReformEntitiesLump()

qboolean Terr_ReformEntitiesLump ( model_t mod,
heightmap_t hm,
char *  entities 
)

◆ Terr_WriteBrushInfo()

void Terr_WriteBrushInfo ( vfsfile_t file,
brushes_t br 
)

◆ Terr_WriteMapFile()

void Terr_WriteMapFile ( vfsfile_t file,
model_t mod 
)

◆ Terrain_ClipDecal()

void Terrain_ClipDecal ( fragmentdecal_t dec,
float *  center,
float  radius,
model_t model 
)

◆ Terrain_LocateSection()

qboolean Terrain_LocateSection ( const char *  name,
flocation_t loc 
)

◆ validatelinks()

void validatelinks ( link_t firstnode)

◆ validatelinks2()

void validatelinks2 ( link_t firstnode,
link_t panic 
)

Variable Documentation

◆ mod_terrain_ambient

cvar_t mod_terrain_ambient = CVARD("mod_terrain_ambient", "0.5", "Proportion of ambient light.")

◆ mod_terrain_brushlights

cvar_t mod_terrain_brushlights = CVARD("mod_map_lights", "0", "Calculates lighting on brushes/patches.")

◆ mod_terrain_brushtexscale

cvar_t mod_terrain_brushtexscale = CVARD("mod_map_texscale", "1", "Defines the scale of texture texels. Use 1 for quake+quake2 maps, and 0.5 for quake3 maps.")

◆ mod_terrain_defaulttexture

cvar_t mod_terrain_defaulttexture = CVARD("mod_terrain_defaulttexture", "", "Newly created terrain tiles will use this texture. This should generally be updated by the terrain editor.")

◆ mod_terrain_networked

cvar_t mod_terrain_networked = CVARD("mod_terrain_networked", "0", "Terrain edits are networked. Clients will download sections on demand, and servers will notify clients of changes.")

◆ mod_terrain_savever

cvar_t mod_terrain_savever = CVARD("mod_terrain_savever", "", "Which terrain section version to write if terrain was edited.")

◆ mod_terrain_shadow_dist

cvar_t mod_terrain_shadow_dist = CVARD("mod_terrain_shadow_dist", "2048", "How far rays should be cast in order to look for occlusing geometry.")

◆ mod_terrain_shadows

cvar_t mod_terrain_shadows = CVARD("mod_terrain_shadows", "0", "Cast rays to determine whether parts of the terrain should be in shadow.")

◆ mod_terrain_sundir

cvar_t mod_terrain_sundir = CVARD("mod_terrain_sundir", "0.4 0.7 2", "The direction of the sun (vector will be normalised).")