-- This file is generated by tools/json2lua.js

local M = {
  forward = {},
  reverse = {}
}

local function makeValString(enumTable)
  local t = {}
  for name,num in pairs(enumTable) do
      t[num] = name
  end
  return t
end


M.forward.actor_cast_skill_type = {
  Normal = 1,
  ItemAction = 2,
  MountSkill = 13,
}
M.reverse.actor_cast_skill_type = makeValString(M.forward.actor_cast_skill_type)

M.forward.actor_control_type = {
  ToggleWeapon = 0,
  AutoAttack = 1,
  SetStatus = 2,
  CastStart = 3,
  ToggleAggro = 4,
  ClassJobChange = 5,
  DefeatMsg = 6,
  GainExpMsg = 7,
  LevelUpEffect = 10,
  ExpChainMsg = 12,
  HpSetStat = 13,
  DeathAnimation = 14,
  CastInterrupt = 15,
  ActionStart = 17,
  StatusEffectGain = 20,
  StatusEffectLose = 21,
  HPFloatingText = 23,
  UpdateRestedExp = 24,
  Unk2 = 25,
  Flee = 27,
  Unk3 = 32,
  CombatIndicationShow = 34,
  SpawnEffect = 37,
  ToggleInvisible = 38,
  ToggleActionUnlock = 41,
  UpdateUiExp = 43,
  DmgTakenMsg = 45,
  SetTarget = 50,
  ToggleNameHidden = 54,
  LimitbreakStart = 71,
  LimitbreakPartyStart = 72,
  BubbleText = 73,
  DamageEffect = 80,
  RaiseAnimation = 81,
  TreasureScreenMsg = 87,
  SetOwnerId = 89,
  ItemRepairMsg = 92,
  BluActionLearn = 99,
  DirectorInit = 100,
  DirectorClear = 101,
  LeveStartAnim = 102,
  LeveStartError = 103,
  DirectorEObjMod = 106,
  DirectorUpdate = 109,
  FateStart = 2357,
  ItemObtainMsg = 117,
  FateInit = 2353,
  FateEnd = 2358,
  DutyQuestScreenMsg = 123,
  FatePosition = 125,
  ItemObtainIcon = 132,
  FateItemFailMsg = 133,
  ItemFailMsg = 134,
  ActionLearnMsg1 = 135,
  FreeEventPos = 138,
  FateSync = 139,
  DailyQuestSeed = 144,
  FateProgress = 2366,
  SetBGM = 161,
  UnlockAetherCurrentMsg = 164,
  RemoveName = 168,
  ScreenFadeOut = 170,
  FateNpc = 2351,
  ZoneIn = 200,
  ZoneInDefaultPos = 201,
  TeleportStart = 203,
  TeleportDone = 205,
  TeleportDoneFadeOut = 206,
  DespawnZoneScreenMsg = 207,
  InstanceSelectDlg = 210,
  ActorDespawnEffect = 212,
  CompanionUnlock = 253,
  ObtainBarding = 254,
  EquipBarding = 255,
  CompanionMsg1 = 258,
  CompanionMsg2 = 259,
  ShowPetHotbar = 260,
  ActionLearnMsg = 265,
  ActorFadeOut = 266,
  ActorFadeIn = 267,
  WithdrawMsg = 268,
  OrderCompanion = 269,
  ToggleCompanion = 270,
  LearnCompanion = 271,
  ActorFateOut1 = 272,
  Emote = 290,
  EmoteInterrupt = 291,
  SetPose = 295,
  FishingLightChange = 300,
  GatheringSenseMsg = 304,
  PartyMsg = 305,
  GatheringSenseMsg1 = 306,
  GatheringSenseMsg2 = 312,
  FishingMsg = 320,
  FishingTotalFishCaught = 322,
  FishingBaitMsg = 325,
  FishingReachMsg = 327,
  FishingFailMsg = 328,
  WeeklyIntervalUpdateTime = 336,
  MateriaConvertMsg = 350,
  MeldSuccessMsg = 351,
  MeldFailMsg = 352,
  MeldModeToggle = 353,
  AetherRestoreMsg = 355,
  DyeMsg = 360,
  ToggleCrestMsg = 362,
  ToggleBulkCrestMsg = 363,
  MateriaRemoveMsg = 364,
  GlamourCastMsg = 365,
  GlamourRemoveMsg = 366,
  RelicInfuseMsg = 377,
  PlayerCurrency = 378,
  AetherReductionDlg = 381,
  EObjSetState = 409,
  Unk6 = 412,
  EObjAnimation = 413,
  SetTitle = 500,
  SetStatusIcon = 504,
  LimitBreakGauge = 505,
  SetHomepoint = 507,
  SetFavorite = 508,
  LearnTeleport = 509,
  OpenRecommendationGuide = 512,
  ArmoryErrorMsg = 513,
  AchievementPopup = 515,
  LogMsg = 517,
  AchievementMsg = 518,
  SetItemLevel = 521,
  ChallengeEntryCompleteMsg = 523,
  ChallengeEntryUnlockMsg = 524,
  DesynthOrReductionResult = 527,
  GilTrailMsg = 529,
  HuntingLogRankUnlock = 541,
  HuntingLogEntryUpdate = 542,
  HuntingLogSectionFinish = 543,
  HuntingLogRankFinish = 544,
  SetMaxGearSets = 560,
  SetCharaGearParamUI = 608,
  ToggleWireframeRendering = 609,
  ExamineError = 703,
  GearSetEquipMsg = 801,
  SetFestival = 902,
  ToggleOrchestrionUnlock = 918,
  SetMountSpeed = 927,
  Dismount = 929,
  BeginReplayAck = 930,
  EndReplayAck = 931,
  ShowHousingItemUI = 1015,
  ShowBuildPresetUI = 1001,
  ShowEstateExternalAppearanceUI = 1002,
  ShowEstateInternalAppearanceUI = 1003,
  BuildPresetResponse = 1005,
  RemoveExteriorHousingItem = 1007,
  RemoveInteriorHousingItem = 1009,
  HousingItemMoveConfirm = 1017,
  OpenEstateSettingsUI = 1023,
  HideAdditionalChambersDoor = 1024,
  HousingStoreroomStatus = 1049,
  TripleTriadCard = 1204,
  TripleTriadUnknown = 1205,
  SetPvPState = 1504,
  EndDuelSession = 1505,
  StartDuelCountdown = 1506,
  StartDuel = 1507,
  DuelResultScreen = 1508,
  SetDutyActionId = 1512,
  SetDutyActionHud = 1513,
  SetDutyActionActive = 1514,
  SetDutyActionRemaining = 1515,
  EurekaStep = 1850,
}
M.reverse.actor_control_type = makeValString(M.forward.actor_control_type)

