MCPcopy Create free account
hub / github.com/OpenDungeons/OpenDungeons / load

Method load

source/creatureeffect/CreatureEffectManager.cpp:54–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

52}
53
54CreatureEffect* CreatureEffectManager::load(std::istream& defFile)
55{
56 if(!defFile.good())
57 return nullptr;
58
59 std::vector<const CreatureEffectFactory*>& factories = getFactories();
60 std::string nextParam;
61 OD_ASSERT_TRUE(defFile >> nextParam);
62 const CreatureEffectFactory* factoryToUse = nullptr;
63 for(const CreatureEffectFactory* factory : factories)
64 {
65 if(factory == nullptr)
66 continue;
67
68 if(factory->getCreatureEffectName().compare(nextParam) != 0)
69 continue;
70
71 factoryToUse = factory;
72 break;
73 }
74
75 if(factoryToUse == nullptr)
76 {
77 OD_LOG_ERR("Unknown Effect modifier=" + nextParam);
78 return nullptr;
79 }
80
81 CreatureEffect* effect = factoryToUse->createCreatureEffect();
82 if(!effect->importFromStream(defFile))
83 {
84 OD_LOG_ERR("Couldn't load creature effect modifier=" + nextParam);
85 delete effect;
86 return nullptr;
87 }
88
89 return effect;
90}
91
92void CreatureEffectManager::write(const CreatureEffect& effect, std::ostream& os)
93{

Callers

nothing calls this directly

Calls 2

createCreatureEffectMethod · 0.45
importFromStreamMethod · 0.45

Tested by

no test coverage detected