-=O EMPIRE HIGH PRIORITY ITEMS O=-

This file contains the most important changes which need to be made to
the server.  See the EMPIRE WISH LIST for an explanation of the index
system.


-- SMALL JOBS (less than an hour each) --

To decrease bandwidth, only send C_SYNC fields which have changed.
For example, when putsect does a bitcmp to determine whether it should
send a C_SYNC message to the player, it should do more: it should also
determine after which bit the two structs are the same and then
determine which field that's in (using the nsc offset stuff), and then
only send the fields which changed.  The CPU overhead to do this is
minimal in comparison with the overhead to send the data down the socket.

Geof Cashman wrote:
What I meant was that let's sail I have a ship sailing off into
the sunset, then during the night it gets shelled to death...
as it is now...you've no idea where *your* ship went down.
It's hard to know when you have lots and lots of ships what
coords that ship was at last before it got killed.

-- MEDIUM SIZED JOBS (a few hours each) --

There is a server crashing bug in the satelite command.  Ask
children@empire.net for details.

Check to see why blank lines in execs cause the server to quit the exec.

Remove ef_type argument from getvar and getvec (it's implicit in the
object now).  Also, remove ef_type from lots of other places in the
server where it's no longer needed.  Note: this means changing 56
files.  Yuck.  In a similar vein, there should be a cgetvar for
chrstr's now that they have been consolidated (vars are at the
top--see genchrstr in genitem.h).

Allow C_SYNC messages which don't send uid e.g. surfacing noises or
interdiction.

There should be support for multiple-day updates (e.g. once every
three days) and specifying which days you'd like to have updates on
(e.g. MWF).

d7
The "country" command doesn't correctly show whether a country is
logged on, and none of the statistics it keeps are right (I think).
Basically, the "country" command does not work at all.

there appears to be a bug in the timeleft variable

rangeedit it misleading for missiles which multiply range by 2.

if approved by empire-list code Paul Dickinson's proposal to change
the criterea for defensive support and reacting units (i.e. use
mil*sqrt(multiplier) for land units rather than mil*multiplier to
reflect the fact that they can retreat).


-- BIG JOBS (at least 10 hours each) --

if the empire-list approves, code Dave Pare's suggestion that when
ships/planes/units are built they have a "under construction" flag set
and are completely unuseable until they have been built up to 100% at
which point the "under construction" flag is cleared.

Code Tero Paananan's request to have the command list sent to the
client in the form of C_SYNC messages.

a11
The navigation and marching done in retreat.c should be rewritten to
use the functions in shpsub.c and lndsub.c. The way the code is right
now, retreat could be abused to move things around without getting
interdicted.

c17
All of the fort fire code (mission.c, shpsub.c, atta.c, assa.c mfir.c)
should be consolidated into a single function: fort_fire(x,y,actor,
victim) which would return total damage from forts which can reach x,y
which are either AT_WAR with actor, or ALLIED with victim. We may wish
to give this function a fifth argument "hardtarget" to give it a
chance of missing. I think that fort-fire code is near the top of the
list of cut-and-paste repeated code in the server. (note - the current
code is very inefficient)

the torp code needs to be consolidated into shpsub

budg/prod/lneweff/pneweff/sneweff/neweff / update code consolidation
(Ville is working on this)

shell fire code needs to be consolidated

