Index: Projectiles/LaserProjectile.cpp =================================================================== --- Projectiles/LaserProjectile.cpp (revision 3823) +++ Projectiles/LaserProjectile.cpp (working copy) @@ -31,7 +31,7 @@ length(length), curLength(0), intensity(intensity), - intensityFalloff(intensity*0.1f) + intensityFalloff(intensity*weaponDef->falloffRate) { dir=speed; dir.Normalize(); @@ -67,7 +67,7 @@ ttl--; if(ttl<5){ - intensity-=intensityFalloff; + intensity-=intensityFalloff*0.2f; if(intensity<=0){ deleteMe=true; intensity=0; @@ -156,7 +156,7 @@ float size=weaponDef->thickness; float coresize=size * weaponDef->corethickness; - if(camDist<1000){ + if(camDistlodDistance){ float3 pos1=pos+speed*gu->timeOffset; float3 pos2=pos1-dir*curLength; Index: Weapons/WeaponDefHandler.cpp =================================================================== --- Weapons/WeaponDefHandler.cpp (revision 3823) +++ Weapons/WeaponDefHandler.cpp (working copy) @@ -119,6 +119,8 @@ sunparser->GetDef(weaponDefs[id].laserflaresize, "15", weaponname + "\\laserflaresize"); sunparser->GetDef(weaponDefs[id].intensity, "0.9", weaponname + "\\intensity"); sunparser->GetDef(weaponDefs[id].duration, "0.05", weaponname + "\\duration"); + sunparser->GetDef(weaponDefs[id].lodDistance, "1000", weaponname + "\\lodDistance"); + sunparser->GetDef(weaponDefs[id].falloffRate, "0.5", weaponname + "\\falloffRate"); sunparser->GetDef(weaponDefs[id].visuals.sizeDecay, "0", weaponname + "\\sizeDecay"); sunparser->GetDef(weaponDefs[id].visuals.alphaDecay, "1", weaponname + "\\alphaDecay"); Index: Weapons/WeaponDefHandler.h =================================================================== --- Weapons/WeaponDefHandler.h (revision 3823) +++ Weapons/WeaponDefHandler.h (working copy) @@ -94,6 +94,8 @@ float laserflaresize; float corethickness; float duration; + int lodDistance; + float falloffRate; int graphicsType; bool soundTrigger;