// Load a script variable values file static bool dataScriptLoadVals(const char* fileName, void **ppData) { bool success; PHYSFS_file* fileHandle; uint8_t *pBuffer; PHYSFS_sint64 fileSize = 0; *ppData = NULL; // don't load anything if a saved game is being loaded if (saveFlag) { return true; } debug(LOG_WZ, "Loading script data %s", GetLastResourceFilename()); fileHandle = PHYSFS_openRead(fileName); debug(LOG_WZ, "Reading...[directory: %s] %s", PHYSFS_getRealDir(fileName), fileName); if (fileHandle == NULL) { return false; } // due to the changes in r2532 we must do this routine a bit different. fileSize = PHYSFS_fileLength(fileHandle); pBuffer = malloc(fileSize * sizeof(char)); if (pBuffer == NULL) { debug(LOG_FATAL, "Fatal memory allocation, couldn't allocate %lld buffer", fileSize); abort(); } PHYSFS_read(fileHandle, pBuffer, 1, fileSize); calcDataHash(pBuffer, fileSize, DATA_SCRIPTVAL); free(pBuffer); PHYSFS_seek(fileHandle, 0); //reset position success = scrvLoad(fileHandle); if (!success) debug(LOG_FATAL, "Script %s did not compile", GetLastResourceFilename()); PHYSFS_close(fileHandle); return success; }
// Load a script variable values file static bool dataScriptLoadVals(const char *fileName, void **ppData) { bool success; PHYSFS_file *fileHandle; uint8_t *pBuffer; PHYSFS_sint64 fileSize = 0; *ppData = nullptr; // don't load anything if a saved game is being loaded if (saveFlag) { return true; } debug(LOG_WZ, "Loading script data %s", GetLastResourceFilename()); fileHandle = PHYSFS_openRead(fileName); debug(LOG_WZ, "Reading...[directory: %s] %s", PHYSFS_getRealDir(fileName), fileName); if (fileHandle == nullptr) { return false; } // due to the changes in r2532 we must do this routine a bit different. fileSize = PHYSFS_fileLength(fileHandle); pBuffer = (uint8_t *)malloc(fileSize * sizeof(uint8_t)); ASSERT_OR_RETURN(false, pBuffer, "Out of memory"); WZ_PHYSFS_readBytes(fileHandle, pBuffer, fileSize); calcDataHash(pBuffer, fileSize, DATA_SCRIPTVAL); free(pBuffer); PHYSFS_seek(fileHandle, 0); //reset position success = scrvLoad(fileHandle); if (!success) { debug(LOG_FATAL, "Script %s did not compile", GetLastResourceFilename()); } PHYSFS_close(fileHandle); return success; }