My program doesn't have bugs. It just develops random features.

Difference between revisions of "Unreal Wiki:Sandbox"

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
m
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
Do not edit the area above the separator line, please.
 
Do not edit the area above the separator line, please.
 
----
 
----
[[Legacy:Actor]]
+
UIComp_DrawImage custom subclasses:
[[Actor]]
+
{{#dpl:
[[UE3:Actor (UT3)]]
+
|category=Subclasses of UIComp_DrawImage{{!}}Subclasses of UIComp_DrawImage (UE3)}{{!}}Subclasses of UIComp_DrawImage (UT3)
[[Project:Sandbox]]
+
|category=Custom classes{{!}}Custom UE3-specific classes{{!}}Custom UT3-specific classes
 
+
|namespace={{#if:UE3|{{!}}UE3}}{{!}}User
<uscript>
+
|format=,[[%PAGE%|%TITLE%]],,
/** Override BeginFire so that it will enter the firing state right away. */
+
|inlinetext=,&#32;
simulated function BeginFire(byte FireModeNum)
+
|shownamespace=false
{
+
|replaceintitle=/ (?!\()/,_
 
+
|resultsheader=\n;Known custom subclasses&#58;:
// verify that our owning pawn isn't busy before calling Super.BeginFire(), which is where PendingFire is set
+
|oneresultheader=\n;Known custom subclass&#58;:
if ( !IsFiringAllowed(FireModeNum) )
+
|noresultsheader=<nowiki></nowiki>
{
+
|allowcachedresults=true
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();
+
}
+
 
+
</uscript>
+
 
+
Testing UScript highlighter...
+
<uscript>
+
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')
+
  )}
+
}
+
</uscript>
+

Latest revision as of 01:55, 9 August 2015

Do not edit the area above the separator line, please.


UIComp_DrawImage custom subclasses: