Wednesday, 25th July 2007
Do you intend to parse the progs.dat file (I think that's what it was called) - the QuakeC compiled code? I've no idea what's actually involved in that, however...
I'm not sure either (I haven't looked into it). As the source code for Quake and the QuakeC compiler have been released I might be able to do something. I have a hunch that said code is responsible for level events (switches, bridges, lifts, doors and so on) so it would seem pretty important.
You might want to check the version of your BSP files versus the one used in the Unofficial Quake Specs.
Also here's some API independent code for loading Quake MDL models.
So far I've had one minor problem that was resolved with a hex editor (something simple like a short becoming an int or vice-versa). I'll take a look at your MDL code - thank you!
I've made progress with the Alias model loader and written a ModelRenderer class to go with it.
Animation isn't handled very well just yet - the frames aren't grouped by action (such as the 'attack' animation, 'walk' animation and so on) and the Draw call just takes a frame number.
It'll do for the moment as a test.
I'm still having problems with textures not wrapping correctly.
As you can see the texture above the hand is distorted. I was pointed in the direction of a solution via the texture wrapping options, and have added these lines:
graphics.GraphicsDevice.SamplerStates.AddressU = TextureAddressMode.Wrap; graphics.GraphicsDevice.SamplerStates.AddressV = TextureAddressMode.Wrap;
This, unfortunately, hasn't helped. Experimentation has shown that this does change something, and by using the TextureAddressMode.Mirror I get the following -
I still can't get decent looking light maps out of the level - they all have the "diagonal stripes" effect that usually is caused by an erroneous width. I think I'll have to start trawling through Quake's source code.