openmw-tes3coop/apps/opencs/model/world/columns.hpp
MAtahualpa dab8b328c4 Replace light emitter check boxes with a combo box (fixes #3752)
Replaces the four emitter check boxes in Light records with an "Emitter Type" combo box.

Related issue:
- Fixes #3752: Editor: Replace emitter check boxes in Light records with "Emitter Type" combo box (https://bugs.openmw.org/issues/3752)

Tests:
The changes were successfully tested in OpenMW-CS by manipulating several Light records. Please note that this fix also prevents users from erroneously assigning two or more emitter types at the same time. (I don't know which one would prevail in that case.)
2017-02-16 12:48:47 +01:00

381 lines
13 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_EmitterType = 106,
// unused (3x)
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