MCPcopy Create free account
hub / github.com/OpenApoc/OpenApoc / draw

Method draw

game/state/tilemap/tileobject_battlehazard.cpp:12–47  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10{
11
12void TileObjectBattleHazard::draw(Renderer &r, TileTransform &, Vec2<float> screenPosition,
13 TileViewMode mode, bool visible, int, bool, bool)
14{
15 if (!visible)
16 {
17 return;
18 }
19 // Mode isn't used as TileView::tileToScreenCoords already transforms according to the mode
20 std::ignore = mode;
21
22 auto h = hazard.lock();
23
24 if (h->ticksUntilVisible > 0)
25 {
26 return;
27 }
28
29 Vec2<float> transformedScreenPos = screenPosition;
30 sp<Image> sprite;
31 switch (mode)
32 {
33 case TileViewMode::Isometric:
34 sprite = h->hazardType->getFrame(h->age, h->frame);
35 transformedScreenPos -= h->hazardType->doodadType->imageOffset;
36 break;
37 case TileViewMode::Strategy:
38 {
39 // No Hazards in strategy?
40 break;
41 }
42 default:
43 LogError("Unsupported view mode");
44 }
45 if (sprite)
46 drawTinted(r, sprite, transformedScreenPos, visible);
47}
48
49TileObjectBattleHazard::~TileObjectBattleHazard() = default;
50

Callers

nothing calls this directly

Calls 1

getFrameMethod · 0.80

Tested by

no test coverage detected