local mvec3_set = mvector3.set
local mvec3_sub = mvector3.subtract
local mvec3_dir = mvector3.direction
local mvec3_dot = mvector3.dot
local mvec3_dis_sq = mvector3.distance_sq
local t_rem = table.remove
local t_ins = table.insert
local tmp_vec1 = Vector3()
local tmp_vec2 = Vector3()


function EnemyManager:_init_enemy_data()
	local enemy_data = {}
	self._enemy_data = enemy_data
	enemy_data.unit_data = {}
	enemy_data.nr_units = 0
	enemy_data.nr_active_units = 0
	enemy_data.nr_inactive_units = 0
	enemy_data.inactive_units = {}
	enemy_data.max_nr_active_units = 150
	enemy_data.corpses = {}
	enemy_data.nr_corpses = 0
	enemy_data.shields = {}
	enemy_data.nr_shields = 0
	self._fast_shield_disposal = false
	self._civilian_data = {
		unit_data = {}
	}
	local tick_rate = tweak_data.group_ai.ai_tick_rate
	self._tick_rate = tick_rate
	self._queue_buffer = tick_rate
	self._queued_tasks = {}
	self._queued_task_executed = false
	self._delayed_clbks = {}
	local gfx_lod_data = {}
	self._gfx_lod_data = gfx_lod_data
	gfx_lod_data.enabled = true
	gfx_lod_data.prio_i = {}
	gfx_lod_data.prio_weights = {}
	gfx_lod_data.next_chk_prio_i = 1
	local lod_entries = {}
	gfx_lod_data.entries = lod_entries
	lod_entries.units = {}
	lod_entries.states = {}
	lod_entries.move_ext = {}
	lod_entries.trackers = {}
	lod_entries.com = {}
	self._corpses_to_detach = {}
	self._corpse_disposal_enabled = 0
end
