My program doesn't have bugs. It just develops random features.
Unreal Wiki:Sandbox
From Unreal Wiki, The Unreal Engine Documentation Site
Do not edit the area above the separator line, please.
Legacy:Actor Actor UE3:Actor (UT3) Project:Sandbox
/** Override BeginFire so that it will enter the firing state right away. */ simulated function BeginFire(byte FireModeNum) { // verify that our owning pawn isn't busy before calling Super.BeginFire(), which is where PendingFire is set if ( !IsFiringAllowed(FireModeNum) ) { return; } //`log(`location @ `showvar(IsTimerActive(nameof(DelayedFire)),DelayedFire Active)); Super.BeginFire(FireModeNum); } /** * For tracehit weapons with no prefire delay, handles firing the weapon. */ simulated function InstantFire() { //`log(`location); CustomFire(); PerformInstantFire(); } /** * For weapons using projectiles, which have no prefire delay - fires the weapon. */ simulated function Projectile ProjectileFire() { //`log(`location); CustomFire(); return Super.ProjectileFire(); } simulated function Delayed_CustomFire( byte FireModeNum ); /** * Called on a timer (set in BeginFire()), this is called only for weapons which have a prefire delay. */ simulated function DelayedFire() { DelayedWeaponFire(0); } /** * Called on a timer (set in BeginFire()), this is called only for weapons which have a prefire delay. */ simulated function DelayedAltFire() { DelayedWeaponFire(1); } simulated function DelayedWeaponFire( byte FireModeNum ) { //`log(`location); // restore our WeaponFireType, since we switched it to EWFT_Custom in BeginFire() WeaponFireTypes[FireModeNum] = default.WeaponFireTypes[FireModeNum]; if ( WeaponFireTypes[FireModeNum] == EWFT_InstantHit ) { // our own version of InstantFire() is only called for weapons that do not have a prefire // delay, so go directly to our parent class/state version PerformInstantFire(); } else if ( WeaponFireTypes[FireModeNum] == EWFT_Projectile ) { // our own version of ProjectileFire() is only called for weapons that do not have a prefire // delay, so go directly to our parent class/state version Super.ProjectileFire(); } else if ( WeaponFireTypes[FireModeNum] == EWFT_Custom ) { Delayed_CustomFire(FireModeNum); } PrefireCachedStartTrace = vect(0,0,0); } /** * Utility function to allow me to inject some debugging code prior to passing control to our parent classes. */ protected simulated function PerformInstantFire() { Super.InstantFire(); }
Testing UScript highlighter...
class X extends Y within Z implements(I) nottransient; `include(SomeFile.uci) var(Group) interp struct Type { var() bool bCorrect; var array<class<Actor> > ActorClasses; } VarName; reliable client function CheckType(optional class<Actor> ActorClass) { local int i; for (i = 0; i < VarName.ActorClasses.Length; ++i) { if (ActorClass == None || ClassIsChildOf(VarName.ActorClasses[i], ActorClass)) { VarName.ActorClasses[i].static.StaticSaveConfig(); continue; } VarName.ActorClasses.Remove(i--, 1); } VarName.bCorrect = True; } static function byte GetHash(int Value) { switch (Value) { case -1: return 0; case 0xCAFE: return 1 default: return (Value >= 0 && Value < 10) ? class'Hasher'.default.Hash[Value] : (Value & 0xff); } } defaultproperties { VarName.Empty VarName[0] = {( bCorrect = True, ActorClasses.Add(class'ReplicationInfo') )} }