listPos = 0;
currentFile = NULL;
- strcpy(pakFilename, "");
- strcpy(filename, "");
+ pakFilename[0] = 0;
+ filename[0] = 0;
}
Pak::~Pak()
{
- if (input != NULL)
- delete[] input;
-
- input = NULL;
-
- if (fd != NULL)
- delete[] fd;
-
- fd = NULL;
+ delete[] input;
+ delete[] fd;
}
void Pak::showPakErrorAndExit()
void Pak::setPakFile(const char *pakFilename)
{
#if USEPAK
- strcpy(this->pakFilename, pakFilename);
+ strlcpy(this->pakFilename, pakFilename, sizeof this->pakFilename);
debug(("Pak : Filename set to %s\n", pakFilename));
fseek(pak, currentFile->location, SEEK_SET);
- if (input != NULL)
- {
- delete[] input;
- }
-
+ delete[] input;
input = NULL;
input = new unsigned char[(int)(currentFile->cSize * 1.01) + 12];
fclose(pak);
- if (input != NULL)
- delete[] input;
-
+ delete[] input;
input = NULL;
debug(("Pak : Unpack %s...Done\n", filename));
bool Pak::fileExists(const char *filename)
{
- unsigned int hashcode = 0;
- unsigned int length = strlen(filename);
-
- for (unsigned int i = 0 ; i < length ; i++)
- {
- hashcode = hashcode + (filename[i] * 31 ^ (length - i));
- }
-
for (unsigned int i = 0 ; i < numberOfFiles ; i++)
{
if (strcmp(fd[i].filename, filename) == 0)
return false;
}
-unsigned int Pak::getUncompressedSize()
+unsigned int Pak::getUncompressedSize() const
{
return (unsigned int)currentFile->fSize;
}