Hey Nick,
All I've gotta say is WOW, looks like a lot of work you helped me with.
Thank you!
I'm not to keen on the blinking aspect of it, but meh. My friend said there might be a good way to do this.
Let me know if this makes sense to you.
Quote: Dentin techs: ok anyway regarding your mapper problem, you hold all the rooms in an array or linked list, and give each room structure a 32 or 64 bit integer called "last_seen_pass_index". When you want to do the mapping, you just index through the array, and when you find a room that doesn't have the current pass index, you set the pass index, map it, then map its sub rooms
Dentin techs: if it does have the current pass index, you just return and do nothing
Dentin techs: outside of the array of rooms, you have an index that's just a counter. Starts at zero. When you want to run the map, you increment the external counter, then run the map algorithm. When you want to run the map again, increment the external counter, and run the mapper again
Dentin techs: its self synchronizing and guarantees a total complexity order of N*M, where N is the room count and M is the average exit count, but its actually better than that because of both disconnected graphs and fast return from already mapped objects
Dentin techs: anyway, super simple, super fast, roughly linear order, no reason for anything to slow down unless you're just doing a shit job of it
Dentin techs: its a pretty standard algorithm for doing this sort of thing repetitively
Dentin techs: cuts out a lot of the initialization steps that this sorts of preloaded computations require, does minimal touch based on orthogonal spaces, etc
Does that sound like something that's hard to implement, makes sense, or might be better?
Go easy on me, I'm a newbie and I'm not a coding god like you guys so I don't understand stuff like this. |