M.forward.actor_control144_category = {
  Marker = 310,
}
M.reverse.actor_control144_category = makeValString(M.forward.actor_control144_category)

M.forward.actor_control144_marker = {
  Marker_A = 0,
  Marker_B = 1,
  Marker_C = 2,
  Marker_D = 3,
  Marker_1 = 4,
  Marker_2 = 5,
}
M.reverse.actor_control144_marker = makeValString(M.forward.actor_control144_marker)

M.forward.client_action_type = {
  Action = 8,
  CraftAction = 9,
  InvalidAction = 10,
}
M.reverse.client_action_type = makeValString(M.forward.client_action_type)

M.forward.client_trigger_command_id = {
  ToggleSheathe = 1,
  ToggleAutoAttack = 2,
  ChangeTarget = 3,
  DismountReq = 101,
  SpawnCompanionReq = 102,
  RemoveStatusEffect = 104,
  CastCancel = 105,
  Return = 200,
  FinishZoning = 201,
  Teleport = 202,
  Examine = 300,
  MarkPlayer = 301,
  SetTitleReq = 302,
  TitleList = 303,
  UpdatedSeenHowTos = 307,
  AllotAttribute = 309,
  ClearFieldMarkers = 314,
  CameraMode = 315,
  CharaNameReq = 317,
  HuntingLogDetails = 404,
  Timers = 427,
  DyeItem = 437,
  RequestChocoboInventory = 452,
  EmoteReq = 500,
  EmoteCancel = 502,
  PersistentEmoteCancel = 503,
  PoseChange = 505,
  PoseReapply = 506,
  PoseCancel = 507,
  AchievementCrit = 514,
  AchievementComp = 515,
  AchievementCatChat = 518,
  FishingBaitChange = 701,
  QuestJournalUpdateQuestVisibility = 702,
  QuestJournalClosed = 703,
  AbandonQuest = 800,
  DirectorInitFinish = 801,
  DirectorSync = 808,
  StartFate = 809,
  QueryFate = 810,
  ToggleFateSync = 813,
  EnterTerritoryEventFinished = 816,
  RequestInstanceLeave = 819,
  AchievementCritReq = 1000,
  AchievementList = 1001,
  SetEstateLightingLevel = 1035,
  RequestHousingBuildPreset = 1100,
  RequestEstateExteriorRemodel = 1101,
  RequestEstateInteriorRemodel = 1102,
  RequestEstateHallRemoval = 1103,
  RequestBuildPreset = 1104,
  RequestLandSignFree = 1105,
  RequestLandSignOwned = 1106,
  RequestWardLandInfo = 1107,
  RequestLandRelinquish = 1108,
  RequestLandInventory = 1112,
  RequestHousingItemRemove = 1113,
  RequestEstateRename = 1114,
  RequestEstateEditGreeting = 1115,
  RequestEstateGreeting = 1116,
  RequestEstateEditGuestAccessSettings = 1117,
  UpdateEstateGuestAccess = 1118,
  RequestEstateTagSettings = 1119,
  RequestEstateInventory = 1121,
  RequestHousingItemUI = 1123,
  RequestSharedEstateSettings = 1135,
  UpdateEstateLightingLevel = 1137,
  HousingItemSelectedInUI = 1150,
  CompanionAction = 1700,
  CompanionSetBarding = 1701,
  CompanionActionUnlock = 1702,
  OpenPerformInstrumentUI = 1820,
  StartReplay = 1980,
  EndReplay = 1981,
  OpenDuelUI = 2200,
  DuelRequestResult = 2201,
}
M.reverse.client_trigger_command_id = makeValString(M.forward.client_trigger_command_id)

