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