#include #include #include using namespace std; #define NB_VAL_PER_LINE 256 #define FILE_BEGIN "#include \n\ #include \n\ \n\ namespace Resource {\n\ typedef std::unordered_map ResourceMap;\n\ typedef std::unordered_map ResourceSizeMap;\n" unsigned int n = 0; bool addFile(const string &inFile, FILE *out) { unsigned int size = 0; FILE *in = fopen(inFile.c_str(), "r"); if(in == NULL) { fprintf(stderr, "can't open \"%s\" for reading\n", inFile.c_str()); return false; } fprintf(out, "\nconst char data%d[] = {\n", n); char ptr[NB_VAL_PER_LINE]; size_t nbRead; do { nbRead = fread(ptr, sizeof(char), NB_VAL_PER_LINE, in); size += nbRead; for(unsigned int i=0; i= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9'))) { printf("error : \"%s\" is an invalid resource pack name, it must match this regex : [a-zA-Z0-9]+\n", packName.c_str()); return EXIT_SUCCESS; } } FILE *out = fopen(outFilename.c_str(), "w"); if(out == NULL) { fprintf(stderr, "can't open \"%s\" for writing\n", argv[1]); return EXIT_FAILURE; } fprintf(out, FILE_BEGIN); vector offsets; for(int i=3; i