forked from mirror/openmw-tes3mp
added basic spell table
This commit is contained in:
parent
01ae91f640
commit
ec6dff38b1
9 changed files with 55 additions and 1 deletions
|
@ -99,6 +99,13 @@ CSMWorld::Data::Data()
|
||||||
mBirthsigns.addColumn (new TextureColumn<ESM::BirthSign>);
|
mBirthsigns.addColumn (new TextureColumn<ESM::BirthSign>);
|
||||||
mBirthsigns.addColumn (new DescriptionColumn<ESM::BirthSign>);
|
mBirthsigns.addColumn (new DescriptionColumn<ESM::BirthSign>);
|
||||||
|
|
||||||
|
mSpells.addColumn (new StringIdColumn<ESM::Spell>);
|
||||||
|
mSpells.addColumn (new RecordStateColumn<ESM::Spell>);
|
||||||
|
mSpells.addColumn (new NameColumn<ESM::Spell>);
|
||||||
|
mSpells.addColumn (new FlagColumn<ESM::Spell> ("Autocalc", 0x1));
|
||||||
|
mSpells.addColumn (new FlagColumn<ESM::Spell> ("Starter Spell", 0x2));
|
||||||
|
mSpells.addColumn (new FlagColumn<ESM::Spell> ("Always Succeeds", 0x4));
|
||||||
|
|
||||||
addModel (new IdTable (&mGlobals), UniversalId::Type_Globals, UniversalId::Type_Global);
|
addModel (new IdTable (&mGlobals), UniversalId::Type_Globals, UniversalId::Type_Global);
|
||||||
addModel (new IdTable (&mGmsts), UniversalId::Type_Gmsts, UniversalId::Type_Gmst);
|
addModel (new IdTable (&mGmsts), UniversalId::Type_Gmsts, UniversalId::Type_Gmst);
|
||||||
addModel (new IdTable (&mSkills), UniversalId::Type_Skills, UniversalId::Type_Skill);
|
addModel (new IdTable (&mSkills), UniversalId::Type_Skills, UniversalId::Type_Skill);
|
||||||
|
@ -109,6 +116,7 @@ CSMWorld::Data::Data()
|
||||||
addModel (new IdTable (&mScripts), UniversalId::Type_Scripts, UniversalId::Type_Script);
|
addModel (new IdTable (&mScripts), UniversalId::Type_Scripts, UniversalId::Type_Script);
|
||||||
addModel (new IdTable (&mRegions), UniversalId::Type_Regions, UniversalId::Type_Region);
|
addModel (new IdTable (&mRegions), UniversalId::Type_Regions, UniversalId::Type_Region);
|
||||||
addModel (new IdTable (&mBirthsigns), UniversalId::Type_Birthsigns, UniversalId::Type_Birthsign);
|
addModel (new IdTable (&mBirthsigns), UniversalId::Type_Birthsigns, UniversalId::Type_Birthsign);
|
||||||
|
addModel (new IdTable (&mSpells), UniversalId::Type_Spells, UniversalId::Type_Spell);
|
||||||
}
|
}
|
||||||
|
|
||||||
CSMWorld::Data::~Data()
|
CSMWorld::Data::~Data()
|
||||||
|
@ -217,6 +225,16 @@ CSMWorld::IdCollection<ESM::BirthSign>& CSMWorld::Data::getBirthsigns()
|
||||||
return mBirthsigns;
|
return mBirthsigns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const CSMWorld::IdCollection<ESM::Spell>& CSMWorld::Data::getSpells() const
|
||||||
|
{
|
||||||
|
return mSpells;
|
||||||
|
}
|
||||||
|
|
||||||
|
CSMWorld::IdCollection<ESM::Spell>& CSMWorld::Data::getSpells()
|
||||||
|
{
|
||||||
|
return mSpells;
|
||||||
|
}
|
||||||
|
|
||||||
QAbstractItemModel *CSMWorld::Data::getTableModel (const UniversalId& id)
|
QAbstractItemModel *CSMWorld::Data::getTableModel (const UniversalId& id)
|
||||||
{
|
{
|
||||||
std::map<UniversalId::Type, QAbstractItemModel *>::iterator iter = mModelIndex.find (id.getType());
|
std::map<UniversalId::Type, QAbstractItemModel *>::iterator iter = mModelIndex.find (id.getType());
|
||||||
|
@ -261,6 +279,7 @@ void CSMWorld::Data::loadFile (const boost::filesystem::path& path, bool base)
|
||||||
case ESM::REC_SCPT: mScripts.load (reader, base); break;
|
case ESM::REC_SCPT: mScripts.load (reader, base); break;
|
||||||
case ESM::REC_REGN: mRegions.load (reader, base); break;
|
case ESM::REC_REGN: mRegions.load (reader, base); break;
|
||||||
case ESM::REC_BSGN: mBirthsigns.load (reader, base); break;
|
case ESM::REC_BSGN: mBirthsigns.load (reader, base); break;
|
||||||
|
case ESM::REC_SPEL: mSpells.load (reader, base); break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include <components/esm/loadscpt.hpp>
|
#include <components/esm/loadscpt.hpp>
|
||||||
#include <components/esm/loadregn.hpp>
|
#include <components/esm/loadregn.hpp>
|
||||||
#include <components/esm/loadbsgn.hpp>
|
#include <components/esm/loadbsgn.hpp>
|
||||||
|
#include <components/esm/loadspel.hpp>
|
||||||
|
|
||||||
#include "idcollection.hpp"
|
#include "idcollection.hpp"
|
||||||
#include "universalid.hpp"
|
#include "universalid.hpp"
|
||||||
|
@ -36,6 +37,7 @@ namespace CSMWorld
|
||||||
IdCollection<ESM::Script> mScripts;
|
IdCollection<ESM::Script> mScripts;
|
||||||
IdCollection<ESM::Region> mRegions;
|
IdCollection<ESM::Region> mRegions;
|
||||||
IdCollection<ESM::BirthSign> mBirthsigns;
|
IdCollection<ESM::BirthSign> mBirthsigns;
|
||||||
|
IdCollection<ESM::Spell> mSpells;
|
||||||
std::vector<QAbstractItemModel *> mModels;
|
std::vector<QAbstractItemModel *> mModels;
|
||||||
std::map<UniversalId::Type, QAbstractItemModel *> mModelIndex;
|
std::map<UniversalId::Type, QAbstractItemModel *> mModelIndex;
|
||||||
|
|
||||||
|
@ -92,6 +94,10 @@ namespace CSMWorld
|
||||||
|
|
||||||
IdCollection<ESM::BirthSign>& getBirthsigns();
|
IdCollection<ESM::BirthSign>& getBirthsigns();
|
||||||
|
|
||||||
|
const IdCollection<ESM::Spell>& getSpells() const;
|
||||||
|
|
||||||
|
IdCollection<ESM::Spell>& getSpells();
|
||||||
|
|
||||||
QAbstractItemModel *getTableModel (const UniversalId& id);
|
QAbstractItemModel *getTableModel (const UniversalId& id);
|
||||||
///< If no table model is available for \a id, an exception is thrown.
|
///< If no table model is available for \a id, an exception is thrown.
|
||||||
///
|
///
|
||||||
|
|
|
@ -27,6 +27,7 @@ namespace
|
||||||
{ CSMWorld::UniversalId::Class_RecordList, CSMWorld::UniversalId::Type_Scripts, "Scripts" },
|
{ CSMWorld::UniversalId::Class_RecordList, CSMWorld::UniversalId::Type_Scripts, "Scripts" },
|
||||||
{ CSMWorld::UniversalId::Class_RecordList, CSMWorld::UniversalId::Type_Regions, "Regions" },
|
{ CSMWorld::UniversalId::Class_RecordList, CSMWorld::UniversalId::Type_Regions, "Regions" },
|
||||||
{ CSMWorld::UniversalId::Class_RecordList, CSMWorld::UniversalId::Type_Birthsigns, "Birthsigns" },
|
{ CSMWorld::UniversalId::Class_RecordList, CSMWorld::UniversalId::Type_Birthsigns, "Birthsigns" },
|
||||||
|
{ CSMWorld::UniversalId::Class_RecordList, CSMWorld::UniversalId::Type_Spells, "Spells" },
|
||||||
|
|
||||||
{ CSMWorld::UniversalId::Class_None, CSMWorld::UniversalId::Type_None, 0 } // end marker
|
{ CSMWorld::UniversalId::Class_None, CSMWorld::UniversalId::Type_None, 0 } // end marker
|
||||||
};
|
};
|
||||||
|
@ -43,6 +44,7 @@ namespace
|
||||||
{ CSMWorld::UniversalId::Class_Record, CSMWorld::UniversalId::Type_Script, "Script" },
|
{ CSMWorld::UniversalId::Class_Record, CSMWorld::UniversalId::Type_Script, "Script" },
|
||||||
{ CSMWorld::UniversalId::Class_Record, CSMWorld::UniversalId::Type_Region, "Region" },
|
{ CSMWorld::UniversalId::Class_Record, CSMWorld::UniversalId::Type_Region, "Region" },
|
||||||
{ CSMWorld::UniversalId::Class_Record, CSMWorld::UniversalId::Type_Birthsign, "Birthsign" },
|
{ CSMWorld::UniversalId::Class_Record, CSMWorld::UniversalId::Type_Birthsign, "Birthsign" },
|
||||||
|
{ CSMWorld::UniversalId::Class_Record, CSMWorld::UniversalId::Type_Spell, "Spell" },
|
||||||
|
|
||||||
{ CSMWorld::UniversalId::Class_None, CSMWorld::UniversalId::Type_None, 0 } // end marker
|
{ CSMWorld::UniversalId::Class_None, CSMWorld::UniversalId::Type_None, 0 } // end marker
|
||||||
};
|
};
|
||||||
|
|
|
@ -53,7 +53,9 @@ namespace CSMWorld
|
||||||
Type_Regions,
|
Type_Regions,
|
||||||
Type_Region,
|
Type_Region,
|
||||||
Type_Birthsigns,
|
Type_Birthsigns,
|
||||||
Type_Birthsign
|
Type_Birthsign,
|
||||||
|
Type_Spells,
|
||||||
|
Type_Spell
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -121,6 +121,10 @@ void CSVDoc::View::setupWorldMenu()
|
||||||
QAction *birthsigns = new QAction (tr ("Birthsigns"), this);
|
QAction *birthsigns = new QAction (tr ("Birthsigns"), this);
|
||||||
connect (birthsigns, SIGNAL (triggered()), this, SLOT (addBirthsignsSubView()));
|
connect (birthsigns, SIGNAL (triggered()), this, SLOT (addBirthsignsSubView()));
|
||||||
world->addAction (birthsigns);
|
world->addAction (birthsigns);
|
||||||
|
|
||||||
|
QAction *spells = new QAction (tr ("Spells"), this);
|
||||||
|
connect (spells, SIGNAL (triggered()), this, SLOT (addSpellsSubView()));
|
||||||
|
world->addAction (spells);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSVDoc::View::setupUi()
|
void CSVDoc::View::setupUi()
|
||||||
|
@ -316,6 +320,11 @@ void CSVDoc::View::addBirthsignsSubView()
|
||||||
addSubView (CSMWorld::UniversalId::Type_Birthsigns);
|
addSubView (CSMWorld::UniversalId::Type_Birthsigns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSVDoc::View::addSpellsSubView()
|
||||||
|
{
|
||||||
|
addSubView (CSMWorld::UniversalId::Type_Spells);
|
||||||
|
}
|
||||||
|
|
||||||
void CSVDoc::View::abortOperation (int type)
|
void CSVDoc::View::abortOperation (int type)
|
||||||
{
|
{
|
||||||
mDocument->abortOperation (type);
|
mDocument->abortOperation (type);
|
||||||
|
|
|
@ -131,6 +131,8 @@ namespace CSVDoc
|
||||||
void addRegionsSubView();
|
void addRegionsSubView();
|
||||||
|
|
||||||
void addBirthsignsSubView();
|
void addBirthsignsSubView();
|
||||||
|
|
||||||
|
void addSpellsSubView();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ void CSVWorld::addSubViewFactories (CSVDoc::SubViewFactoryManager& manager)
|
||||||
CSMWorld::UniversalId::Type_Scripts,
|
CSMWorld::UniversalId::Type_Scripts,
|
||||||
CSMWorld::UniversalId::Type_Regions,
|
CSMWorld::UniversalId::Type_Regions,
|
||||||
CSMWorld::UniversalId::Type_Birthsigns,
|
CSMWorld::UniversalId::Type_Birthsigns,
|
||||||
|
CSMWorld::UniversalId::Type_Spells,
|
||||||
|
|
||||||
CSMWorld::UniversalId::Type_None // end marker
|
CSMWorld::UniversalId::Type_None // end marker
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,4 +20,14 @@ void Spell::save(ESMWriter &esm)
|
||||||
mEffects.save(esm);
|
mEffects.save(esm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Spell::blank()
|
||||||
|
{
|
||||||
|
mData.mType = 0;
|
||||||
|
mData.mCost = 0;
|
||||||
|
mData.mFlags = 0;
|
||||||
|
|
||||||
|
mName.clear();
|
||||||
|
|
||||||
|
mEffects.mList.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,9 @@ struct Spell
|
||||||
|
|
||||||
void load(ESMReader &esm);
|
void load(ESMReader &esm);
|
||||||
void save(ESMWriter &esm);
|
void save(ESMWriter &esm);
|
||||||
|
|
||||||
|
void blank();
|
||||||
|
///< Set record to default state (does not touch the ID/index).
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue