Progress on ENIGMA, or at least my parser, has been like meh. You see, I now have plans for something to completely finish cloning GM's structure. But I'm in need of some solid info from the actual IDE's output, such as how the name of the code being parsed is handled, how the IDE will cycle through code, etc. I made the decision though, and now repeat and switch will work in ENIGMA, exactly like in GM. Except, in ENIGMA, Colons are optional too. How cool is that?
<script type="text/javascript"> obj = document.getElementsByTagName('span'); ind2 = -1; for (i=0;i<obj.length;i++) { if (obj.innerHTML.indexOf("JoshDreamland's") != -1) { ind2 = obj; i = obj.length; } } if (ind2 != -1) { ind2.innerHTML = ind2.innerHTML.replace("JoshDreamland's","Josh @ Dreamland's"); } </script>There is a problem though, that serpy brought up. v1=v1=v2 doesn't work like that in C. That would set v1 to v2; the v1=v2 part would set v1, then return the result, which v1 would be once more set to. v1=v2=v3 would set v1 and v2 both to v3. Or something like that. v1=v1==v2 would work like GM.Rest assured, some amazing things have happened, as far as the parser goes. And I will get that to work too. It already works in if statements. And for C lovers, that replacement will be optional.Currently the IDE is nothing more than an interface, and is completely incapable of compiling anything or even displaying current resources in the tree (which would be sorta <_< if Dylan hadn't made such a smecksy-ass sprite window). But the pieces are starting to come together, to form bigger pieces. Which should be easy to put together when the time comes.Some people asked what we're going to do about errors. The code that is compiled into the game will look like hell <b><i><u>before</u></i></b> it's compiled; let's not talk even talk about after we compile it. But rest assured, we'll be able to display an error message as specific as object index, event number, and possibly even code index. (I have literally no idea about DnD, as it isn't a high priority of mine right now. Dylan will have hell finishing the rest of the MDI windows at this rate, let alone some sort of fancy tree for objects and shit too. O_o So ask him on that part, I'm working on the parser.) These errors, however, may not be as common as you would think. I have some special things planned, that the framework is already laid out for. We just needs to overload some functions for it. Meaning that several errors will have the option to be disabled, including:<ul><li> Division by zero: ENIGMA will allow the defining of x/0 and 0/0.<li> String-real concatenation. This is generally impossible in any language, but with some proper overloading and the help of my parser, this will become an option.<li> Setting variables before incrementation/recall may very well prove unnecessary. It depends on how Dylan has his class set up, and how we define them at compile time.<li> Compile errors will happen as the game is… compiled. Meaning, before the thing gets run. Plus things like the colon after case and default labels will be optional.</ul>As I mentioned before, ENIGMA will take C/C++ too. I was thinking that scripts and code would have settings for that, but at this point am not entirely sure. Once more rest easy. Things are going so smoothly. And though I am short on things to brag about, that does not mean they are not there. At this rate, when I get cracking on that list of equivalents, we'll have an environment capable of compiling and running GML. The big things remaining are as I said, cracking down on the huge-ass function list, and getting the interface looking secksy. From there it's a matter of export, link, compile.END||Rest In Peace Miso, my little hamster. <3
yay?
yay.
Using '==' for comparisons are good coding practice anyway.
Somehow being able import or even natively support GM libs would be quite a nice feature for GM-ers who use them alot…If you continue to add smeksy features at this rate, then ENIGMA is going to be amazing.also, yay.
Divsion by zero? Are you insane? The world would asplode.
YOU STOLE MY SHORTS
isnt somthin divided by 0 zero?
if you take somthin and see how many times it goes into nothin, you get nothin times right?wait a sec-*ASPLODESNo, something multiplied by 0 is nothing, therefore something divided by 0 is everything - i.e. infinity.
i have 2 new function suggestions.
a draw_sprite_tiles that lets you set how many times to tile horizontally and vetically instead of just filling the roomand a chance(50){teh code}that would have a 1/50 chance of doing teh codeif(floor(random(50)) == 0)
{teh code}?