Daemon icon indicating copy to clipboard operation
Daemon copied to clipboard

We have two different `R_AddDecalSurface` functions in two different files.

Open illwieckz opened this issue 1 year ago • 0 comments

Thankfuly they don't have the same signature, but this can be confusing.

They don't seems to really do the same things, they don't look like variant of each others that would just take a different type in input or some extra options:

In tr_world.cpp:

static void R_AddDecalSurface( bspSurface_t *surf, int decalBits )
{
	int i;

	// add decals
	if ( decalBits )
	{
		// ydnar: project any decals
		for ( i = 0; i < tr.refdef.numDecalProjectors; i++ )
		{
			if ( decalBits & ( 1 << i ) )
			{
				R_ProjectDecalOntoSurface( &tr.refdef.decalProjectors[ i ], surf, &tr.world->models[ 0 ] );
			}
		}
	}
}

In tr_decals_.cpp:

void R_AddDecalSurface( decal_t *decal )
{
	int        i;
	float      fade;
	srfDecal_t *srf;

	/* early outs */
	if ( decal->shader == nullptr || decal->parent->viewCount != tr.viewCountNoReset || tr.refdef.numDecals >= MAX_DECALS )
	{
		return;
	}

	/* get decal surface */
	srf = &tr.refdef.decals[ tr.refdef.numDecals ];
	tr.refdef.numDecals++;

	/* set it up */
	srf->surfaceType = surfaceType_t::SF_DECAL;
	srf->numVerts = decal->numVerts;
	memcpy( srf->verts, decal->verts, srf->numVerts * sizeof( *srf->verts ) );

	/* fade colors */
	if ( decal->fadeStartTime < tr.refdef.time && decal->fadeStartTime < decal->fadeEndTime )
	{
		fade = ( float )( decal->fadeEndTime - tr.refdef.time ) / ( float )( decal->fadeEndTime - decal->fadeStartTime );

		for ( i = 0; i < decal->numVerts; i++ )
		{
			decal->verts[ i ].modulate[ 0 ] *= fade;
			decal->verts[ i ].modulate[ 1 ] *= fade;
			decal->verts[ i ].modulate[ 2 ] *= fade;
			decal->verts[ i ].modulate[ 3 ] *= fade;
		}
	}

	/* add surface to scene */
	R_AddDrawSurf( ( surfaceType_t * ) srf, decal->shader, -1, decal->fogIndex );
	tr.pc.c_decalSurfaces++;

	/* free temporary decal */
	if ( decal->fadeEndTime <= tr.refdef.time )
	{
		decal->shader = nullptr;
	}
}

illwieckz avatar May 11 '24 05:05 illwieckz