ceaf64423d5a6673bfe9e233485ba5982d2598bb
[rocksndiamonds.git] / src / game_sp / Display.c
1 // ----------------------------------------------------------------------------
2 // Display.c
3 // ----------------------------------------------------------------------------
4
5 #include "Display.h"
6
7
8 int ScreenScrollXPos, ScreenScrollYPos;
9 int ScreenPosition;
10
11 int ShowPanel;
12 int ExplosionShake;
13 boolean NoDisplayFlag;
14
15 long DisplayMinX, DisplayMaxX, DisplayWidth;
16 long DisplayMinY, DisplayMaxY, DisplayHeight;
17
18
19 void subDisplayLevel()
20 {
21   if (NoDisplayFlag || ! LevelLoaded)
22     return;
23
24   DisplayLevel();
25 }
26
27 void ScrollTo(int X, int Y)
28 {
29   long oldX, oldY;
30
31 #if 0
32   printf("::: Display.c: ScrollTo(): %d, %d\n", X, Y);
33 #endif
34
35   if (NoDisplayFlag)
36     return;
37
38   oldX = ScrollX;
39   oldY = ScrollY;
40   X = ScrollDelta * (X / ScrollDelta);
41   X = Max(X, ScrollMinX);
42   X = Min(X, ScrollMaxX);
43   Y = ScrollDelta * (Y / ScrollDelta);
44   Y = Max(Y, ScrollMinY);
45   Y = Min(Y, ScrollMaxY);
46   //  ScrollX = X
47   //  ScrollY = Y
48
49   Stage.ScrollTo(X, Y);
50 }
51
52 void ScrollTowards(int X, int Y)
53 {
54   long oldX, oldY;
55
56   if (NoDisplayFlag)
57     return;
58
59   oldX = ScrollX;
60   oldY = ScrollY;
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   //  ScrollX = X
68   //  ScrollY = Y
69
70   Stage.ScrollTowards(X, Y, 2 * Stretch * ZoomFactor);
71 }
72
73 void SoftScrollTo(int X, int Y, long TimeMS, int FPS)
74 {
75   long oldX, oldY;
76
77   if (NoDisplayFlag)
78     return;
79
80   oldX = ScrollX;
81   oldY = ScrollY;
82   X = ScrollDelta * (X / ScrollDelta);
83   X = Max(X, ScrollMinX);
84   X = Min(X, ScrollMaxX);
85   Y = ScrollDelta * (Y / ScrollDelta);
86   Y = Max(Y, ScrollMinY);
87   Y = Min(Y, ScrollMaxY);
88   //  ScrollX = X
89   //  ScrollY = Y
90
91   Stage.SoftScrollTo(X, Y, TimeMS, FPS);
92 }