Awhile back I started working on a Half-Life BSP loader for Irrlicht. I haven't done much to it in a couple of months as I've been busy elsewhere, so I figured I'd share it. It works, but not very well, it needs alot of cleanup, this and that, but it might be useful to anyone who is interested.
You can get a sense of where it's at from the readme:
Hope this is useful to someone!-It doesn't read any kind of entity data yet, this is a prerequisite for a couple of the following issues:
-It only loads textures stored inside the BSP and not in refrenced WAD files. WAD Data is stored in the world entity, and I think irrlicht has support for WAD files now, I just haven't gotten around to implementing it.
-I forget if it either loads everything as one model or just loads the entire world model, but either way, there isn't a mechanism for seperating entity models which makes them somewhat useless.
-It dosen't handle special texture effects or transparent textures.
-This project either has terrible/no memory management, I'm pretty sure it's a giant memory leak when it comes to how it stores textures. It dosen't clean up after itself and probably dosen't even allocate memory correctly in the first place.
-It has pretty awful performance in large maps. The default occulsion culling causes issues, so I have it turned off. It also dosen't implement VIS Nodes as I hadn't figure out a good way to do those with irrlicht. The answer to the aformentioned performance problems is probably here.
-It doesn't have lighting or lightmaps. I would like lightmaps very much but I am so far confused as to both how BSPv30 implements them but also how they would work with Irrlicht's lighting as I basically have no idea how the latter works.