[CF-Devel] Post-release development
crossfire-devel at archives.real-time.com
crossfire-devel at archives.real-time.com
Wed Jan 12 01:45:42 CST 2005
Todd Mitchell wrote:
>
This is still a long standing wish of mine to see this. There is I
>
think, a lot of discussion in the dev archives about it. I still thing
>
it would be not too diffucult to do (I playing with it a while ago -
>
making some a changes in arch_blocked() and get_map_flag() but I ran out
>
of brains) but maybe more difficult than I think. The portion you
>
didn't mention is that blocking bitmasks have to be matched up the
>
object movement type flags and there needs to be some overlap
>
(flying/swimming). It is in the order of a rather big change in the
>
game however unless new arches were made and the old arches phased out
>
since it would break a lot of maps. It would also really impact
>
gameplay. It would make a lot more neat fun things possible however :)
Right - you really don't want to hardcode values in that are explicity checked
in the code (I think this is a spell, so see if spells are allowed).
By allowing the bitmasks to be matched up with movement types in objects, this
makes the system much more extensible - want to add a new movement type, it just
means updating some archs.
From the list below, I do think it perhaps need to be generalized some. For
example, jump should either be considered walking or flying (probably the later)
- it probably doesn't need to be its own movement type.
The real problemw ith this is that this is reverse logic from what we have
right now - right now, by default, all movement is allowed unless otherwise
specified - reversing to the 'nothing allowed unless specified' means pretty
radical changes to most any archs (or having implicit defaults, which usually
causes problems later on).
Scripts could certainly be be written to update all the archs. And I don't
really like the idea of negative values (no_fly, no_magic, etc). The problem
with negative values like that also mean that adding new movement types isn't as
easy, as in a sense, by default all objects don't need that specialized new
movement.
so probably the easiest thing is to make the default that everything be
allowed (0xffffffff), with certain historic keywords negating it (no magic
clears flags, no_pass sets that to zero, etc).
The other complication is for the objects that move - presumably there move
type, for lack of better term, represents all the movements that they are
capable of, not all they are actually using (eg, a dragon for example might have
fly|walk, representing it can fly or walk, not that it needs to do both). I'm
just trying to think if there are any cases where these values would in fact
have to be ANDed together (eg, the object question needs to be able to do both
type X and Y on a space).
I'd also, through some method, also like to incorporte the slow_move stuff
into such a bitmask, but that is probably a seperate bitmask (move_modifier or
something), which can then get matched up against items/skills that help negate
the penalty.
>
>
On Tue, 2005-11-01 at 10:30 -0500, Preston Crow wrote:
>
>>
Unless I missed it, we still don't have a bitmap for floors indicating
>>
what can pass over them. Something like:
>>
bit feature
>>
1 allow walk
>>
2 allow jump
>>
3 allow dimension door
>>
4 allow levitate
>>
5 allow missiles (including magic projectiles)
>>
6 allow spell area effects (turn off for counterwall effect)
>>
7 allow view
>>
>>
One example use would be an arrow slit. Set only bits 5 and 7, and put
>>
a director on the same square, with some dark elves behind it.
>>
>>
Another example is avoiding anti-magic zones when all you need is to
>>
block dimension door.
>>
>>
If someone creates real transportation, such as boats, that would be
>>
another bit.
>>
>>
--PC
>>
>>
>>
>>
_______________________________________________
>>
crossfire-devel mailing list
>>
crossfire-devel at lists.real-time.com
>>
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
_______________________________________________
crossfire-devel mailing list
crossfire-devel at lists.real-time.com
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list