Off the top of my head, the only additional content things you might add are ship hulls and parts.
I have a few issues with the use-typed autocomplete stuff:
* Rather than strtok, having to deal with passing strings by value or copy them, and dealing with casting, you might use boost tokenizer
* Avoid c-style (casts) and use static_cast or dynamic_cast as appropriate.
* Avoid referencing NULL; I think there are some issues with it, though don't know / remember the details. This shouldn't be an issue if the previous points are followed. For checking if pointers are null, use if (pointer) or if (!pointer), or use if (container.empty()) or similar.
* I'm a bit worried about using std::toupper if non-latin characters get mixed into text; I'm not sure how that will work. Is converting to uppercase really necessary anyway?
* That said, I don't think there's really much need for user-typed words autocomplete anyway...