UnrealScript Feature Recommendations
Unreal Script Feature Recommendations
Block Scope variable definitions
This:<uscript> function NoBlockScope() { local Object Obj;
foreach ObjArray(Obj) { //do something here //Obj is accessible here } //Obj is not defined and inaccessible in this scope }</uscript>
Would become:<uscript> function BlockScope() { foreach ObjArray(local Object Obj) { //do something here } }</uscript> The local keyword could be replaced with var, block or just omitted entirely. Similarly this would work for any type as in the following:<uscript> 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 }</uscript>
Default variable assignment
This:<uscript> function bool CheckReplacement(Actor Other) { local Controller C;
C = Controller(Other);
if(C != None) { //do something here } }</uscript> Would become:<uscript> function bool CheckReplacement(Actor Other) { local Controller C = Controller(Other);
if(C != None) { //do something here } }</uscript> The following example is of both block scope and default variable assignment: <uscript> function BlockScopeThree() { for(local int i = 0; i < A.length; ++i) { //do something here } }</uscript>
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.