From 652de9bb8f13cdd21bfef5eefa2694da117237d8 Mon Sep 17 00:00:00 2001 From: Garux Date: Tue, 10 Apr 2018 20:51:41 +0300 Subject: [PATCH] * entity based structural/detail filters depend on brushtypes="quake" in .game to make detail surfaceflags usable for quake 1 --- plugins/entity/entity.cpp | 12 ++++-------- radiant/brushmanip.cpp | 5 ++--- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/plugins/entity/entity.cpp b/plugins/entity/entity.cpp index 9b8ba6b4..6d8bfb16 100644 --- a/plugins/entity/entity.cpp +++ b/plugins/entity/entity.cpp @@ -396,10 +396,12 @@ bool filter( const Entity& entity ) const { filter_entity_world g_filter_entity_world; +#include "qerplugin.h" + void Entity_InitFilters(){ add_entity_filter( g_filter_entity_world, EXCLUDE_WORLD ); add_entity_filter( g_filter_entity_func_group, EXCLUDE_FUNC_GROUPS ); - if( g_gameType == eGameTypeQuake1 ){ + if( string_equal( GlobalRadiant().getRequiredGameDescriptionKeyValue( "brushtypes" ), "quake" ) ){ add_entity_filter( g_filter_entity_func_detail, EXCLUDE_DETAILS ); add_entity_filter( g_filter_entity_not_func_detail, EXCLUDE_STRUCTURAL ); } @@ -444,13 +446,7 @@ void Entity_Construct( EGameType gameType ){ } Entity_InitFilters(); - LightType lightType = LIGHTTYPE_DEFAULT; - if ( g_gameType == eGameTypeRTCW ) { - lightType = LIGHTTYPE_RTCW; - } - else if ( g_gameType == eGameTypeDoom3 ) { - lightType = LIGHTTYPE_DOOM3; - } + const LightType lightType = g_gameType == eGameTypeRTCW? LIGHTTYPE_RTCW : g_gameType == eGameTypeDoom3? LIGHTTYPE_DOOM3 : LIGHTTYPE_DEFAULT; Light_Construct( lightType ); MiscModel_construct(); Doom3Group_construct(); diff --git a/radiant/brushmanip.cpp b/radiant/brushmanip.cpp index eeaf9b9a..56a8a370 100644 --- a/radiant/brushmanip.cpp +++ b/radiant/brushmanip.cpp @@ -1233,13 +1233,12 @@ void BrushFilters_construct(){ add_brush_filter( g_filter_brush_visportal, EXCLUDE_VISPORTALS ); add_brush_filter( g_filter_brush_areaportal, EXCLUDE_AREAPORTALS ); add_brush_filter( g_filter_brush_translucent, EXCLUDE_TRANSLUCENT ); - if( !string_equal( GlobalRadiant().getRequiredGameDescriptionKeyValue( "entities" ), "quake" ) ){ /* conditional for entity based struct/det filters; see entity plugin */ + if( !string_equal( GlobalRadiant().getRequiredGameDescriptionKeyValue( "brushtypes" ), "quake" ) ){ /* conditional for entity based structural/detail filters; see entity plugin */ add_brush_filter( g_filter_brush_detail, EXCLUDE_DETAILS ); add_brush_filter( g_filter_brush_detail, EXCLUDE_STRUCTURAL, true ); } - else{ + if( string_equal( GlobalRadiant().getRequiredGameDescriptionKeyValue( "entities" ), "quake" ) ) add_brush_filter( g_filter_brush_liquids_q1, EXCLUDE_LIQUIDS ); - } add_brush_filter( g_filter_brush_lightgrid, EXCLUDE_LIGHTGRID ); add_brush_filter( g_filter_brush_decals, EXCLUDE_DECALS ); }