World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Структура SpellStats

#include <Spells.h>

+ Граф связей класса SpellStats:

Открытые члены

void Initialize ()
 

Открытые атрибуты

SpellInfo pInfos [100]
 

Подробное описание

См. определение в файле Spells.h строка 189

Методы

◆ Initialize()

void SpellStats::Initialize ( )

См. определение в файле Spells.cpp строка 385

385  {
386  std::map<String, SPELL_SCHOOL, ci_less> spellSchoolMaps;
387  spellSchoolMaps["fire"] = SPELL_SCHOOL_FIRE;
388  spellSchoolMaps["air"] = SPELL_SCHOOL_AIR;
389  spellSchoolMaps["water"] = SPELL_SCHOOL_WATER;
390  spellSchoolMaps["earth"] = SPELL_SCHOOL_EARTH;
391  spellSchoolMaps["spirit"] = SPELL_SCHOOL_SPIRIT;
392  spellSchoolMaps["mind"] = SPELL_SCHOOL_MIND;
393  spellSchoolMaps["body"] = SPELL_SCHOOL_BODY;
394  spellSchoolMaps["light"] = SPELL_SCHOOL_LIGHT;
395  spellSchoolMaps["dark"] = SPELL_SCHOOL_DARK;
396  spellSchoolMaps["magic"] = SPELL_SCHOOL_MAGIC;
397 
398  char *test_string;
399 
400  free(pSpellsTXT_Raw);
401  pSpellsTXT_Raw = (char *)pEvents_LOD->LoadCompressedTexture("spells.txt");
402 
403  strtok(pSpellsTXT_Raw, "\r");
404  for (int i = 1; i < 100; ++i) {
405  if (((i % 11) - 1) == 0) strtok(NULL, "\r");
406  test_string = strtok(NULL, "\r") + 1;
407 
408  extern std::vector<char *> Tokenize(char *input, const char separator);
409  auto tokens = Tokenize(test_string, '\t');
410 
411  pInfos[i].pName = RemoveQuotes(tokens[2]);
412  auto findResult = spellSchoolMaps.find(tokens[3]);
413  pInfos[i].uSchool = findResult == spellSchoolMaps.end()
415  : findResult->second;
416  pInfos[i].pShortName = RemoveQuotes(tokens[4]);
417  pInfos[i].pDescription = RemoveQuotes(tokens[5]);
418  pInfos[i].pBasicSkillDesc = RemoveQuotes(tokens[6]);
419  pInfos[i].pExpertSkillDesc = RemoveQuotes(tokens[7]);
420  pInfos[i].pMasterSkillDesc = RemoveQuotes(tokens[8]);
421  pInfos[i].pGrandmasterSkillDesc = RemoveQuotes(tokens[9]);
422  pSpellDatas[i].stats |= strchr(tokens[10], 'm') || strchr(tokens[10], 'M') ? 1 : 0;
423  pSpellDatas[i].stats |= strchr(tokens[10], 'e') || strchr(tokens[10], 'E') ? 2 : 0;
424  pSpellDatas[i].stats |= strchr(tokens[10], 'c') || strchr(tokens[10], 'C') ? 4 : 0;
425  pSpellDatas[i].stats |= strchr(tokens[10], 'x') || strchr(tokens[10], 'X') ? 8 : 0;
426  }
427 }

Перекрестные ссылки LOD::File::LoadCompressedTexture(), SpellInfo::pBasicSkillDesc, SpellInfo::pDescription, pEvents_LOD, SpellInfo::pExpertSkillDesc, SpellInfo::pGrandmasterSkillDesc, pInfos, SpellInfo::pMasterSkillDesc, SpellInfo::pName, SpellInfo::pShortName, pSpellDatas, pSpellsTXT_Raw, RemoveQuotes(), SPELL_SCHOOL_AIR, SPELL_SCHOOL_BODY, SPELL_SCHOOL_DARK, SPELL_SCHOOL_EARTH, SPELL_SCHOOL_FIRE, SPELL_SCHOOL_LIGHT, SPELL_SCHOOL_MAGIC, SPELL_SCHOOL_MIND, SPELL_SCHOOL_NONE, SPELL_SCHOOL_SPIRIT, SPELL_SCHOOL_WATER, Tokenize() и SpellInfo::uSchool.

Используется в ItemsTable::Initialize().

+ Граф вызовов:
+ Граф вызова функции:

Данные класса

◆ pInfos


Объявления и описания членов структур находятся в файлах:
RemoveQuotes
char * RemoveQuotes(char *str)
Definition: Strings.h:17
SPELL_SCHOOL_FIRE
@ SPELL_SCHOOL_FIRE
Definition: Spells.h:132
Tokenize
std::vector< char * > Tokenize(char *input, const char separator)
Definition: Strings.cpp:30
SPELL_SCHOOL_WATER
@ SPELL_SCHOOL_WATER
Definition: Spells.h:134
SpellStats::pInfos
SpellInfo pInfos[100]
Definition: Spells.h:192
LOD::File::LoadCompressedTexture
void * LoadCompressedTexture(const String &pContainer, size_t *data_size=nullptr)
Definition: LOD.cpp:921
SpellInfo::uSchool
SPELL_SCHOOL uSchool
Definition: Spells.h:183
SpellInfo::pName
char * pName
Definition: Spells.h:176
SPELL_SCHOOL_SPIRIT
@ SPELL_SCHOOL_SPIRIT
Definition: Spells.h:138
pSpellsTXT_Raw
char * pSpellsTXT_Raw
Definition: mm7_data.cpp:679
input
GLenum GLenum GLenum input
Definition: SDL_opengl_glext.h:9377
SPELL_SCHOOL_DARK
@ SPELL_SCHOOL_DARK
Definition: Spells.h:142
SPELL_SCHOOL_MIND
@ SPELL_SCHOOL_MIND
Definition: Spells.h:139
SPELL_SCHOOL_AIR
@ SPELL_SCHOOL_AIR
Definition: Spells.h:133
pSpellDatas
std::array< SpellData, 100 > pSpellDatas
Definition: Spells.cpp:170
SPELL_SCHOOL_EARTH
@ SPELL_SCHOOL_EARTH
Definition: Spells.h:135
SpellInfo::pExpertSkillDesc
char * pExpertSkillDesc
Definition: Spells.h:180
pEvents_LOD
LODFile_IconsBitmaps * pEvents_LOD
Definition: LOD.cpp:10
SPELL_SCHOOL_BODY
@ SPELL_SCHOOL_BODY
Definition: Spells.h:140
SPELL_SCHOOL_NONE
@ SPELL_SCHOOL_NONE
Definition: Spells.h:136
SpellInfo::pShortName
char * pShortName
Definition: Spells.h:177
SpellInfo::pDescription
char * pDescription
Definition: Spells.h:178
SpellInfo::pBasicSkillDesc
char * pBasicSkillDesc
Definition: Spells.h:179
SPELL_SCHOOL_LIGHT
@ SPELL_SCHOOL_LIGHT
Definition: Spells.h:141
SpellInfo::pGrandmasterSkillDesc
char * pGrandmasterSkillDesc
Definition: Spells.h:182
SPELL_SCHOOL_MAGIC
@ SPELL_SCHOOL_MAGIC
Definition: Spells.h:137
SpellInfo::pMasterSkillDesc
char * pMasterSkillDesc
Definition: Spells.h:181