- Ara al carregar un arxiu la variable on guardar el tamany s'envia com un punter, així es pot ignorar.
This commit is contained in:
@@ -140,7 +140,7 @@ namespace gamestate
|
||||
char *ObtenerPasswordDeFase()
|
||||
{
|
||||
int filesize = 0;
|
||||
const char *buffer = file::getFileBuffer("offsets.bal", filesize);
|
||||
const char *buffer = file::getFileBuffer("offsets.bal", &filesize);
|
||||
|
||||
int punter = (game::getConfig("fase")-1)*11;
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ namespace gamestate
|
||||
void carregarMapa()
|
||||
{
|
||||
int filesize = 0;
|
||||
char *buffer = file::getFileBuffer("MAPES.BAL", filesize);
|
||||
char *buffer = file::getFileBuffer("MAPES.BAL", &filesize);
|
||||
|
||||
char *punter = buffer + (game::getConfig("fase") * 212) + 3;
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace gamestate
|
||||
}
|
||||
|
||||
int filesize;
|
||||
sequence_file = file::getFilePointer(filename, filesize);
|
||||
sequence_file = file::getFilePointer(filename, &filesize);
|
||||
|
||||
game::setState(&gamestate::sequence::loop);
|
||||
}
|
||||
@@ -87,26 +87,31 @@ namespace gamestate
|
||||
std::string command(text);
|
||||
|
||||
if (command=="ESPERAR") {
|
||||
int res = fscanf(sequence_file, "%i", &val);
|
||||
//int res =
|
||||
fscanf(sequence_file, "%i", &val);
|
||||
printf("ESPERAR %i\n", val);
|
||||
wait_until = SDL_GetTicks() + val;
|
||||
|
||||
} else if (command=="FADEIN") {
|
||||
int res = fscanf(sequence_file, " '%[^']'", text);
|
||||
//int res =
|
||||
fscanf(sequence_file, " '%[^']'", text);
|
||||
drawPic(text);
|
||||
draw::fadein();
|
||||
|
||||
} else if (command=="SHOW") {
|
||||
int res = fscanf(sequence_file, " '%[^']'", text);
|
||||
//int res =
|
||||
fscanf(sequence_file, " '%[^']'", text);
|
||||
drawPic(text);
|
||||
draw::render();
|
||||
|
||||
} else if (command=="PRINT") {
|
||||
int res = fscanf(sequence_file, " %i %i %i '%[^']'", &x, &y, &val, text);
|
||||
//int res =
|
||||
fscanf(sequence_file, " %i %i %i '%[^']'", &x, &y, &val, text);
|
||||
drawText(x, y, val, text);
|
||||
|
||||
} else if (command=="PLAYMUSIC") {
|
||||
int res = fscanf(sequence_file, " '%[^']'", text);
|
||||
//int res =
|
||||
fscanf(sequence_file, " '%[^']'", text);
|
||||
audio::loadMusic(text);
|
||||
audio::playMusic();
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace audio
|
||||
free(buffer);
|
||||
}
|
||||
int filesize=0;
|
||||
buffer = file::getFileBuffer(filename, filesize);
|
||||
buffer = file::getFileBuffer(filename, &filesize);
|
||||
music = Mix_LoadMUS_RW(SDL_RWFromMem(buffer, filesize), 1);
|
||||
|
||||
if (music==nullptr) return false;
|
||||
|
||||
@@ -114,7 +114,7 @@ namespace draw
|
||||
// Agafem un buffer de bytes de l'arxiu especificat
|
||||
// getFileBuffer() simplement ens torna el arxiu sencer dins de un array de char
|
||||
int size;
|
||||
uint8_t *buffer = (uint8_t *)file::getFileBuffer(filename, size);
|
||||
uint8_t *buffer = (uint8_t *)file::getFileBuffer(filename, &size);
|
||||
|
||||
// Si ens ha tornat nullptr, es que no l'ha trobat, tornem nosaltres també nullptr ja que no s'ha pogut crear la superficie
|
||||
if (buffer == nullptr)
|
||||
@@ -230,7 +230,7 @@ namespace draw
|
||||
// Agafem un buffer de bytes de l'arxiu especificat
|
||||
// getFileBuffer() simplement ens torna el arxiu sencer dins de un array de char
|
||||
int size;
|
||||
uint8_t *buffer = (uint8_t *)file::getFileBuffer(filename, size);
|
||||
uint8_t *buffer = (uint8_t *)file::getFileBuffer(filename, &size);
|
||||
|
||||
// Li passem el array del arxiu a LoadPalette. Ell ens torna un array de uint32_t amb la paleta
|
||||
// Van a ser 256 entrades de 32 bits, cada entrada es un color, amb el format 0xAARRGGBB
|
||||
|
||||
@@ -193,7 +193,7 @@ namespace file
|
||||
}
|
||||
|
||||
// Obté un "FILE*" al arxiu que se li demana, independentment de la font (arxius individual en carpeta, o arxiu de recursos)
|
||||
FILE *getFilePointer(const std::string resourcename, int &filesize, const bool binary)
|
||||
FILE *getFilePointer(const std::string resourcename, int *filesize, const bool binary)
|
||||
{
|
||||
// Si tenim configurat agafar els recursos de arxiu, pero encara no tenim la taula de continguts carregada...
|
||||
if (file_source == SOURCE_FILE and toc.size() == 0)
|
||||
@@ -231,7 +231,7 @@ namespace file
|
||||
}
|
||||
|
||||
// Agafem el tamany del recurs de la taula de continguts
|
||||
filesize = toc[count].size;
|
||||
if (filesize) *filesize = toc[count].size;
|
||||
|
||||
// obrim l'arxiu de recursos
|
||||
f = fopen(resource_filename.c_str(), binary ? "rb" : "r");
|
||||
@@ -252,7 +252,7 @@ namespace file
|
||||
// Si estem pillant els recursos de carpeta, simplement obrim el arxiu en questió i tornem el FILE* associat.
|
||||
f = fopen((resource_folder + resourcename).c_str(), binary ? "rb" : "r");
|
||||
fseek(f, 0, SEEK_END);
|
||||
filesize = ftell(f);
|
||||
if (filesize) *filesize = ftell(f);
|
||||
fseek(f, 0, SEEK_SET);
|
||||
}
|
||||
|
||||
@@ -261,20 +261,23 @@ namespace file
|
||||
}
|
||||
|
||||
// Obté un buffer de memòria en format "char*" del arxiu que se li demana, independentment de la font (arxius individual en carpeta, o arxiu de recursos)
|
||||
char *getFileBuffer(const std::string resourcename, int &filesize)
|
||||
char *getFileBuffer(const std::string resourcename, int *filesize)
|
||||
{
|
||||
int size;
|
||||
// Usem la funció anterior per a obtinde un FILE*, independentment de on pillem els recursos
|
||||
FILE *f = getFilePointer(resourcename, filesize, true);
|
||||
FILE *f = getFilePointer(resourcename, &size, true);
|
||||
|
||||
// Reservem memòria per al buffer
|
||||
char *buffer = (char *)malloc(filesize);
|
||||
char *buffer = (char *)malloc(size);
|
||||
|
||||
// llegim el contingut del arxiu i el fiquem en el buffer
|
||||
fread(buffer, filesize, 1, f);
|
||||
fread(buffer, size, 1, f);
|
||||
|
||||
// Tanquem l'arxiu
|
||||
fclose(f);
|
||||
|
||||
if (filesize) *filesize = size;
|
||||
|
||||
// Tornem el buffer. OJO! recordar alliberar-lo amb free(buffer) quan acabem amb ell.
|
||||
return buffer;
|
||||
}
|
||||
|
||||
@@ -28,14 +28,14 @@ namespace file
|
||||
/// @param filesize paràmetre de retorn. Ací es torna el tamany de l'arxiu
|
||||
/// @param binary si volem obrir el arxiu en format binary
|
||||
/// @return un punter FILE* al arxiu
|
||||
FILE *getFilePointer(const std::string resourcename, int &filesize, const bool binary = false);
|
||||
FILE *getFilePointer(const std::string resourcename, int *filesize = nullptr, const bool binary = false);
|
||||
|
||||
/// @brief Obté un buffer de memòria en format "char*" del arxiu que se li demana, independentment de la font (arxius individual en carpeta, o arxiu de recursos).
|
||||
/// @brief Recordar alliberar la memoria del buffer amb free(buffer) al acabar amb ell.
|
||||
/// @param resourcename el nom de l'arxiu del que volem obrindre el buffer
|
||||
/// @param filesize paràmetre de retorn. Ací es torna el tamany de l'arxiu
|
||||
/// @return un array de "filesize" bytes amb el contingut del arxiu
|
||||
char *getFileBuffer(const std::string resourcename, int &filesize);
|
||||
char *getFileBuffer(const std::string resourcename, int *filesize = nullptr);
|
||||
|
||||
// Funcions d'access a la configuració (clau = valor)
|
||||
// -----------------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user