legacy-Ciced
08-08-2003, 07:25 AM
I want the zoom range to be about half the zoom of the sniper however I'm a little stuck as to how to do this.
I've come to the conclusion it's DesiredFOV that sets the range but I can't see where it's being set.
Here's the code I have so far.
class AssualtRifle extends Weapon
config(user);
var(FirstPerson) float NewEffectOffset;
var(Gfx) float testX;
var(Gfx) float testY;
var(Gfx) float borderX;
var(Gfx) float borderY;
var(Gfx) float focusX;
var(Gfx) float focusY;
var(Gfx) float innerArrowsX;
var(Gfx) float innerArrowsY;
var(Gfx) Color ArrowColor;
var(Gfx) Color TargetColor;
var(Gfx) Color NoTargetColor;
var(Gfx) Color FocusColor;
var transient float LastFOV;
var() bool zoomed;
var() xEmitter chargeEmitter;
simulated function vector GetEffectStart()
{
local Vector X,Y,Z;
if ( Instigator.IsFirstPerson() && (Hand == 0) )
{
GetViewAxes(X, Y, Z);
if ( class'PlayerController'.Default.bSmallWeapons || Level.bClassicView )
return (Instigator.Location +
Instigator.CalcDrawOffset(self) +
SmallEffectOffset.X * X +
SmallEffectOffset.Y * Y * Hand -
NewEffectOffset * Z);
else
return (Instigator.Location +
Instigator.CalcDrawOffset(self) +
EffectOffset.X * X +
EffectOffset.Y * Y * Hand +
EffectOffset.Z * Z);
}
return Super.GetEffectStart();
}
simulated function SetZoomBlendColor(Canvas c)
{
local Byte val;
local Color clr;
local Color fog;
clr.R = 255;
clr.G = 255;
clr.B = 255;
clr.A = 255;
if( Instigator.Region.Zone.bDistanceFog )
{
fog = Instigator.Region.Zone.DistanceFogColor;
val = 0;
val = Max( val, fog.R);
val = Max( val, fog.G);
val = Max( val, fog.B);
if( val > 128 )
{
val -= 128;
clr.R -= val;
clr.G -= val;
clr.B -= val;
}
}
c.DrawColor = clr;
}
simulated event RenderOverlays( Canvas Canvas )
{
local float tileScaleX;
local float tileScaleY;
local float bX;
local float bY;
local float fX;
local float fY;
local float tX;
local float tY;
if ( LastFOV > PlayerController(Instigator.Controller).DesiredFOV )
{
PlaySound(Sound'WeaponSounds.LightningGun.Lightnin gZoomIn', SLOT_Misc,,,,,false);
}
else if ( LastFOV < PlayerController(Instigator.Controller).DesiredFOV )
{
PlaySound(Sound'WeaponSounds.LightningGun.Lightnin gZoomOut', SLOT_Misc,,,,,false);
}
LastFOV = PlayerController(Instigator.Controller).DesiredFOV ;
if ( (PlayerController(Instigator.Controller).DesiredFO V == PlayerController(Instigator.Controller).DefaultFOV )
|| (Level.bClassicView && (PlayerController(Instigator.Controller).DesiredFO V == 90)) )
{
Super.RenderOverlays(Canvas);
zoomed=false;
}
else
{
tileScaleX = Canvas.SizeX / 640.0f;
tileScaleY = Canvas.SizeY / 480.0f;
bX = borderX * tileScaleX;
bY = borderY * tileScaleY;
fX = focusX * tileScaleX;
fY = focusY * tileScaleX;
tX = testX * tileScaleX;
tY = testY * tileScaleX;
Canvas.Style = 255;
Canvas.SetPos(0,0);
Canvas.DrawTile( Material'ZoomFB', Canvas.SizeX, Canvas.SizeY, 0.0, 0.0, 512, 512 ); // !! hardcoded size
Canvas.DrawColor = FocusColor;
Canvas.DrawColor.A = 255; // 255 was the original -asp. WTF??!?!?!
Canvas.Style = ERenderStyle.STY_Alpha;
Canvas.SetPos((Canvas.SizeX*0.5)-fX,(Canvas.SizeY*0.5)-fY);
Canvas.DrawTile( Texture'SniperFocus', fX*2.0, fY*2.0, 0.0, 0.0, Texture'SniperFocus'.USize, Texture'SniperFocus'.VSize );
fX = innerArrowsX * tileScaleX;
fY = innerArrowsY * tileScaleY;
Canvas.DrawColor = ArrowColor;
Canvas.SetPos((Canvas.SizeX*0.5)-fX,(Canvas.SizeY*0.5)-fY);
Canvas.DrawTile( Texture'SniperArrows', fX*2.0, fY*2.0, 0.0, 0.0, Texture'SniperArrows'.USize, Texture'SniperArrows'.VSize );
}
}
simulated function ClientStartFire(int mode)
{
if (mode == 1)
{
FireMode[mode].bIsFiring = true;
if( Instigator.Controller.IsA( 'PlayerController' ) )
PlayerController(Instigator.Controller).ToggleZoom ();
}
else
{
Super.ClientStartFire(mode);
}
}
simulated function ClientStopFire(int mode)
{
if (mode == 1)
{
FireMode[mode].bIsFiring = false;
if( Instigator.Controller.IsA( 'PlayerController' ) )
PlayerController(Instigator.Controller).StopZoom() ;
}
else
{
Super.ClientStopFire(mode);
}
}
simulated function BringUp(optional Weapon PrevWeapon)
{
if ( PlayerController(Instigator.Controller) != None )
LastFOV = PlayerController(Instigator.Controller).DesiredFOV ;
Super.BringUp();
}
simulated function bool PutDown()
{
if( Instigator.Controller.IsA( 'PlayerController' ) )
PlayerController(Instigator.Controller).EndZoom();
if ( Super.PutDown() )
{
GotoState('');
return true;
}
return false;
}
defaultproperties
{
NewEffectOffset=5.000000
FireModeClass(0)=Class'BrightWaves.AssualtRifleFir e'
FireModeClass(1)=Class'BrightWaves.AssualtRifleAlt Fire'
PutDownAnim="PutDown"
IdleAnimRate=0.030000
SelectSound=Sound'WeaponSounds.LinkGun.SwitchToLin kGun'
SelectForce="SwitchToLinkGun"
AIRating=0.680000
CurrentRating=0.680000
bMatchWeapons=True
EffectOffset=(X=100.000000,Y=25.000000,Z=-3.000000)
DisplayFOV=60.000000
Priority=5
DefaultPriority=5
HudColor=(B=128,R=128)
SmallViewOffset=(X=10.000000,Y=4.000000,Z=-9.000000)
CenteredOffsetY=-12.000000
CenteredRoll=3000
CenteredYaw=-300
InventoryGroup=2
PickupClass=Class'BrightWaves.AssualtRiflePickup'
PlayerViewOffset=(X=-2.000000,Y=-2.000000,Z=-3.000000)
PlayerViewPivot=(Yaw=500)
BobDamping=1.575000
AttachmentClass=Class'BrightWaves.AssualtRifleAtta chment'
IconMaterial=Texture'InterfaceContent.HUD.SkinA'
IconCoords=(X1=200,Y1=190,X2=321,Y2=280)
ItemName="Support Rifle"
Mesh=SkeletalMesh'Weapons.LinkGun_1st'
UV2Texture=Shader'XGameShaders.WeaponShaders.Weapo nEnvShader'
testX=100.000000
testY=100.000000
borderX=60.000000
borderY=60.000000
focusX=135.000000
focusY=105.000000
innerArrowsX=42.000000
innerArrowsY=42.000000
ArrowColor=(R=255,A=255)
TargetColor=(B=255,G=255,R=255,A=255)
NoTargetColor=(B=200,G=200,R=200,A=255)
FocusColor=(B=126,G=90,R=71,A=215)
bSniping=True
}
Any help appreciated. :)
I've come to the conclusion it's DesiredFOV that sets the range but I can't see where it's being set.
Here's the code I have so far.
class AssualtRifle extends Weapon
config(user);
var(FirstPerson) float NewEffectOffset;
var(Gfx) float testX;
var(Gfx) float testY;
var(Gfx) float borderX;
var(Gfx) float borderY;
var(Gfx) float focusX;
var(Gfx) float focusY;
var(Gfx) float innerArrowsX;
var(Gfx) float innerArrowsY;
var(Gfx) Color ArrowColor;
var(Gfx) Color TargetColor;
var(Gfx) Color NoTargetColor;
var(Gfx) Color FocusColor;
var transient float LastFOV;
var() bool zoomed;
var() xEmitter chargeEmitter;
simulated function vector GetEffectStart()
{
local Vector X,Y,Z;
if ( Instigator.IsFirstPerson() && (Hand == 0) )
{
GetViewAxes(X, Y, Z);
if ( class'PlayerController'.Default.bSmallWeapons || Level.bClassicView )
return (Instigator.Location +
Instigator.CalcDrawOffset(self) +
SmallEffectOffset.X * X +
SmallEffectOffset.Y * Y * Hand -
NewEffectOffset * Z);
else
return (Instigator.Location +
Instigator.CalcDrawOffset(self) +
EffectOffset.X * X +
EffectOffset.Y * Y * Hand +
EffectOffset.Z * Z);
}
return Super.GetEffectStart();
}
simulated function SetZoomBlendColor(Canvas c)
{
local Byte val;
local Color clr;
local Color fog;
clr.R = 255;
clr.G = 255;
clr.B = 255;
clr.A = 255;
if( Instigator.Region.Zone.bDistanceFog )
{
fog = Instigator.Region.Zone.DistanceFogColor;
val = 0;
val = Max( val, fog.R);
val = Max( val, fog.G);
val = Max( val, fog.B);
if( val > 128 )
{
val -= 128;
clr.R -= val;
clr.G -= val;
clr.B -= val;
}
}
c.DrawColor = clr;
}
simulated event RenderOverlays( Canvas Canvas )
{
local float tileScaleX;
local float tileScaleY;
local float bX;
local float bY;
local float fX;
local float fY;
local float tX;
local float tY;
if ( LastFOV > PlayerController(Instigator.Controller).DesiredFOV )
{
PlaySound(Sound'WeaponSounds.LightningGun.Lightnin gZoomIn', SLOT_Misc,,,,,false);
}
else if ( LastFOV < PlayerController(Instigator.Controller).DesiredFOV )
{
PlaySound(Sound'WeaponSounds.LightningGun.Lightnin gZoomOut', SLOT_Misc,,,,,false);
}
LastFOV = PlayerController(Instigator.Controller).DesiredFOV ;
if ( (PlayerController(Instigator.Controller).DesiredFO V == PlayerController(Instigator.Controller).DefaultFOV )
|| (Level.bClassicView && (PlayerController(Instigator.Controller).DesiredFO V == 90)) )
{
Super.RenderOverlays(Canvas);
zoomed=false;
}
else
{
tileScaleX = Canvas.SizeX / 640.0f;
tileScaleY = Canvas.SizeY / 480.0f;
bX = borderX * tileScaleX;
bY = borderY * tileScaleY;
fX = focusX * tileScaleX;
fY = focusY * tileScaleX;
tX = testX * tileScaleX;
tY = testY * tileScaleX;
Canvas.Style = 255;
Canvas.SetPos(0,0);
Canvas.DrawTile( Material'ZoomFB', Canvas.SizeX, Canvas.SizeY, 0.0, 0.0, 512, 512 ); // !! hardcoded size
Canvas.DrawColor = FocusColor;
Canvas.DrawColor.A = 255; // 255 was the original -asp. WTF??!?!?!
Canvas.Style = ERenderStyle.STY_Alpha;
Canvas.SetPos((Canvas.SizeX*0.5)-fX,(Canvas.SizeY*0.5)-fY);
Canvas.DrawTile( Texture'SniperFocus', fX*2.0, fY*2.0, 0.0, 0.0, Texture'SniperFocus'.USize, Texture'SniperFocus'.VSize );
fX = innerArrowsX * tileScaleX;
fY = innerArrowsY * tileScaleY;
Canvas.DrawColor = ArrowColor;
Canvas.SetPos((Canvas.SizeX*0.5)-fX,(Canvas.SizeY*0.5)-fY);
Canvas.DrawTile( Texture'SniperArrows', fX*2.0, fY*2.0, 0.0, 0.0, Texture'SniperArrows'.USize, Texture'SniperArrows'.VSize );
}
}
simulated function ClientStartFire(int mode)
{
if (mode == 1)
{
FireMode[mode].bIsFiring = true;
if( Instigator.Controller.IsA( 'PlayerController' ) )
PlayerController(Instigator.Controller).ToggleZoom ();
}
else
{
Super.ClientStartFire(mode);
}
}
simulated function ClientStopFire(int mode)
{
if (mode == 1)
{
FireMode[mode].bIsFiring = false;
if( Instigator.Controller.IsA( 'PlayerController' ) )
PlayerController(Instigator.Controller).StopZoom() ;
}
else
{
Super.ClientStopFire(mode);
}
}
simulated function BringUp(optional Weapon PrevWeapon)
{
if ( PlayerController(Instigator.Controller) != None )
LastFOV = PlayerController(Instigator.Controller).DesiredFOV ;
Super.BringUp();
}
simulated function bool PutDown()
{
if( Instigator.Controller.IsA( 'PlayerController' ) )
PlayerController(Instigator.Controller).EndZoom();
if ( Super.PutDown() )
{
GotoState('');
return true;
}
return false;
}
defaultproperties
{
NewEffectOffset=5.000000
FireModeClass(0)=Class'BrightWaves.AssualtRifleFir e'
FireModeClass(1)=Class'BrightWaves.AssualtRifleAlt Fire'
PutDownAnim="PutDown"
IdleAnimRate=0.030000
SelectSound=Sound'WeaponSounds.LinkGun.SwitchToLin kGun'
SelectForce="SwitchToLinkGun"
AIRating=0.680000
CurrentRating=0.680000
bMatchWeapons=True
EffectOffset=(X=100.000000,Y=25.000000,Z=-3.000000)
DisplayFOV=60.000000
Priority=5
DefaultPriority=5
HudColor=(B=128,R=128)
SmallViewOffset=(X=10.000000,Y=4.000000,Z=-9.000000)
CenteredOffsetY=-12.000000
CenteredRoll=3000
CenteredYaw=-300
InventoryGroup=2
PickupClass=Class'BrightWaves.AssualtRiflePickup'
PlayerViewOffset=(X=-2.000000,Y=-2.000000,Z=-3.000000)
PlayerViewPivot=(Yaw=500)
BobDamping=1.575000
AttachmentClass=Class'BrightWaves.AssualtRifleAtta chment'
IconMaterial=Texture'InterfaceContent.HUD.SkinA'
IconCoords=(X1=200,Y1=190,X2=321,Y2=280)
ItemName="Support Rifle"
Mesh=SkeletalMesh'Weapons.LinkGun_1st'
UV2Texture=Shader'XGameShaders.WeaponShaders.Weapo nEnvShader'
testX=100.000000
testY=100.000000
borderX=60.000000
borderY=60.000000
focusX=135.000000
focusY=105.000000
innerArrowsX=42.000000
innerArrowsY=42.000000
ArrowColor=(R=255,A=255)
TargetColor=(B=255,G=255,R=255,A=255)
NoTargetColor=(B=200,G=200,R=200,A=255)
FocusColor=(B=126,G=90,R=71,A=215)
bSniping=True
}
Any help appreciated. :)