M.forward.client_trigger_fish_bait_type = {
  Light = 6,
}
M.reverse.client_trigger_fish_bait_type = makeValString(M.forward.client_trigger_fish_bait_type)

M.forward.cfnotify_type = {
  Cancelled = 3,
  Matched = 4,
  Enter = 6,
}
M.reverse.cfnotify_type = makeValString(M.forward.cfnotify_type)

M.forward.content_finder_flags = {
  None = 0,
  InProgress = 2,
  Enter = 8192,
}
M.reverse.content_finder_flags = makeValString(M.forward.content_finder_flags)

M.forward.action_effect_type = {
  Nothing = 0,
  Miss = 1,
  FullResist = 2,
  Damage = 3,
  Heal = 4,
  BlockedDamage = 5,
  ParriedDamage = 6,
  Invulnerable = 7,
  NoEffectText = 8,
  Unknown_0 = 9,
  MpLoss = 10,
  MpGain = 11,
  TpLoss = 12,
  TpGain = 13,
  GpGain = 14,
  StartActionCombo = 28,
  Knockback = 33,
  Mount = 38,
  VFX = 59,
}
M.reverse.action_effect_type = makeValString(M.forward.action_effect_type)

M.forward.action_hit_severity_type = {
  NormalDamage = 0,
  CritHeal = 0,
  CritDamage = 1,
  NormalHeal = 1,
  DirectHitDamage = 2,
  CritDirectHitDamage = 3,
}
M.reverse.action_hit_severity_type = makeValString(M.forward.action_hit_severity_type)

M.forward.action_effect_display_type = {
  HideActionName = 0,
  ShowActionName = 1,
  ShowItemName = 2,
}
M.reverse.action_effect_display_type = makeValString(M.forward.action_effect_display_type)

M.forward.ensemble_assistant = {
  On = 1,
  Off = 0,
}
M.reverse.ensemble_assistant = makeValString(M.forward.ensemble_assistant)

M.forward.ensemble_assistant = {
  On = 1,
  Off = 0,
}
M.reverse.ensemble_assistant = makeValString(M.forward.ensemble_assistant)

