MCPcopy Create free account
hub / github.com/OpenLoco/OpenLoco / drawDescription

Function drawDescription

src/OpenLoco/src/Ui/Windows/ObjectSelectionWindow.cpp:899–954  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

897 }
898
899 static void drawDescription(const ObjectHeader& header, Window* self, Gfx::DrawingContext& drawingCtx, int16_t x, int16_t y, Object& objectPtr)
900 {
901 int16_t width = self->x + self->width - x;
902 int16_t height = self->y + self->height - y;
903
904 // Clip the draw area to simplify image draw
905 const auto& rt = drawingCtx.currentRenderTarget();
906 auto clipped = Gfx::clipRenderTarget(rt, Ui::Rect(x, y, width, height));
907 if (!clipped)
908 {
909 return;
910 }
911
912 drawingCtx.pushRenderTarget(*clipped);
913
914 switch (header.getType())
915 {
916 case ObjectType::levelCrossing:
917 callDrawDescription<LevelCrossingObject>(drawingCtx, 0, 0, width, objectPtr);
918 break;
919
920 case ObjectType::trainStation:
921 callDrawDescription<TrainStationObject>(drawingCtx, 0, 0, width, objectPtr);
922 break;
923
924 case ObjectType::roadStation:
925 callDrawDescription<RoadStationObject>(drawingCtx, 0, 0, width, objectPtr);
926 break;
927
928 case ObjectType::airport:
929 callDrawDescription<AirportObject>(drawingCtx, 0, 0, width, objectPtr);
930 break;
931
932 case ObjectType::dock:
933 callDrawDescription<DockObject>(drawingCtx, 0, 0, width, objectPtr);
934 break;
935
936 case ObjectType::vehicle:
937 callDrawDescription<VehicleObject>(drawingCtx, 0, 0, width, objectPtr);
938 break;
939
940 case ObjectType::building:
941 callDrawDescription<BuildingObject>(drawingCtx, 0, 0, width, objectPtr);
942 break;
943
944 case ObjectType::competitor:
945 callDrawDescription<CompetitorObject>(drawingCtx, 0, 0, width, objectPtr);
946 break;
947
948 default:
949 // null
950 break;
951 }
952
953 drawingCtx.popRenderTarget();
954 }
955
956 static void drawDatDetails(const ObjectManager::ObjectIndexEntry& indexEntry, Window* self, Gfx::DrawingContext& drawingCtx, int16_t x, int16_t y)

Callers 1

drawFunction · 0.85

Calls 5

clipRenderTargetFunction · 0.85
RectClass · 0.85
pushRenderTargetMethod · 0.80
popRenderTargetMethod · 0.80
getTypeMethod · 0.45

Tested by

no test coverage detected