startmissiles(): Added float vectx, vecty; vectx = (float)cos(vector[temp].theta) * vector[temp].r; vecty = (float)sin(vector[temp].theta) * vector[temp].r; and figured the starting velocity based on these. (Prevent round-off errors on starting velocity.) Added planet bitmaps, with a -p switch. The default is on; -p gives solid white planets. (load bitmaps in initwindow(), check for switch in main(), give each planet a random surface in makeplanets(), use bitmap in drawplanet().) Added window title. Removed checking for StructureNotify events, and put GAME_EVENT_MASKS in pregame() instead of specific masks (initwindows(), xgrav.h) Added #define BUTWIDTH (69) #define BUTHEIGHT (27) #define BUTWIDEWIDTH (128) and changed initwindows(), pregame(), game() to use them Removed redundant for (temp = 0; temp < numplayers; temp++) drawship(playernum, temp); from redrawm1(). Added a "zoom" button in initwindows(), and procedures redrawm1z(), drawshipz(), drawplanetz(). Everything fixed for zoom window to work. Added #define COARSELIMIT (450.0) #define SQUARECOARSELIMIT (202500.0) and added code to calcgrav() to do coarse calculation when missile is beyond this limit Changed *distance() functions to remove temporary variables Generalized bitmap-loading code; the directories to load bitmaps from are now specified solely in Makefile