2004/05/08 (ok)
if we make the ship/sub types configureable by extra files (not hardcode
them), which data we need in these files?
---------------------------------------------------------------------------
string ID		(global identifier)
model/string modelname	(filename or pointer to global list,)
string description	(multilingual!, 3 stages)
int type		(classification: warship, escort, merchant, (sub?))
int country		(maybe! would not allow captured vehicles)
float maxspeedkts
float acceleration
float turnrate
uint tonnage
vec3 funnelpos, bool smoke	(for smoke, use smoke?, maybe also type and strength)
date dependent list of sensors!
(length/width is taken from model file)
and we need a kind of model cache. A class that holds the model objects (map
of string, model*). If anyone asks for a pointer to a specific model the
class creates an instance if there is none and returns the pointer to the
instance. Each client may returns the pointer (unref it), so the class
discards the model if no one needs it any longer.


2004/05/05
included another todo-list recently compiled
- use objcache for textures,images,etc.
- create/read/use a config file
  Binary format is not handy.
  So use parser.cpp or maybe XML.
- multiplayer games. complex topic. related to other topics.
- better custom mission generator, more switches/choices (sub type
  weather etc, see AOD)
- Damage simulation and control for submarines (Markus?)
- Damage simulation and auto control for ships (Markus?)
- Other ships can fire shells, too. battleships, some merchants, and your
  sub also. Currently only escorts do that.
- Create/use foam and spray for ocean water simulation.
- Terrain LOD, theory clear, but not yet used
- Use terrain itself! this means we need topographic data for water depths,
  path finding etc., improved AI (tough stuff!)
- (Improved) radar and sonar code (Markus?)
- store and use historical convoy routes, needed for authentic custom
  convoy mission generation and for career games
- Implement career mode (work for the next 10 years+)
- Simulate torpedo reloading, automatic reloading (this makes noise and
  influences other aspects of the simulation, making noise while an escort
  hunts you can be deadly)
- improve screens: handling, graphics (Luis?):
- success screen: flying flags (neat and useless, eye candy)
- UZO (implement, draw, use)
- Periscope (authentic gfx + use)
- Map (city names and more, maybe target fire solution computation)
- Torpedo control (imrpove handling)
- Make more use of (new) widgets in game and/or menus.
- Improved physics simulation (rudders, acceleration, for driving and
  diving)
- Improved dive simulation with buoyancy code (Michael?)
- If all of this is done, ask Lee, he has an even longer list ;-)


2004/05/04
we could use the factory pattern for some classes (ship/submarine or
command)

2004/04/29
make configfile class (see cfg.h)

2004/04/29
let ship/submarine classes read data from files (XML/SQL?), that way remove
ship_*, submarine_* vessel classes and make the code more dynamic, more
modifyable.
current ship_* classes differ only by constant values put to variables, this
could be read very easily from files. XML would be best.

2004/01/26
If missions are parsed and the player is initially submerged, the program
does not register this allowing the player to use diesel engines underwater
until he surfaces and dives again.

2003/11/17
shrink global_data.h. move model/texture creation/destruction to classes
that need the model/texture. count instances in constructors and destructors
and create resource if instance==1, destroy if instance==0
DOES THIS REALLY MAKE SENSE? Yes, it saves memory. Only models/textures that
are really needed are drawn.

2003/11/09
remove unneccessary dependencies in h/cpp files. e.g. if a
class A has an attribute that is just a pointer to another class B
it is unneccesary that "A.h" includes "B.h". It would be enough to
define the pointer as "class B* foo" and let "A.cpp" include "B.h".
That reduces compile overhead.
IS PARTLY DONE

2003/08/04
windows version: some kes don't work ("-" to unzoom map,...)
and it does not compile with VC6 "release" because of an VC6
compiler bug. Use "debug" mode instead. Use mingw/.NET 2003.
Also the console key is not working.
Keys should be made configureable.
Create config class and use it!

2003/07/16
some events are not caught in system.cpp (e.g. fokus switching,
window resize or similar events)
