mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-16 05:49:56 +00:00
d4972ab166
Replaces the two "Xyz blood" check boxes in NPC and Creature records with a "Blood Type" combo box. Related issue: - Fixes #3751: OpenMW-CS: Replace "Xyz Blood" check boxes in NPC and Creature records with "Blood Type" combo box (https://bugs.openmw.org/issues/3751) Tests: The changes were successfully tested in OpenMW-CS by manipulating several NPC and Creature records. Please note that this fix also prevents users from erroneously assigning two blood types at the same time. (I don't know which one would prevail in that case.)
383 lines
14 KiB
C++
383 lines
14 KiB
C++
#ifndef CSM_WOLRD_COLUMNS_H
|
|
#define CSM_WOLRD_COLUMNS_H
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "columnbase.hpp"
|
|
|
|
namespace CSMWorld
|
|
{
|
|
namespace Columns
|
|
{
|
|
enum ColumnId
|
|
{
|
|
ColumnId_Value = 0,
|
|
ColumnId_Id = 1,
|
|
ColumnId_Modification = 2,
|
|
ColumnId_RecordType = 3,
|
|
ColumnId_ValueType = 4,
|
|
ColumnId_Description = 5,
|
|
ColumnId_Specialisation = 6,
|
|
ColumnId_Attribute = 7,
|
|
ColumnId_Name = 8,
|
|
ColumnId_Playable = 9,
|
|
ColumnId_Hidden = 10,
|
|
ColumnId_MaleWeight = 11,
|
|
ColumnId_FemaleWeight = 12,
|
|
ColumnId_MaleHeight = 13,
|
|
ColumnId_FemaleHeight = 14,
|
|
ColumnId_Volume = 15,
|
|
ColumnId_MinRange = 16,
|
|
ColumnId_MaxRange = 17,
|
|
ColumnId_SoundFile = 18,
|
|
ColumnId_MapColour = 19,
|
|
ColumnId_SleepEncounter = 20,
|
|
ColumnId_Texture = 21,
|
|
ColumnId_SpellType = 22,
|
|
ColumnId_Cost = 23,
|
|
ColumnId_ScriptText = 24,
|
|
ColumnId_Region = 25,
|
|
ColumnId_Cell = 26,
|
|
ColumnId_Scale = 27,
|
|
ColumnId_Owner = 28,
|
|
ColumnId_Soul = 29,
|
|
ColumnId_Faction = 30,
|
|
ColumnId_FactionIndex = 31,
|
|
ColumnId_Charges = 32,
|
|
ColumnId_Enchantment = 33,
|
|
ColumnId_CoinValue = 34,
|
|
ColumnId_Teleport = 35,
|
|
ColumnId_TeleportCell = 36,
|
|
ColumnId_LockLevel = 37,
|
|
ColumnId_Key = 38,
|
|
ColumnId_Trap = 39,
|
|
ColumnId_BeastRace = 40,
|
|
ColumnId_AutoCalc = 41,
|
|
ColumnId_StarterSpell = 42,
|
|
ColumnId_AlwaysSucceeds = 43,
|
|
ColumnId_SleepForbidden = 44,
|
|
ColumnId_InteriorWater = 45,
|
|
ColumnId_InteriorSky = 46,
|
|
ColumnId_Model = 47,
|
|
ColumnId_Script = 48,
|
|
ColumnId_Icon = 49,
|
|
ColumnId_Weight = 50,
|
|
ColumnId_EnchantmentPoints = 51,
|
|
ColumnId_Quality = 52,
|
|
// unused
|
|
ColumnId_AiHello = 54,
|
|
ColumnId_AiFlee = 55,
|
|
ColumnId_AiFight = 56,
|
|
ColumnId_AiAlarm = 57,
|
|
ColumnId_BuysWeapons = 58,
|
|
ColumnId_BuysArmor = 59,
|
|
ColumnId_BuysClothing = 60,
|
|
ColumnId_BuysBooks = 61,
|
|
ColumnId_BuysIngredients = 62,
|
|
ColumnId_BuysLockpicks = 63,
|
|
ColumnId_BuysProbes = 64,
|
|
ColumnId_BuysLights = 65,
|
|
ColumnId_BuysApparati = 66,
|
|
ColumnId_BuysRepairItems = 67,
|
|
ColumnId_BuysMiscItems = 68,
|
|
ColumnId_BuysPotions = 69,
|
|
ColumnId_BuysMagicItems = 70,
|
|
ColumnId_SellsSpells = 71,
|
|
ColumnId_Trainer = 72,
|
|
ColumnId_Spellmaking = 73,
|
|
ColumnId_EnchantingService = 74,
|
|
ColumnId_RepairService = 75,
|
|
ColumnId_ApparatusType = 76,
|
|
ColumnId_ArmorType = 77,
|
|
ColumnId_Health = 78,
|
|
ColumnId_ArmorValue = 79,
|
|
ColumnId_BookType = 80,
|
|
ColumnId_ClothingType = 81,
|
|
ColumnId_WeightCapacity = 82,
|
|
ColumnId_OrganicContainer = 83,
|
|
ColumnId_Respawn = 84,
|
|
ColumnId_CreatureType = 85,
|
|
ColumnId_SoulPoints = 86,
|
|
ColumnId_OriginalCreature = 87,
|
|
ColumnId_Biped = 88,
|
|
ColumnId_HasWeapon = 89,
|
|
// unused
|
|
ColumnId_Swims = 91,
|
|
ColumnId_Flies = 92,
|
|
ColumnId_Walks = 93,
|
|
ColumnId_Essential = 94,
|
|
ColumnId_BloodType = 95,
|
|
// unused
|
|
ColumnId_OpenSound = 97,
|
|
ColumnId_CloseSound = 98,
|
|
ColumnId_Duration = 99,
|
|
ColumnId_Radius = 100,
|
|
ColumnId_Colour = 101,
|
|
ColumnId_Sound = 102,
|
|
ColumnId_Dynamic = 103,
|
|
ColumnId_Portable = 104,
|
|
ColumnId_NegativeLight = 105,
|
|
ColumnId_Flickering = 106,
|
|
ColumnId_SlowFlickering = 107,
|
|
ColumnId_Pulsing = 108,
|
|
ColumnId_SlowPulsing = 109,
|
|
ColumnId_Fire = 110,
|
|
ColumnId_OffByDefault = 111,
|
|
ColumnId_IsKey = 112,
|
|
ColumnId_Race = 113,
|
|
ColumnId_Class = 114,
|
|
Columnid_Hair = 115,
|
|
ColumnId_Head = 116,
|
|
ColumnId_Female = 117,
|
|
ColumnId_WeaponType = 118,
|
|
ColumnId_WeaponSpeed = 119,
|
|
ColumnId_WeaponReach = 120,
|
|
ColumnId_MinChop = 121,
|
|
ColumnId_MaxChip = 122,
|
|
Columnid_MinSlash = 123,
|
|
ColumnId_MaxSlash = 124,
|
|
ColumnId_MinThrust = 125,
|
|
ColumnId_MaxThrust = 126,
|
|
ColumnId_Magical = 127,
|
|
ColumnId_Silver = 128,
|
|
ColumnId_Filter = 129,
|
|
ColumnId_PositionXPos = 130,
|
|
ColumnId_PositionYPos = 131,
|
|
ColumnId_PositionZPos = 132,
|
|
ColumnId_PositionXRot = 133,
|
|
ColumnId_PositionYRot = 134,
|
|
ColumnId_PositionZRot = 135,
|
|
ColumnId_DoorPositionXPos = 136,
|
|
ColumnId_DoorPositionYPos = 137,
|
|
ColumnId_DoorPositionZPos = 138,
|
|
ColumnId_DoorPositionXRot = 139,
|
|
ColumnId_DoorPositionYRot = 140,
|
|
ColumnId_DoorPositionZRot = 141,
|
|
ColumnId_DialogueType = 142,
|
|
ColumnId_QuestIndex = 143,
|
|
ColumnId_QuestStatusType = 144,
|
|
ColumnId_QuestDescription = 145,
|
|
ColumnId_Topic = 146,
|
|
ColumnId_Journal = 147,
|
|
ColumnId_Actor = 148,
|
|
ColumnId_PcFaction = 149,
|
|
ColumnId_Response = 150,
|
|
ColumnId_Disposition = 151,
|
|
ColumnId_Rank = 152,
|
|
ColumnId_Gender = 153,
|
|
ColumnId_PcRank = 154,
|
|
ColumnId_ReferenceableId = 155,
|
|
ColumnId_ContainerContent = 156,
|
|
ColumnId_ItemCount = 157,
|
|
ColumnId_InventoryItemId = 158,
|
|
ColumnId_CombatState = 159,
|
|
ColumnId_MagicState = 160,
|
|
ColumnId_StealthState = 161,
|
|
ColumnId_EnchantmentType = 162,
|
|
ColumnId_Vampire = 163,
|
|
ColumnId_BodyPartType = 164,
|
|
ColumnId_MeshType = 165,
|
|
ColumnId_ActorInventory = 166,
|
|
ColumnId_SpellList = 167,
|
|
ColumnId_SpellId = 168,
|
|
ColumnId_NpcDestinations = 169,
|
|
ColumnId_DestinationCell = 170,
|
|
ColumnId_PosX = 171, // these are float
|
|
ColumnId_PosY = 172, // these are float
|
|
ColumnId_PosZ = 173, // these are float
|
|
ColumnId_RotX = 174,
|
|
ColumnId_RotY = 175,
|
|
ColumnId_RotZ = 176,
|
|
// unused
|
|
ColumnId_OwnerGlobal = 178,
|
|
ColumnId_DefaultProfile = 179,
|
|
ColumnId_BypassNewGame = 180,
|
|
ColumnId_GlobalProfile = 181,
|
|
ColumnId_RefNumCounter = 182,
|
|
ColumnId_RefNum = 183,
|
|
ColumnId_Creature = 184,
|
|
ColumnId_SoundGeneratorType = 185,
|
|
ColumnId_AllowSpellmaking = 186,
|
|
ColumnId_AllowEnchanting = 187,
|
|
ColumnId_BaseCost = 188,
|
|
ColumnId_School = 189,
|
|
ColumnId_Particle = 190,
|
|
ColumnId_CastingObject = 191,
|
|
ColumnId_HitObject = 192,
|
|
ColumnId_AreaObject = 193,
|
|
ColumnId_BoltObject = 194,
|
|
ColumnId_CastingSound = 195,
|
|
ColumnId_HitSound = 196,
|
|
ColumnId_AreaSound = 197,
|
|
ColumnId_BoltSound = 198,
|
|
|
|
ColumnId_PathgridPoints = 199,
|
|
ColumnId_PathgridIndex = 200,
|
|
ColumnId_PathgridPosX = 201, // these are int
|
|
ColumnId_PathgridPosY = 202, // these are int
|
|
ColumnId_PathgridPosZ = 203, // these are int
|
|
ColumnId_PathgridEdges = 204,
|
|
ColumnId_PathgridEdgeIndex = 205,
|
|
ColumnId_PathgridEdge0 = 206,
|
|
ColumnId_PathgridEdge1 = 207,
|
|
|
|
ColumnId_RegionSounds = 208,
|
|
ColumnId_SoundName = 209,
|
|
ColumnId_SoundChance = 210,
|
|
|
|
ColumnId_FactionReactions = 211,
|
|
//ColumnId_FactionID = 212,
|
|
ColumnId_FactionReaction = 213,
|
|
|
|
ColumnId_EffectList = 214,
|
|
ColumnId_EffectId = 215,
|
|
//ColumnId_EffectAttribute = 216,
|
|
ColumnId_EffectRange = 217,
|
|
ColumnId_EffectArea = 218,
|
|
|
|
ColumnId_AiPackageList = 219,
|
|
ColumnId_AiPackageType = 220,
|
|
ColumnId_AiWanderDist = 221,
|
|
ColumnId_AiDuration = 222,
|
|
ColumnId_AiWanderToD = 223,
|
|
// unused
|
|
ColumnId_AiWanderRepeat = 225,
|
|
ColumnId_AiActivateName = 226,
|
|
// use ColumnId_PosX, etc for AI destinations
|
|
ColumnId_AiTargetId = 227,
|
|
ColumnId_AiTargetCell = 228,
|
|
|
|
ColumnId_PartRefList = 229,
|
|
ColumnId_PartRefType = 230,
|
|
ColumnId_PartRefMale = 231,
|
|
ColumnId_PartRefFemale = 232,
|
|
|
|
ColumnId_LevelledList = 233,
|
|
ColumnId_LevelledItemId = 234,
|
|
ColumnId_LevelledItemLevel = 235,
|
|
ColumnId_LevelledItemType = 236,
|
|
ColumnId_LevelledItemTypeEach = 237,
|
|
ColumnId_LevelledItemChanceNone = 238,
|
|
|
|
ColumnId_PowerList = 239,
|
|
ColumnId_Skill = 240,
|
|
|
|
ColumnId_InfoList = 241,
|
|
ColumnId_InfoCondition = 242,
|
|
ColumnId_InfoCondFunc = 243,
|
|
ColumnId_InfoCondVar = 244,
|
|
ColumnId_InfoCondComp = 245,
|
|
ColumnId_InfoCondValue = 246,
|
|
|
|
ColumnId_OriginalCell = 247,
|
|
|
|
ColumnId_NpcAttributes = 248,
|
|
ColumnId_NpcSkills = 249,
|
|
ColumnId_UChar = 250,
|
|
ColumnId_NpcMisc = 251,
|
|
ColumnId_Level = 252,
|
|
ColumnId_NpcFactionID = 253,
|
|
// unused
|
|
ColumnId_Mana = 255,
|
|
ColumnId_Fatigue = 256,
|
|
ColumnId_NpcDisposition = 257,
|
|
ColumnId_NpcReputation = 258,
|
|
ColumnId_NpcRank = 259,
|
|
ColumnId_Gold = 260,
|
|
ColumnId_NpcPersistence = 261,
|
|
|
|
ColumnId_RaceAttributes = 262,
|
|
ColumnId_Male = 263,
|
|
// unused
|
|
ColumnId_RaceSkillBonus = 265,
|
|
// unused
|
|
ColumnId_RaceBonus = 267,
|
|
|
|
ColumnId_Interior = 268,
|
|
ColumnId_Ambient = 269,
|
|
ColumnId_Sunlight = 270,
|
|
ColumnId_Fog = 271,
|
|
ColumnId_FogDensity = 272,
|
|
ColumnId_WaterLevel = 273,
|
|
ColumnId_MapColor = 274,
|
|
|
|
ColumnId_FileFormat = 275,
|
|
ColumnId_FileDescription = 276,
|
|
ColumnId_Author = 277,
|
|
|
|
ColumnId_MinMagnitude = 278,
|
|
ColumnId_MaxMagnitude = 279,
|
|
|
|
ColumnId_CreatureAttributes = 280,
|
|
ColumnId_AttributeValue = 281,
|
|
ColumnId_CreatureAttack = 282,
|
|
ColumnId_MinAttack = 283,
|
|
ColumnId_MaxAttack = 284,
|
|
ColumnId_CreatureMisc = 285,
|
|
|
|
ColumnId_Idle1 = 286,
|
|
ColumnId_Idle2 = 287,
|
|
ColumnId_Idle3 = 288,
|
|
ColumnId_Idle4 = 289,
|
|
ColumnId_Idle5 = 290,
|
|
ColumnId_Idle6 = 291,
|
|
ColumnId_Idle7 = 292,
|
|
ColumnId_Idle8 = 293,
|
|
|
|
ColumnId_RegionWeather = 294,
|
|
ColumnId_WeatherName = 295,
|
|
ColumnId_WeatherChance = 296,
|
|
|
|
ColumnId_Text = 297,
|
|
|
|
// Allocated to a separate value range, so we don't get a collision should we ever need
|
|
// to extend the number of use values.
|
|
ColumnId_UseValue1 = 0x10000,
|
|
ColumnId_UseValue2 = 0x10001,
|
|
ColumnId_UseValue3 = 0x10002,
|
|
ColumnId_UseValue4 = 0x10003,
|
|
|
|
// Allocated to a separate value range, so we don't get a collision should we ever need
|
|
// to extend the number of attributes. Note that this is not the number of different
|
|
// attributes, but the number of attributes that can be references from a record.
|
|
ColumnId_Attribute1 = 0x20000,
|
|
ColumnId_Attribute2 = 0x20001,
|
|
|
|
// Allocated to a separate value range, so we don't get a collision should we ever need
|
|
// to extend the number of skills. Note that this is not the number of different
|
|
// skills, but the number of skills that can be references from a record.
|
|
ColumnId_MajorSkill1 = 0x30000,
|
|
ColumnId_MajorSkill2 = 0x30001,
|
|
ColumnId_MajorSkill3 = 0x30002,
|
|
ColumnId_MajorSkill4 = 0x30003,
|
|
ColumnId_MajorSkill5 = 0x30004,
|
|
|
|
ColumnId_MinorSkill1 = 0x40000,
|
|
ColumnId_MinorSkill2 = 0x40001,
|
|
ColumnId_MinorSkill3 = 0x40002,
|
|
ColumnId_MinorSkill4 = 0x40003,
|
|
ColumnId_MinorSkill5 = 0x40004,
|
|
|
|
ColumnId_Skill1 = 0x50000,
|
|
ColumnId_Skill2 = 0x50001,
|
|
ColumnId_Skill3 = 0x50002,
|
|
ColumnId_Skill4 = 0x50003,
|
|
ColumnId_Skill5 = 0x50004,
|
|
ColumnId_Skill6 = 0x50005,
|
|
ColumnId_Skill7 = 0x50006
|
|
};
|
|
|
|
std::string getName (ColumnId column);
|
|
|
|
int getId (const std::string& name);
|
|
///< Will return -1 for an invalid name.
|
|
|
|
bool hasEnums (ColumnId column);
|
|
|
|
std::vector<std::string> getEnums (ColumnId column);
|
|
///< Returns an empty vector, if \a column isn't an enum type column.
|
|
}
|
|
}
|
|
|
|
#endif
|