Upstream for PGE updates.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
olcPixelGameEngine/Videos/CarCrimeCity/Part2/cCell.cpp

121 lines
2.0 KiB

#include "cCell.h"
#include "cCityMap.h"
#include "olcPixelGameEngine.h"
#include <map>
cCell::cCell()
{
}
cCell::~cCell()
{
// Cells own a list of automata navigation tracks
// but this will be destroyed when the cell is deleted
}
cCell::cCell(cCityMap* map, int x, int y)
{
pMap = map;
nWorldX = x;
nWorldY = y;
nCellType = CELL_BLANK;
// Connect internal nodes
for (int i = 0; i < 49; i++)
pNaviNodes[i] = pMap->GetAutoNodeBase(x, y) + i;
// Link cell into maps node pool
if (y > 0)
{
for (int i = 0; i < 7; i++)
pNaviNodes[i] = pMap->GetAutoNodeBase(x, y - 1) + 42 + i;
}
else
{
for (int i = 0; i < 7; i++)
pNaviNodes[i] = nullptr;
}
if (x > 0)
{
// Link West side
for (int i = 0; i < 7; i++)
pNaviNodes[i * 7] = pMap->GetAutoNodeBase(x - 1, y) + 6 + i * 7;
}
else
{
for (int i = 0; i < 7; i++)
pNaviNodes[i * 7] = nullptr;
}
// South Side
if (y < pMap->GetHeight() - 1)
{
}
else
{
for (int i = 0; i < 7; i++)
pNaviNodes[42 + i] = nullptr;
}
// East Side
if (x < pMap->GetWidth() - 1)
{
}
else
{
for (int i = 0; i < 7; i++)
pNaviNodes[6 + i * 7] = nullptr;
}
// Unused Nodes
pNaviNodes[9] = nullptr;
pNaviNodes[11] = nullptr;
pNaviNodes[15] = nullptr;
pNaviNodes[19] = nullptr;
pNaviNodes[29] = nullptr;
pNaviNodes[33] = nullptr;
pNaviNodes[37] = nullptr;
pNaviNodes[39] = nullptr;
pNaviNodes[0] = nullptr;
pNaviNodes[6] = nullptr;
pNaviNodes[42] = nullptr;
pNaviNodes[48] = nullptr;
}
bool cCell::LinkAssets(std::map<std::string, olc::Sprite*> &mapTextures, std::map<std::string, olc::GFX3D::mesh*> &mapMesh, std::map<std::string, olc::GFX3D::mat4x4> &mapTransforms)
{
return false;
}
bool cCell::Update(float fElapsedTime)
{
return false;
}
bool cCell::DrawBase(olc::PixelGameEngine *pge, olc::GFX3D::PipeLine &pipe)
{
return false;
}
bool cCell::DrawAlpha(olc::PixelGameEngine *pge, olc::GFX3D::PipeLine &pipe)
{
return false;
}
bool cCell::DrawDebug(olc::PixelGameEngine *pge, olc::GFX3D::PipeLine &pipe)
{
return false;
}
void cCell::CalculateAdjacency()
{
}