Most definitely.

Yet another update.

http://www.geocities.com/hainesrs/isometric.zip - 503KB...includes all code, resources, and demo level

My theories concerning the grid snapping turned out to be fruitful, and I squashed the heck out of my problem. The only problem is is that it left me with a massive IF/ELSE monstrosity. Basically, all I added was an offset to the snap, but it has to be handled differently depending on what quadrant the 3dmouse_pos is located in.

I have no idea if it can be made more efficient by applying some fancy thinking or simplification, but I'll leave that up to someone else with more programming experience. What's there works, but it is a pain to look at. This will probably need to be converted to a CASE/SWITCH type block when that becomes available. I suppose one way to simplify it would to make sure that the level could only exist in only one quadrant. That way, you could only use the code that deals with that specific one and remove the rest. You'd have to take steps(set level bounds) to insure the player could never build outside of that section.

Anyway, I've updated the readme, and the "issues" sections in this thread. There's at least one more serious issue concerning snapping, but it only applies if you are restricting the movement of an entity to the X or Y direction. The simply way around it is simply to disable restricting. I threw that in for anyone who may need it. I most definitely would like to see it resolved, though..along with the no snapping issues I mentioned.

Model/entity management is probably going to be a huge undertaking and will make this an almost complete package. I have no idea if I'll attempt it, but if anyone gets that working, please keep us posted here. One thing to keep in mind when building for this system, you can't just place anything whereever you want. You have to keep the grid snap in mind or else you'll have areas where the entity should be able to go but can't because of a misaligned level.

Ideally, you want to have the entire play field constructed from models, but that gets into issues of collision detection, and it is a pain. It might be easier with the new collision and perhaps eve a completely different way of moving the entities. I would think you'd need to use ent_move or c_move on them so you could get some collision detection instead of the current way. Good luck.


My User Contributions master list - my initial post links are down but scroll down page to find list to active links