mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-26 09:35:28 +00:00
some UniversalId fixes
This commit is contained in:
parent
842a616909
commit
8bebe7179c
@ -80,7 +80,7 @@ namespace
|
|||||||
{ CSMWorld::UniversalId::Class_RefRecord, CSMWorld::UniversalId::Type_Static, "Static", ":./static.png" },
|
{ CSMWorld::UniversalId::Class_RefRecord, CSMWorld::UniversalId::Type_Static, "Static", ":./static.png" },
|
||||||
{ CSMWorld::UniversalId::Class_RefRecord, CSMWorld::UniversalId::Type_Weapon, "Weapon", ":./weapon.png" },
|
{ CSMWorld::UniversalId::Class_RefRecord, CSMWorld::UniversalId::Type_Weapon, "Weapon", ":./weapon.png" },
|
||||||
{ CSMWorld::UniversalId::Class_SubRecord, CSMWorld::UniversalId::Type_Reference, "Reference", 0 },
|
{ CSMWorld::UniversalId::Class_SubRecord, CSMWorld::UniversalId::Type_Reference, "Reference", 0 },
|
||||||
|
{ CSMWorld::UniversalId::Class_SubRecord, CSMWorld::UniversalId::Type_Filter, "Filter", 0 },
|
||||||
{ CSMWorld::UniversalId::Class_None, CSMWorld::UniversalId::Type_None, 0, 0 } // end marker
|
{ CSMWorld::UniversalId::Class_None, CSMWorld::UniversalId::Type_None, 0, 0 } // end marker
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -149,6 +149,22 @@ CSMWorld::UniversalId::UniversalId (Type type) : mArgumentType (ArgumentType_Non
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i=0; sIdArg[i].mName; ++i)
|
||||||
|
if (type==sIdArg[i].mType)
|
||||||
|
{
|
||||||
|
mArgumentType = ArgumentType_Id;
|
||||||
|
mClass = sIdArg[i].mClass;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i=0; sIndexArg[i].mName; ++i)
|
||||||
|
if (type==sIndexArg[i].mType)
|
||||||
|
{
|
||||||
|
mArgumentType = ArgumentType_Index;
|
||||||
|
mClass = sIndexArg[i].mClass;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
throw std::logic_error ("invalid argument-less UniversalId type");
|
throw std::logic_error ("invalid argument-less UniversalId type");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ namespace CSMWorld
|
|||||||
|
|
||||||
enum Type
|
enum Type
|
||||||
{
|
{
|
||||||
Type_None,
|
Type_None = 0,
|
||||||
Type_Globals,
|
Type_Globals,
|
||||||
Type_Global,
|
Type_Global,
|
||||||
Type_VerificationResults,
|
Type_VerificationResults,
|
||||||
@ -89,6 +89,8 @@ namespace CSMWorld
|
|||||||
Type_Filters
|
Type_Filters
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum { NumberOfTypes = Type_Filters+1 };
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
Class mClass;
|
Class mClass;
|
||||||
@ -102,7 +104,6 @@ namespace CSMWorld
|
|||||||
UniversalId (const std::string& universalId);
|
UniversalId (const std::string& universalId);
|
||||||
|
|
||||||
UniversalId (Type type = Type_None);
|
UniversalId (Type type = Type_None);
|
||||||
///< Using a type for a non-argument-less UniversalId will throw an exception.
|
|
||||||
|
|
||||||
UniversalId (Type type, const std::string& id);
|
UniversalId (Type type, const std::string& id);
|
||||||
///< Using a type for a non-ID-argument UniversalId will throw an exception.
|
///< Using a type for a non-ID-argument UniversalId will throw an exception.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user