I've been working on some changes for the last version I released. I'll call this new version v1.3.
-When pressing arrow keys in dialog boxes it now changes value accordingly. (before it did the inverse, if you pressed up the value would go down and pressing down vice versa)
-Editor and Emulator Menu Items are no longer grayed out after opening a file
-mmx3 item graphics are now showing up in the editor. (heart tank, weapon tank, extra life, etc.)
-mmx3 ride armor module graphics show up correctly. also, the subtank for every game shows up properly. (before it was missing the bottom portion, re-arranged the tiles manually)
-the captions now change when you click on an object using your mouse with the event editor window open (previously they would only change via the prev event and next event buttons)
Github has been updated also
I did look into making the undo function, and unexpectedly noticed it does save previous changes, in the bottom right box (but you have to manually re-click that and paste over your mistake). basically, the undo function would do that for you and save more than one command you could undo. Unfortunately, testing was difficult because dialog boxes are a pain to work with. I wanted to just press a key to test the undo function then change it to Ctrl-Z later, but key presses are disabled by default in dialog boxes. There's some horrible work-arounds that are ugly and I couldn't get any to work right. On a positive note, I did get the Undo() function to actually work otherwise. I just basically had it on a timer, so it would make all the changes then go back to the original after 3 seconds or so. So an Undo() function is definitely possible, it will just take some creative programming to get it to work how I want. Don't worry I also tested the game it uses the original graphics for the items, so just previewing them like this is not going to screw them up in the actual game during save. (I was worried about this for weapon tank and energy tank since it displays large versions during event editor window whether the item is actually large or small. although the caption will tell you if it's large or small).
If anyone is curious how I got the tiles to load for the graphics properly I basically just got an assemblyNum that displayed all the graphics, then arranged the tiles using xpos,x,ypos,y,and info manually. The problem was for subtanks and the ride armor module the letter was supposed to go on top of the bottom portion so there was some initial problems because in order it would load-> top part of graphic, letter, bottom part of graphic, so the bottom portion was always on top of the letter. My work around was just load the graphic backwards. Unfortunately since it was in a for loop it went from 0 to #oftiles. Like an idiot I wrote a struct to change the for loop around so it resemebled this mess:
for (int i = start; loop.comparison(); loop.modify())
Then I wrote the struct functions to check a boolean value to see if the values should be reversed or not. I knew there was an easier way, but just couldn't think of it off the top of my head. Programmer's greatest weakness is being too impatient to brainstorm, and just immediately jumping in to code, rather than thinking things through. Later, I went back and deleted the struct and ugly for loop definition. All I needed was a separate counter variable.
auto map = baseMap + (tileCnt - i - 1) * 4;
map = baseMap + (tileCnt - counter - 1) * 4; //counter = tileCnt -1
Another bug I noticed, after spending maybe an hour or so searching for it was I accidentally had an if statement that was changing values instead of comparing them! Stupid compiler didn't even notice this error when compiling. Who uses an if statement to declare variables, DURING the conditional statement?
if (setvalue = wrongway)
if (compare2vars == correctway)