1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-13 19:54:17 +02:00

Fixed some small one-time memory leaks.

This commit is contained in:
Frank Zago
2009-06-06 22:36:15 +00:00
parent b1c9b17327
commit 78d62481e4

View File

@@ -215,8 +215,6 @@ void CMapHandler::roadsRiverTerrainInit()
ttiles[i][j].resize(CGI->mh->map->twoLevel+1,0);
}
for (int i=0; i<map->width; i++) //jest po szeroko�ci
{
for (int j=0; j<map->height;j++) //po wysoko�ci
@@ -228,30 +226,33 @@ void CMapHandler::roadsRiverTerrainInit()
pom.tileInfo = &(map->terrain[i][j][k]);
if(pom.tileInfo->malle)
{
int cDir;
bool rotV, rotH;
int roadpom = pom.tileInfo->malle-1,
impom = pom.tileInfo->roadDir;
SDL_Surface *pom1 = roadDefs[roadpom]->ourImages[impom].bitmap;
ttiles[i][j][k].roadbitmap.push_back(pom1);
cDir = pom.tileInfo->roadDir;
SDL_Surface *bitmap = roadDefs[roadpom]->ourImages[impom].bitmap;
rotH = (pom.tileInfo->siodmyTajemniczyBajt >> 5) & 1;
rotV = (pom.tileInfo->siodmyTajemniczyBajt >> 4) & 1;
if(rotH)
{
ttiles[i][j][k].roadbitmap[0] = CSDL_Ext::hFlip(ttiles[i][j][k].roadbitmap[0]);
}
if(rotV)
{
ttiles[i][j][k].roadbitmap[0] = CSDL_Ext::rotate01(ttiles[i][j][k].roadbitmap[0]);
}
if(rotH || rotV)
{
ttiles[i][j][k].roadbitmap[0] = CSDL_Ext::alphaTransform(ttiles[i][j][k].roadbitmap[0]);
if(rotH)
bitmap = CSDL_Ext::hFlip(bitmap);
if(rotV)
{
SDL_Surface *bitmap2 = CSDL_Ext::rotate01(bitmap);
if (rotH)
// bitmap is already a duplicated surface
SDL_FreeSurface(bitmap);
bitmap = bitmap2;
}
CSDL_Ext::alphaTransform(bitmap);
}
ttiles[i][j][k].roadbitmap.push_back(bitmap);
}
}
}
@@ -265,26 +266,31 @@ void CMapHandler::roadsRiverTerrainInit()
{
if(map->terrain[i][j][k].nuine)
{
int cDir;
bool rotH, rotV;
ttiles[i][j][k].rivbitmap.push_back(staticRiverDefs[map->terrain[i][j][k].nuine-1]->ourImages[map->terrain[i][j][k].rivDir].bitmap);
cDir = map->terrain[i][j][k].rivDir;
SDL_Surface *bitmap = staticRiverDefs[map->terrain[i][j][k].nuine-1]->ourImages[map->terrain[i][j][k].rivDir].bitmap;
rotH = (map->terrain[i][j][k].siodmyTajemniczyBajt >> 3) & 1;
rotV = (map->terrain[i][j][k].siodmyTajemniczyBajt >> 2) & 1;
if(rotH)
{
ttiles[i][j][k].rivbitmap[0] = CSDL_Ext::hFlip(ttiles[i][j][k].rivbitmap[0]);
}
if(rotV)
{
ttiles[i][j][k].rivbitmap[0] = CSDL_Ext::rotate01(ttiles[i][j][k].rivbitmap[0]);
}
if(rotH || rotV)
{
ttiles[i][j][k].rivbitmap[0] = CSDL_Ext::alphaTransform(ttiles[i][j][k].rivbitmap[0]);
if(rotH)
bitmap = CSDL_Ext::hFlip(bitmap);
if(rotV)
{
SDL_Surface *bitmap2 = CSDL_Ext::rotate01(bitmap);
if (rotH)
// bitmap is already a duplicated surface
SDL_FreeSurface(bitmap);
bitmap = bitmap2;
}
CSDL_Ext::alphaTransform(bitmap);
}
ttiles[i][j][k].rivbitmap.push_back(bitmap);
}
}
}