RenderOverlays function

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

Wormbo

Administrator
Staff member
Jun 4, 2001
5,913
36
48
Germany
www.koehler-homepage.de
I'm currently experimenting with the RenderOverlays function of weapons to allow other inventory items or maybe hud mutators to add some effects.
Now the new UDamage doesn't change the weapon's texture but draws that glow around the weapon.
Everything is fine until I get double enforcers. The right one does get the cool glow, but the left doesn't.
That's the code of the basic weapon class I use:
Code:
simulated function RenderOverlays(canvas Canvas)
{
	local Mutator M;
	local PickupPlus A;
	local bool bOverride;
	
	for (A = PickupPlus(Affector); !bOverride && A != None; A = PickupPlus(A.NextAffector))
		if ( A.bRenderOverlays ) {
			bOverride = A.PreRenderOverlaysFor(Self, Canvas) || bOverride;
		}
	
	if ( !bOverride ) {
		Super.RenderOverlays(Canvas);
		
		for (A = PickupPlus(Affector); A != None; A = PickupPlus(A.NextAffector))
			if ( A.bRenderOverlays ) {
				A.PostRenderOverlaysFor(Self, Canvas);
			}
	}
	if ( SlaveWeapon != None )
		SlaveWeapon.RenderOverlays(Canvas);
}
The UDamage (one of the affectors) gets a PostRenderOverlaysFor() call with the weapon (Self) as a parameter.
Now if a second enforcer is picked up it *should* be registered as the SlaveWeapon but why isn't this working?
 

Bytekeeper

Last of the Brunnen G
Jul 15, 2001
181
0
0
Germany
Visit site
:eek: Your second enforcer's renderoverlay is not called...
You need to call:
SlaveEnforcer.RenderOverlays()

Oh just read a bit more ;)
So it seems that your slaveweapon registration code is buggy.