*~@60W-:ʐR!Fչ R 6NoneBDM16 BDM16WeaponEngineCore ReplaceWithSystem EndAimedModeAdvancedEngine DOTZEngineStartAimedModeToggleAimedModeInventoryTypeActionPickupMessage DrawTypeSetSensitivityTemp StaticMeshMeshXDOTZPlayerController ScopeTexUserVectorEffectiveRangeMuzzleFlashEmitterClass HitAnimNameCrouchIdleAnimNameM16HitStandIdleAnimName M16StandIdle FireAnimNamePawnAnimationPackage ImpactFleshTraceEmitterClassThirdPersonMuzzleFlashClass AimedOffset AimedFOV OfficialNamedrawFirstPersonWeapon reZoomLevel MultiTimer HitSpreadM16CrouchIdleBDM16AmmoPickup ItemNameFireKarma Lighting CollisionForce LightColor MovementM16FireAltFire WeaponChange ReloadingMouseSenseLevel NormalFirePickupMessageMaxDesireabilityGetLocalPlayerControllerAttachmentClass MyDamageTypeCheckReplacementPlayReloadingEndSwayBDM16AmmunitionBDM16AttachmentAutoSwitchPriorityInventoryGroup StartSwayZoomLevelFOVs AmmoAmount bInstantHit BDM16Pickup PickupClass BDM16MutatorMaxAmmo FireSound AmmoNamePickupAmmoCount ReloadCount DamageAmountPCbSuperRelevant IntPropertyMouseSensitivitybSilentClipXWhatClipYSetPosDrawTileScaledfAdvancedWeapon ScriptTextCAdvancedPlayerController ReturnValueWeapon LevelInfoAmmo ControllerPlayerControllerbRenderWeaponMeshSwayMagAdvancedWeaponAttachmentscaleYscaleXtimerIDMutatorCanvasLevelPawn SkeletalMeshBitmapMaterialActorVSizeUSizeSoundbAimingStaticReticuleAccuracyIndicatorM16Ranged M16PickupTextureDOTZGunWeaponClassDOTZWeaponPickupDOTZBigBulletDamageDOTZAmmunitionBaseDOTZAmmoPickup M16WeaponBBPImpactFlesh BBParticles DOTZXWeaponsBBPMediumTracerBBPM16MuzzleFlash DOTZSWeaponsM16ClipRangedM16Shoot DOTZWeaponsPackageConst PlayerInput TextBufferObject Function ZoomOutDelayStateM16AttachmentM16AmmunitionM16AmmoPickup BoolPropertyZOOM_OUT_TIMER bWasAimedcurrentZoomLevel texScaleX texScaleYDOTZA3rdPersonWeapons3PM16 DOTZAWeapons BytePropertyFloatPropertyArrayPropertyClassPropertyValueObjectProperty InstigatorM16Iron".A2[Ɣ + Q"L"xH=-BSY)6! M%I26<  ]Press Action to take the M16:$@?  9]You got the M16$32 *hBЍL9ZL9Z33q{3q{3Jq Ic\; IcL9sߊ FY7Y  @&"]DOTZAHumans.3PM163)" ($C":#"$]M-16NO"PC"DJ<+]M16 @  /@ ";@-9D9?&9?7 &K|% & &  , A**.E$9? 0*2 UռW  ]"!Press Action to pick up M16 ammoG" 14(&a/!(  %<2- 9? 9? -(-' !>o   (  0  : ' b BDM16.BDM16Weapon( BDM16.BDM16Pickup( BDM16.BDM16Attachment( BDM16.BDM16Ammunition(  BDM16.BDM16AmmoPickup( ' CIclass BDM16Weapon extends DOTZGunWeapon config(user); // configurable var() Texture ScopeTex; var() float ZoomOutDelay; var() Array ZoomLevelFOVs; var() Array MouseSenseLevel; var() int SwayMag; // internal const ZOOM_OUT_TIMER = 371740; var protected bool bWasAimed; var protected int currentZoomLevel; // 0 (no zoom) ... N (max zoom) var protected int reZoomLevel; simulated function AltFire( float Value ) { //ON PC ONLY if (Instigator.Controller.IsA('XDotzPlayerController') == false){ ToggleAimedMode(); } //super.AltFire(Value); does reload } /** * Cycle through zoom levels instead of on/off toggle... */ simulated function ToggleAimedMode() { local PlayerController pc; pc = Level.GetLocalPlayerController(); if ( bAiming ) { currentZoomLevel = (currentZoomLevel + 1) % (ZoomLevelFOVs.length + 1); } //re-aiming, set zoom level to whatever it was when we un-zoomed else { currentZoomLevel = reZoomLevel; } if ( currentZoomLevel == 0 ){ pc.SetSensitivityTemp(class'PlayerInput'.default.MouseSensitivity); EndAimedMode(); // EndAimedMode(); } else { pc.SetSensitivityTemp(MouseSenseLevel[currentZoomLevel - 1]); StartAimedMode( ZoomLevelFOVs[currentZoomLevel - 1] ); } } /** * Draw the scope first when zoomed in, and disable rendering of the gun. */ simulated function drawFirstPersonWeapon( canvas c, float scaleX, float scaleY ) { local float texScaleX, texScaleY; if ( bAiming ) { c.setPos( 0,0 ); texScaleX = c.clipX / scopeTex.uSize; texScaleY = c.clipY / scopeTex.vSize; c.drawTileScaled( scopeTex, texScaleX, texScaleY ); bRenderWeaponMesh = false; } else { bRenderWeaponMesh = true; } super.drawFirstPersonWeapon( c, scaleX, scaleY ); } /** * Start the timer to kick out of the scope view... */ simulated function Fire(float Value) { //NOTE this would probably be better as a notify on the fire anim... if ( bAiming ) SetMultiTimer( ZOOM_OUT_TIMER, ZoomOutDelay, false ); super.Fire( value ); } /** * Timers... */ simulated function MultiTimer( int timerID ) { switch ( timerID ) { case ZOOM_OUT_TIMER: EndAimedMode(); bWasAimed = true; break; default: super.MultiTimer( timerID ); } } /** * End all zooming effects */ simulated function PlayReloading() { // Log( self @ "PLAYRELOADING" ) ; currentZoomLevel = 0; EndAimedMode(); super.PlayReloading(); } /** * At the end of the fire anim, go back to zoomed mode. */ state NormalFire { /* HACKED OUT, REQUIRE PLAYER TO MANUALLY RE-ZOOM function AnimEnd(int Channel) { // from base class... Finish(); CheckAnimating(); // re-enagage aim... if ( bWasAimed && !bAiming && currentZoomLevel > 0 ) { StartAimedMode(ZoomLevelFOVs[currentZoomLevel - 1]); } } */ } /** * Make sure we disable aimed mode. */ simulated function Weapon WeaponChange( byte F, bool bSilent ) { EndAimedMode(); return super.WeaponChange( f, bSilent ); } /***************************************************************** * StartAimedMode * Sniper rifle does sway when zoomed ***************************************************************** */ simulated function StartAimedMode( optional int AimedFOV ) { super.StartAimedMode(AimedFOV); AccuracyIndicator = none; StaticReticule = none; AdvancedPlayerController(Instigator.Controller).StartSway( SWAY_SIDEWAYS, SwayMag ); } /***************************************************************** * EndAimedMode ***************************************************************** */ simulated function EndAimedMode() { reZoomLevel = 1; //max( 1, currentZoomLevel ); super.EndAimedMode(); AccuracyIndicator = default.AccuracyIndicator; StaticReticule = default.StaticReticule; AdvancedPlayerController(Instigator.Controller).EndSway(); } state Reloading{ simulated function ToggleAimedMode() { } simulated function StartAimedMode( optional int AimedFOV ) { } } //NOTE could do the same for Reloading-AnimEnd... //=========================================================================== // DefaultProperties //=========================================================================== yclass BDM16Pickup extends DOTZWeaponPickup placeable; //=========================================================================== // DefaultProperties //=========================================================================== ,NK$-a( r class BDM16Mutator extends Mutator; function bool CheckReplacement(Actor what, out byte bSuperRelevant) { switch(what.class) { case class'BDM16.BDM16Weapon': case class'BDM16.BDM16Pickup': case class'BDM16.BDM16Attachment': case class'BDM16.BDM16Ammunition': case class'BDM16.BDM16AmmoPickup': return true; case class'DOTZWeapons.M16Weapon': ReplaceWith(what, "BDM16.BDM16Weapon"); return false; case class'DOTZWeapons.M16Pickup': ReplaceWith(what, "BDM16.BDM16Pickup"); return false; case class'DOTZWeapons.M16Attachment': ReplaceWith(what, "BDM16.BDM16Attachment"); return false; case class'DOTZWeapons.M16Ammunition': ReplaceWith(what, "BDM16.BDM16Ammunition"); return false; case class'DOTZWeapons.M16AmmoPickup': ReplaceWith(what, "BDM16.BDM16AmmoPickup"); return false; } return true; } & 'V0 -'.   '#K2)E_Reb2/.1-0(?g< % *8|E +5 - rclass BDM16Attachment extends AdvancedWeaponAttachment; //=========================================================================== // DefaultProperties //=========================================================================== lclass BDM16Ammunition extends DOTZAmmunitionBase; //=========================================================================== // DefaultProperties //=========================================================================== 2class BDM16AmmoPickup extends DOTZAmmoPickup;  371740B&.@ 256T  46 Q NNN]SN ncRTQpsNMgNF~`PmYgyYwgegx}ghfNJ@BS?S,S'YgrUIbS%idS5SS CU6cUS>S[cYcWU8SZgoTtNGTuS4eS AbcEN{eNaN_WV|DXN{OHvLq`zqzNdKNiNz}i \ s-#X - _ L.R Y.  f.Ats.Bjg0I`Q2 ^ q4T}4 ] Q;(l ]; F i; & v; k B< j N<&f Z< T f<,\ r<,V < 7 K= GX= h _? Ak? [ l@*Px@# HC 46TCf JD7 VD F bD %HnD#a vF#S BG)>rOG ^4NIAK^4DO ,2S)^4} E ';BKh} ?&e 8*K 5(u^4}]^4wZ,aQ^4<_ Z [ ?g 6*f3 P3 l5# H