mirror of
https://github.com/vcmi/vcmi.git
synced 2026-06-19 22:57:37 +02:00
Reading buildings in the castles - still needs more testing and improvents.
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user