Friday, July 11, 2008

Status Update

MHQuake marches on. I've extended my embryonic pseudo-generic menu framework to be truly generic (it now - rather strongly - resembles a C++ class, even to the extent of passing a "this" pointer as the first function parameter), and have put it into use in 5 menus: Options Top Level, Video, Sound, Input and Effects. I've got support for slider-cvars (any range, inverse range handling), toggle-cvars (inverse toggle handling), spacers and commands (which can be a call to another menu or a function that does something). There's a real danger of it becoming a controls library, especially when I add in string-cvar/textbox support, but it's been enormous fun to write, and a pleasure to see it up and running.

I'll probably move most of the standard menus over to it, although there are some where the menu setup is sufficiently wacko to make it probably not worth the effort.

Fixing the underwater luma bug involved yet another rewrite of the surface refresh. I think I must be into double-figures for the number of rewrites I've done in this engine alone. This time I think I like what I've got - it's simple, powerful and flexible.

I've also begun a new memory management system (for the second time in this engine) and am in the process of moving memory allocation over to it. This one's good, as it is capable of handling dynamic memory expansion and contraction (in 4 MB chunks), so there's no longer any need to use -heapsize. Even the most onerous memory requirements are supported, and there is no hard upper limit (aside from the amount of memory in your PC). Behind the scenes it works like a combination of the old Hunk system and of true dynamic memory.

It's weird, but I definitely get more enjoyment from working on "unglamorous backend stuff" like this. It also has the bonus that success or failure is down to my own abilities and imagination, rather than API/drivers/file format limitations.

In other news, I've switched broadband providers. My previous (who will remain nameless - how very tactful of me) had been extravagantly useless for quite some time, and their latest bout of p!ssing around was the final straw. Old account cancelled, new account set up, and their customer service drones told a thing or two about reality. My only regret was not doing it ages ago. It's a buyers market, so I definitely recommend not putting up with bad treatment.

1 comments:

Spirit said...

I hate you so much because I want this engine on Linux! :P

Are you going to add support for the soundtrack in mp3/ogg vorbis too? That's such an overlooked and great thing.

Great work. Can't wait to try it.