rnd-20100316-1-src
[rocksndiamonds.git] / src / game_sp / Display.c
1 // ----------------------------------------------------------------------------
2 // Display.c
3 // ----------------------------------------------------------------------------
4
5 #include "Display.h"
6
7
8 int ScreenScrollXPos, ScreenScrollYPos;
9
10 int ShowPanel;
11 int ExplosionShake;
12 boolean NoDisplayFlag;
13
14 long DisplayMinX, DisplayMaxX, DisplayWidth;
15 long DisplayMinY, DisplayMaxY, DisplayHeight;
16
17
18 void subDisplayLevel()
19 {
20   if (NoDisplayFlag || ! LevelLoaded)
21     return;
22
23   DisplayLevel();
24 }
25
26 void ScrollTo(int X, int Y)
27 {
28   if (NoDisplayFlag)
29     return;
30
31   X = ScrollDelta * (X / ScrollDelta);
32   X = Max(X, ScrollMinX);
33   X = Min(X, ScrollMaxX);
34   Y = ScrollDelta * (Y / ScrollDelta);
35   Y = Max(Y, ScrollMinY);
36   Y = Min(Y, ScrollMaxY);
37
38   DDScrollBuffer_ScrollTo(X, Y);
39 }
40
41 void ScrollTowards(int X, int Y)
42 {
43   if (NoDisplayFlag)
44     return;
45
46   X = ScrollDelta * (X / ScrollDelta);
47   X = Max(X, ScrollMinX);
48   X = Min(X, ScrollMaxX);
49   Y = ScrollDelta * (Y / ScrollDelta);
50   Y = Max(Y, ScrollMinY);
51   Y = Min(Y, ScrollMaxY);
52
53   DDScrollBuffer_ScrollTowards(X, Y, 2 * Stretch * ZoomFactor);
54 }
55
56 void SoftScrollTo(int X, int Y, long TimeMS, int FPS)
57 {
58   if (NoDisplayFlag)
59     return;
60
61   X = ScrollDelta * (X / ScrollDelta);
62   X = Max(X, ScrollMinX);
63   X = Min(X, ScrollMaxX);
64   Y = ScrollDelta * (Y / ScrollDelta);
65   Y = Max(Y, ScrollMinY);
66   Y = Min(Y, ScrollMaxY);
67
68   DDScrollBuffer_SoftScrollTo(X, Y, TimeMS, FPS);
69 }