View Single Post
Old 21st June 2010, 19:01   #46
Major Dude
Join Date: Mar 2008
Location: Erlangen
Posts: 869
Hey, Stahlregen ! A rave from the grave ... haven't heard from you in ages!

Actually a few things have changed in the syntax, e.g. as Amandio C found out, certain float - integer conversions... Don't remember the details, you have to look it up in the forum. I think the rounding changed, and whether 1.5 is converted to 1 or 2... that may affect the integer operations as performed with int, % etc.

In shifters preset however the problem is the line

lr = if(sw,lr,rand(10));

I wonder how this ever worked, because rand() is supposed to deliver a float value, not an integer. The next line

let = equal(lr,0)*sa + equal(lr,1)*sb + equal(lr,2)*sc .........

will never deliver anything else than zero because the chance that rand() spits out exactly an integer number like 1,2,3,4, etc. are zero and therefore equal (lr,1) will NEVER be true. The problem is solved easily by changing the line to

lr = if(sw,lr,int(rand(10)));

I don't know where this incompatibility was introduced. Apart from that I must say the compiler has improved a lot, with the introduction of huge arrays, loop processing and simplifications making the code more similar to C .... e.g. instead of x = above (y,2) you may now use x = (y >= 2) as in standard languages. Unfortunately there seems to be no reasonable tutorial.

Nitorami is offline   Reply With Quote