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

Method draw

game/state/tilemap/tileobject_doodad.cpp:9–40  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7{
8
9void TileObjectDoodad::draw(Renderer &r, TileTransform &transform, Vec2<float> screenPosition,
10 TileViewMode mode, bool visible, int, bool, bool)
11{
12 if (!visible)
13 {
14 return;
15 }
16
17 std::ignore = transform;
18 // Mode isn't used as TileView::tileToScreenCoords already transforms according to the mode
19 auto doodad = this->doodad.lock();
20 if (!doodad)
21 {
22 LogError("Called with no owning doodad object");
23 return;
24 }
25 sp<Image> sprite;
26 Vec2<float> transformedScreenPos = screenPosition;
27 switch (mode)
28 {
29 case TileViewMode::Isometric:
30 sprite = doodad->getSprite();
31 transformedScreenPos -= doodad->getImageOffset();
32 break;
33 case TileViewMode::Strategy:
34 // no doodads on strategy view?
35 return;
36 default:
37 LogError("Unsupported view mode");
38 }
39 drawTinted(r, sprite, transformedScreenPos, visible);
40}
41
42TileObjectDoodad::~TileObjectDoodad() = default;
43

Callers 14

drawTintedMethod · 0.45
drawShadowMethod · 0.45
drawFunction · 0.45
renderBaseMethod · 0.45
onRenderMethod · 0.45
renderMethod · 0.45
onRenderMethod · 0.45
postRenderMethod · 0.45
renderBaseMethod · 0.45
renderMethod · 0.45
renderMethod · 0.45
renderMethod · 0.45

Calls 1

getSpriteMethod · 0.80

Tested by

no test coverage detected