X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=c129ad2e9e96b9da680af223ec1c3506e5ac087b;hb=681721dddc91bcdaef50002d1e861cc8d484e938;hp=1f39cd8f6da96adf4d024d849c036cf667d6add5;hpb=da14f69fd95c7bd5a0d70cdf4935af06f1f20a04;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 1f39cd8f..c129ad2e 100644 --- a/src/game.c +++ b/src/game.c @@ -1,14 +1,14 @@ /*********************************************************** -* Rocks'n'Diamonds -- McDuffin Strikes Back! * +* Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* (c) 1995-98 Artsoft Entertainment * -* Holger Schemel * -* Oststrasse 11a * -* 33604 Bielefeld * -* phone: ++49 +521 290471 * -* email: aeglos@valinor.owl.de * +* (c) 1995-2001 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * *----------------------------------------------------------* -* game.c * +* game.c * ***********************************************************/ #include "libgame/libgame.h" @@ -180,6 +180,7 @@ void GetPlayerConfig() setup.sound_simple = setup.sound; + SetAudioMode(setup.sound); InitJoysticks(); } @@ -730,7 +731,7 @@ void InitGame() int2str(level_nr, 2), FS_SMALL, FC_YELLOW); else { - DrawTextExt(drawto, gc, DX + XX_EMERALDS, DY + YY_EMERALDS, + DrawTextExt(drawto, DX + XX_EMERALDS, DY + YY_EMERALDS, int2str(level_nr, 3), FS_SMALL, FC_SPECIAL3); BlitBitmap(drawto, drawto, DX + XX_EMERALDS, DY + YY_EMERALDS + 1, @@ -760,8 +761,8 @@ void InitGame() OpenDoor(DOOR_OPEN_ALL); - if (setup.sound_music) - PlaySoundLoop(background_loop[level_nr % num_bg_loops]); + if (setup.sound_music && num_bg_loops) + PlayMusic(level_nr % num_bg_loops); KeyboardAutoRepeatOff(); @@ -959,7 +960,9 @@ void GameWon() StopSound(SND_SIRR); } +#if 0 FadeSounds(); +#endif /* Hero disappears */ DrawLevelField(ExitX, ExitY); @@ -980,11 +983,13 @@ void GameWon() { leveldir_current->handicap_level++; SaveLevelSetup_SeriesInfo(); - - if (level_nr < leveldir_current->last_level) - raise_level = TRUE; } + if (level_editor_test_game) + local_player->score = -1; /* no highscore when playing from editor */ + else if (level_nr < leveldir_current->last_level) + raise_level = TRUE; /* advance to next level */ + if ((hi_pos = NewHiScore()) >= 0) { game_status = HALLOFFAME; @@ -5402,12 +5407,10 @@ int DigField(struct PlayerInfo *player, RemoveField(x, y); player->key[key_nr] = TRUE; RaiseScoreElement(EL_SCHLUESSEL); - DrawMiniGraphicExt(drawto, gc, - DX_KEYS+key_nr*MINI_TILEX, DY_KEYS, - GFX_SCHLUESSEL1+key_nr); - DrawMiniGraphicExt(window, gc, - DX_KEYS+key_nr*MINI_TILEX, DY_KEYS, - GFX_SCHLUESSEL1+key_nr); + 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_PONG); break; } @@ -5422,12 +5425,10 @@ int DigField(struct PlayerInfo *player, RemoveField(x, y); player->key[key_nr] = TRUE; RaiseScoreElement(EL_SCHLUESSEL); - DrawMiniGraphicExt(drawto, gc, - DX_KEYS+key_nr*MINI_TILEX, DY_KEYS, - GFX_SCHLUESSEL1+key_nr); - DrawMiniGraphicExt(window, gc, - DX_KEYS+key_nr*MINI_TILEX, DY_KEYS, - GFX_SCHLUESSEL1+key_nr); + 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_PONG); break; } @@ -6085,7 +6086,7 @@ void CreateGameButtons() for (i=0; i