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

UnrealScript Feature Recommendations

From Unreal Wiki, The Unreal Engine Documentation Site
Revision as of 22:28, 29 April 2010 by 00zX (Talk | contribs)

Jump to: navigation, search

Unreal Script Feature Recommendations

Block Scope variable definitions

This:

function NoBlockScope()
{
	local Object Obj;
 
	foreach ObjArray(Obj)
	{
		//do something here
		//Obj is accessible here
	}
	//Obj is not defined and inaccessible in this scope
}

Would become:

function BlockScope()
{
	foreach ObjArray(local Object Obj)
	{
		//do something here
	}
}

The local keyword could be replaced with var, block or just omitted entirely. Similarly this would work for any type as in the following:

function BlockScopeTwo()
{
	foreach ObjArray(var Object Obj, var int i)
	{
		//do something here
		//Obj and i are only accessible here
	}
	//Obj and i are not defined and inaccessible in this scope
}

Default variable assignment

This:

function bool CheckReplacement(Actor Other)
{
	local Controller C;
 
	C = Controller(Other);
 
	if(C != None)
	{
		//do something here
	}
}

Would become:

function bool CheckReplacement(Actor Other)
{
	local Controller C = Controller(Other);
 
	if(C != None)
	{
		//do something here
	}
}

The following example is of both block scope and default variable assignment:

function BlockScopeThree()
{
	for(local int i = 0; i < A.length; ++i)
	{
		//do something here
	}
}

Triplet type

A type that can only be one of the following, constructed from 2 boolean types, one which denoted the value of either 0 or 1 and the other which denotes the sign being a negative or positive. There is infact a possibility for a negative zero.

-1,0,1

Updates to normal()

Using the aforementioned Triplet type one can construct a truple which can be used as a unit vector. This way input into the normal() would be a type conversion and allow for a more correct literal.

<=> Operator

With this type its possible to implement this binary relationship operator Space Ship Operator as in perl, ruby and groovy programming languages.