Tuesday, December 12, 2017

IT LIVES!!!!!

Info/Credit Screen
The Nermal library is so complete now I decided to dummy out the rest of the functions and import the rest of the ROE source into Visual Studio. After creating dummy functions for the unresolved externals and getting everything in the right order. The compiler went all the way though! This is not perfect by any stretch of the imagination. The interrupt is still offline. Turns out that if you look at the screenshot at the bottom, that displays "STANDBY" when the thread is not running. Pretty neat little helper.

F1 Help
The major graphical functions are there, but just because I can get 101 to function, does not mean there are dangerous pitfalls. For one I have not touched any of the filesystem code, which can be scary as I'm almost positive that it will take one look at NTFS and freak out. The best part though is my low-level changes to the input system means that the mouse is now no longer relative. The DOS version did not understand how to "snap" a mouse pointer to a particular part of the screen. It only measures relative distance the mouse moved since the last check (Measured in "Mickys", or about every 0.0039 inches.) What this means is that the game will be able to take explicit touch locations for "taps" as opposed to rolls and clicks.

That's right! 901 warnings.
The compiling didn't go without a hitch, though. There are 901 warnings about a myriad of things that I will have to look into. One of the quick bugs I cleaned up is that Quick C (The compiler used in the 1990s) auto initialized pointers to NULL. That's not really true. According the the C standard, pointers should be "undefined" when they are created. That way if you go though a program and the pointer was never initialized to anything, it will throw an error. Undefined pointers can be a huge problem as they could literally be anywhere en memory and once you reference it... *POP*...access violation.




For some reason there were functions names that had mixed case. C is supposed to be case sensitive, I fixed those too. One of the more interesting bugs came up as a direct result of me compiling C on a C++ compiler.

The keyword "new" is reserved in C++. This is an example of C code that is incompatible with it's superset. This means C and C++ are not the same language, just very, very similar. Kind of like American English and British English. Very similar, but if you get a chance, ask an American, Brit, or Aussie what's the difference between a turtle, tortoise, and terrapin. You will probably be surprised by the answer. (It's also why herpetologists call them "Testudines")

No comments:

Post a Comment