/* actual tile size used to display playfield drawing area */
static int ed_tilesize = DEFAULT_EDITOR_TILESIZE;
+static int ed_tilesize_default = DEFAULT_EDITOR_TILESIZE;
#define IN_ED_FIELD(x,y) IN_FIELD(x, y, ed_fieldx, ed_fieldy)
if (zoom_tilesize == -1)
{
ed_tilesize = setup.auto_setup.editor_zoom_tilesize;
+ ed_tilesize_default = DEFAULT_EDITOR_TILESIZE;
if (level.game_engine_type == GAME_ENGINE_TYPE_MM)
+ {
ed_tilesize = DEFAULT_EDITOR_TILESIZE_MM;
+ ed_tilesize_default = DEFAULT_EDITOR_TILESIZE_MM;
+ }
}
// limit zoom tilesize by upper and lower bound
MAX_ED_FIELDY = getMaxEdFieldY(FALSE);
}
+static void InitDrawingElements()
+{
+ static int game_engine_type_last = GAME_ENGINE_TYPE_UNKNOWN;
+
+ if (level.game_engine_type == game_engine_type_last)
+ return;
+
+ if (level.game_engine_type == GAME_ENGINE_TYPE_SP)
+ {
+ new_element1 = EL_SP_CHIP_SINGLE;
+ new_element2 = EL_EMPTY;
+ new_element3 = EL_SP_BASE;
+ }
+ else if (level.game_engine_type == GAME_ENGINE_TYPE_MM)
+ {
+ new_element1 = EL_MM_MIRROR_START;
+ new_element2 = EL_EMPTY;
+ new_element3 = EL_MM_WOODEN_WALL;
+ }
+ else
+ {
+ new_element1 = EL_WALL;
+ new_element2 = EL_EMPTY;
+ new_element3 = EL_SAND;
+ }
+
+ game_engine_type_last = level.game_engine_type;
+}
+
static void InitLevelSetInfo()
{
snprintf(levelset_name, MAX_LEVEL_NAME_LEN + 1,
ClearField();
InitZoomLevelSettings(-1);
+ InitDrawingElements();
InitLevelSetInfo();
#if DEBUG
case GADGET_ID_ZOOM:
// zoom level editor tile size in or out (or reset to default size)
ed_tilesize = (button == 1 ? ed_tilesize * 2 :
- button == 2 ? DEFAULT_EDITOR_TILESIZE :
+ button == 2 ? ed_tilesize_default :
button == 3 ? ed_tilesize / 2 : ed_tilesize);
// limit zoom level by upper and lower bound