Insane wrote:
On another note, how did you do rotating anyways?
Rotating is done in the same manner as moving blocks: For each square of the 10x17 playfield, there is a variable containing the state of that square (0 = empty, 1 = 'I' block etc.). Additional variables contain the squares of the active block.
So, whenever a block is moved or rotated, the old positions are set to 0 and the new positions to the respective state.
There are 7x10x17 character scripts (and I would have appreciated some kind of 'import script' functionality for these!) that check the playfield variables and appear/ disappear accordingly (you have to have 7 characters per square for the 7 different block types because you can't turn one character into another).
Another general remark: While scripting has become more powerful with variables, it still is rather laborious. Arrays or pointers in particular would have been a big help for this room.
While now, you have scripts like the following:
if ...
wait until var field = 150
set field_150 = value
if end
<
repeat for the other 169 fields>
With arrays, you'd simply write:
set fieldArray[field] = value
OK, that was perhaps more than you ever wanted to know ...