Ticket #1790: var_fade_delay.diff

File var_fade_delay.diff, 1.8 KB (added by cyxx, 15 years ago)

VAR_FADE_DELAY patch

  • scumm/gfx.cpp

     
    5252
    5353enum {
    5454        kScrolltime = 500,  // ms scrolling is supposed to take
    55         kPictureDelay = 20
     55        kPictureDelay = 20,
     56        kFadeDelay = 4 // 1/4th of a jiffie
    5657};
    5758
    5859#define NUM_SHAKE_POSITIONS 8
     
    31033104        int bottom;
    31043105        int l, t, r, b;
    31053106        const int height = MIN((int)virtscr[0].h, _screenHeight);
     3107        const int delay = (VAR_FADE_DELAY != 0xFF) ? VAR(VAR_FADE_DELAY) * kFadeDelay : kPictureDelay;
    31063108
    31073109        for (i = 0; i < 16; i++) {
    31083110                delta[i] = transitionEffects[a].deltaTable[i];
     
    31463148
    31473149                // Draw the current state to the screen and wait a few secs so the
    31483150                // user can watch the effect taking place.
    3149                 waitForTimer(VAR_FADE_DELAY != 0xFF ? VAR(VAR_FADE_DELAY) * 10 : 30);
     3151                waitForTimer(delay);
    31503152        }
    31513153}
    31523154
     
    32713273
    32723274        int x, y;
    32733275        int step;
     3276        const int delay = (VAR_FADE_DELAY != 0xFF) ? VAR(VAR_FADE_DELAY) * kFadeDelay : kPictureDelay;
    32743277
    32753278        if ((dir == 0) || (dir == 1))
    32763279                step = vs->h;
    32773280        else
    32783281                step = vs->w;
    32793282
    3280         step = (step * kPictureDelay) / kScrolltime;
     3283        step = (step * delay) / kScrolltime;
    32813284
    32823285        switch (dir) {
    32833286        case 0:
     
    32903293                                0, vs->h - step,
    32913294                                vs->w, step);
    32923295                        _system->updateScreen();
    3293                         waitForTimer(kPictureDelay);
     3296                        waitForTimer(delay);
    32943297
    32953298                        y += step;
    32963299                }
     
    33053308                                0, 0,
    33063309                                vs->w, step);
    33073310                        _system->updateScreen();
    3308                         waitForTimer(kPictureDelay);
     3311                        waitForTimer(delay);
    33093312
    33103313                        y += step;
    33113314                }
     
    33203323                                vs->w - step, 0,
    33213324                                step, vs->h);
    33223325                        _system->updateScreen();
    3323                         waitForTimer(kPictureDelay);
     3326                        waitForTimer(delay);
    33243327
    33253328                        x += step;
    33263329                }
     
    33353338                                0, 0,
    33363339                                step, vs->h);
    33373340                        _system->updateScreen();
    3338                         waitForTimer(kPictureDelay);
     3341                        waitForTimer(delay);
    33393342
    33403343                        x += step;
    33413344                }