diff --git a/engine/common/mod_bmodel.c b/engine/common/mod_bmodel.c index fca6da57..8b5e513e 100644 --- a/engine/common/mod_bmodel.c +++ b/engine/common/mod_bmodel.c @@ -1677,9 +1677,10 @@ static void Mod_SetupSubmodels( model_t *mod, dbspmodel_t *bmod ) // mark models that have origin brushes if( !VectorIsNull( bm->origin )) SetBits( mod->flags, MODEL_HAS_ORIGIN ); + #ifdef HACKS_RELATED_HLMODS // c2a1 doesn't have origin brush it's just placed at center of the level - if( !Q_stricmp( name, "maps/c2a1.bsp" ) && ( i == 11 )) + if( i == 11 && !Q_stricmp( name, "maps/c2a1.bsp" )) SetBits( mod->flags, MODEL_HAS_ORIGIN ); #endif } @@ -1835,6 +1836,8 @@ static void Mod_LoadEntities( model_t *mod, dbspmodel_t *bmod ) world.generator[0] = '\0'; world.compiler[0] = '\0'; world.message[0] = '\0'; + world.litwater_minlight = -1; + world.litwater_scale = -1.0f; bmod->wadlist.count = 0; // parse all the wads for loading textures in right ordering @@ -1893,6 +1896,12 @@ static void Mod_LoadEntities( model_t *mod, dbspmodel_t *bmod ) Q_strncpy( world.compiler, token, sizeof( world.compiler )); else if( !Q_stricmp( keyname, "generator" ) || !Q_stricmp( keyname, "_generator" )) Q_strncpy( world.generator, token, sizeof( world.generator )); + else if( !Q_stricmp( keyname, "_litwater" )) + SetBits( world.flags, FWORLD_HAS_LITWATER ); + else if( !Q_stricmp( keyname, "_litwater_minlight" )) + world.litwater_minlight = Q_atoi( token ); + else if( !Q_stricmp( keyname, "_litwater_scale" )) + world.litwater_scale = Q_atof( token ); } return; // all done } diff --git a/engine/common/mod_local.h b/engine/common/mod_local.h index c75246f5..18653e0b 100644 --- a/engine/common/mod_local.h +++ b/engine/common/mod_local.h @@ -119,6 +119,10 @@ typedef struct world_static_s // Potentially Hearable Set byte *compressed_phs; size_t *phsofs; + + // lightmapped water extra info + float litwater_scale; + int litwater_minlight; } world_static_t; #ifndef REF_DLL diff --git a/engine/ref_api.h b/engine/ref_api.h index 4e7d7656..41482f77 100644 --- a/engine/ref_api.h +++ b/engine/ref_api.h @@ -80,10 +80,11 @@ GNU General Public License for more details. #define MODEL_CLIENT BIT( 30 ) // client sprite // goes into world.flags -#define FWORLD_SKYSPHERE BIT( 0 ) -#define FWORLD_CUSTOM_SKYBOX BIT( 1 ) -#define FWORLD_WATERALPHA BIT( 2 ) -#define FWORLD_HAS_DELUXEMAP BIT( 3 ) +#define FWORLD_SKYSPHERE BIT( 0 ) +#define FWORLD_CUSTOM_SKYBOX BIT( 1 ) +#define FWORLD_WATERALPHA BIT( 2 ) +#define FWORLD_HAS_DELUXEMAP BIT( 3 ) +#define FWORLD_HAS_LITWATER BIT( 4 ) // special rendermode for screenfade modulate // (probably will be expanded at some point)