#include "parser.h" #include // printf, perror #include // TODO : remove chdir() call #define MAX_PATH_LEN 64 struct test_ini_file { enum ini_type type; char path[MAX_PATH_LEN]; }; int main() { int i,res; struct test_ini_file ini_list[] = { { ini_style, "styles/brick/brick.ini" }, { ini_style, "styles/bubble/bubble.ini" }, { ini_style, "styles/crystal/crystal.ini" }, { ini_style, "styles/dirt/dirt.ini" }, { ini_style, "styles/fire/fire.ini" }, { ini_style, "styles/marble/marble.ini" }, { ini_style, "styles/pillar/pillar.ini" }, { ini_style, "styles/rock/rock.ini" }, { ini_style, "styles/snow/snow.ini"}, { ini_style, "styles/special/special.ini" }, { ini_levelpack, "level/1_orig/levelpack.ini" }, { ini_levelpack, "level/2_ohno/levelpack.ini" }, { ini_levelpack, "level/3_test/levelpack.ini" }, { ini_level, "level/1_orig/lvl0000.ini" }, { ini_level, "level/1_orig/lvl0001.ini" }, { ini_level, "level/1_orig/lvl0002.ini" }, { ini_level, "level/1_orig/lvl0003.ini" }, { ini_level, "level/1_orig/lvl0004.ini" }, { ini_level, "level/1_orig/lvl0005.ini" }, { ini_level, "level/1_orig/lvl0006.ini" }, { ini_level, "level/1_orig/lvl0006b.ini" }, { ini_level, "level/1_orig/lvl0007.ini" }, { ini_level, "level/1_orig/lvl0007b.ini" }, { ini_level, "level/1_orig/lvl0010.ini" }, { ini_level, "level/1_orig/lvl0011.ini" }, { ini_level, "level/1_orig/lvl0012.ini" }, { ini_level, "level/1_orig/lvl0012b.ini" }, { ini_level, "level/1_orig/lvl0013.ini" }, { ini_level, "level/1_orig/lvl0014.ini" }, { ini_level, "level/1_orig/lvl0015.ini" }, { ini_level, "level/1_orig/lvl0016.ini" }, { ini_level, "level/1_orig/lvl0017.ini" }, { ini_level, "level/1_orig/lvl0017b.ini" }, { ini_level, "level/1_orig/lvl0020.ini" }, { ini_level, "level/1_orig/lvl0021.ini" }, { ini_level, "level/1_orig/lvl0021b.ini" }, { ini_level, "level/1_orig/lvl0022.ini" }, { ini_level, "level/1_orig/lvl0022b.ini" }, { ini_level, "level/1_orig/lvl0023.ini" }, { ini_level, "level/1_orig/lvl0024.ini" }, { ini_level, "level/1_orig/lvl0024b.ini" }, { ini_level, "level/1_orig/lvl0025.ini" }, { ini_level, "level/1_orig/lvl0026.ini" }, { ini_level, "level/1_orig/lvl0027.ini" }, { ini_level, "level/1_orig/lvl0027b.ini" }, { ini_level, "level/1_orig/lvl0030.ini" }, { ini_level, "level/1_orig/lvl0030b.ini" }, { ini_level, "level/1_orig/lvl0031.ini" }, { ini_level, "level/1_orig/lvl0031b.ini" }, { ini_level, "level/1_orig/lvl0032.ini" }, { ini_level, "level/1_orig/lvl0032b.ini" }, { ini_level, "level/1_orig/lvl0033.ini" }, { ini_level, "level/1_orig/lvl0033b.ini" }, { ini_level, "level/1_orig/lvl0034.ini" }, { ini_level, "level/1_orig/lvl0034b.ini" }, { ini_level, "level/1_orig/lvl0035.ini" }, { ini_level, "level/1_orig/lvl0036.ini" }, { ini_level, "level/1_orig/lvl0037.ini" }, { ini_level, "level/1_orig/lvl0040.ini" }, { ini_level, "level/1_orig/lvl0041.ini" }, { ini_level, "level/1_orig/lvl0041b.ini" }, { ini_level, "level/1_orig/lvl0042.ini" }, { ini_level, "level/1_orig/lvl0042b.ini" }, { ini_level, "level/1_orig/lvl0043.ini" }, { ini_level, "level/1_orig/lvl0043b.ini" }, { ini_level, "level/1_orig/lvl0044.ini" }, { ini_level, "level/1_orig/lvl0045.ini" }, { ini_level, "level/1_orig/lvl0046.ini" }, { ini_level, "level/1_orig/lvl0046b.ini" }, { ini_level, "level/1_orig/lvl0047.ini" }, { ini_level, "level/1_orig/lvl0047b.ini" }, { ini_level, "level/1_orig/lvl0050.ini" }, { ini_level, "level/1_orig/lvl0051.ini" }, { ini_level, "level/1_orig/lvl0051b.ini" }, { ini_level, "level/1_orig/lvl0052.ini" }, { ini_level, "level/1_orig/lvl0053.ini" }, { ini_level, "level/1_orig/lvl0054.ini" }, { ini_level, "level/1_orig/lvl0055.ini" }, { ini_level, "level/1_orig/lvl0056.ini" }, { ini_level, "level/1_orig/lvl0057.ini" }, { ini_level, "level/1_orig/lvl0057b.ini" }, { ini_level, "level/1_orig/lvl0060.ini" }, { ini_level, "level/1_orig/lvl0060b.ini" }, { ini_level, "level/1_orig/lvl0061.ini" }, { ini_level, "level/1_orig/lvl0061b.ini" }, { ini_level, "level/1_orig/lvl0062.ini" }, { ini_level, "level/1_orig/lvl0062b.ini" }, { ini_level, "level/1_orig/lvl0063.ini" }, { ini_level, "level/1_orig/lvl0063b.ini" }, { ini_level, "level/1_orig/lvl0064.ini" }, { ini_level, "level/1_orig/lvl0065.ini" }, { ini_level, "level/1_orig/lvl0065b.ini" }, { ini_level, "level/1_orig/lvl0066.ini" }, { ini_level, "level/1_orig/lvl0067.ini" }, { ini_level, "level/1_orig/lvl0067b.ini" }, { ini_level, "level/1_orig/lvl0067c.ini" }, { ini_level, "level/1_orig/lvl0070.ini" }, { ini_level, "level/1_orig/lvl0071.ini" }, { ini_level, "level/1_orig/lvl0071b.ini" }, { ini_level, "level/1_orig/lvl0072.ini" }, { ini_level, "level/1_orig/lvl0073.ini" }, { ini_level, "level/1_orig/lvl0073b.ini" }, { ini_level, "level/1_orig/lvl0074.ini" }, { ini_level, "level/1_orig/lvl0075.ini" }, { ini_level, "level/1_orig/lvl0076.ini" }, { ini_level, "level/1_orig/lvl0077.ini" }, { ini_level, "level/1_orig/lvl0077b.ini" }, { ini_level, "level/1_orig/lvl0080.ini" }, { ini_level, "level/1_orig/lvl0080b.ini" }, { ini_level, "level/1_orig/lvl0081.ini" }, { ini_level, "level/1_orig/lvl0082.ini" }, { ini_level, "level/1_orig/lvl0082b.ini" }, { ini_level, "level/1_orig/lvl0083.ini" }, { ini_level, "level/1_orig/lvl0083b.ini" }, { ini_level, "level/1_orig/lvl0084.ini" }, { ini_level, "level/1_orig/lvl0084b.ini" }, { ini_level, "level/1_orig/lvl0085.ini" }, { ini_level, "level/1_orig/lvl0086.ini" }, { ini_level, "level/1_orig/lvl0087.ini" }, { ini_level, "level/1_orig/lvl0090.ini" }, { ini_level, "level/1_orig/lvl0091.ini" }, { ini_level, "level/1_orig/lvl0091b.ini" }, { ini_level, "level/1_orig/lvl0092.ini" }, { ini_level, "level/1_orig/lvl0092b.ini" }, { ini_level, "level/1_orig/lvl0093.ini" }, { ini_level, "level/1_orig/lvl0093b.ini" }, { ini_level, "level/1_orig/lvl0094.ini" }, { ini_level, "level/1_orig/lvl0094b.ini" }, { ini_level, "level/1_orig/lvl0095.ini" }, { ini_level, "level/1_orig/lvl0095b.ini" }, { ini_level, "level/1_orig/lvl0096.ini" }, { ini_level, "level/1_orig/lvl0097.ini" }, { ini_level, "level/1_orig/lvl0097b.ini" }, { ini_level, "level/2_ohno/lvl1000.ini" }, { ini_level, "level/2_ohno/lvl1001.ini" }, { ini_level, "level/2_ohno/lvl1002.ini" }, { ini_level, "level/2_ohno/lvl1003.ini" }, { ini_level, "level/2_ohno/lvl1004.ini" }, { ini_level, "level/2_ohno/lvl1005.ini" }, { ini_level, "level/2_ohno/lvl1006.ini" }, { ini_level, "level/2_ohno/lvl1007.ini" }, { ini_level, "level/2_ohno/lvl1010.ini" }, { ini_level, "level/2_ohno/lvl1011.ini" }, { ini_level, "level/2_ohno/lvl1012.ini" }, { ini_level, "level/2_ohno/lvl1013.ini" }, { ini_level, "level/2_ohno/lvl1014.ini" }, { ini_level, "level/2_ohno/lvl1015.ini" }, { ini_level, "level/2_ohno/lvl1016.ini" }, { ini_level, "level/2_ohno/lvl1017.ini" }, { ini_level, "level/2_ohno/lvl1020.ini" }, { ini_level, "level/2_ohno/lvl1021.ini" }, { ini_level, "level/2_ohno/lvl1022.ini" }, { ini_level, "level/2_ohno/lvl1023.ini" }, { ini_level, "level/2_ohno/lvl1024.ini" }, { ini_level, "level/2_ohno/lvl1025.ini" }, { ini_level, "level/2_ohno/lvl1026.ini" }, { ini_level, "level/2_ohno/lvl1027.ini" }, { ini_level, "level/2_ohno/lvl1030.ini" }, { ini_level, "level/2_ohno/lvl1031.ini" }, { ini_level, "level/2_ohno/lvl1032.ini" }, { ini_level, "level/2_ohno/lvl1033.ini" }, { ini_level, "level/2_ohno/lvl1034.ini" }, { ini_level, "level/2_ohno/lvl1035.ini" }, { ini_level, "level/2_ohno/lvl1036.ini" }, { ini_level, "level/2_ohno/lvl1037.ini" }, { ini_level, "level/2_ohno/lvl1040.ini" }, { ini_level, "level/2_ohno/lvl1041.ini" }, { ini_level, "level/2_ohno/lvl1042.ini" }, { ini_level, "level/2_ohno/lvl1043.ini" }, { ini_level, "level/2_ohno/lvl1044.ini" }, { ini_level, "level/2_ohno/lvl1045.ini" }, { ini_level, "level/2_ohno/lvl1046.ini" }, { ini_level, "level/2_ohno/lvl1047.ini" }, { ini_level, "level/2_ohno/lvl1050.ini" }, { ini_level, "level/2_ohno/lvl1051.ini" }, { ini_level, "level/2_ohno/lvl1052.ini" }, { ini_level, "level/2_ohno/lvl1053.ini" }, { ini_level, "level/2_ohno/lvl1054.ini" }, { ini_level, "level/2_ohno/lvl1055.ini" }, { ini_level, "level/2_ohno/lvl1056.ini" }, { ini_level, "level/2_ohno/lvl1057.ini" }, { ini_level, "level/2_ohno/lvl1060.ini" }, { ini_level, "level/2_ohno/lvl1061.ini" }, { ini_level, "level/2_ohno/lvl1062.ini" }, { ini_level, "level/2_ohno/lvl1063.ini" }, { ini_level, "level/2_ohno/lvl1064.ini" }, { ini_level, "level/2_ohno/lvl1065.ini" }, { ini_level, "level/2_ohno/lvl1066.ini" }, { ini_level, "level/2_ohno/lvl1067.ini" }, { ini_level, "level/2_ohno/lvl1070.ini" }, { ini_level, "level/2_ohno/lvl1071.ini" }, { ini_level, "level/2_ohno/lvl1072.ini" }, { ini_level, "level/2_ohno/lvl1073.ini" }, { ini_level, "level/2_ohno/lvl1074.ini" }, { ini_level, "level/2_ohno/lvl1075.ini" }, { ini_level, "level/2_ohno/lvl1076.ini" }, { ini_level, "level/2_ohno/lvl1077.ini" }, { ini_level, "level/2_ohno/lvl1080.ini" }, { ini_level, "level/2_ohno/lvl1081.ini" }, { ini_level, "level/2_ohno/lvl1082.ini" }, { ini_level, "level/2_ohno/lvl1083.ini" }, { ini_level, "level/2_ohno/lvl1084.ini" }, { ini_level, "level/2_ohno/lvl1085.ini" }, { ini_level, "level/2_ohno/lvl1086.ini" }, { ini_level, "level/2_ohno/lvl1087.ini" }, { ini_level, "level/2_ohno/lvl1090.ini" }, { ini_level, "level/2_ohno/lvl1091.ini" }, { ini_level, "level/2_ohno/lvl1092.ini" }, { ini_level, "level/2_ohno/lvl1093.ini" }, { ini_level, "level/2_ohno/lvl1094.ini" }, { ini_level, "level/2_ohno/lvl1095.ini" }, { ini_level, "level/2_ohno/lvl1096.ini" }, { ini_level, "level/2_ohno/lvl1097.ini" }, { ini_level, "level/2_ohno/lvl1100.ini" }, { ini_level, "level/2_ohno/lvl1101.ini" }, { ini_level, "level/2_ohno/lvl1102.ini" }, { ini_level, "level/2_ohno/lvl1103.ini" }, { ini_level, "level/2_ohno/lvl1104.ini" }, { ini_level, "level/2_ohno/lvl1105.ini" }, { ini_level, "level/2_ohno/lvl1106.ini" }, { ini_level, "level/2_ohno/lvl1107.ini" }, { ini_level, "level/2_ohno/lvl1110.ini" }, { ini_level, "level/2_ohno/lvl1111.ini" }, { ini_level, "level/2_ohno/lvl1112.ini" }, { ini_level, "level/2_ohno/lvl1113.ini" }, { ini_level, "level/2_ohno/lvl1114.ini" }, { ini_level, "level/2_ohno/lvl1115.ini" }, { ini_level, "level/2_ohno/lvl1116.ini" }, { ini_level, "level/2_ohno/lvl1117.ini" }, { ini_level, "level/2_ohno/tame_17.ini" }, { ini_level, "level/2_ohno/tame_18.ini" }, { ini_level, "level/2_ohno/tame_19.ini" }, { ini_level, "level/2_ohno/tame_20.ini" }, { ini_level, "level/3_test/lvl2000.ini" }, { ini_level, "level/3_test/lvl2001.ini" }, { ini_level, "level/3_test/lvl2002.ini" }, { ini_level, "level/3_test/lvl2003.ini" }, { ini_level, "level/3_test/lvl2004.ini" }, { ini_level, "level/3_test/lvl2005.ini" }, { ini_level, "level/3_test/lvl2006.ini" }, { ini_level, "level/3_test/lvl2007.ini" }, { ini_level, "level/3_test/lvl2008.ini" }, { ini_level, "level/3_test/lvl2009.ini" }, // { todo, "misc/lemming.ini" }, { ini_level, "" } // Stop condition : empty string }; gameIni_t gIni; (void) SDL_memset(&gIni,0,sizeof(gameIni_t)); res=0;i=0; while (ini_list[i].path[0] != '\0') { printf("Parsing '%s'...\n", ini_list[i].path); res=loadIni(ini_list[i].type, ini_list[i].path, &gIni); if (res!=0) { printf("Parse error %i on '%s'\n", res, ini_list[i].path); return res; } i++; } printf("Successfully parsed %i ini files\n", i-1); return 0; }