15         sprintf_s(newmsg, 
sizeof newmsg, 
"GRID: %s", msg);
    33         if (
gridarray[l][m].buildzoneOrdinal != -1)
    36                 sprintf_s(msg, 
sizeof(msg), 
"HG2 released VB slot %i!", 
gridarray[l][m].buildzoneOrdinal);
    40                 sprintf_s(msg, 
sizeof(msg), 
"buildzone[%i].VB", 
gridarray[l][m].buildzoneOrdinal);
    46                         sprintf_s(msg, 
sizeof(msg), 
"buildzone[%i].RTSVB", 
gridarray[l][m].buildzoneOrdinal);
    70         for (
short t = 0; t < 64; t++)
    72                 for (
short s = 0; s < 64; s++)
    95 int grid::FindOrAddVertex(std::vector<struct D3DXVECTOR3>* unique_vertices, D3DXVECTOR3 position)
    97         for (UINT i = 0; i < unique_vertices->size(); i++)
    99                 if (fabsf(unique_vertices->at(i).x - position.x) <= FLT_EPSILON &&
   100                         fabsf(unique_vertices->at(i).y - position.y) <= FLT_EPSILON &&
   101                         fabsf(unique_vertices->at(i).z - position.z) <= FLT_EPSILON)
   104         unique_vertices->emplace_back(position);
   105         return static_cast<int>(unique_vertices->size() - 1);
   112         sprintf_s(msg, 
sizeof(msg), 
"Received SRenderGrid center at u%i v%i (%i)", datapacket.tcp.u, datapacket.tcp.v, 
cube);
   115         for (
short t = 0; t < 64; t++)
   117                 for (
short s = 0; s < 64; s++)
   127         for (
short t = 16; t < 48; t++) 
   129                 for (
short s = 16; s < 48; s++)
   142         Trace(
"  grid::ReceiveWholeGrid DONE");
   147         Trace(
"RequestWholeGrid");
   152         SClientPacket outpacket; 
   154         outpacket.f_x = 
tcp.u;
   155         outpacket.f_y = 
tcp.v;
   156         outpacket.f_z = 
cube;
   157         outpacket.f_w = 0.0f; 
   188                 Trace(
"Process calling RWG coming out of the clouds...");
   197         bool keepgoing = 
