Reading buildings in the castles - still needs more testing and improvents.

This commit is contained in:
Michał W. Urbańczyk
2008-01-09 19:59:23 +00:00
parent b334dbd79d
commit 9530fb42c2
3 changed files with 237 additions and 0 deletions
+214
View File
@@ -1586,6 +1586,220 @@ void CAmbarCendamo::deh3m()
delete nobj;
nobj = nt;
if(spec->unusualBuildins)
{
nt->builtBuildings.insert(10);
for(int ir = 0; ir < 6; ir++)
{
for(int bs=0;bs<8;bs++)
{
if(ir==0)
{
if (bs<3)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(11+bs);
}
}
else if (bs<6)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(7+bs-3);
}
}
else if(bs==6)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(5);
}
}
else// if(bs==7)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(16);
}
}
} //if(ir==0)
else if(ir==1)
{
if(bs<2)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(14+bs);
}
}
else if (bs==2)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
std::cout<<"Hej, sprawdz co to za budynek w miescie " <<nt<<std::endl;
}
}//bs==3 - nie wiadomo co to, 4 w 2. bajcie
else
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(0+bs-3);
}
}
}//else if(ir==1)
else if(ir==2)
{
if(bs==0)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(6); //stocznia
}
}
else if(bs==1)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(26); //graal
}
}
else if(bs==2)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(17); //latarnia
}
}
else if(bs==3)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(22); //bractwo miecza
}
}
else if(bs==4)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(21); //stajnia
}
}
else if(bs==5)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
std::cout<<"Hej, sprawdz co to za budynek2 w miescie " <<nt<<std::endl;
}
}
else if(bs==6)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(30); //gen1
}
}
else if(bs==7)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(37); //gen1+
}
}
}//else if(ir==2)
else if (ir==3)
{
if(bs==0)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
std::cout<<"Hej, sprawdz co to za budynek3 w miescie " <<nt<<std::endl;
}
continue;
}
else if(bs<3)
{
if(bs==1)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(31); //gen2
}
}
else
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(38); //gen2+
}
}
}
else if (bs==3)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
std::cout<<"Hej, sprawdz co to za budynek4 w miescie " <<nt<<std::endl;
}
continue;
}
else
{
if(bs%2) //nieulepszone
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert((int)(39+(bs/2)-2));
}
}
else
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(32+(bs/2)-2);
}
}
}
}//else if (ir==3)
else if (ir==4)
{
if(bs%2) //ulepszone
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(40+(bs/2));
}
}
else
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert((int)(34+(bs/2)));
}
}
}//else if (ir==4)
else if (ir==5)
{
if(bs==0)
{
if(spec->buildingSettings[ir] & (1<<bs))
{
nt->builtBuildings.insert(43); //gen7+
}
}
}//else if (ir==5)
}
}
}
else
{
if(spec->hasFort)
{
nt->builtBuildings.insert(7);
}
}
nt->setOwner(spec->player);
nt->town = &CGI->townh->towns[nt->defInfo->subid];
nt->builded = 0;