+ free(js); //TODO: USE MM_ CA_ AND PM_\r
+ free(tok); //TODO: USE MM_ CA_ AND PM_\r
+ fclose(fh); //TODO: USE MM_ CA_ AND PM_\r
+\r
+ return 0;\r
+}\r
+\r
+\r
+//======\r
+\r
+\r
+int CA_loadmap(char *mn, map_t *map, global_game_variables_t *gvar)\r
+{\r
+ jsmn_parser p;\r
+ jsmntok_t *tok = NULL;\r
+ size_t tokcount, file_s;\r
+\r
+ FILE *fh = fopen(mn, "r");\r
+ int status;\r
+\r
+ /* Prepare parser */\r
+ jsmn_init(&p);\r
+\r
+ file_s = filesize(fh);\r
+ CA_LoadFile(mn, MEMPTRCONV MAPSEGINLM, gvar);\r
+ tokcount = jsmn_parse(&p, (char const *)MAPSEGINLM, file_s, NULL, 0);\r
+ tok = malloc(tokcount*sizeof(jsmntok_t));//TODO: USE MM_ CA_ AND PM_\r
+// printf("Allocated %d tokens", tokcount);\r
+ jsmn_init(&p);\r
+ if((status = jsmn_parse(&p, (char const *)MAPSEGINLM, file_s, tok, tokcount)) < 0)\r
+ {\r
+ printf("Error: %d\n", status);\r
+ return status;\r
+ }\r
+ else if(status != tokcount) { printf("Warning: used %d tok\n", status);}\r
+ extract_map((char const *)MAPSEGINLM, tok, tokcount, map);\r
+\r
+// printf("freeing tok\n");\r
+ free(tok); //TODO: USE MM_ CA_ AND PM_\r
+// printf("fclose fh\n");\r
+ fclose(fh); //TODO: USE MM_ CA_ AND PM_\r