MCPcopy Create free account
hub / github.com/BohemiaInteractive/CWR / ExportOperMaps

Function ExportOperMaps

engine/Poseidon/UI/Map/UIMapExport.cpp:1318–1374  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1316#define XRGB(r, g, b) RGB(b, g, r)
1317
1318void ExportOperMaps(RString prefix)
1319{
1320#if _ENABLE_CHEATS
1321 GDebugger.PauseCheckingAlive();
1322
1323 COLORREF palette[] = {
1324 XRGB(255, 255, 255), // OITNormal
1325 XRGB(192, 192, 255), // OITAvoidBush
1326 XRGB(192, 255, 192), // OITAvoidTree
1327 XRGB(255, 192, 192), // OITAvoid
1328 XRGB(0, 255, 255), // OITWater
1329 XRGB(255, 0, 255), // OITSpaceRoad
1330 XRGB(255, 255, 0), // OITRoad
1331 XRGB(0, 0, 255), // OITSpaceBush
1332 XRGB(0, 255, 0), // OITSpaceTree
1333 XRGB(255, 0, 0), // OITSpace
1334 XRGB(255, 255, 0) // OITRoadForced
1335 };
1336
1337 const int size = LandRange * OperItemRange;
1338
1339 char* items = new char[size * size];
1340 char* itemsSoldier = new char[size * size];
1341
1342 int oz = 0;
1343 for (int zz = 0; zz < LandRange; zz++)
1344 {
1345 int ox = 0;
1346 for (int xx = 0; xx < LandRange; xx++)
1347 {
1348 OperField field(xx, zz, MASK_AVOID_OBJECTS);
1349 for (int z = 0; z < OperItemRange; z++)
1350 for (int x = 0; x < OperItemRange; x++)
1351 {
1352 OperItem& item = field._items[z][x];
1353 int index = size * (size - 1 - oz - z) + ox + x;
1354 items[index] = item._type;
1355 itemsSoldier[index] = item._typeSoldier;
1356 }
1357 ox += OperItemRange;
1358 }
1359 oz += OperItemRange;
1360 }
1361
1362 RString name;
1363 name = prefix + RString("Veh.tga");
1364 SavePAC256(name, size, size, items, palette, sizeof(palette) / sizeof(COLORREF));
1365
1366 name = prefix + RString("Sol.tga");
1367 SavePAC256(name, size, size, itemsSoldier, palette, sizeof(palette) / sizeof(COLORREF));
1368
1369 delete[] items;
1370 delete[] itemsSoldier;
1371
1372 GDebugger.ResumeCheckingAlive();
1373#endif
1374}
1375

Callers 1

SimulateMethod · 0.85

Calls 4

SavePAC256Function · 0.85
PauseCheckingAliveMethod · 0.80
ResumeCheckingAliveMethod · 0.80
RStringClass · 0.50

Tested by

no test coverage detected