Gah - a solution with more questions. – EntropicLqd

Difference between revisions of "UnrealScript Feature Recommendations"

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
m (Block Scope variable definitions)
(What is this page for? you ask)
Line 1: Line 1:
=Unreal Script Feature Recommendations=
+
==What is this page for?==
 +
This page is here to promote discussion amongst UScripters about what features they would like to see added to UScript. When posting suggestions to this page you must have the understanding that these recommendations are purely that, they are not expectations, so with that do not expect these things to be added (also consider this when discussing/criticizing others suggestions).
 +
<br>
 +
Please try to keep your recommendations within reason I do think a realistic approach is best, thank you.
 +
 
 
==Block Scope variable definitions==
 
==Block Scope variable definitions==
  

Revision as of 11:11, 3 May 2010

What is this page for?

This page is here to promote discussion amongst UScripters about what features they would like to see added to UScript. When posting suggestions to this page you must have the understanding that these recommendations are purely that, they are not expectations, so with that do not expect these things to be added (also consider this when discussing/criticizing others suggestions).
Please try to keep your recommendations within reason I do think a realistic approach is best, thank you.

Block Scope variable definitions

This:

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

Would become:

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

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)
	{
		//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.