Hardware Exceptions & Such

Those of you that have looked at Enigma's code have probably noticed that I have been generating exceptions that can be caught from hardware and other low level exceptions. However I have recently decided that when such an exception occurs there isn't much I can do about it besides crash. The justification for this is access violations for example normally represent some sort of memory corruption. It is extremely difficult to recover from something like that at runtime. With that in mind I created a hardware exception class which is what I now throw in case of such exceptions. I went through all of my try catch blocks and made the majority of them re-throw exceptions of that type.

So now there are cases where enigma will crash completely however when I'm running it through VS I can now get a stack track which gives me clues to actually resolving the issue instead of just managing it. This wasn't possible before I was using VS because I couldn't get the debugging to work with msvc. However one of the exceptions that cause a crash right now seems to come from within Irrlicht so I will need to get debugging symbols for it to figure out what the issue is currently.

As for the built in browser it is horribly slow but it seems to be working. With no way to lock and copy only an area of a buffer I don't have a good way to leverage the fact that the new off-screen renderer only updates regions that have changed. Also my currently implementation has more steps than I would like. There is a discussion on the Irrlicht forums about adding the functionality I need but I don't know when or if it will actually happen.

The seamless terrain is still not working either. I have made progress in terms of the collision detection but for reasons yet unknown the function I created to calculate if the player is inside the bounds of one of the land blocks quit working. Note I have not changed the code inside of the function since it worked and it doesn't call any helper functions other than those inside of Irrlicht. I even tried an older version of Irrlicht thinking that the last update I did may have broken it but that produced the same result.

My best guess at this point is that there is a flaw in the logic of either my function or the Irrlicht methods a call. For example I'm getting the absolute position of the nodes for my calculations if that doesn't work as expected then that would break my function. Another possibility is that I'm misunderstanding one or more of the functions that I'm calling although this seems unlikely unless the documentation is just plain misleading. All of the landblocks are in a container which is the only thing I can thing of that I haven't tried removing to resolve the issue. If that does then getAbsolutePosition does not work as expected.

So as you can tell progress has been slow, which is probably because a friend of mine talked me into playing WoW for a month. Alright that's enough for now thanks for reading.


Popular posts from this blog

VK9 - Milestone8 Completed

VK9 - Milestone13 Completed

VK9 - Milestone16 Completed