Ejemplo n.º 1
0
// -----------------------------------------------------------------
// Name : changeTerrainType
// -----------------------------------------------------------------
void Map::changeTerrainType(CoordsMap pos, u8 uType, Server * pServer)
{
    MapTile * pTile = getTileAt(pos);
    pTile->m_uTerrainType = uType;
    if (pServer != NULL)
    {
        NetworkData msg(NETWORKMSG_CHANGE_TERRAIN);
        msg.addLong(pos.x);
        msg.addLong(pos.y);
        msg.addLong(uType);
        pServer->sendMessageToAllClients(&msg);
    }
    else
    {
        pTile->resetTexture(pTile->getDisplay());
        for (int i = -1; i <= 1; i++)
        {
            for (int j = -1; j <= 1; j++)
            {
                int x = pos.x + i;
                int y = pos.y + j;
                if (x < 0 || y < 0 || x >= m_iWidth || y >= m_iHeight)
                    continue;
                setTileMask(x, y);
            }
        }
    }
}