ENIGMA Development Environment
Website is in read-only mode due to a recent attack.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Josh @ Dreamland

Announcements / Re: Christmas Plans
« on: January 02, 2013, 02:40:59 PM »
Just so everyone knows, I am adding something to ENIGMA's specification after the parser is plugged in:
Code: (EDL) [Select]
object0.variable = 10;
int a = object0.id;
a.variable = 20;
object0[a].variable = 30;

Humans can tell what that's doing, but a parser cannot necessarily make that call. Maybe if I spent a great lot of time on it, it could, but in general you should expect this output from the C++ printer:

Code: (C++) [Select]
((ENIGMA_OBJ_object0*)fetch_instance_by_objectid(object0))->variable = 10;
int a = enigma::fetch_instance_by_objectid(object0)->id;
enigma::varaccess_variable(a) = 20;
((ENIGMA_OBJ_object0*)fetch_instance_by_id(a))->variable = 30;

The idea is that the switch statement used in varaccess_variable is removed, and does not even need to be generated if `variable' is never accessed in that way. It'll still be generated as needed for compatibility, of course.

Note as well that I may optimize it further and generate an inline function for each object as needed, or just access them inline (more likely the former for reasons of error checking and general prettiness). Still, you get the idea.

Announcements / Re: Christmas Plans
« on: December 31, 2012, 09:44:41 AM »
I will when it is building games again. For now, all it can do is single code pieces.

Today will be spent moving code around and writing a pretty printer. If all goes well, I'll finish both things and be done. Otherwise... More delay.

Announcements / Re: Christmas Plans
« on: December 31, 2012, 02:21:57 AM »
Didn't happen. Ended up cleaning up some mess in JDI instead, correcting some bugs I was unaware of. Also did some much-needed testing; any test codes welcome so I have something to check before we're ready to unleash this on the masses. Hopefully TGMG will be around to automate that for us again.

In the meantime, the parser reads and gives a dump of test_gml.h in the JDI branch if you build the CBP in either of the standalone modes. It should build without warnings, except in the placeholder file that declares empty versions of the old parse functions to prevent link errors, because the new parser is still not integrated.

In fact, I'm still working out how many passes I should handle up front and how many I should leave to the language plugin. I want to minimize both numbers, but especially the latter, so as to facilitate easy extension of the compiler.

Announcements / Re: Christmas Plans
« on: December 30, 2012, 01:21:56 AM »
Very well. At least it's somewhat original. Just likely to get recycled a lot.

In other news, I went ahead and pushed my current working copy of the parser. A lot of integration needs done, but the parser is basically complete. I spent the last day or so shelling out all the old compiler warnings and doing some major reorganization.

This may be done by tomorrow night.

Announcements / Re: Christmas Plans
« on: December 29, 2012, 10:45:51 PM »
*shrug* I didn't spend very much time on them.
Filters->ABC->Noise Transparency
Place gears, add simple gradients, subtract circles from gears. Done.

Announcements / Re: Christmas Plans
« on: December 29, 2012, 06:06:12 PM »
Threw you together an avatar, HaRRi. It's all generic and shit.

Take your pick.

Forthevin gets one next. If you have any requests, state them; otherwise your avatar, too, will be made using the first InkScape filters I see.

Issues Help Desk / Re: Damn Android
« on: December 29, 2012, 09:27:19 AM »
Our Android port hasn't been maintained in a while. You should have a file in Compilers/Windows/ called Android.ey.

It's also possible that compiling to Android never worked from Windows; I believe it was designed for Mac but worked on Linux by extension.

If you have built Android applications before, you could write your own Android.ey file by copying the gcc.ey and modifying it to use the Android toolchain. Otherwise, I advise you wait for TGMG to do something about it again; he wrote the entirety of the existing port.

Proposals / Re: Image Speed
« on: December 29, 2012, 01:26:56 AM »

Maybe even just putting all that off in a panel similar to the "Origin" group, only instead reading "Preview", would make the difference.

Or even, in addition to that, adding a box under Origin called "Animation" which offers a default image_speed option. The only thing standing between us and that implementation is the fact that image_speed is independent of room_speed. I think that could be explained in a [?] box or generic tooltip.

Announcements / Re: Christmas Plans
« on: December 28, 2012, 09:52:06 PM »
Simple as placing "using namespace <name here>;" in the global scope. Just like you would any other namespace. I'll set ENIGMA up to read from :: or ::edlwhatever based on a macro. After everything's migrated, or we think everything's migrated, you'll just flip that flag and try compiling.

Proposals / Image Speed
« on: December 27, 2012, 02:17:12 PM »
The LGM sprite editor, like the GM equivalent, has an entry for image speed which is used for previewing. It's a little confusing to newcomers who would expect that the speed is used in-game, even though it's just a demonstration. It'd be the simplest thing to add that value to the EGM format, and support it in the exporter. The alternative, of course, is to just clarify in the GUI that the speed is for previewing purposes, and add a tooltip explaining how to set it in the object.

When you think about it, though, how often do you really want two objects with the same sprite playing at a different speed? In that case, you need to use image_speed anyway, so why bother forcing it to start as 1?

Announcements / Re: Christmas Plans
« on: December 27, 2012, 12:04:32 PM »
Also, who among you is interested in the idea of encapsulating EDL types and functions in their own namespace? It would make it easier to deal with noise from library implementations, but it would require putting lots of shit into that namespace and using lots of shit from STDC.

In other words, we'd no longer have problems with time or list being illegal variable names unless the user specifically said, using std::list; or using namespace std;, which I intend to unify between all viable backends (meaning, in JavaScript as well).

The new parser is much, much more adept at making these distinctions, so I can probably get it to allow using types and shit as variable names (especially in compatibility mode), but this would be a fix-all.

Announcements / Re: Christmas Plans
« on: December 25, 2012, 12:27:20 PM »
For future reference, by default, the first sentence is used as the brief.

Announcements / Re: Christmas Plans
« on: December 25, 2012, 01:06:11 AM »
Yes, you'll find JDI is riddled with those comments. They won't help you understand how a system works as a whole, only how individual functions work. If you want to document the system, you have to write up a huge, separate comment using the @page directive, then link to it from a main page (or leave it up to the user to find it in the ToC). Kind of annoying, and not something that is likely to happen considering it's just as easy to create pages on the wiki for that purpose.

I use the same style for my comments, though I don't normally put the * on every line, and I don't always explicitly say @brief.

Announcements / Re: Christmas Plans
« on: December 24, 2012, 01:31:27 PM »
The system described above will fix (1). Or at least it should; I'm not sure what problem you're talking about.
IsmAvatar will have to be persuaded into doing (2), unless I finally tackle making LGM compile. Not signing up for that.

I have been using Doxygen for the new parser/systems as the plan became solid enough to permit. If you want to start documenting things with Doxygen, go ahead. There's not much benefit to doing so, though, when the systems that most need documented will need large, independent Doxygen comments anyway.

Announcements / Re: My Plans
« on: December 24, 2012, 08:52:28 AM »
Also, IsmAvatar, if you're feeling left out, I have plans for you, too. I was thinking that I could forward you a frontend to the EDL tokenizer so you could get a linear lex of the code for use in the editor. Combined with the parser, it would let you format the code manually, and could also be used for syntax highlighting if you wanted dead (preprocessed-out) code to remain unhighlighted and brace/whatever matching to work accordingly. It would also let you identify which loop break and continue statements belong to, like Eclipse does. It would also let you discriminate between shit used as identifiers, shit used as declarators, and shit used as functions.

Really up to you, though; I'm not gonna put forward the effort if you have no interest in the idea.

Tell me especially if you are interested in it for bracket/parenthesis matching so I can add that in now.