#include #include #include #include "room.h" #include "game.h" #include "util.h" void load_room(Game *g, char *line) { char *token = strtok(line, "|"); g->rooms->rooms[g->rooms->count].name = malloc(strlen(token) + 1); strcpy(g->rooms->rooms[g->rooms->count].name, token); token = strtok(NULL, "|"); g->rooms->rooms[g->rooms->count].description = malloc(strlen(token) + 1); strcpy(g->rooms->rooms[g->rooms->count].description, token); g->rooms->count++; } #include "data/rooms.c" void game_load_rooms(Game *g) { parse_multiline_string(g, data_rooms_txt, &load_room); } void free_room(Room r) { free(r.name); free(r.description); } void free_rooms(Rooms r) { for (int i = 0; i < r.count; i++) { free_room(r.rooms[i]); } } Room *find_room(Rooms *r, const char *name) { for (int i = 0; i < r->count; i++) { if (strcmp(r->rooms[i].name, name) == 0) { return &r->rooms[i]; } } printf("Couldn't find room %s\n", name); return NULL; }