Fixed. The TranslucentLine special was set so that it couldn't be used when activated by a line. I think this was to prevent lines that are given TranslucentLine specials in an editor from inadvertently being activated, but since they get their special set to 0 at load time, I don't need to worry about it.
ACS doesn't have shorthand for those because Raven didn't create any p-codes to do the job. You can use things like += because there are p-codes to add a number to a variable and store the result in the same variable. This is not the same as +, so the object code created for the following two lines is different:
The first line creates instructions that do this:
Code: Select all
Push the value of a to the stack.
Push the number 5 to the stack.
Add the top two numbers on the stack.
Store the (new) top number on the stack in the variable a.
The second produces this set of instructions:
Code: Select all
Push the number 5 to the stack.
Add the top number on the stack to the value of variable a and store the result in variable a.
Making >>= and the like work would mean adding new pcodes or rewriting ACC to do some simple optimization. The former is easier, but it means adding many more p-codes than you might think, because a different one needs to be used for every different type of variable. Since these shortcuts really aren't necessary, I don't think it's worth adding them.
Fixed. The TranslucentLine special was set so that it couldn't be used when activated by a line. I think this was to prevent lines that are given TranslucentLine specials in an editor from inadvertently being activated, but since they get their special set to 0 at load time, I don't need to worry about it.
ACS doesn't have shorthand for those because Raven didn't create any p-codes to do the job. You can use things like += because there are p-codes to add a number to a variable and store the result in the same variable. This is not the same as +, so the object code created for the following two lines is different:
[code]a = a + 5;
a += 5;[/code]
The first line creates instructions that do this:
[code]Push the value of a to the stack.
Push the number 5 to the stack.
Add the top two numbers on the stack.
Store the (new) top number on the stack in the variable a.[/code]
The second produces this set of instructions:
[code]Push the number 5 to the stack.
Add the top number on the stack to the value of variable a and store the result in variable a.[/code]
Making >>= and the like work would mean adding new pcodes or rewriting ACC to do some simple optimization. The former is easier, but it means adding many more p-codes than you might think, because a different one needs to be used for every different type of variable. Since these shortcuts really aren't necessary, I don't think it's worth adding them.