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

local db = require('ffxiv_db')
local ffxiv_ipc_content_finder_notify_pop = Proto("ffxiv_ipc_content_finder_notify_pop", "FFXIV-IPC Content Finder Notify Pop")

local content_finder_notify_pop_fields = {
  unknown1       = ProtoField.uint16("ffxiv_ipc_content_finder_notify_pop.unknown1", "Unknown1", base.DEC),
  roulette       = ProtoField.uint16("ffxiv_ipc_content_finder_notify_pop.roulette", "Roulette", base.DEC),
  flags          = ProtoField.uint32("ffxiv_ipc_content_finder_notify_pop.flags", "Flags", base.DEC),
  unknown3       = ProtoField.uint32("ffxiv_ipc_content_finder_notify_pop.unknown3", "Unknown3", base.DEC),
  unknown4       = ProtoField.uint32("ffxiv_ipc_content_finder_notify_pop.unknown4", "Unknown4", base.DEC),
  unknown5       = ProtoField.uint32("ffxiv_ipc_content_finder_notify_pop.unknown5", "Unknown5", base.DEC),
  content        = ProtoField.uint16("ffxiv_ipc_content_finder_notify_pop.content", "Content", base.DEC, db.ContentFinderCondition),
  unknown6       = ProtoField.uint16("ffxiv_ipc_content_finder_notify_pop.unknown6", "Unknown6", base.DEC),
  unknown7       = ProtoField.uint8("ffxiv_ipc_content_finder_notify_pop.unknown7", "Unknown7", base.DEC),
  require_tank   = ProtoField.uint8("ffxiv_ipc_content_finder_notify_pop.require_tank", "RequireTank", base.DEC),
  unknown8       = ProtoField.uint8("ffxiv_ipc_content_finder_notify_pop.unknown8", "Unknown8", base.DEC),
  require_health = ProtoField.uint8("ffxiv_ipc_content_finder_notify_pop.require_health", "RequireHealth", base.DEC),
  unknown9       = ProtoField.uint8("ffxiv_ipc_content_finder_notify_pop.unknown9", "Unknown9", base.DEC),
  require_dps    = ProtoField.uint8("ffxiv_ipc_content_finder_notify_pop.require_dps", "RequireDPS", base.DEC),
  unknown10      = ProtoField.uint16("ffxiv_ipc_content_finder_notify_pop.unknown10", "Unknown10", base.DEC),
}

ffxiv_ipc_content_finder_notify_pop.fields = content_finder_notify_pop_fields

function ffxiv_ipc_content_finder_notify_pop.dissector(tvbuf, pktinfo, root)
  local tree = root:add(ffxiv_ipc_content_finder_notify_pop, tvbuf)
  pktinfo.cols.info:set("Content Finder Notify Pop")

  local len = tvbuf:len()

  -- dissect the unknown1 field
  local unknown1_tvbr = tvbuf:range(0, 2)
  local unknown1_val  = unknown1_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.unknown1, unknown1_tvbr, unknown1_val)

  -- dissect the roulette field
  local roulette_tvbr = tvbuf:range(2, 2)
  local roulette_val  = roulette_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.roulette, roulette_tvbr, roulette_val)

  -- dissect the flags field
  local flags_tvbr = tvbuf:range(4, 4)
  local flags_val  = flags_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.flags, flags_tvbr, flags_val)

  -- dissect the unknown3 field
  local unknown3_tvbr = tvbuf:range(8, 4)
  local unknown3_val  = unknown3_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.unknown3, unknown3_tvbr, unknown3_val)

  -- dissect the unknown4 field
  local unknown4_tvbr = tvbuf:range(12, 4)
  local unknown4_val  = unknown4_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.unknown4, unknown4_tvbr, unknown4_val)

  -- dissect the unknown5 field
  local unknown5_tvbr = tvbuf:range(16, 4)
  local unknown5_val  = unknown5_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.unknown5, unknown5_tvbr, unknown5_val)

  -- dissect the content field
  local content_tvbr = tvbuf:range(20, 2)
  local content_val  = content_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.content, content_tvbr, content_val)

  -- dissect the unknown6 field
  local unknown6_tvbr = tvbuf:range(22, 2)
  local unknown6_val  = unknown6_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.unknown6, unknown6_tvbr, unknown6_val)

  -- dissect the unknown7 field
  local unknown7_tvbr = tvbuf:range(24, 1)
  local unknown7_val  = unknown7_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.unknown7, unknown7_tvbr, unknown7_val)

  -- dissect the require_tank field
  local require_tank_tvbr = tvbuf:range(25, 1)
  local require_tank_val  = require_tank_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.require_tank, require_tank_tvbr, require_tank_val)

  -- dissect the unknown8 field
  local unknown8_tvbr = tvbuf:range(26, 1)
  local unknown8_val  = unknown8_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.unknown8, unknown8_tvbr, unknown8_val)

  -- dissect the require_health field
  local require_health_tvbr = tvbuf:range(27, 1)
  local require_health_val  = require_health_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.require_health, require_health_tvbr, require_health_val)

  -- dissect the unknown9 field
  local unknown9_tvbr = tvbuf:range(28, 1)
  local unknown9_val  = unknown9_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.unknown9, unknown9_tvbr, unknown9_val)

  -- dissect the require_dps field
  local require_dps_tvbr = tvbuf:range(29, 1)
  local require_dps_val  = require_dps_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.require_dps, require_dps_tvbr, require_dps_val)

  -- dissect the unknown10 field
  local unknown10_tvbr = tvbuf:range(30, 2)
  local unknown10_val  = unknown10_tvbr:le_uint()
  tree:add_le(content_finder_notify_pop_fields.unknown10, unknown10_tvbr, unknown10_val)

  return len
end