On Wed, Jun 28, 2000 at 11:09:20AM -0600, ronbarry at es.com wrote: > There is an swarning constructed in phaser.c that does this: > (mine->ph_damage & 768)>>2 It is shifting bits around. Include the full context ... line 252 of ntserv/phaser.c if (send_short && (target_player->p_no < 64) && (mine->ph_damage < 1024)) { swarning(PHASER_HIT_TEXT, (target_player->p_no & 0x3f) | ((mine->ph_damage & 768) >> 2), (unsigned char) mine->ph_damage & 0xff); return; } new_warning(UNDEF, "Phaser burst hit %s for %d points", target_player->p_name, mine->ph_damage); return; Seems quite reasonable. The event is being coded into short packet format, two eight bit fields for the data. The first field has the player number in the low six bits. The damage is coded into the eight bits of the second field with two extra bits placed in the spare bits of the first field. > The only thing that could cause that to be non-zero is an ATT. So you are saying that the short packets format supports ATT class. That's good, isn't it? It also provides for expansion in case of very strong phasers. The same person (Heiko) did the client and the server at the same time, so you should look at a short packet modified client. -- James Cameron mailto:quozl at us.netrek.org http://quozl.netrek.org/