Vanilla Clients Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: That CLOAK_MAXWARP thing and a note about features



On Mon, 22 Nov 1999, Carlos Y. Villalpando wrote:
> The correct fix is a server side fix and is below (with comments afterwards)

This is a little different that what I or Steven (?) did.  Turning off
CLOAK_MAXWARP would effect all players, not just the puck.  The other hacks
let cloak maxwarp stay on for normal players, who don't reach warp 15
normally, and just changes the behaviour for the puck.

> features, and all these features are in the .features file, shouldn't
> those NULLs turn into variables?  I mean, we make it look like they're
> settable, why not make that reality?

So the CLOAK_MAXWARP line in the .features file didn't do anything?  That does
seem pretty broken.

> 
> What is the "CLOAK_MAXWARP kluge?" Now searching through Vanilla and
> COW for what CLOAK_MAXWARP is, it appears to be a bit of a flag for
> cloaked.  The server is setting speed of the cloaker to an arbitrary
> value (15 in this case) in order to mask the true speed of the cloaker

That's it.  With short packets only 4 bits are used for speed, so warp 15 is
the highest warp speed there is, and was chosen as a special flag speed. 
DEAD_WARP, also by Joe, overloads warp 14 to mean the player is dead.  This
serves two purposes, first it hides the true speed of cloakers.  The second is
that speed is sent every update, while flags are only sent once.  If you lose
a packet that has a player's flags in it (SP_FLAGS packet), then you won't see
them uncloak/cloak.  That is very annoying, to say the least.  With cloak
status sent every update via the speed hack, there is no way to miss an cloak
status change.


> feature is justified in living?  The only thing I can think of is that
> it is a redunant flag just in case the cloak packet was lost.

Exactly.

> The minor exception is an unlikely to occur case.  I found this out

It used to be that a player's flag were only sent once, when they changed. 
There is a special packet for this, SP_FLAGS.  If you dropped this one packet,
you would miss the uncloak.  For people with 10% loss, you would expect that
out of every 10 people who uncloak on your screen, you would not see one
happen, and get shot at by an invisible player. 

With short packets 2, there are 32 bits of special player flags inside the
SP_S_PLAYER packet.  The 2 bits per player encode cloak/shield/alive status
for all the players in the game.  The SP_S_PLAYER packet is sent every update,
unless, as you discovered, no one on the tactical or galactic is moving or
changing direction.  With cloak status sent every update without overloading
player speed, CLOAK_MAXWARP is an obsolete feature for clients that are using
short packets 2.  The normal paradise client and ted turner don't support SP2. 
COW and paradise 2000 do.  I don't know about BRMH.