true;
   204                         sprintf_s(msg, 
sizeof(msg), 
"Process calling RWG changing gnomonic cube from %i to %i", 
oldcube, 
cube);
   215                         sprintf_s(msg, 
sizeof(msg), 
"Process calling RWG moving u%i and v%i", abs(
tcp.u - 
oldtcp.u), abs(
tcp.v - 
oldtcp.v));
   225                         SClientPacket outpacket = SClientPacket();
   230                                 sprintf_s(msg, 
sizeof(msg), 
"Shifted base on movement EAST,%i,%i (%i,%i)", 
tcp.u, 
tcp.v, 
oldtcp.u, 
oldtcp.v);
   237                                 for (t = 0; t < 63; t++) 
   240                                         if (t > 15 && t < 48) 
   244                                 for (s = 0; s < 64; s++) 
   248                                 for (s = 16; s < 48; s++) 
   254                                 sprintf_s(msg, 
sizeof(msg), 
"Now 2,%i,%i", 
oldtcp.u, 
oldtcp.v);
   260                                 outpacket.f_z = 0.0f; 
   261                                 outpacket.f_w = 3.0f; 
   269                                 sprintf_s(msg, 
sizeof(msg), 
"Shifted base on movement WEST %i,%i (%i,%i)", 
tcp.u, 
tcp.v, 
oldtcp.u, 
oldtcp.v);
   276                                 for (t = 63; t > 0; t--) 
   279                                         if (t > 16 && t < 48) 
   283                                 for (s = 0; s < 64; s++)
   287                                 for (s = 16; s < 48; s++) 
   293                                 sprintf_s(msg, 
sizeof(msg), 
"Now 3,%i,%i", 
oldtcp.u, 
oldtcp.v);
   299                                 outpacket.f_z = 0.0f; 
   300                                 outpacket.f_w = 4.0f; 
   307                                 sprintf_s(msg, 
sizeof(msg), 
"Unhandled case for tcp.u %i oldtcp.u %i", 
tcp.u, 
oldtcp.u);
   315                         SClientPacket outpacket = SClientPacket();
   319                                 sprintf_s(msg, 
sizeof(msg), 
"Shifted base on movement NORTH %i,%i (%i,%i)", 
tcp.u, 
tcp.v, 
oldtcp.u, 
oldtcp.v);
   327                                 for (t = 0; t < 64; t++)
   329                                         for (s = 63; s > 0; s--)
   332                                                 if (s > 16 && s < 48 && t > 15 && t < 48) 
   336                                 for (t = 0; t < 64; t++)
   340                                 for (t = 16; t < 48; t++) 
   346                                 sprintf_s(msg, 
sizeof(msg), 
"Now 0,%i,%i", 
oldtcp.u, 
oldtcp.v);
   352                                 outpacket.f_z = 0.0f; 
   353                                 outpacket.f_w = 1.0f; 
   360                                 sprintf_s(msg, 
sizeof(msg), 
"Shifted base on movement SOUTH,%i,%i (%i,%i)", 
tcp.u, 
tcp.v, 
oldtcp.u, 
oldtcp.v);
   368                                 for (t = 0; t < 64; t++)
   370                                         for (s = 0; s < 63; s++)
   373                                                 if (s > 15 && s < 47 && t > 15 && t < 48) 
   377                                 for (t = 0; t < 64; t++)
   381                                 for (t = 16; t < 48; t++) 
   387                                 sprintf_s(msg, 
sizeof(msg), 
"Now 1,%i,%i", 
oldtcp.u, 
oldtcp.v);
   393                                 outpacket.f_z = 0.0f; 
   394                                 outpacket.f_w = 2.0f; 
   401                                 sprintf_s(msg, 
sizeof(msg), 
"Unhandled case for tcp.v %i oldtcp.v %i", 
tcp.v, 
oldtcp.v);
   402                                 Trace(msg, Logger::Level::Warn);
   412                 Trace(
"gridproc.cpp (NAF) rebuilding terrain matrix...");
   426                 std::vector<D3DXVECTOR3> uniqueVertices;
   433                 std::vector<Spoly> polygons;
   442                         if (t < 0 || t >= 64 || s < 0 || s >= 64)
   444                                 viewscreen->
logger->
Log(
"t and/or s in drawlist[r].u/v out-of-bounds", Logger::Level::Fatal);
   463                         if (
gridarray[t][s].type == PlotType::UserAirfield)
   473                         if (t + 1 >= 64 || s + 1 >= 64)
   478                         if (
gridarray[t + 1][s].type == PlotType::DoNotRender ||
   479                                 gridarray[t + 1][s + 1].type == PlotType::DoNotRender ||
   480                                 gridarray[t][s + 1].type == PlotType::DoNotRender)
   484                         (*vtxg).tu = 0; (*vtxg).tv = 0;
   487                         if (
drawlist[r].pri_landform != 255)
   490                                 poly1.a = FindOrAddVertex(&uniqueVertices, 
gridarray[t][s].position);
   491                                 poly1.b = FindOrAddVertex(&uniqueVertices, 
gridarray[t + 1][s].position);
   492                                 poly1.c = FindOrAddVertex(&uniqueVertices, 
gridarray[t + 1][s + 1].position);
   493                                 poly1.d = FindOrAddVertex(&uniqueVertices, 
gridarray[t][s + 1].position);
   494                                 if (t == 31 && s == 31)
   495                                         poly1.color = D3DCOLOR_ARGB(0, t * 4, s * 4, 255);
   497                                         poly1.color = D3DCOLOR_ARGB(0, t * 4, s * 4, 0);
   499                                 polygons.emplace_back(poly1);
   510                         if (t > 15 && t < 47 && s > 15 && s < 47)
   512                                 const bool meld = t == 16 || t == 46 || s == 16 || s == 46;
   515                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 0;
   520                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t + 1][s].raster, 0.5f);
   521                                 (*vtxg).raster = tempcolor;
   526                                 (*vtxg).
tu = 0; (*vtxg).tv = 0.5f;
   531                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t][s + 1].raster, 0.5f);
   532                                 (*vtxg).raster = tempcolor;
   538                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 0;
   543                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t + 1][s].raster, 0.5f);
   544                                 (*vtxg).raster = tempcolor;
   549                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 0.5f;
   554                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   555                                 (*vtxg).raster = tempcolor;
   559                                 (*vtxg).specular = tempcolor;
   563                                 (*vtxg).
