mirror of
https://github.com/Garux/netradiant-custom.git
synced 2026-09-28 00:00:03 +02:00
tweak EmitBrushes()
This commit is contained in:
@@ -350,7 +350,7 @@ static void ProcessWorldModel( entity_t& e ){
|
||||
AddEntitySurfaceModels( e );
|
||||
|
||||
/* generate bsp brushes from map brushes */
|
||||
EmitBrushes( e.brushes, &e.firstBrush, &e.numBrushes );
|
||||
EmitBrushes( e );
|
||||
|
||||
/* add references to the detail brushes */
|
||||
FilterDetailBrushesIntoTree( e, tree );
|
||||
@@ -472,7 +472,7 @@ static void ProcessSubModel( entity_t& e ){
|
||||
AddEntitySurfaceModels( e );
|
||||
|
||||
/* generate bsp brushes from map brushes */
|
||||
EmitBrushes( e.brushes, &e.firstBrush, &e.numBrushes );
|
||||
EmitBrushes( e );
|
||||
|
||||
/* just put all the brushes in headnode */
|
||||
tree.headnode->brushlist = e.brushes;
|
||||
|
||||
@@ -1003,7 +1003,7 @@ static void PseudoCompileBSP( bool need_tree ){
|
||||
FilterStructuralBrushesIntoTree( entity, tree );
|
||||
FilterDetailBrushesIntoTree( entity, tree );
|
||||
|
||||
EmitBrushes( entity.brushes, &entity.firstBrush, &entity.numBrushes );
|
||||
EmitBrushes( entity );
|
||||
EndModel( entity, tree.headnode );
|
||||
}
|
||||
EndBSPFile( false );
|
||||
|
||||
@@ -1616,7 +1616,7 @@ int EmitShader( const char *shader, const int *contentFl
|
||||
|
||||
void BeginBSPFile();
|
||||
void EndBSPFile( bool do_write );
|
||||
void EmitBrushes( brushlist_t& brushes, int *firstBrush, int *numBrushes );
|
||||
void EmitBrushes( entity_t& e );
|
||||
void EmitFogs();
|
||||
|
||||
void BeginModel( const entity_t& e );
|
||||
|
||||
@@ -350,42 +350,31 @@ void EndBSPFile( bool do_write ){
|
||||
|
||||
/*
|
||||
EmitBrushes()
|
||||
writes the brush list to the bsp
|
||||
writes the entity brush list to the bsp
|
||||
*/
|
||||
|
||||
void EmitBrushes( brushlist_t& brushes, int *firstBrush, int *numBrushes ){
|
||||
void EmitBrushes( entity_t& e ){
|
||||
/* set initial brush */
|
||||
if ( firstBrush != nullptr ) {
|
||||
*firstBrush = bspBrushes.size();
|
||||
}
|
||||
if ( numBrushes != nullptr ) {
|
||||
*numBrushes = 0;
|
||||
}
|
||||
e.firstBrush = bspBrushes.size();
|
||||
e.numBrushes = e.brushes.size();
|
||||
|
||||
/* walk list of brushes */
|
||||
for ( brush_t& b : brushes )
|
||||
for ( brush_t& b : e.brushes )
|
||||
{
|
||||
/* get bsp brush */
|
||||
b.outputNum = bspBrushes.size();
|
||||
bspBrush_t& db = bspBrushes.emplace_back();
|
||||
if ( numBrushes != nullptr ) {
|
||||
( *numBrushes )++;
|
||||
}
|
||||
|
||||
db.shaderNum = EmitShader( b.contentShader->shader, &b.contentShader->contentFlags, &b.contentShader->surfaceFlags );
|
||||
db.firstSide = bspBrushSides.size();
|
||||
db.numSides = b.sides.size();
|
||||
|
||||
/* walk sides */
|
||||
db.numSides = 0;
|
||||
for ( side_t& side : b.sides )
|
||||
{
|
||||
/* set output number to bogus initially */
|
||||
side.outputNum = -1;
|
||||
|
||||
/* emit side */
|
||||
side.outputNum = bspBrushSides.size();
|
||||
bspBrushSide_t& cp = bspBrushSides.emplace_back();
|
||||
db.numSides++;
|
||||
cp.planeNum = side.planenum;
|
||||
|
||||
/* emit shader */
|
||||
|
||||
Reference in New Issue
Block a user