struct Param { int type; // how the token was processed char *s; // the string value of the token char *sp; // the remaining part of the command starting with the current token union // for easy values { unsigned long ul; long l; float f; }; }; enum PARAM_TYPE { PARAM_UL = 1, PARAM_L, PARAM_F, PARAM_S }; typedef void (__stdcall *CommandProc)(vector params); bool AddCommand(char *command, CommandProc proc);