Skip to content

Commit 0fd725b

Browse files
committed
Split up engine.{h,cpp}
Untangles dependencies by splitting up `engine.{h,cpp}` into 3 files: 1. `primitive_render` 2. `ticks` -- only contains `GetAnimationFrame` for now. 3. `width2` -- only contains `GetWidth2` until we find a better place (and name) for it.
1 parent dd76f17 commit 0fd725b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+169
-169
lines changed

Source/CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ set(libdevilutionx_SRCS
1313
diablo.cpp
1414
diablo_msg.cpp
1515
doom.cpp
16-
engine.cpp
1716
gamemenu.cpp
1817
gmenu.cpp
1918
help.cpp
@@ -112,11 +111,13 @@ set(libdevilutionx_SRCS
112111
engine/random.cpp
113112
engine/sound_position.cpp
114113
engine/surface.cpp
114+
engine/ticks.cpp
115115
engine/trn.cpp
116116

117117
engine/render/automap_render.cpp
118118
engine/render/clx_render.cpp
119119
engine/render/dun_render.cpp
120+
engine/render/primitive_render.cpp
120121
engine/render/scrollrt.cpp
121122
engine/render/text_render.cpp
122123

Source/DiabloUI/diabloui.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "engine/dx.h"
2222
#include "engine/load_pcx.hpp"
2323
#include "engine/render/clx_render.hpp"
24+
#include "engine/ticks.hpp"
2425
#include "hwcursor.hpp"
2526
#include "utils/algorithm/container.hpp"
2627
#include "utils/display.h"

Source/appfat.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,13 @@
66

77
#include <config.h>
88

9+
#include <SDL.h>
910
#include <fmt/format.h>
1011

12+
#ifdef USE_SDL1
13+
#include "utils/sdl2_to_1_2_backports.h"
14+
#endif
15+
1116
#include "diablo.h"
1217
#include "multi.h"
1318
#include "storm/storm_net.hpp"

Source/appfat.h

-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
#include <string_view>
99

10-
#include <SDL.h>
11-
1210
#include "utils/attributes.h"
1311

1412
namespace devilution {

Source/automap.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include "engine/load_file.hpp"
1515
#include "engine/palette.h"
1616
#include "engine/render/automap_render.hpp"
17+
#include "engine/render/primitive_render.hpp"
1718
#include "levels/gendung.h"
1819
#include "levels/setmaps.h"
1920
#include "player.h"

Source/control.h

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
#include "DiabloUI/text_input.hpp"
2222
#include "DiabloUI/ui_flags.hpp"
23-
#include "engine.h"
2423
#include "engine/displacement.hpp"
2524
#include "engine/point.hpp"
2625
#include "engine/rectangle.hpp"

Source/controls/modifier_hints.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#pragma once
22

3-
#include "engine.h"
3+
#include "engine/surface.hpp"
44

55
namespace devilution {
66

Source/controls/touch/event_handlers.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include "controls/plrctrls.h"
55
#include "cursor.h"
66
#include "diablo.h"
7-
#include "engine.h"
7+
#include "engine/render/primitive_render.hpp"
88
#include "engine/render/scrollrt.h"
99
#include "gmenu.h"
1010
#include "inv.h"

Source/controls/touch/renderers.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
#include "cursor.h"
55
#include "diablo.h"
66
#include "doom.h"
7-
#include "engine.h"
87
#include "engine/events.hpp"
98
#include "engine/render/clx_render.hpp"
9+
#include "engine/render/primitive_render.hpp"
1010
#include "init.h"
1111
#include "inv.h"
1212
#include "levels/gendung.h"

Source/cursor.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
#include "control.h"
1818
#include "controls/plrctrls.h"
1919
#include "doom.h"
20-
#include "engine.h"
2120
#include "engine/backbuffer_state.hpp"
2221
#include "engine/demomode.h"
2322
#include "engine/point.hpp"
2423
#include "engine/points_in_rectangle_range.hpp"
2524
#include "engine/render/clx_render.hpp"
25+
#include "engine/render/primitive_render.hpp"
2626
#include "engine/trn.hpp"
2727
#include "hwcursor.hpp"
2828
#include "inv.h"

Source/cursor.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
#pragma once
77

88
#include <cstdint>
9-
#include <optional>
10-
#include <utility>
119

12-
#include "engine.h"
1310
#include "engine/clx_sprite.hpp"
11+
#include "engine/point.hpp"
12+
#include "engine/size.hpp"
13+
#include "engine/surface.hpp"
1414
#include "utils/attributes.h"
1515
#include "utils/enum_traits.h"
1616

Source/dead.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
*/
66
#pragma once
77

8-
#include <array>
8+
#include <cstddef>
99
#include <cstdint>
1010

11-
#include "engine.h"
1211
#include "engine/clx_sprite.hpp"
12+
#include "engine/direction.hpp"
1313
#include "engine/point.hpp"
1414

1515
namespace devilution {

Source/debug.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66
#pragma once
77

88
#include <cstdint>
9+
#include <string>
910
#include <string_view>
1011

1112
#include <ankerl/unordered_dense.h>
1213

1314
#include "diablo.h"
14-
#include "engine.h"
1515
#include "engine/clx_sprite.hpp"
16+
#include "engine/point.hpp"
1617

1718
namespace devilution {
1819

Source/diablo_msg.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "DiabloUI/ui_flags.hpp"
1414
#include "engine/clx_sprite.hpp"
1515
#include "engine/render/clx_render.hpp"
16+
#include "engine/render/primitive_render.hpp"
1617
#include "engine/render/text_render.hpp"
1718
#include "panels/info_box.hpp"
1819
#include "utils/algorithm/container.hpp"

Source/diablo_msg.hpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@
66
#pragma once
77

88
#include <cstdint>
9-
#include <string>
109
#include <string_view>
1110

12-
#include "engine.h"
11+
#include "engine/surface.hpp"
1312

1413
namespace devilution {
1514

Source/doom.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
#include <optional>
99

1010
#include "control.h"
11-
#include "engine.h"
1211
#include "engine/clx_sprite.hpp"
1312
#include "engine/load_cel.hpp"
1413
#include "engine/render/clx_render.hpp"
14+
#include "engine/render/primitive_render.hpp"
1515

1616
namespace devilution {
1717
namespace {

Source/doom.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66
#pragma once
77

8-
#include "engine.h"
8+
#include "engine/surface.hpp"
99

1010
namespace devilution {
1111

Source/engine/backbuffer_state.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "engine/backbuffer_state.hpp"
22

3+
#include <array>
34
#include <vector>
45

56
#include "engine/dx.h"

Source/engine/clx_sprite.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
#include <cstddef>
2727
#include <cstdint>
28-
28+
#include <cstring>
2929
#include <iterator>
3030
#include <memory>
3131

Source/engine/displacement.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <ostream>
88
#endif
99

10+
#include "appfat.h"
1011
#include "engine/direction.hpp"
1112
#include "engine/size.hpp"
1213
#include "utils/attributes.h"

Source/engine/dx.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include <cstdint>
1010

1111
#include "controls/plrctrls.h"
12-
#include "engine.h"
12+
#include "engine/render/primitive_render.hpp"
1313
#include "options.h"
1414
#include "utils/display.h"
1515
#include "utils/log.hpp"

Source/engine/dx.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
*/
66
#pragma once
77

8-
#include "engine.h"
8+
#include <SDL.h>
9+
10+
#include "engine/surface.hpp"
911

1012
namespace devilution {
1113

Source/engine/events.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
#include <cstdint>
44

55
#include "controls/input.h"
6-
#include "engine.h"
76
#include "engine/demomode.h"
7+
#include "engine/render/primitive_render.hpp"
88
#include "interfac.h"
99
#include "movie.h"
1010
#include "options.h"

Source/engine/point.hpp

+43
Original file line numberDiff line numberDiff line change
@@ -237,4 +237,47 @@ DVL_ALWAYS_INLINE constexpr PointOf<PointCoordT> abs(PointOf<PointCoordT> a)
237237
return { std::abs(a.x), std::abs(a.y) };
238238
}
239239

240+
/**
241+
* @brief Calculate the best fit direction between two points
242+
* @param start Tile coordinate
243+
* @param destination Tile coordinate
244+
* @return A value from the direction enum
245+
*/
246+
inline Direction GetDirection(Point start, Point destination)
247+
{
248+
Direction md;
249+
250+
int mx = destination.x - start.x;
251+
int my = destination.y - start.y;
252+
if (mx >= 0) {
253+
if (my >= 0) {
254+
if (5 * mx <= (my * 2)) // mx/my <= 0.4, approximation of tan(22.5)
255+
return Direction::SouthWest;
256+
md = Direction::South;
257+
} else {
258+
my = -my;
259+
if (5 * mx <= (my * 2))
260+
return Direction::NorthEast;
261+
md = Direction::East;
262+
}
263+
if (5 * my <= (mx * 2)) // my/mx <= 0.4
264+
md = Direction::SouthEast;
265+
} else {
266+
mx = -mx;
267+
if (my >= 0) {
268+
if (5 * mx <= (my * 2))
269+
return Direction::SouthWest;
270+
md = Direction::West;
271+
} else {
272+
my = -my;
273+
if (5 * mx <= (my * 2))
274+
return Direction::NorthEast;
275+
md = Direction::North;
276+
}
277+
if (5 * my <= (mx * 2))
278+
md = Direction::NorthWest;
279+
}
280+
return md;
281+
}
282+
240283
} // namespace devilution

Source/engine/render/automap_render.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
* Line drawing routines for the automap.
55
*/
66
#include "engine/render/automap_render.hpp"
7-
#include "automap.h"
87

98
#include <cstdint>
109

10+
#include "automap.h"
11+
#include "engine/render/primitive_render.hpp"
12+
1113
namespace devilution {
1214
namespace {
1315

Source/engine/render/automap_render.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
#include <cstdint>
1414

15-
#include "engine.h"
1615
#include "engine/point.hpp"
16+
#include "engine/surface.hpp"
1717

1818
namespace devilution {
1919

Source/engine/render/clx_render.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
#include <string>
1515
#endif
1616

17-
#include "engine.h"
1817
#include "engine/clx_sprite.hpp"
1918
#include "engine/point.hpp"
19+
#include "engine/surface.hpp"
2020
#include "lighting.h"
2121

2222
namespace devilution {

0 commit comments

Comments
 (0)