+extern uint8_t is_command_id_shortdsc(struct World * world,
+ uint8_t id, char * shortdsc)
+{
+ struct Command * cmd_ptr = world->cmd_db->cmds;
+ while (1)
+ {
+ if (id == cmd_ptr->id)
+ {
+ if (strcmp(shortdsc, cmd_ptr->dsc_short))
+ {
+ return 0;
+ }
+ return 1;
+ }
+ cmd_ptr = &cmd_ptr[1];
+ }
+}
+
+
+
+extern uint8_t get_command_id(struct World * world, char * dsc_short)
+{
+ struct Command * cmd_ptr = world->cmd_db->cmds;
+ while (1)
+ {
+ if (0 == strcmp(dsc_short, cmd_ptr->dsc_short))
+ {
+ return cmd_ptr->id;
+ }
+ cmd_ptr = &cmd_ptr[1];
+ }
+}
+
+
+
extern char * get_command_longdsc(struct World * world, char * dsc_short)
{
struct Command * cmd_ptr = world->cmd_db->cmds;
FILE * file = fopen("config/commands", "r");
exit_err(NULL == file, world, err);
uint16_t lines, linemax;
- textfile_sizes(file, &linemax, &lines);
+ err = "Trouble in init_cmds() with textfile_sizes().";
+ exit_err(textfile_sizes(file, &linemax, &lines), world, err);
err = "Trouble in init_cmds() with malloc().";
char * line = malloc(linemax);
exit_err(NULL == line, world, err);
copy_tokenized_string(world, &cmds[i].dsc_long, "\n", err);
i++;
}
+ free(line);
world->cmd_db = malloc(sizeof(struct CommandDB));
world->cmd_db->cmds = cmds;
world->cmd_db->n = lines;