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

Method LogMap

engine/Poseidon/Game/OperMap.cpp:1158–1260  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1156}
1157
1158void OperMap::LogMap(int xMin, int xMax, int zMin, int zMax, int xs, int xe, int zs, int ze, bool locks)
1159{
1160#if _ENABLE_CHEATS
1161 int xsize = (xMax - xMin + 1) * OperItemRange;
1162 int zsize = (zMax - zMin + 1) * OperItemRange;
1163 int i, j;
1164
1165 LOG_DEBUG(Script, "Fields: {}..{}, {}..{}", xMax, xMin, zMin, zMax);
1166
1167 Temp<Temp<char>> map(zsize);
1168 for (i = 0; i < zsize; i++)
1169 map[i].Realloc(xsize * 2 + 1), memset(map[i], ' ', xsize * 2);
1170
1171 for (i = zMin * OperItemRange; i < (zMax + 1) * OperItemRange; i++)
1172 {
1173 for (j = xMin * OperItemRange; j < (xMax + 1) * OperItemRange; j++)
1174 {
1175 if (!InRange(toIntFloor(i / OperItemRange), toIntFloor(j / OperItemRange)))
1176 continue;
1177
1178 OperItem* item = nullptr;
1179 OperField* fld = nullptr;
1180 int x0 = j / OperItemRange;
1181 int z0 = i / OperItemRange;
1182 for (int k = 0; k < _fields.Size(); k++)
1183 if (_fields[k]->_x == x0 && _fields[k]->_z == z0)
1184 {
1185 fld = _fields[k];
1186 x0 = j - x0 * OperItemRange;
1187 z0 = i - z0 * OperItemRange;
1188 item = &fld->_items[z0][x0];
1189 }
1190
1191 PoseidonAssert(fld && item);
1192
1193 char ch = '?';
1194 if (locks && GLOB_LAND->LockingCache()->IsLocked(j, i, false))
1195 ch = 'L';
1196 else if (!item)
1197 ch = ' ';
1198 else
1199 {
1200 switch (item->_typeSoldier)
1201 {
1202 case OITNormal:
1203 ch = '.';
1204 break;
1205 case OITAvoidBush:
1206 ch = 'b';
1207 break;
1208 case OITAvoidTree:
1209 ch = 't';
1210 break;
1211 case OITAvoid:
1212 ch = 'x';
1213 break;
1214 case OITWater:
1215 ch = 'W';

Callers 2

FindNearestEmptyMethod · 0.80
CreateNoRoadPathMethod · 0.80

Calls 4

LockingCacheMethod · 0.80
ReallocMethod · 0.45
SizeMethod · 0.45
IsLockedMethod · 0.45

Tested by

no test coverage detected