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