Major features include:
- Input via SDL.
Key remapping capabilities, and saving/retrieving from a text file.
Game State architecture, with loading and exit screens.
Object selection: area dragging and single object (hold CTRL key to add to selection).
Mini-map.
Compass/location indicator.

And here you can see the key remapping dialog.
The dialog checks for repeated keys and "unmappable" keys.
The red Z in the screenshot indicates a newly changed key.
The blue keys cannot be changed.

Commands are mapped via a structure as follows:
Code: Select all
commandMap[commandIndex].keyCmd1 = SDLK_WHEEL_DN;
commandMap[commandIndex].keyCmd2 = SDLK_e;
commandMap[commandIndex].isCustomizable1 = FALSE;
commandMap[commandIndex].isCustomizable2 = TRUE;
commandMap[commandIndex].commandName = "CameraUp";
commandMap[commandIndex].commandDescr = "Camera Up";
commandMap[commandIndex].streamingCmd1 = FALSE;
commandMap[commandIndex].streamingCmd2 = TRUE;
commandMap[commandIndex].handlerFunc = Command_CameraUp;
commandIndex++;
Still left to do:
- Allow removal from object selections (using Shift key).
Add local objects to mini-map.
Clean up the Console dialog and add context-sensitive information/command buttons.