VECTOR_MAKE(argitem, items);
/* global options */
-int opts_debug = 0;
-int opts_memchk = 0;
-int opts_compiler = COMPILER_GMQCC;
+bool opts_debug = false;
+bool opts_memchk = false;
+bool opts_darkplaces_stringtablebug = false;
+bool opts_omit_nullcode = false;
+int opts_compiler = COMPILER_GMQCC;
static const int usage(const char *const app) {
printf("usage:\n");
printf(" -std=ftqecc -- fteqcc QuakeC\n");
printf(" -std=qccx -- qccx QuakeC\n");
printf(" -std=gmqcc -- this compiler QuakeC (default selection)\n");
+ printf(" codegen flags:\n");
+ printf(" -fdarkplaces-string-table-bug -- patches the string table to work with bugged versions of darkplaces\n");
+ printf(" -fomit-nullcode -- omits the generation of null code (will break everywhere see propsal.txt)\n");
return -1;
}
case 'a': items_add((argitem){util_strdup(&argv[1][2]), 1}); break; /* assemble */
case 'i': items_add((argitem){util_strdup(&argv[1][2]), 2}); break; /* includes */
default:
- if (!strncmp(&argv[1][1], "debug" , 5)) { opts_debug = 1; break; }
- if (!strncmp(&argv[1][1], "memchk", 6)) { opts_memchk = 1; break; }
+ if (!strncmp(&argv[1][1], "debug" , 5)) { opts_debug = true; break; }
+ if (!strncmp(&argv[1][1], "memchk", 6)) { opts_memchk = true; break; }
if (!strncmp(&argv[1][1], "help", 4)) {
return usage(app);
break;
printf(" -std=gmqcc -- this compiler QuakeC (default selection)\n");
return 0;
}
+
+ /* code specific switches */
+ if (!strcmp(&argv[1][1], "fdarkplaces-stringtablebug")) {
+ opts_darkplaces_stringtablebug = true;
+ break;
+ }
+ if (!strcmp(&argv[1][1], "fomit-nullcode")) {
+ opts_omit_nullcode = true;
+ break;
+ }
return usage(app);
}