[CF List] BIGworld
Mark Wedel
mwedel at sonic.net
Mon Oct 14 01:40:15 CDT 2002
Andreas Vogl wrote:
>>
1) Weather effects - not sure exactly what they were going to
>>
be, garbled was going to work on that.
>
>
>
So this code for map-overlays has somehow made it into
>
CVS and at least it seems to consume memory and appears a lot in
>
the logs. Is it true that there is no use for it till today?
>
Are there still plans by anyone (Garbled?) to keep developing on
>
this particular part in the future?
Since the code isn't really used for anything, it shouldn't consume any memory
(save for the few K of compiled code.). I eventually see replacing some of the
unique map code with this - the files it generates are in 'standard map format',
where as the unique items files are not - this means you could load overlay maps
into the editor just to see status or if something is messed up.
>
>
I'm not so sure about that one. Wouldn't that consume a lot
>
of effort storing all this information about roading somewhere?
>
And the outcome might be road-tiles appearing everywhere,
>
including places where they are unwanted, potentially burrying
>
some nice maps around cities.
>
Roads would look totally uneven, making players loose orientation...
The way I would do it:
1) Store number of times this space has been visited in the lowest floor space.
This actually wouldn't cost much - since check_walk_on is called whenever
something moves onto a space, and it looks at all the objects on the space to
see if any have walk_on set, just put code in there to increment the counter.
2) The weather code, which periodically runs, would be modified to do the
following (this doesn't need to be in weather - anything the periodically
'visits' the maps could do this:
a) reduce the visit count set in #1 below (decompose space).
b) Look at above value, and do one of the following: If space has high enough
visit count, and doesn't already have a 'path like' object, at one. If space
visit count is too low and it current has a path, remove the path.
The trickiest part is the adding and removing of paths, and the spaces around
need to be examined to see their state to know what type of path to add. For
example, if you have spaces like:
123
456
789
(presume the spaces around those all have high enough visit counts to warrant
paths)
If space 2, 4, 5 have high enough visit counts, then on 4 you would add a
horizontal path, and 5 a curved path (from 4 to 2), and 2 a vertical patch.
If in addition to the above, 6 was also high enough, then 6 would get a
horizontal path, and 5 T path.
If for example 4 and 5 only had enough visit values, then 4 would get the
horizontal, and 5 and horizontal dead end.
If my math is right, and we only do 4 directions, 24 path objects would be
needed - however, most of those are just rotations or mirrors - what you really
need is a straight, dead end, curve, T, and 4 way - this is only 5 images.
The hardest part is dealing at the map edges (tiled with others) - you need to
know what that tiled map is doing on your connected spaces to know how you
should arrange your spaces.
Probably the best way to do this is for say map A to make all its paths. For
spaces along the edges that tile with another map, it looks at the adjoining
space on that tiled map, and see what to do (make an path in that direction or
not). If we are changing the behaviour on the map we are updating, we also
update the one on the tiled map to link in right - when the tiled map gets
processed for its weather, it might further redo these (as some of those spaces
get aged out).
The 'biggest' thing is to try to do this processing when the server is idle,
or mostly idle (eg, player hanging out in town), not when someone is in the
middle of a combat.
More information about the crossfire
mailing list