The reason why I'm not a fan of cJASS isn't because I'm a fan of static ifs, but rather because it breaks vJASS.
static if true then local integer i = 0 endif //with cJASS local integer i = 0 local integer i //this one is read as not being declared at the top, so it's declared by cJASS set i = 0 //within if statement ////////////////////////////////// call Ho (/* */) //with cJASS, bug //////////////////////// local string s = " " //with cJASS optimizer local string s = ""
you don't need that. that's what \ is for. it's the opposite of ;.
about the one space string optimizing...when does anyone use a one space string?
No, the ";" character is used when programming to signify the end of a line. The character "\n" would be used in a string as a character that starts a new line of text.
As if JASS isn't dysfunctional.
static if B then static if C then implement H endif elseif D then implement H endif
implement H implement H
it's happily the least dysfunctional of all of them
I don't even know why I'm arguing/discussing this; I'm so tired, and this topic is quite pointless.
I'm pretty sure if you import your script (via the Import Editor) with the name war3map.j you can declare your own global variables. They do it in the *.j file so I can't see there being problems if you were to do like that yourself.
It's not like if you use JASS you can't declare global variables, you just have to go about it a different way. Similarly, in vJass it is possible to define lines in your script which create objects in the object editor. While this exact feature wasn't available in JASS it was still possible to do it by actually using the Object Editor.
Eh, just because they can do the same things doesn't mean they're equally good for some application or other. If you disagree, feel free to code all your standalone programs in assembly and let me know how it works out for you.The fact is none of them are "better" they can all be used well. The potential of JASS is the same as the potential of vJass, or cJass. The rest is just personal preference.
H2Igame-cache system you could attach necessary components to the timer. Obviously it wasn't as simple as making a struct with said components and passing a single integer through, but it wasn't that far behind either.