1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-15 16:39:40 +00:00

Added extra columnid type to use for ID of the inventory item

This commit is contained in:
Marek Kochanowicz 2014-06-20 13:40:54 +02:00
parent a076798f8f
commit 894c98ee89
5 changed files with 25 additions and 25 deletions

View file

@ -1,4 +1,3 @@
#include "columnbase.hpp"
#include "columns.hpp"
@ -33,12 +32,21 @@ bool CSMWorld::ColumnBase::canHaveNestedColumns() const
std::string CSMWorld::ColumnBase::getNestedColumnTitle(int columnNumber) const
{
return Columns::getName (mDisplayType, columnNumber);
assert (mCanNest);
return Columns::getName(static_cast<Columns::ColumnId>(mNestedColumnId[columnNumber]));
}
void CSMWorld::ColumnBase::addNestedColumnDisplay(CSMWorld::ColumnBase::Display displayDefinition)
{
assert (canHaveNestedColumns());
assert (mCanNest);
mNestedDisplayType.push_back(displayDefinition);
}
void CSMWorld::ColumnBase::addNestedColumnId(int columnId)
{
assert (mCanNest);
mNestedColumnId.push_back(columnId);
}

View file

@ -31,7 +31,7 @@ namespace CSMWorld
Display_String,
Display_LongString,
//CONCRETE TYPES STARTS HERE
//CONCRETE TYPES STARTS HERE (for drag and drop)
Display_Skill,
Display_Class,
Display_Faction,
@ -92,13 +92,15 @@ namespace CSMWorld
Display_QuestStatusType,
Display_Gender,
//Those are top level columns that nest other columns
Display_NestedItemList
};
int mColumnId;
int mFlags;
Display mDisplayType;
std::vector<Display> mNestedDisplayType;
std::vector<Display> mNestedDisplayType; //used only for the columns that actually nest other columns
std::vector<int> mNestedColumnId; //used only for the columns that actually nest other columns
const bool mCanNest;
ColumnBase (int columnId, Display displayType, int flag, bool canNest = false);
@ -113,8 +115,10 @@ namespace CSMWorld
virtual std::string getTitle() const;
std::string getNestedColumnTitle(int columnNumber) const;
virtual void addNestedColumnDisplay(Display displayDefinition);
void addNestedColumnDisplay(Display displayDefinition);
void addNestedColumnId(int columnId);
virtual int getId() const;

View file

@ -174,6 +174,8 @@ namespace CSMWorld
{ ColumnId_PcRank, "PC Rank" },
{ ColumnId_Scope, "Scope" },
{ ColumnId_ReferenceableId, "Referenceable ID" },
{ ColumnId_InventoryItemId, "ID"},
{ ColumnId_ItemCount, "Count"},
{ ColumnId_UseValue1, "Use value 1" },
{ ColumnId_UseValue2, "Use value 2" },
@ -216,21 +218,6 @@ std::string CSMWorld::Columns::getName (ColumnId column)
return "";
}
std::string CSMWorld::Columns::getName(CSMWorld::ColumnBase::Display displayType, int columnNumber)
{
//TODO, this is just temporary solution
switch (displayType)
{
case CSMWorld::ColumnBase::Display_NestedItemList:
if (columnNumber == 0)
return "ID";
if (columnNumber == 1)
return "Count";
}
return "Do yourself a favor and take a look at the columns.cpp";
}
int CSMWorld::Columns::getId (const std::string& name)
{
std::string name2 = Misc::StringUtils::lowerCase (name);

View file

@ -171,6 +171,7 @@ namespace CSMWorld
ColumnId_ReferenceableId = 156,
ColumnId_ContainerContent = 157,
ColumnId_ItemCount = 158,
ColumnId_InventoryItemId = 159,
// Allocated to a separate value range, so we don't get a collision should we ever need
// to extend the number of use values.
@ -210,8 +211,6 @@ namespace CSMWorld
std::string getName (ColumnId column);
std::string getName (ColumnBase::Display displayType, int columnNumber);
int getId (const std::string& name);
///< Will return -1 for an invalid name.

View file

@ -170,6 +170,8 @@ CSMWorld::RefIdCollection::RefIdCollection()
const RefIdColumn *content = &mColumns.back();
(&mColumns.back())->addNestedColumnDisplay(CSMWorld::ColumnBase::Display_String);
(&mColumns.back())->addNestedColumnDisplay(CSMWorld::ColumnBase::Display_Integer);
(&mColumns.back())->addNestedColumnId(Columns::ColumnId_InventoryItemId);
(&mColumns.back())->addNestedColumnId(Columns::ColumnId_ItemCount);
CreatureColumns creatureColumns (actorsColumns);