Sorry for no screenshots this time, this blog post is turning out to be very short.
(PS.: Method f115_cthulhu didn’t do anything, I’m just bad at interpreting errors)
(PS.: Method f115_cthulhu didn’t do anything, I’m just bad at interpreting errors)
Another week has gone by. The end of the summer is inching closer and closer with every passing day. The engine hasn’t grown nearly as much as last week. I managed to fix the bug with the groups, it turned out to be very simple, I was just searching for it in the wrong places. The result is that the player can progress to the next level and fight ’em wicked monsters (nice gif included), put some keys in keyholes and what not. One just has to be careful not to spin around too much or else the display code crashes in some bizarre way. The worst about it is that the call stack is messed up, it seems to be something inside the aptly named function f115_cthulhu. Code for saving and loading has found itself inside the engine as well, although trying to load a save crashes the game (couldn’t muster up enough motivation to fix it yet). That’s the end of the post, have nice gif: (just as always, ignore the broken cursor)
The engine is coming along well. Great many lines of code and even greater many bugs have been incorporated into it this week. It seems that for every bug I fix, that makes the engine crash and burn, there are three more waiting right around the corner. Right now the most inconvenient one is that group management has not yet been tested as there have been zero enemies on the 0th level and as I’ve spent most of my time fixing bugs there (for example making the damned door open when the player steps on the pressure plate in front of it). So when the player takes the stairs, the game goes down with a segfault.
Items can now be put into the inventory, they can be placed and be thrown around. Interaction with the dungeon is more or less in place, the player can press buttons, step on plates and uhhh that’s all there is in the hall of champion people. The champions can now attack and take damage (don’t walk into walls). The former has not much use, since we can’t even get near enemies yet.
I planned on having some screenshots of combat, but since I can’t get me some real enemies right now, you’ll have to watch me fight this wicked door instead.
As I mentioned in my last blogpost, I was planing on fixing stuff I blew at the beginning, that has been done, thus I can add code much more rapidly now and with less mistakes. If I put my back into it, the bulk of the code should be done by next weekend (no promises). Of course, that would not be the end the work. Code has to be cleaned up, global arrays moved, some refactoring is due. Some display functions are missing entirely or are broken, and I’ve been putting off fixing them for a while now (color palettes for example), I plan on dealing with them when the rest of the code is in place. There is also other stuff, like making the code compile under something than msvc14, testing if it even works on other platforms than windows, although chances are, I won’t be the one fixing those issues.
What I’ve got for you this week is moving them items:
Progress has been slow lately, what I’ve managed to get into a working state is those icons in the inventory for display and to be able to actually choose one’s champions. Of course, all the methods that the display function calls are done, so that should save me some time in the near future. As according to my plan inventory management is up next, thus picking up objects, thus display objects in the dungeon. The later brings us to my favorite function which I named cthulhu. It’s 800 lines long and has about 70 locals with a bunch of them shared, good thing it’s already up and running, took me like 7 clean hours of work with all the preparation and the function itself. As I mentioned progress has been slow, thus it is likely that my proposed plan will have to shift, alas we’ll see what the future will bring.
Related to progress are my early commits, where I foolishly diverged from the original source a lot, they have been a source of errors and headaches for a while now. That should change soon, as I plan on reversing those relative changes to match the original one by one in the coming days.