EL_MAUER_Y,
EL_MAUER_XY,
+ EL_SPEED_PILL,
+ EL_LEERRAUM,
+ EL_LEERRAUM,
+ EL_LEERRAUM,
+
EL_CHAR_A + ('S' - 'A'),
EL_CHAR_A + ('O' - 'A'),
EL_CHAR_A + ('K' - 'A'),
level.dauer_ablenk = 10;
level.amoebe_inhalt = EL_DIAMANT;
+ level.high_speed = FALSE;
+
strcpy(level.name, "Nameless Level");
for(i=0; i<LEVEL_SCORE_ELEMENTS; i++)
if (level.time <= 10) /* minimum playing time of each level */
level.time = 10;
+
+ if (file_version == FILE_VERSION_1_0)
+ {
+ Error(ERR_WARN, "level file '%s' has version number 1.0", filename);
+ Error(ERR_WARN, "using high speed movement for player");
+ level.high_speed = TRUE;
+ }
}
void SaveLevel(int level_nr)
ScreenMovPos = 0;
ScreenGfxPos = 0;
+ if (level.high_speed)
+ {
+ MoveSpeed = 4;
+ ScrollStepSize = TILEX/4;
+ }
+ else
+ {
+ MoveSpeed = 8;
+ ScrollStepSize = TILEX/8;
+ }
+
AllPlayersGone = FALSE;
SiebAktiv = FALSE;
SiebCount = 0;
PlaySoundLevel(x, y, SND_PONG);
break;
+ case EL_SPEED_PILL:
+ RemoveField(x, y);
+ MoveSpeed = 4;
+ ScrollStepSize = TILEX/4;
+ PlaySoundLevel(x, y, SND_PONG);
+ break;
+
case EL_DYNAMIT_AUS:
RemoveField(x, y);
player->dynamite++;
EL_SP_CHIP_RIGHT,
EL_SP_CHIP_UPPER,
EL_SP_CHIP_LOWER,
+ EL_SPEED_PILL
};
static int ep_slippery_num = sizeof(ep_slippery)/sizeof(int);
int dauer_sieb;
int dauer_ablenk;
int amoebe_inhalt;
+ boolean high_speed;
};
struct LevelDirInfo
#define EL_TROPFEN 18
#define EL_BOMBE 19
#define EL_SIEB_INAKTIV 20
-
-#define EL_UNUSED_21 21
-
+#define EL_SPEED_PILL 21
#define EL_SALZSAEURE 22
#define EL_AMOEBE_NASS 23
#define EL_AMOEBE_NORM 24
#define GFX_EDELSTEIN_ROT 152
#define GFX_EDELSTEIN_LILA 154
#define GFX_DYNABOMB_XL 156
+#define GFX_SPEED_PILL 158
#define GFX_SONDE 159
/* Zeile 10 (160) */
#define GFX_EDELSTEIN_BD 163
case EL_PFEIL_R: return GFX_PFEIL_R;
case EL_PFEIL_O: return GFX_PFEIL_O;
case EL_PFEIL_U: return GFX_PFEIL_U;
+ case EL_SPEED_PILL: return GFX_SPEED_PILL;
default:
{
if (IS_CHAR(element))