|
@@ -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;
|