- case EL_LEERRAUM:
- case EL_ERDREICH:
- case EL_SAND_INVISIBLE:
- case EL_TRAP_INACTIVE:
- case EL_SP_BASE:
- case EL_SP_BUG:
- RemoveField(x, y);
- PlaySoundLevelElementAction(x, y, element, SND_ACTION_DIGGING);
- break;
-
- case EL_EDELSTEIN:
- case EL_EDELSTEIN_BD:
- case EL_EDELSTEIN_GELB:
- case EL_EDELSTEIN_ROT:
- case EL_EDELSTEIN_LILA:
- case EL_DIAMANT:
- case EL_SP_INFOTRON:
- case EL_PEARL:
- case EL_CRYSTAL:
- RemoveField(x, y);
- local_player->gems_still_needed -= (element == EL_DIAMANT ? 3 :
- element == EL_PEARL ? 5 :
- element == EL_CRYSTAL ? 8 : 1);
- if (local_player->gems_still_needed < 0)
- local_player->gems_still_needed = 0;
- RaiseScoreElement(element);
- DrawText(DX_EMERALDS, DY_EMERALDS,
- int2str(local_player->gems_still_needed, 3),
- FS_SMALL, FC_YELLOW);
- PlaySoundLevelElementAction(x, y, element, SND_ACTION_COLLECTING);
- break;
-
- case EL_SPEED_PILL:
- RemoveField(x, y);
- player->move_delay_value = MOVE_DELAY_HIGH_SPEED;
- PlaySoundLevel(x, y, SND_SPEED_PILL_COLLECTING);
- break;
-
- case EL_ENVELOPE:
- Feld[x][y] = EL_LEERRAUM;
- PlaySoundLevel(x, y, SND_ENVELOPE_COLLECTING);
- break;
-
- case EL_EXTRA_TIME:
- RemoveField(x, y);
- if (level.time > 0)
- {
- TimeLeft += 10;
- DrawText(DX_TIME, DY_TIME, int2str(TimeLeft, 3), FS_SMALL, FC_YELLOW);
- }
- PlaySoundStereo(SND_EXTRA_TIME_COLLECTING, SOUND_MAX_RIGHT);
- break;
-
- case EL_SHIELD_PASSIVE:
- RemoveField(x, y);
- player->shield_passive_time_left += 10;
- PlaySoundLevel(x, y, SND_SHIELD_PASSIVE_COLLECTING);
- break;
-
- case EL_SHIELD_ACTIVE:
- RemoveField(x, y);
- player->shield_passive_time_left += 10;
- player->shield_active_time_left += 10;
- PlaySoundLevel(x, y, SND_SHIELD_ACTIVE_COLLECTING);
- break;
-
- case EL_DYNAMITE_INACTIVE:
- case EL_SP_DISK_RED:
- RemoveField(x, y);
- player->dynamite++;
- RaiseScoreElement(EL_DYNAMITE_INACTIVE);
- DrawText(DX_DYNAMITE, DY_DYNAMITE,
- int2str(local_player->dynamite, 3),
- FS_SMALL, FC_YELLOW);
- PlaySoundLevelElementAction(x, y, element, SND_ACTION_COLLECTING);
- break;
-
- case EL_DYNABOMB_NR:
- RemoveField(x, y);
- player->dynabomb_count++;
- player->dynabombs_left++;
- RaiseScoreElement(EL_DYNAMITE_INACTIVE);
- PlaySoundLevel(x, y, SND_DYNABOMB_NR_COLLECTING);
- break;
-
- case EL_DYNABOMB_SZ:
- RemoveField(x, y);
- player->dynabomb_size++;
- RaiseScoreElement(EL_DYNAMITE_INACTIVE);
- PlaySoundLevel(x, y, SND_DYNABOMB_SZ_COLLECTING);
- break;
-
- case EL_DYNABOMB_XL:
- RemoveField(x, y);
- player->dynabomb_xl = TRUE;
- RaiseScoreElement(EL_DYNAMITE_INACTIVE);
- PlaySoundLevel(x, y, SND_DYNABOMB_XL_COLLECTING);
- break;
-
- case EL_SCHLUESSEL1:
- case EL_SCHLUESSEL2:
- case EL_SCHLUESSEL3:
- case EL_SCHLUESSEL4:
- {
- int key_nr = element - EL_SCHLUESSEL1;
-
- RemoveField(x, y);
- player->key[key_nr] = TRUE;
- RaiseScoreElement(EL_SCHLUESSEL);
- DrawMiniGraphicExt(drawto, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
- GFX_SCHLUESSEL1 + key_nr);
- DrawMiniGraphicExt(window, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
- GFX_SCHLUESSEL1 + key_nr);
- PlaySoundLevel(x, y, SND_KEY_COLLECTING);
- break;
- }
-
- case EL_EM_KEY_1:
- case EL_EM_KEY_2:
- case EL_EM_KEY_3:
- case EL_EM_KEY_4:
- {
- int key_nr = element - EL_EM_KEY_1;
-
- RemoveField(x, y);
- player->key[key_nr] = TRUE;
- RaiseScoreElement(EL_SCHLUESSEL);
- DrawMiniGraphicExt(drawto, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
- GFX_SCHLUESSEL1 + key_nr);
- DrawMiniGraphicExt(window, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
- GFX_SCHLUESSEL1 + key_nr);
- PlaySoundLevel(x, y, SND_KEY_COLLECTING);
- break;
- }
-
- case EL_ABLENK_AUS:
- Feld[x][y] = EL_ABLENK_EIN;