X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=70441d1c649eb06074c3fe77ef482de307668ac8;hb=1a22e8bdd70708d1ee0bb3f21a456eca4e3de50a;hp=d05d636588618f25027e5db12b70e69b914c780b;hpb=f277b6c7e5926b448fb3ae123b383a540162ef2b;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index d05d6365..70441d1c 100644 --- a/src/tools.c +++ b/src/tools.c @@ -193,22 +193,6 @@ static char *print_if_not_empty(int element) return s; } -int correctLevelPosX_EM(int lx) -{ - lx -= 1; - lx -= (BorderElement != EL_EMPTY ? 1 : 0); - - return lx; -} - -int correctLevelPosY_EM(int ly) -{ - ly -= 1; - ly -= (BorderElement != EL_EMPTY ? 1 : 0); - - return ly; -} - int getFieldbufferOffsetX_RND(int dir, int pos) { int full_lev_fieldx = lev_fieldx + (BorderElement != EL_EMPTY ? 2 : 0); @@ -307,8 +291,6 @@ static int getLevelFromScreenX_EM(int sx) int px = sx - SX; int lx = LEVELX((px + dx) / TILESIZE_VAR); - lx = correctLevelPosX_EM(lx); - return lx; } @@ -324,8 +306,6 @@ static int getLevelFromScreenY_EM(int sy) int py = sy - SY; int ly = LEVELY((py + dy) / TILESIZE_VAR); - ly = correctLevelPosY_EM(ly); - return ly; } @@ -971,19 +951,13 @@ static void FadeExt(int fade_mask, int fade_mode, int fade_type) height = WIN_YSIZE; } - if (!setup.fade_screens || - fade_delay == 0 || - fading.fade_mode == FADE_MODE_NONE) - { - if (fade_mode == FADE_MODE_FADE_OUT) - return; - - BlitBitmap(backbuffer, window, x, y, width, height, x, y); - - redraw_mask &= ~fade_mask; + // when switching screens without fading, set fade delay to zero + if (!setup.fade_screens || fading.fade_mode == FADE_MODE_NONE) + fade_delay = 0; + // do not display black frame when fading out without fade delay + if (fade_mode == FADE_MODE_FADE_OUT && fade_delay == 0) return; - } FadeRectangle(x, y, width, height, fade_mode, fade_delay, post_delay, draw_border_function); @@ -999,8 +973,7 @@ static void SetScreenStates_BeforeFadingIn(void) global.anim_status = global.anim_status_next; // store backbuffer with all animations that will be started after fading in - if (fade_type_skip != FADE_MODE_SKIP_FADE_IN) - PrepareFadeBitmap(DRAW_TO_FADE_TARGET); + PrepareFadeBitmap(DRAW_TO_FADE_TARGET); // set screen mode for animations back to fading global.anim_status = GAME_MODE_PSEUDO_FADING; @@ -1023,8 +996,7 @@ static void SetScreenStates_BeforeFadingOut(void) global.anim_status = GAME_MODE_PSEUDO_FADING; // store backbuffer with all animations that will be stopped for fading out - if (fade_type_skip != FADE_MODE_SKIP_FADE_OUT) - PrepareFadeBitmap(DRAW_TO_FADE_SOURCE); + PrepareFadeBitmap(DRAW_TO_FADE_SOURCE); } static void SetScreenStates_AfterFadingOut(void) @@ -1462,8 +1434,8 @@ void SetBorderElement(void) BorderElement = EL_EMPTY; - // the MM game engine does not use a visible border element - if (level.game_engine_type == GAME_ENGINE_TYPE_MM) + // only the R'n'D game engine may use an additional steelwall border + if (level.game_engine_type != GAME_ENGINE_TYPE_RND) return; for (y = 0; y < lev_fieldy && BorderElement == EL_EMPTY; y++) @@ -8267,11 +8239,21 @@ int getBeltSwitchElementFromBeltNrAndBeltDir(int belt_nr, int belt_dir) return getBeltSwitchElementFromBeltNrAndBeltDirNr(belt_nr, belt_dir_nr); } +boolean swapTiles_EM(boolean is_pre_emc_cave) +{ + return is_pre_emc_cave && leveldir_current->use_emc_tiles; +} + boolean getTeamMode_EM(void) { return game.team_mode || network_playing; } +boolean isActivePlayer_EM(int player_nr) +{ + return stored_player[player_nr].active; +} + unsigned int InitRND(int seed) { if (level.game_engine_type == GAME_ENGINE_TYPE_EM) @@ -9035,7 +9017,7 @@ static void CheckSaveEngineSnapshot_EM(byte action[MAX_PLAYERS], int frame, boolean any_player_snapping, boolean any_player_dropping) { - if (frame == 0 && !any_player_dropping) + if (frame == 7 && !any_player_dropping) { if (!local_player->was_waiting) { @@ -9093,7 +9075,7 @@ void CheckSingleStepMode_EM(byte action[MAX_PLAYERS], int frame, boolean any_player_dropping) { if (tape.single_step && tape.recording && !tape.pausing) - if (frame == 0 && !any_player_dropping) + if (frame == 7 && !any_player_dropping) TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); CheckSaveEngineSnapshot_EM(action, frame, any_player_moving,