projects
/
rocksndiamonds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
05806ad
)
changed unused playfield from default to empty after loading level
author
Holger Schemel
<info@artsoft.org>
Sat, 14 Feb 2015 21:03:21 +0000
(22:03 +0100)
committer
Holger Schemel
<info@artsoft.org>
Sat, 14 Feb 2015 21:03:21 +0000
(22:03 +0100)
ChangeLog
patch
|
blob
|
history
src/files.c
patch
|
blob
|
history
diff --git
a/ChangeLog
b/ChangeLog
index cad40644f89d9ec49fd2cf6c6326eab88ebfc07c..644eebc8cafd19c4aa46b6684a0a03876dfa9fec 100644
(file)
--- a/
ChangeLog
+++ b/
ChangeLog
@@
-1,5
+1,6
@@
2015-02-14
* fixed bug with editor border element not adjusted after resizing level
2015-02-14
* fixed bug with editor border element not adjusted after resizing level
+ * changed unused playfield from "default" to "empty" after loading level
2015-02-13
* added zoom functionality for playfield drawing area to level editor
2015-02-13
* added zoom functionality for playfield drawing area to level editor
diff --git
a/src/files.c
b/src/files.c
index bfa9f8160f1d6f9f88630477d8e7ca4209ed4148..d79e5f55ca3587531794809b82adad7e8f155b85 100644
(file)
--- a/
src/files.c
+++ b/
src/files.c
@@
-1608,18
+1608,21
@@
static void setLevelInfoToDefaults_Level(struct LevelInfo *level)
level->encoding_16bit_yamyam = TRUE;
level->encoding_16bit_amoeba = TRUE;
level->encoding_16bit_yamyam = TRUE;
level->encoding_16bit_amoeba = TRUE;
- for (x = 0; x < MAX_LEV_FIELDX; x++)
- for (y = 0; y < MAX_LEV_FIELDY; y++)
- level->field[x][y] = EL_SAND;
-
+ /* clear level name and level author string buffers */
for (i = 0; i < MAX_LEVEL_NAME_LEN; i++)
level->name[i] = '\0';
for (i = 0; i < MAX_LEVEL_AUTHOR_LEN; i++)
level->author[i] = '\0';
for (i = 0; i < MAX_LEVEL_NAME_LEN; i++)
level->name[i] = '\0';
for (i = 0; i < MAX_LEVEL_AUTHOR_LEN; i++)
level->author[i] = '\0';
+ /* set level name and level author to default values */
strcpy(level->name, NAMELESS_LEVEL_NAME);
strcpy(level->author, ANONYMOUS_NAME);
strcpy(level->name, NAMELESS_LEVEL_NAME);
strcpy(level->author, ANONYMOUS_NAME);
+ /* set level playfield to playable default level with player and exit */
+ for (x = 0; x < MAX_LEV_FIELDX; x++)
+ for (y = 0; y < MAX_LEV_FIELDY; y++)
+ level->field[x][y] = EL_SAND;
+
level->field[0][0] = EL_PLAYER_1;
level->field[STD_LEV_FIELDX - 1][STD_LEV_FIELDY - 1] = EL_EXIT_CLOSED;
level->field[0][0] = EL_PLAYER_1;
level->field[STD_LEV_FIELDX - 1][STD_LEV_FIELDY - 1] = EL_EXIT_CLOSED;
@@
-6218,6
+6221,12
@@
static void LoadLevel_InitPlayfield(struct LevelInfo *level, char *filename)
level->field[x][y] = getMappedElementByVersion(level->field[x][y],
level->game_version);
level->field[x][y] = getMappedElementByVersion(level->field[x][y],
level->game_version);
+ /* clear unused playfield data (nicer if level gets resized in editor) */
+ for (x = 0; x < MAX_LEV_FIELDX; x++)
+ for (y = 0; y < MAX_LEV_FIELDY; y++)
+ if (x >= level->fieldx || y >= level->fieldy)
+ level->field[x][y] = EL_EMPTY;
+
/* copy elements to runtime playfield array */
for (x = 0; x < MAX_LEV_FIELDX; x++)
for (y = 0; y < MAX_LEV_FIELDY; y++)
/* copy elements to runtime playfield array */
for (x = 0; x < MAX_LEV_FIELDX; x++)
for (y = 0; y < MAX_LEV_FIELDY; y++)