enum class EFloodEntities
This commit is contained in:
parent
a17bf05f5c
commit
ca34e8f38f
|
|
@ -294,7 +294,6 @@ void ProcessWorldModel( void ){
|
|||
xmlNodePtr polyline, leaknode;
|
||||
char level[ 2 ];
|
||||
const char *value;
|
||||
int leakStatus;
|
||||
|
||||
/* sets integer blockSize from worldspawn "_blocksize" key if it exists */
|
||||
if( entities[ 0 ].read_keyvalue( value, "_blocksize", "blocksize", "chopsize" ) ) { /* "chopsize" : sof2 */
|
||||
|
|
@ -333,14 +332,12 @@ void ProcessWorldModel( void ){
|
|||
FilterStructuralBrushesIntoTree( e, tree );
|
||||
|
||||
/* see if the bsp is completely enclosed */
|
||||
leakStatus = FloodEntities( tree );
|
||||
if ( ignoreLeaks ) {
|
||||
if ( leakStatus == FLOODENTITIES_LEAKED ) {
|
||||
leakStatus = FLOODENTITIES_GOOD;
|
||||
}
|
||||
EFloodEntities leakStatus = FloodEntities( tree );
|
||||
if ( ignoreLeaks && leakStatus == EFloodEntities::Leaked ) {
|
||||
leakStatus = EFloodEntities::Good;
|
||||
}
|
||||
|
||||
const bool leaked = ( leakStatus != FLOODENTITIES_GOOD );
|
||||
const bool leaked = ( leakStatus != EFloodEntities::Good );
|
||||
if( leaked ){
|
||||
Sys_FPrintf( SYS_NOXMLflag | SYS_ERR, "**********************\n" );
|
||||
Sys_FPrintf( SYS_NOXMLflag | SYS_ERR, "******* leaked *******\n" );
|
||||
|
|
@ -359,7 +356,7 @@ void ProcessWorldModel( void ){
|
|||
}
|
||||
}
|
||||
|
||||
if ( leakStatus != FLOODENTITIES_EMPTY ) { /* if no entities exist, this would accidentally the whole map, and that IS bad */
|
||||
if ( leakStatus != EFloodEntities::Empty ) { /* if no entities exist, this would accidentally the whole map, and that IS bad */
|
||||
/* rebuild a better bsp tree using only the sides that are visible from the inside */
|
||||
FillOutside( tree->headnode );
|
||||
|
||||
|
|
|
|||
|
|
@ -626,7 +626,7 @@ bool PlaceOccupant( node_t *headnode, vec3_t origin, const entity_t *occupant, b
|
|||
=============
|
||||
*/
|
||||
|
||||
int FloodEntities( tree_t *tree ){
|
||||
EFloodEntities FloodEntities( tree_t *tree ){
|
||||
bool r, inside, skybox;
|
||||
node_t *headnode;
|
||||
const char *value;
|
||||
|
|
@ -706,14 +706,14 @@ int FloodEntities( tree_t *tree ){
|
|||
|
||||
if ( !inside ) {
|
||||
Sys_FPrintf( SYS_WRN | SYS_VRBflag, "no entities in open -- no filling\n" );
|
||||
return FLOODENTITIES_EMPTY;
|
||||
return EFloodEntities::Empty;
|
||||
}
|
||||
if ( tree->outside_node.occupied ) {
|
||||
Sys_FPrintf( SYS_WRN | SYS_VRBflag, "entity reached from outside -- leak detected\n" );
|
||||
return FLOODENTITIES_LEAKED;
|
||||
return EFloodEntities::Leaked;
|
||||
}
|
||||
|
||||
return FLOODENTITIES_GOOD;
|
||||
return EFloodEntities::Good;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1574,10 +1574,13 @@ void SplitNodePortals( node_t *node );
|
|||
|
||||
bool PortalPassable( portal_t *p );
|
||||
|
||||
#define FLOODENTITIES_LEAKED 1
|
||||
#define FLOODENTITIES_GOOD 0
|
||||
#define FLOODENTITIES_EMPTY -1
|
||||
int FloodEntities( tree_t *tree );
|
||||
enum class EFloodEntities
|
||||
{
|
||||
Leaked,
|
||||
Good,
|
||||
Empty
|
||||
};
|
||||
EFloodEntities FloodEntities( tree_t *tree );
|
||||
void FillOutside( node_t *headnode );
|
||||
void FloodAreas( tree_t *tree );
|
||||
face_t *VisibleFaces( entity_t *e, tree_t *tree );
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user