Commit 11f2edb4 authored by alistert's avatar alistert

JJ1 levels can now have any file name.

parent 583c31c2
...@@ -209,7 +209,7 @@ int Game::play () { ...@@ -209,7 +209,7 @@ int Game::play () {
} }
planet = NULL; planet = NULL;
fileName = createFileName(F_PLANET, levelFile + strlen(levelFile) - 3); fileName = createFileName(F_PLANET, level->getWorld());
try { try {
......
...@@ -177,6 +177,13 @@ bool Level::checkSpikes (fixed x, fixed y) { ...@@ -177,6 +177,13 @@ bool Level::checkSpikes (fixed x, fixed y) {
} }
int Level::getWorld() {
return worldNum;
}
void Level::setNext (int nextLevel, int nextWorld) { void Level::setNext (int nextLevel, int nextWorld) {
unsigned char buffer[MTL_L_PROP]; unsigned char buffer[MTL_L_PROP];
......
...@@ -143,6 +143,7 @@ class Level : public BaseLevel { ...@@ -143,6 +143,7 @@ class Level : public BaseLevel {
bool checkMaskUp (fixed x, fixed y); bool checkMaskUp (fixed x, fixed y);
bool checkMaskDown (fixed x, fixed y); bool checkMaskDown (fixed x, fixed y);
bool checkSpikes (fixed x, fixed y); bool checkSpikes (fixed x, fixed y);
int getWorld ();
void setNext (int nextLevel, int nextWorld); void setNext (int nextLevel, int nextWorld);
void setTile (unsigned char gridX, unsigned char gridY, unsigned char tile); void setTile (unsigned char gridX, unsigned char gridY, unsigned char tile);
Event* getEvents (); Event* getEvents ();
......
...@@ -470,21 +470,25 @@ int Level::load (char *fileName, unsigned char diff, bool checkpoint) { ...@@ -470,21 +470,25 @@ int Level::load (char *fileName, unsigned char diff, bool checkpoint) {
} catch (int e) { } catch (int e) {
delete[] string; file = NULL;
deletePanel();
delete font;
return e;
} }
delete[] string; delete[] string;
if (file) {
file->seek(2, true); file->seek(2, true);
string = file->loadString(); string = file->loadString();
delete file; delete file;
} else {
string = createString("CUSTOM");
}
} }
switch (fileName[5]) { switch (fileName[5]) {
...@@ -581,16 +585,9 @@ int Level::load (char *fileName, unsigned char diff, bool checkpoint) { ...@@ -581,16 +585,9 @@ int Level::load (char *fileName, unsigned char diff, bool checkpoint) {
file->seek(8, false); file->seek(8, false);
ext = file->loadString(); ext = file->loadString();
if (!strcmp(ext, "999")) { // Create tile set file name
if (!strcmp(ext, "999")) string = createFileName(F_BLOCKS, worldNum);
// Use the level file's extension instead else string = createFileName(F_BLOCKS, ext);
delete[] ext;
ext = createString(fileName + strlen(fileName) - 3);
}
// Allocate space for file names
string = createFileName(F_BLOCKS, ext);
delete[] ext; delete[] ext;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment