unrealwiki:Sandbox: Difference between revisions

From Unreal Wiki, The Unreal Engine Documentation Site
No edit summary
mNo edit summary
 
(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: