2
0
mateuszb 18 жил өмнө
parent
commit
ad68aa3dea
2 өөрчлөгдсөн 20 нэмэгдсэн , 10 устгасан
  1. 17 7
      CAmbarCendamo.cpp
  2. 3 3
      map.cpp

+ 17 - 7
CAmbarCendamo.cpp

@@ -174,7 +174,7 @@ void CAmbarCendamo::deh3m()
 			{
 				map.vicConDetails = new VicCon0();
 				((VicCon0*)map.vicConDetails)->ArtifactID = bufor[i+2];
-				nr=2;
+				nr=(map.version==RoE ? 1 : 2);
 				break;
 			}
 		case gatherTroop:
@@ -183,8 +183,8 @@ void CAmbarCendamo::deh3m()
 				int temp1 = bufor[i+2];
 				int temp2 = bufor[i+3];
 				((VicCon1*)map.vicConDetails)->monsterID = bufor[i+2];
-				((VicCon1*)map.vicConDetails)->neededQuantity=readNormalNr(i+4);
-				nr=6;
+				((VicCon1*)map.vicConDetails)->neededQuantity=readNormalNr(i+(map.version==RoE ? 3 : 4));
+				nr=(map.version==RoE ? 5 : 6);
 				break;
 			}
 		case gatherResource:
@@ -1256,10 +1256,20 @@ void CAmbarCendamo::deh3m()
 		case EDefType::TOWN_DEF:
 			{
 				CCastleObjInfo * spec = new CCastleObjInfo;
-				spec->bytes[0] = bufor[i]; ++i;
-				spec->bytes[1] = bufor[i]; ++i;
-				spec->bytes[2] = bufor[i]; ++i;
-				spec->bytes[3] = bufor[i]; ++i;
+				if(map.version!=RoE)
+				{
+					spec->bytes[0] = bufor[i]; ++i;
+					spec->bytes[1] = bufor[i]; ++i;
+					spec->bytes[2] = bufor[i]; ++i;
+					spec->bytes[3] = bufor[i]; ++i;
+				}
+				else
+				{
+					spec->bytes[0] = 0;
+					spec->bytes[1] = 0;
+					spec->bytes[2] = 0;
+					spec->bytes[3] = 0;
+				}
 				spec->player = bufor[i]; ++i;
 
 				bool hasName = bufor[i]; ++i;

+ 3 - 3
map.cpp

@@ -130,7 +130,7 @@ CMapHeader::CMapHeader(unsigned char *map)
 			{
 				this->vicConDetails = new VicCon0();
 				((VicCon0*)this->vicConDetails)->ArtifactID = map[i+2];
-				nr=2;
+				nr=(version==RoE ? 1 : 2);
 				break;
 			}
 		case gatherTroop:
@@ -139,8 +139,8 @@ CMapHeader::CMapHeader(unsigned char *map)
 				int temp1 = map[i+2];
 				int temp2 = map[i+3];
 				((VicCon1*)this->vicConDetails)->monsterID = map[i+2];
-				((VicCon1*)this->vicConDetails)->neededQuantity=readNormalNr(map, i+4);
-				nr=6;
+				((VicCon1*)this->vicConDetails)->neededQuantity=readNormalNr(map, i+(version==RoE ? 3 : 4));
+				nr=(version==RoE ? 5 : 6);
 				break;
 			}
 		case gatherResource: