AlexVinS 4 years ago
parent
commit
a59e12ca5f

+ 4 - 4
AI/BattleAI/BattleAI.cpp

@@ -18,7 +18,7 @@
 #include "../../lib/spells/CSpellHandler.h"
 #include "../../lib/spells/ISpellMechanics.h"
 #include "../../lib/CStack.h" // TODO: remove
-                              // Eventually only IBattleInfoCallback and battle::Unit should be used, 
+                              // Eventually only IBattleInfoCallback and battle::Unit should be used,
                               // CUnitState should be private and CStack should be removed completely
 
 #define LOGL(text) print(text)
@@ -43,14 +43,14 @@ SpellTypes spellType(const CSpell * spell)
 std::vector<BattleHex> CBattleAI::getBrokenWallMoatHexes() const
 {
 	std::vector<BattleHex> result;
-	
+
 	for(int wallPart = EWallPart::BOTTOM_WALL; wallPart < EWallPart::UPPER_WALL; wallPart++)
 	{
 		auto state = cb->battleGetWallState(wallPart);
 
 		if(state != EWallState::DESTROYED)
 			continue;
-		
+
 		auto wallHex = cb->wallPartToBattleHex((EWallPart::EWallPart)wallPart);
 		auto moatHex = wallHex.cloneInDirection(BattleHex::LEFT);
 
@@ -311,7 +311,7 @@ BattleAction CBattleAI::useCatapult(const CStack * stack)
 	if(cb->battleGetGateState() == EGateState::CLOSED)
 	{
 		targetHex = cb->wallPartToBattleHex(EWallPart::GATE);
-}
+	}
 	else
 	{
 		EWallPart::EWallPart wallParts[] = {

+ 4 - 2
client/widgets/CComponent.cpp

@@ -10,6 +10,9 @@
 #include "StdInc.h"
 #include "CComponent.h"
 
+#include <vcmi/spells/Service.h>
+#include <vcmi/spells/Spell.h>
+
 #include "../gui/CGuiHandler.h"
 #include "../gui/CCursorHandler.h"
 
@@ -23,7 +26,6 @@
 #include "../../lib/CTownHandler.h"
 #include "../../lib/CCreatureHandler.h"
 #include "../../lib/CSkillHandler.h"
-#include "../../lib/spells/CSpellHandler.h"
 #include "../../lib/CGeneralTextHandler.h"
 #include "../../lib/NetPacksBase.h"
 
@@ -164,7 +166,7 @@ std::string CComponent::getDescription()
 		return art->getEffectiveDescription();
 	}
 	case experience: return CGI->generaltexth->allTexts[241];
-	case spell:      return CGI->spellh->objects[subtype]->getLevelDescription(val);
+	case spell:      return SpellID(subtype).toSpell(CGI->spells())->getLevelDescription(val);
 	case morale:     return CGI->generaltexth->heroscrn[ 4 - (val>0) + (val<0)];
 	case luck:       return CGI->generaltexth->heroscrn[ 7 - (val>0) + (val<0)];
 	case building:   return (*CGI->townh)[subtype]->town->buildings[BuildingID(val)]->Description();

+ 3 - 3
lib/CArtHandler.cpp

@@ -761,13 +761,13 @@ std::string CArtifactInstance::getEffectiveDescription(const CGHeroInstance * he
 		// we expect scroll description to be like this: This scroll contains the [spell name] spell which is added into your spell book for as long as you carry the scroll.
 		// so we want to replace text in [...] with a spell name
 		// however other language versions don't have name placeholder at all, so we have to be careful
-		int32_t spellID = getGivenSpellID();
+		SpellID spellID = getGivenSpellID();
 		size_t nameStart = text.find_first_of('[');
 		size_t nameEnd = text.find_first_of(']', nameStart);
-		if(spellID >= 0)
+		if(spellID.getNum() >= 0)
 		{
 			if(nameStart != std::string::npos  &&  nameEnd != std::string::npos)
-				text = text.replace(nameStart, nameEnd - nameStart + 1, VLC->spellh->objects[spellID]->name);
+				text = text.replace(nameStart, nameEnd - nameStart + 1, spellID.toSpell(VLC->spells())->getName());
 		}
 	}
 	else if(hero && artType->constituentOf.size()) //display info about set

+ 1 - 1
lib/mapObjects/CGTownInstance.cpp

@@ -938,7 +938,7 @@ void CGTownInstance::newTurn(CRandomGenerator & rand) const
 	{
 		//give resources if there's a Mystic Pond
 		if (hasBuilt(BuildingSubID::MYSTIC_POND)
-			&& cb->getDate(Date::DAY) != 1 
+			&& cb->getDate(Date::DAY) != 1
 			&& (tempOwner < PlayerColor::PLAYER_LIMIT)
 			)
 		{

+ 2 - 1
lib/mapObjects/CQuest.cpp

@@ -11,6 +11,8 @@
 #include "StdInc.h"
 #include "CQuest.h"
 
+#include <vcmi/spells/Spell.h>
+
 #include "../NetPacks.h"
 #include "../CSoundBase.h"
 #include "../CGeneralTextHandler.h"
@@ -23,7 +25,6 @@
 #include "../CModHandler.h"
 #include "../GameConstants.h"
 #include "../StringConstants.h"
-#include "../spells/CSpellHandler.h"
 #include "../CSkillHandler.h"
 #include "../mapping/CMap.h"
 

+ 1 - 1
lib/mapObjects/MiscObjects.cpp

@@ -1773,7 +1773,7 @@ void CGScholar::serializeJsonOptions(JsonSerializeFormat & handler)
 			handler.serializeString("rewardSkill", value);
 			break;
 		case SPELL:
-			value = VLC->spellh->objects.at(bonusID)->identifier;
+			value = SpellID::encode(bonusID);
 			handler.serializeString("rewardSpell", value);
 			break;
 		case RANDOM: