2
0
DjWarmonger 13 жил өмнө
parent
commit
17a513c01b

+ 3 - 3
lib/CGameState.cpp

@@ -328,8 +328,9 @@ DLL_LINKAGE std::string MetaString::buildList () const
 
 void  MetaString::addCreReplacement(TCreature id, TQuantity count) //adds sing or plural name;
 {
-	assert(count);
-	if (count == 1)
+	if (!count)
+		addReplacement (CRE_PL_NAMES, id); //no creatures - just empty name (eg. defeat Angels)
+	else if (count == 1)
 		addReplacement (CRE_SING_NAMES, id);
 	else
 		addReplacement (CRE_PL_NAMES, id);
@@ -337,7 +338,6 @@ void  MetaString::addCreReplacement(TCreature id, TQuantity count) //adds sing o
 
 void MetaString::addReplacement(const CStackBasicDescriptor &stack)
 {
-	assert(stack.count); //valid count
 	assert(stack.type); //valid type
 	addCreReplacement(stack.type->idNumber, stack.count);
 }

+ 9 - 4
lib/CObjectHandler.cpp

@@ -4404,7 +4404,7 @@ void CGSeerHut::setObjToKill()
 	if (missionType == MISSION_KILL_CREATURE)
 	{
 		stackToKill = getCreatureToKill(false)->getStack(0); //FIXME: stacks tend to dissapear (desync?) on server :?
-		assert (stackToKill.count > 0); //seemingly creatures are uninitialized
+		stackToKill.count = 0; //no count in info window
 		stackDirection = checkDirection();
 	}
 	else if (missionType == MISSION_KILL_HERO)
@@ -4445,8 +4445,13 @@ const std::string & CGSeerHut::getHoverText() const
 	switch (ID)
 	{
 			case 83:
-				hoverName = VLC->generaltexth->allTexts[347];
-				boost::algorithm::replace_first(hoverName,"%s", seerName);
+				if (progress)
+				{
+					hoverName = VLC->generaltexth->allTexts[347];
+					boost::algorithm::replace_first(hoverName,"%s", seerName);
+				}
+				else //just seer hut
+					hoverName = VLC->generaltexth->names[ID];
 				break;
 			case 215:
 				hoverName = VLC->generaltexth->names[ID];
@@ -4522,7 +4527,7 @@ void CGSeerHut::setPropertyDer (ui8 what, ui32 val)
 }
 void CGSeerHut::newTurn() const
 {
-	if (lastDay >= 0 && lastDay <= cb->getDate(0)) //time is up
+	if (lastDay >= 0 && lastDay < cb->getDate(0)) //time is up
 	{
 		cb->setObjProperty (id, 11, 0);
 		cb->setObjProperty (id, 10, 0);