tu = 0; (*vtxg).tv = 0.5f;
   568                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t][s + 1].raster, 0.5f);
   569                                 (*vtxg).raster = tempcolor;
   575                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 0;
   580                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t + 1][s].raster, 0.5f);
   581                                 (*vtxg).raster = tempcolor;
   586                                 (*vtxg).
tu = 1; (*vtxg).tv = 0;
   593                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 0.5f;
   598                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   599                                 (*vtxg).raster = tempcolor;
   603                                 (*vtxg).specular = tempcolor;
   607                                 (*vtxg).
tu = 1; (*vtxg).tv = 0;
   614                                 (*vtxg).
tu = 1; (*vtxg).tv = 0.5f;
   619                                 D3DXColorLerp(&tempcolor, &
gridarray[t + 1][s].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   620                                 (*vtxg).raster = tempcolor;
   625                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 0.5f;
   630                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   631                                 (*vtxg).raster = tempcolor;
   635                                 (*vtxg).specular = tempcolor;
   640                                 (*vtxg).
tu = 0; (*vtxg).tv = 0.5f;
   645                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t][s + 1].raster, 0.5f);
   646                                 (*vtxg).raster = tempcolor;
   651                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 0.5f;
   656                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   657                                 (*vtxg).raster = tempcolor;
   661                                 (*vtxg).specular = tempcolor;
   665                                 (*vtxg).
tu = 0; (*vtxg).tv = 1;
   673                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 0.5f;
   678                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   679                                 (*vtxg).raster = tempcolor;
   683                                 (*vtxg).specular = tempcolor;
   687                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 1;
   692                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s + 1].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   693                                 (*vtxg).raster = tempcolor;
   698                                 (*vtxg).
tu = 0; (*vtxg).tv = 1;
   706                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 0.5f;
   711                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   712                                 (*vtxg).raster = tempcolor;
   716                                 (*vtxg).specular = tempcolor;
   720                                 (*vtxg).
tu = 1; (*vtxg).tv = 0.5f;
   725                                 D3DXColorLerp(&tempcolor, &
gridarray[t + 1][s].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   726                                 (*vtxg).raster = tempcolor;
   731                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 1;
   736                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s + 1].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   737                                 (*vtxg).raster = tempcolor;
   743                                 (*vtxg).
tu = 1; (*vtxg).tv = 0.5f;
   748                                 D3DXColorLerp(&tempcolor, &
gridarray[t + 1][s].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   749                                 (*vtxg).raster = tempcolor;
   754                                 (*vtxg).
tu = 1; (*vtxg).tv = 1;
   761                                 (*vtxg).
tu = 0.5f; (*vtxg).tv = 1;
   766                                 D3DXColorLerp(&tempcolor, &
gridarray[t][s + 1].raster, &
gridarray[t + 1][s + 1].raster, 0.5f);
   767                                 (*vtxg).raster = tempcolor;
   777                                 if (
gridarray[t][s].buildzoneOrdinal != -1)
   780                                         sprintf_s(msg, 
sizeof(msg), 
"buildzone[%i].VB", 
gridarray[t][s].buildzoneOrdinal);
   786                                                 sprintf_s(msg, 
sizeof(msg), 
"buildzone[%i].RTSVB", 
gridarray[t][s].buildzoneOrdinal);
   790                                         sprintf_s(msg, 
sizeof(msg), 
"NiPD released VB slot %i!", 
gridarray[t][s].buildzoneOrdinal);
   797                                 (*vtxg).tu = 1; (*vtxg).tv = 0;
   804                                 (*vtxg).
tu = 0; (*vtxg).tv = 1;
   812                                 (*vtxg).
tu = 1; (*vtxg).tv = 0;
   819                                 (*vtxg).
tu = 1; (*vtxg).tv = 1;
   826                                 (*vtxg).
tu = 0; (*vtxg).tv = 1;
   834                 sprintf_s(msg, 
sizeof(msg), 
"Total vertices in terrain vertex buffer: %i/%i", n, 
visiblevertC);
   841                 sprintf_s(msg, 
sizeof(msg), 
"%04i%04i.wld", 
tcp.u + 3038, 
tcp.v + 2038);
   843                 _sopen_s(&wldfile, msg, _O_WRONLY | _O_CREAT | _O_TRUNC | O_TEXT, _SH_DENYNO, _S_IWRITE);
   844                 sprintf_s(msg, 
sizeof(msg), 
" 2.23\n %i ,\n", uniqueVertices.size());
   845                 _write(wldfile, msg, strlen(msg));
   846                 float largestX = -FLT_MAX, largestY = -FLT_MAX, largestZ = -FLT_MAX;
   847                 float smallestX = FLT_MAX, smallestY = FLT_MAX, smallestZ = FLT_MAX;
   848                 for (
int i = 0; i < uniqueVertices.size(); i++)
   850                         if (uniqueVertices.at(i).x > largestX)
   851                                 largestX = uniqueVertices.at(i).x;
   852                         if (uniqueVertices.at(i).y > largestY)
   853                                 largestY = uniqueVertices.at(i).y;
   854                         if (uniqueVertices.at(i).z > largestZ)
   855                                 largestZ = uniqueVertices.at(i).z;
   856                         if (uniqueVertices.at(i).x < smallestX)
   857                                 smallestX = uniqueVertices.at(i).x;
   858                         if (uniqueVertices.at(i).y < smallestY)
   859                                 smallestY = uniqueVertices.at(i).y;
   860                         if (uniqueVertices.at(i).z < smallestZ)
   861                                 smallestZ = uniqueVertices.at(i).z;
   863                 float avgX = (largestX - smallestX) * 0.5f + smallestX;
   864                 float avgY = (largestY - smallestY) * 0.5f + smallestY;
   865                 float avgZ = (largestZ - smallestZ) * 0.5f + smallestZ;
   866                 for (
int i = 0; i < uniqueVertices.size(); i++)
   868                         sprintf_s(msg, 
sizeof(msg), 
"%+f ,%+f ,%+f ,\n", uniqueVertices.at(i).x - avgX, uniqueVertices.at(i).y - avgY, uniqueVertices.at(i).z - avgZ);
   869                         _write(wldfile, msg, strlen(msg));
   870                 }               sprintf_s(msg, 
sizeof(msg), 
" %i ,\n 0.125000 ,0.500000 ,0 ,0 ,1 ,\n", polygons.size());
   871                 _write(wldfile, msg, strlen(msg));
   872                 for (
int i = 0; i < polygons.size(); i++)
   874                         sprintf_s(msg, 
sizeof(msg), 
" 4 , %i , %i , %i , %i , %x ,0.347995 ,0.248828 ,0.027999 ,0.248828 ,0.027999 ,0.246328 ,0.347995 ,0.246328 ,-1.000000 , 0 ,\n",
   875                                 polygons.at(i).a, polygons.at(i).b, polygons.at(i).c, polygons.at(i).d, polygons.at(i).color);
   876                         _write(wldfile, msg, strlen(msg));
   878                 sprintf_s(msg, 
sizeof(msg), 
"unused\nunused\nunused\n");
   879                 _write(wldfile, msg, strlen(msg));
   906                 Trace(
"gridproc.cpp (NAF) finished!");
   930                 for (t = 0; t < 64; t++)
   932                         for (s = 0; s < 64; s++)
   943                                 if (t > 0 && t < 63 && s > 0 && s < 63)
   950                                         tempcolor.r /= 9.0f; tempcolor.g /= 9.0f; tempcolor.b /= 9.0f;
   951                                         (*vtxh).specular = tempcolor;
   957                                 (*vtxh++).diffuse = 
gridarray[t][s].clouddif;
   965                 Trace(
"gridproc.cpp (NAC) finished!");
   971                 Trace(
"gridproc.cpp (NAB) started...!");
   973                 bool addedBuilding = 
