User talk:X


Revision as of 01:54, 13 September 2017 by RobertBColton (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search



Hello there! I am Robert the Wiki's current organizer and oversight. Due to your recent contributions I have decided to grant you administrative privileges which should aid in your article contributions. I personally want to thank you for coming along and helping with the project, as I myself can get quite stressed with the workload between the compiler and IDE augmentations.

You seemed to be a tad bit confused with the function documentation format as I could tell with ds_grid_add_grid_region, so I thought I could offer you some help. For data types you should create a new column to the tables such as with draw_background, or simply Parameter !! Data Type !! Description I would also like to let you know that most data types can be found in the common headers folder for most of the major systems, for instance with graphics also here is the file containing the data structure definitions, also don't worry about placing the WIP template on the top of all function pages, I avoided that to not scare people away from editing so they could very easily edit the function docs and also becuase I do regular maintenance using AWB with User:FrogotoBot

Also, avoid explicitly mentioning functions as being GameMaker or LateralGM related, as that can get overly technical since LGM is really a separate project which can still be used for just GameMaker IDE on Linux, unless of course it is necessary to mention that for instance a function behaves differently in ENIGMA & LateralGM. You can also now modify our MediaWiki:Geshi.css and MediaWiki:Vector.css style sheets with Admin privs as I have tried to avoid hard coding things for instance how parameter names are italic in the function doc tables. I am still in the process of updating the constants articles to use the same table template though.

Ohhh and Actions have all already been documented, there is no need for Drag and drop, unless of course for maybe a separate tutorial.

That said, thank you for the contributions, and your welcome to stay as long as you like! :D User:Goombert 00:04, 20 August 2013 (MDT)

Thanks for the upgrade; I will change the functions and delete Drag and drop. We can always revive it if we ever want an extreme-beginner level tutorial.--X 03:46, 20 August 2013 (MDT)
Son of a gun, we have this bug with administrators being downgraded and it just happened to you. It used to happen to me all the time and they got so tired of it I was just made a bureaucrat. I am going to file a bug report on the websites repository. For now, just leave me a list of things you need deleted or moved and I can handle it for you. User:Goombert 10:05, 20 August 2013 (MDT)
No problem, Drag and drop was the only one that needed deleting/moving for now. Also just noticed that the message below the editing box redlinks to ENIGMA:Copyrights.
Holy cow, you work quick man, just put the link MediaWiki_Markup over on MediaWiki help. There is also Special:SpecialPages which can help you find redlinks and pages that get stuck in loops, etc. I have also filed a bug report on the demotion thing here, it demotes me too, I have to bureaucrat myself every time I log in, hopefully we will resolve it when we get around to our php upgrade, then we will have the regular Wikipedia editing toolbar as well. User:Goombert 01:06, 21 August 2013 (MDT)

Variable Types and Data Structures

Howdy doo.

std::string is the standard (std) string object in C++ it is basically just a class/struct or as you may think of it an object that holds const char* or an array of char, char is a data type 0-255 representing each letter of the alpha bet ABCDEFG etc. and is also sometimes referred to as byte because it is the same amount of data in a single byte, an integer for instance is 4 bytes or 16-bit, when signed it uses 4 bytes to represent a number in the range of -32000 to 32000 2 for the negative and 2 for the positive, when unsigned it uses all four bytes to represent 0 to 65536 or something I can't remember the maximum number because its different in Java, for more information on C and C++ data types, just Google, but I also made a useful table at Data type

But basically, std::string is just usually what we use to represent Game Maker's equivalent of string(), because again, it is the C++ standard

Here is another example...

unsigned abc = 5;
unsigned int abc = 5;

Both mean the same thing. And the same for this...

signed abc = 5;
int abc = 5;

Because integer is signed by default, float and double are as well but they can never be made unsigned like an integer can. Now the reason this comes into play with ENIGMA is, for instance you would never have a sprite id that is negative so it would be safe to use unsigned, however we do not actually do this because sometimes people pass things like -1 for d3d_model_draw to indicate they don't want the model textured.

The difference in double and int for x and y in those data structure functions is, that they should all be unsigned I believe. You can never use 0.5 for instance as the x cell in a data structure grid, know what I mean? I think whoever wrote those, which was User:polygone was just confused, and they will most likely be rewritten so that x and y are unsigned to prevent array index out of bounds.

Now as for boolean, true and false are a keyword in C++ but not C just like in GML or EDL.

Here is example code...

bool myfunction() {
  if (foo == bar) {
    return true;
  return false;

I make it practice of referring to bool/boolean as true or false on function articles and never 0 or 1, but actually true is just any positive number, which makes this code work...

if (myvector.size()) {
  // if the size of my vector is larger than 0

You could note that somewhere in some article somewhere what true or false is the equivalent of. Because actually in Game Maker, any number that is not 0 is counted as true including negative numbers, which makes our collision functions not work out of the box, because Game Maker returns -4 meaning there was no collision which ENIGMA does the same, but the difference is...

if (!collision()) {
  // there was no collision

Should be written as...

if (collision() == -4) {
  // there was no collision

In ENIGMA, so far we just leave it like this, but there really isn't much we can do because negative numbers are not true in C/C++

Oh and also, variant means the data type varies it could be a string a boolean an integer a float, etc. it is the equivalent of Game Maker's var foo, bar;

Also, I have am way swamped with coding man I am in the middle of redesigning this sprite editor, so I have decided to make you a bureaucrat to the Wiki. Simply go to Special:UserRights to give yourself administrative privileges when you need to move articles and delete things, I would have just made you an admin but our Wiki software is currently broke with the forum database so you get automatically demoted when you log in, we have yet to fix it, at any rate you have been doing a good job so I am counting on you and giving you my trust, so don't mess it up :)

Also when you move pages you need to delete the original page after it is moved because the Wiki just adds a #REDIRECT to the new page. If I were you I would also just redirect Constant Double and other data types to Data type article to make them all findable in one place, and it is a lot less work on Wiki editors.

That was a good explanation - now I can fill out all those functions' return values correctly. I'll make myself an Admin when I next need to move/delete a page - thanks for the trust in the meantime. --X 03:56, 5 September 2013 (MDT)
Just noticed that there is no mention of variants at Data type. Should I add that to the table, or was the omission intentional? Cheers--X 04:13, 5 September 2013 (MDT)

You are welcome, but no, let me do that I gotta ask Josh what the data sizes would be because I do not even know how variant works internally I think it just makes a struct and does operator overloading. User:Goombert 08:12, 5 September 2013 (MDT)

Also, we are missing a few drag and drop actions from Studio I need to document, Action, if you are feeling hasty and know what they are you can generate the pages for me and I'll get Josh to raster up the new SVG's for their icons. RobertBColton 08:14, 5 September 2013 (MDT)

Sure, I've had a look at GMS and the ones that appear to be missing from Template:Action_Nav are Action set timeline speed, Action timeline start, Action timeline pause, Action timeline stop, and Action draw self (although each of them already has a generated page). I've added them to the template and put filling them out on my todo list.--X 20:12, 13 September 2013 (MDT)


I like what you're doing with those tutorials for 3D.

Thanks, I need a hand with making these work on ENIGMA. I can't seem to get the first tutorial to work without crashing. --X 23:47, 23 September 2013 (MDT)
I haven't investigated, I do know that about 75% of them work. It is most likely because of event inheritance in some, which sadly we will have to wait for Josh to finish the compiler in order to fix.
Oh, only just noticed this. That's fine, I'll keep converting the tutorials and work on having everything else ready. Then we can just tweak the inheritance and be good to go.--X 18:30, 14 November 2013 (MST)

Table of contents

Yes I see both of the problems you have there with the TOC. As for linking, I usually just direct link, which is fine if you want to do that, how many pages do you plan on linking though? You could always make a redirect page, but I don't like the idea of that since it would bloat the wiki and make the process even messier.

As for the TOC, MediaWiki has great documentation on how all of their software works, it is very thorough and anybody can contribute, I have contributed to their Wiki myself.

It appears you can add .tocnumber { display: none; } to the MediaWiki:Common.css file, but to make sure it does not do it on all TOC's you need to use a class. Specifically read on that page about sub sections, it can generate 1 1.1 1.2 for you.

Thanks, I'll do that later because it's low priority.--X 00:02, 7 October 2013 (MDT)

Data Structures

Just wanted to update you, I have finished documenting every single Data_Structure_Functions this morning. RobertBColton 09:38, 13 October 2013 (MDT)

Congratulations. I'm still working on the tutorials, but is there anything else documentation wise that needs priority?--X 01:30, 15 October 2013 (MDT)
Shit sorry I didn't get your response, yes, start with audio, I think those are rather important, in a little bit here I am going to document my new video playback functions. RobertBColton 01:27, 27 October 2013 (MDT)
Sounds good, I can handle the remaining audio functions.--X 01:39, 27 October 2013 (MDT)
Audio_and_Video_Functions Actually, none of them were documented, I got the video ones since those are ENIGMA specific and added by me, but I got all the sound ones there now done, just the audio ones to do, let me finish this page since I have to write that system. But nevertheless, you can start instance functions or something, whatever you want. :) RobertBColton 23:34, 29 October 2013 (MDT)
I'll find something that needs filling out.--X 23:55, 1 November 2013 (MDT)

Install: Linux

Hey no problem man, I am trying to simplify those pages a bit, the easier I make it for end users, the less bug reports they post. Eventually we will set up ENIGMA for Ubuntu software center and have an easy installer like we do for Windows. Also, I went a finished up every single data structure function for you, I am moving on to audio next when I get a chance. RobertBColton 01:26, 27 October 2013 (MDT)

+1 for the software centre idea. Is it hard to add it to the Fedora package manager?.--X 01:39, 27 October 2013 (MDT)
Whoops sorry again, this don't notify me unless you respond on my page, anyway, this issue needs resolved first. Nobody has offered me an explanation of it, and although I am the one who filed the issue report, I don't know how to go about fixing it. But people are really really interested in making a Linux package that is easy, I will have to look into it here again soon.


I just restored the page. Don't link it anywhere though because he is slow working on it, and I don't want our users confused by it so keep that IDE on the down low until it gets to the point where we actually have to explain what it is, eg. it reaches a usable state.

Alright, is there anything else that page could do with?--X 01:39, 27 October 2013 (MDT)
Nah, don't worry about it, I wouldn't mess with it as DaSpirit may get upset. I am also thinking about on this Wiki doing a set of documents on the resource editors and uhm explaining all the buttons and stuff of the IDE, kind of from a noobs perspective, what do you think about that?
Yes, I think that'd be useful. But if we start early we might end up making the documentation before all the final tweaking of NaturalGM. Also how do you install it? I asked over here as well.--X 23:55, 1 November 2013 (MDT)
As I said, I'd just leave it alone if I were you, I got a handle on those pages.RobertBColton 15:35, 13 November 2013 (MST)
Understood. But I would like to try installing NGM, just to try it.--X 18:28, 14 November 2013 (MST)


Also, what I explained to you earlier about booleans, you might also want to read that topic there, now that Stupido compiles as well they have been forced to become ISO C99 compliant.

Cheers, that was an interesting read.--X 23:55, 1 November 2013 (MDT)


Hey I ran across your tutorials you are working on again, and you're doing a kickass job dude! :) RobertBColton 15:35, 13 November 2013 (MST)

Cheers! I could use a hand making the code compatible with ENIGMA.--X 18:27, 14 November 2013 (MST)
Never mind, just noticed your message above.--X 18:31, 14 November 2013 (MST)
I will certainly help out, I am more concerned with the function specifications however. But my goal is to get as many tutorials up as I can as I also want to market ENIGMA to educators and colleges in the future.RobertBColton 23:04, 15 November 2013 (MST)
Personal tools