I don't need to test my programs. I have an error-correcting modem.
UE2:Weapon (UT2004)
From Unreal Wiki, The Unreal Engine Documentation Site
- Package:
- Engine
- Direct subclasses:
- AssaultRifle, BallLauncher, BioRifle, ClassicSniperRifle, ONSMineLayer, FlakCannon, Redeemer, LinkGun, Minigun, ONSAVRiL, ONSGrenadeLauncher, Painter, Weapon_Turret_Minigun, RocketLauncher, ShieldGun, ShockRifle, SniperRifle, TransLauncher, Weapon_Sentinel, Weapon_SpaceFighter, Weapon_Turret, Weapon_Turret_IonCannon
- Known custom subclass:
- ReloadableWeaponBase
- This class in other games:
- RTNP, U1, UT, UE2Runtime, U2XMP, U2, UT2003, UT3, UDK
Abstract base class for all kinds of weapons.
Constants
NUM_FIRE_MODES
Value: 2
Array size for various fire mode variables.
Properties
See Weapon properties.
Enums
EWeaponClientState
- WS_None
- WS_Hidden
- WS_BringUp
- WS_PutDown
- WS_ReadyToFire
Functions
Native functions
InitWeaponFires
native final function InitWeaponFires ()
Other native code
Weapon firing updates
void AWeapon::TickAuthoritative( FLOAT DeltaSeconds ) { guardSlow(AWeapon::TickAuthoritative); AActor::TickAuthoritative( DeltaSeconds ); if( bDeleteMe ) return; if ( Instigator && Instigator->Weapon == this && !Instigator->bDeleteMe && Instigator->Controller != NULL && !Instigator->Controller->bDeleteMe && !Instigator->bNoWeaponFiring ) { eventWeaponTick(DeltaSeconds); // client & server: update mode timing for (INT mode=0; mode<UCONST_NUM_FIRE_MODES; mode++ ) { if (FireMode[mode] != NULL) { FireMode[mode]->ModeTick( DeltaSeconds ); if (!Instigator || !Instigator->Controller) // pawn was killed during mode tick (ie: shieldgun against the wall) return; if (Role == ROLE_Authority) { if (FireMode[mode]->bServerDelayStartFire) { if (FireMode[mode]->NextFireTime <= Level->TimeSeconds + FireMode[mode]->PreFireTime) eventServerStartFire(mode); } else if (FireMode[mode]->bServerDelayStopFire) { FireMode[mode]->bServerDelayStopFire = false; //debugf(TEXT("ServerDelayStopFire %f"), Level->TimeSeconds); eventStopFire(mode); } } } } // client side only: determine when firing starts and stops if ( Instigator->IsLocallyControlled() && !bEndOfRound ) { if ( (ClientState == WS_None) || (ClientState == WS_Hidden) ) { debugf(TEXT("%s ClientState was WRONG! (%d)"),GetName(),ClientState); ClientState = WS_ReadyToFire; } if ( ClientState == WS_ReadyToFire ) { UBOOL bAltFire = Instigator->Controller->bAltFire; UBOOL bFire = Instigator->Controller->bFire; AWeapon *MyDefault = Cast<AWeapon>(GetClass()->GetDefaultActor()); if ( MyDefault && MyDefault->ExchangeFireModes ) { Exchange(bFire,bAltFire); } if (FireMode[0] != NULL) { if (FireMode[0]->bIsFiring && !bFire) { eventClientStopFire(0); } else if (!FireMode[0]->bIsFiring && bFire) { eventClientStartFire(0); } } if (FireMode[1] != NULL) { if (FireMode[1]->bIsFiring && !bAltFire) { eventClientStopFire(1); } else if (!FireMode[1]->bIsFiring && bAltFire) { eventClientStartFire(1); } } } else if ( TimerRate<=0.f ) { debugf(TEXT("%s no timer running with clientstate %d"),GetName(),ClientState); TimerRate = 0.3f; } } } unguardSlow; }
Events
AnimEnd
simulated event AnimEnd (int channel)
Overrides: Actor.AnimEnd
ClientStartFire
simulated event ClientStartFire (int Mode)
ClientStopFire
simulated event ClientStopFire (int Mode)
Destroyed
simulated event Destroyed ()
Overrides: Inventory.Destroyed
PostBeginPlay
simulated event PostBeginPlay ()
Overrides: Actor.PostBeginPlay
PostNetReceive
simulated event PostNetReceive ()
Overrides: Actor.PostNetReceive
RenderOverlays
simulated event RenderOverlays (Canvas Canvas)
Overrides: Inventory.RenderOverlays
ServerStartFire
event ServerStartFire (byte Mode)
StopFire
simulated event StopFire (int Mode)
Timer
simulated event Timer ()
Overrides: Actor.Timer
WeaponTick
simulated event WeaponTick (float dt)
Other instance functions
See Weapon instance functions.
States
Hidden
PendingClientWeaponSet
PendingClientWeaponSet.BeginState
simulated event BeginState ()
Overrides: Object.BeginState (global)
PendingClientWeaponSet.EndState
simulated event EndState ()
Overrides: Object.EndState (global)
PendingClientWeaponSet.Timer
simulated event Timer ()
Overrides: Timer (global)