Todo
Hello all you happy people.
(And the handfull of people who come here to look for bad things to say about me)
As you are probably aware, R3 is out. A couple users have had decent success with it, and have posted some small proof-of-concept games on the EDC.
(I strongly encourage this, by the way)
However, this release was a little confusing for many, and as we scrambled to help people out, we actually managed to make things worse.
In light of this, I decided to keep more public with the updates for a while here, at least until all the bugs are out. As is the purpose of an
alpha, which I take the opportunity to remind you all that R3 is.
(Alpha is Latin for "Doesn't work.")
I know this release was totally hectic, but the best I can do is promise a better one next time.
As well as release some updates along the way.
Thank you to a couple people who posted bug reports. I'm doing my best to deal with those, but I decided to spring for some organization and figured I'd make it public so you all know what is going on.
below is a list of what's currently being worked on. It contains all the bugs I am aware of, and a couple I'm not.
All known bugs (and maybe a couple unknown ones)
Many cards use a vertical sync on ENIGMA games, limiting the frame rate to 30 or 60. ENIGMA does not disable this yet.
Build Mode's undo and redo buttons don't actually do anything, and the resume button isn't present. (Must hit enter)
Compile time is huge, as are outputted executables. [milage may vary] [constant uphill battle]
draw_point() was not added to the syntax file. (I intend to go back over everything and remake the syntax file)
draw_text messes up the projection. [fixed]
Variables don't declare themselves in scripts, which hinders using "global." as well as using scripts without declaring its local variables as "var," or one of ENIGMA's newer datatypes. [High priority/Big problem][Huge success]
room_restart() and game_end() are now implemented. I also added room_next() and room_previous(), though it should be noted room errors in enigma are not fatal. (Division by zero, however, is VERY fatal. Don't divide by zero, ...<_<
WILDCLASS does not distinguish pointer-to-pointer-to types: Object-Local C++ arrays will not work. [Big problem][Fixed]
The script-path tracer has a glitch, and thus scripts calling scripts will not work unless both scripts were utilized elsewhere in the object. [Big problem][Fixed]
Type names need to have consistent tokens, even when they are being used for casting. The parser should be able to figure that out like C++ does. Along with that, the function pointer/pointer-to-array notation <<< typename (*fname)(typename arg1,...) >>> is not recognized. [fixed]
Array indexes involving arithmetic do not work. [Big problem][Fixed]
The window is always the same size. [Fixed]
Room background color is written in little endian, read as big endian. (Inverted) [fixed]
Decimals with no preceding whole integer have stopped working for the third time since R2. [Solved]
Window functions are not added into the syntax file, and only resize child window. Rooms do not adapt window size. [fixed, finished]
Build mode will freeze if either grid dimension is set to zero. [fixed]
Friction is inaccurate. [fixed]
Sprite indexes may not be initialized properly, as new sprites tend to error that they do not exist. [fixed]
Views work only when they feel like it. [Fixed]
keyboard_check... and mouse_check... only accept int, and thus throw warnings with use of ord(), which returns double for some reason. [Fixed on both accounts]
Passing a var or a float to a C++-style array will cause compile errors. C++ users should take responsibility for casting their types before passing to non-var arrays. Implementing a fix for this will disable users from using map<> (or anything utilizing operator[]) later on.
ENIGMA's operator. may still cause segfault on parse, however, the error has disappeared since the correction of other errors. If you receive a communication error, please submit a bug report asap. [High priority/Big problem][dead]