false;
   974                 for (t = 16; t < 47; t++) 
   976                         for (s = 16; s < 47; s++)
   979                                 if (
gridarray[t][s].type > PlotType::NotZoned &&
   980                                         gridarray[t][s].type < PlotType::PlotTypeEnum &&
   991                                                         addedBuilding = 
true;
   995                                                         sprintf_s(msg, 
sizeof msg, 
"We have a building on the grid with a type %i (u%i v%i) but no zone or layout information yet ... waiting!", 
gridarray[t][s].type, t + 
tcp.u, s + 
tcp.v);
  1003                                                 addedBuilding = 
true;
  1013                         Trace(
"Added a building, leaving checkconstruct true!");
  1017                 Trace(
"gridproc.cpp (NAB) finished!");
  1024 #define fracC 32 // must be power of 2, not function of 2  1025         if (ground.maketrees && keepgoing)
  1029                 for (t = 29; t < 34; t++)
  1031                         for (s = 29; s < 34; s++)
  1033                                 if ((powf(31.0f - (
float)t, 2.0f) + powf(31.0f - (
float)s, 2.0f)) <= 4.0f)
  1035                                         unsigned int fudgefactor = ((long)(
tcp.u + t - 31) + 2038L) + ((
long)(
tcp.v + s - 31) + 2038L) * 8152L;
  1039                                                 float density = 1.0f;
  1040                                                 float rough = flux, halfr = rough * 0.5f;
  1041                                                 float fractal[fracC + 1][fracC + 1];
  1042                                                 fractal[0][0] = fractal[fracC][0] = fractal[fracC][fracC] = fractal[0][fracC] = 0.0f;
  1043                                                 short iterate = fracC;
  1044                                                 short p, q, midp, midq;
  1045                                                 float peak = -999.0f, lull = 999.0f;
  1048                                                 while (iterate != 1)
  1050                                                         for (p = 0; p < fracC; p += iterate)
  1052                                                                 midp = p + iterate / 2;
  1053                                                                 for (q = 0; q < fracC; q += iterate)
  1055                                                                         midq = q + iterate / 2;
  1058                                                                         fractal[midp][midq] = (fractal[p][q] + fractal[p + iterate][q + iterate] + fractal[p + iterate][q] + fractal[p][q + iterate]) * 0.25f + f_temp;
  1059                                                                         if (fractal[midp][midq] > peak)
  1060                                                                                 peak = fractal[midp][midq];
  1061                                                                         if (fractal[midp][midq] < lull)
  1062                                                                                 lull = fractal[midp][midq];
  1065                                                                         fractal[midp][q] = (fractal[p][q] + fractal[p + iterate][q]) * 0.5f + f_temp;
  1066                                                                         if (fractal[midp][q] > peak)
  1067                                                                                 peak = fractal[midp][q];
  1068                                                                         if (fractal[midp][q] < lull)
  1069                                                                                 lull = fractal[midp][q];
  1071                                                                         fractal[midp][q + iterate] = (fractal[p][q + iterate] + fractal[p + iterate][q + iterate]) * 0.5f + f_temp;
  1072                                                                         if (fractal[midp][q + iterate] > peak)
  1073                                                                                 peak = fractal[midp][q + iterate];
  1074                                                                         if (fractal[midp][q + iterate] < lull)
  1075                                                                                 lull = fractal[midp][q + iterate];
  1077                                                                         fractal[p][midq] = (fractal[p][q] + fractal[p][q + iterate]) * 0.5f + f_temp;
  1078                                                                         if (fractal[p][midq] > peak)
  1079                                                                                 peak = fractal[p][midq];
  1080                                                                         if (fractal[p][midq] < lull)
  1081                                                                                 lull = fractal[p][midq];
  1083                                                                         fractal[p + iterate][midq] = (fractal[p + iterate][q] + fractal[p + iterate][q + iterate]) * 0.5f + f_temp;
  1084                                                                         if (fractal[p + iterate][midq] > peak)
  1085                                                                                 peak = fractal[p + iterate][midq];
  1086                                                                         if (fractal[p + iterate][midq] < lull)
  1087                                                                                 lull = fractal[p + iterate][midq];
  1106                                                 for (p = 0; p < fracC; p++)
  1108                                                         for (q = 0; q < fracC; q++)
  1110                                                                 float edgep, edgeq, edge;
  1111                                                                 if (p < (fracC / 2))
  1112                                                                         edgep = (
float)p / (float)(fracC / 4);
  1114                                                                         edgep = (float)(fracC - p) / (float)(fracC / 4);
  1115                                                                 if (q < (fracC / 2))
  1116                                                                         edgeq = (
float)q / (float)(fracC / 4);
  1118                                                                         edgeq = (float)(fracC - q) / (float)(fracC / 4);
  1126                                                                 short shorttest = (short)(fractal[p][q] * edge * 255.0f);
  1132                                                                         float adjx = 
RandomFloat() * 1.0f / (float)(fracC / 2) * 0.75f - 1.0f / (float)(fracC / 2) * 0.375f;
  1133                                                                         float adjy = 
RandomFloat() * 1.0f / (float)(fracC / 2) * 0.75f - 1.0f / (float)(fracC / 2) * 0.375f;
  1135                                                                         if (p < (fracC / 2) && q < (fracC / 2))
  1141                                                                         else if (p >= (fracC / 2) && q < (fracC / 2))
  1147                                                                         else if (p < (fracC / 2) && q >= (fracC / 2))
  1153                                                                         else if (p >= (fracC / 2) && q >= (fracC / 2))
  1155                                                                                 result = (
insidearray[t + 1][s][1] - 
insidearray[t][s][2]) * ((
float)(p - fracC / 2) / (
float)(fracC / 2) + adjx);
  1156                                                                                 result += (
insidearray[t][s + 1][0] - 
insidearray[t][s][2]) * ((
float)(q - fracC / 2) / (
float)(fracC / 2) + adjy);
  1160                                                                         treelist[treesC] = result;
  1162                                                                         if (treesC >= 16383)
  1174                 sprintf_s(msg, 
sizeof(msg), 
"Trees: %i", treesC);
  1176                 ground.maketrees = 
false;
  1187                 gridarray[t - 1][s].pri_landform == 255 || 
gridarray[t][s - 1].pri_landform == 255 || 
  1193                 gridarray[t][s].type == PlotType::UserAirfield || 
gridarray[t - 1][s].type == PlotType::UserAirfield || 
gridarray[t][s - 1].type == PlotType::UserAirfield ||
  1196                 gridarray[t][s].type == PlotType::Arcridge || 
gridarray[t - 1][s].type == PlotType::Arcridge || 
gridarray[t][s - 1].type == PlotType::Arcridge)
 
