Multiple return values

ACSUtils uses a simple convention for functions returning multiple values, like RotateVector:

There are global variables r1 through r8. The functions write their return values to them.

RotateVector(x, y, angle); // Call the function
int newX = r1; // Get the first returned value
int newY = r2; // And the second one

You should retrieve the return values as soon as possible, or else they may get overwritten by other functions that return multiple values.

Don't do this:

SomeFunctionWithMultipleReturns(...);
SomeOtherFunction(r1);
int b = r2;

Because SomeOtherFunction may call functions that overwrite r2! Instead, strictly follow this style:

SomeFunctionWithMultipleReturns(...);
int a = r1;
int b = r2;
SomeOtherFunction(a);