Simulation Flow
===============

0. Subsim {
	// PREPARE
	get all events;		// all in the queue
	time_scale, delta_time;	// why?

	// SIMULATE
	for 1 to time_scale:	// why?
	  simulate game;	// with delta_time
	  process events;	// generated by simulation
	process input (ui);	// SDL events (shouldn't be before sim?)

	// FINALIZE
	set time;		// reseting clock?
	display;		// screens
	get FPS;		// debug only
}

1. Game {
	// PREPARE
	!is_running ? die;
	clear old events;	// mouse, keyboard
	run jobs;		// jobs?!
	!is_alive? die;		// killed last cycle
	check other objects;	// only you left?
	get max distance;	// draw objects
	check trail;		// using timed simulation!!!
		
	// SIMULATE
	simulate ships;		// call simulate sea_object
	simulate subs;		// call simulate ship
	simulate planes;	// uselescall simulate ship
	simulate torps;		// call simulate ship
	simulate charges;	// call simulate sea_object (why?)
	simulate shells;	// call simulate sea_object (why?)
	simulate splashes;	// call simulate sea_object (why?)
	simulate convoys;	// have global_velocity, weird!
	simulate particles;	// low-level physics (remove!)

	// FINALIZE
	remove old pings;	// pings?!
	check enemy contact;	// remove later
}


2. SeaObject {
}