M.forward.ensemble_assistant = {
  On = 1,
  Off = 0,
}
M.reverse.ensemble_assistant = makeValString(M.forward.ensemble_assistant)

M.forward.ensemble_assistant = {
  On = 1,
  Off = 0,
}
M.reverse.ensemble_assistant = makeValString(M.forward.ensemble_assistant)

M.forward.fish_event_type = {
  Cast = 1,
  Hook = 2,
  Finish = 3,
  Bite = 5,
}
M.reverse.fish_event_type = makeValString(M.forward.fish_event_type)

M.forward.group_message_type = {
  Linkshell = 2,
  FreeCompany = 3,
  NoviceNetwork = 4,
  Time = 333,
}
M.reverse.group_message_type = makeValString(M.forward.group_message_type)

M.forward.public_message_type = {
  Shout = 11,
  Yell = 30,
  Say = 10,
}
M.reverse.public_message_type = makeValString(M.forward.public_message_type)

M.forward.item_quality = {
  NormalQuality = 0,
  HighQuality = 1,
  Collectables = 8,
}
M.reverse.item_quality = makeValString(M.forward.item_quality)

M.forward.item_location = {
  Inventory0 = 0,
  Inventory1 = 1,
  Inventory2 = 2,
  Inventory3 = 3,
  ArmouryEquipped = 1000,
  Currency = 2000,
  Crystal = 2001,
  ArmouryOffHand = 3200,
  ArmouryHead = 3201,
  ArmouryBody = 3202,
  ArmouryHands = 3203,
  ArmouryWaist = 3204,
  ArmouryLegs = 3205,
  ArmouryFeet = 3206,
  ArmouryEars = 3207,
  ArmouryNeck = 3208,
  ArmouryWrists = 3209,
  ArmouryRightRing = 3210,
  ArmouryLeftRing = 3211,
  ArmouryRing = 3300,
  SoulCrystal = 3400,
  ArmouryMainHand = 3500,
  Saddlebag0 = 4000,
  Saddlebag1 = 4001,
}
M.reverse.item_location = makeValString(M.forward.item_location)

M.forward.item_armoury_position = {
  MainHand = 0,
  OffHand = 1,
  Head = 2,
  Body = 3,
  Hands = 4,
  Waist = 5,
  Legs = 6,
  Feet = 7,
  Ears = 8,
  Neck = 9,
  Wrists = 10,
  RightRing = 11,
  LeftRing = 12,
  SoulCrystal = 13,
}
M.reverse.item_armoury_position = makeValString(M.forward.item_armoury_position)

M.forward.item_quality = {
  NormalQuality = 0,
  HighQuality = 1,
  Collectables = 8,
}
M.reverse.item_quality = makeValString(M.forward.item_quality)

M.forward.item_location = {
  Inventory0 = 0,
  Inventory1 = 1,
  Inventory2 = 2,
  Inventory3 = 3,
  ArmouryEquipped = 1000,
  Currency = 2000,
  Crystal = 2001,
  ArmouryOffHand = 3200,
  ArmouryHead = 3201,
  ArmouryBody = 3202,
  ArmouryHands = 3203,
  ArmouryWaist = 3204,
  ArmouryLegs = 3205,
  ArmouryFeet = 3206,
  ArmouryEars = 3207,
  ArmouryNeck = 3208,
  ArmouryWrists = 3209,
  ArmouryRightRing = 3210,
  ArmouryLeftRing = 3211,
  ArmouryRing = 3300,
  SoulCrystal = 3400,
  ArmouryMainHand = 3500,
  Saddlebag0 = 4000,
  Saddlebag1 = 4001,
}
M.reverse.item_location = makeValString(M.forward.item_location)

M.forward.item_armoury_position = {
  MainHand = 0,
  OffHand = 1,
  Head = 2,
  Body = 3,
  Hands = 4,
  Waist = 5,
  Legs = 6,
  Feet = 7,
  Ears = 8,
  Neck = 9,
  Wrists = 10,
  RightRing = 11,
  LeftRing = 12,
  SoulCrystal = 13,
}
M.reverse.item_armoury_position = makeValString(M.forward.item_armoury_position)

return M