void CalculateCubeAndTcp()
LPDIRECT3DVERTEXBUFFER9 m_avCloudGrid
void ReceiveWholeGrid(SRenderGrid datapacket)
D3DXVECTOR3 D3DXVec3Qerp(D3DXVECTOR3 *vel0, D3DXVECTOR3 *vel1, D3DXVECTOR3 *vel2, float t) const
void CalculateInsideArray(short t, short s) const
VECTOR2SHORT CalculateWrap(short u, short v, char cube, char *rotate) const
void SendToServer(void *pData, DWORD dwSize, bool bGuaranteed, PacketOrdering order=ORDERING_NONE) const
VECTOR2SHORT CalculateCGC(D3DXVECTOR3 position, char cube) const
s_network_objects playerships[MAX_SCAN]
LPDIRECT3DVERTEXBUFFER9 m_avLocalGrid
unsigned char ter_landform
unsigned char pri_landform
bool markerBeaconsPowered
unsigned char sec_landform
unsigned char pri_transition
unsigned char sec_transition
GridProperties gridProperties
grid(Viewscreen *ptrGame)
BATCHINDEX2 drawlist[drawlistC]
unsigned char sec_landform
BUILDZONE buildzone[buildingVBC]
unsigned char sec_transition
const D3DXVECTOR3 centerC
D3DXVECTOR3 insidearray[63][63][3]
LOCALGRID2 CalculateSRV(short t, short s, VECTOR2SHORT tcp, char cube, SRenderVertex sourcedata)
void Log(const char *msg, Level level=Info, int errorCode=0)
unsigned char ter_landform
unsigned char runwayLights
unsigned char pri_landform
char CalculateCube(D3DXVECTOR3 position) const
HRESULT Building(short t, short s) const
LOCALGRID2 gridarray[64][64]
void Trace(const char *msg, Logger::Level severity=Logger::Level::Info) const
unsigned char pri_transition
static bool CheckLayout(unsigned i, LOCALGRID2 localgrid2)
void UpdateTrackedResource(const char *name, int status)
void AddToCallStack(const char *msg)