mirror of
https://github.com/mrSkortch/MissionScriptingTools.git
synced 2025-08-15 10:47:23 +00:00
save some brackets and single quotes.
they are an endangered species 😁
This commit is contained in:
parent
1aa6948db4
commit
b10b56aa95
242
mist.lua
242
mist.lua
@ -40,6 +40,8 @@ mist.build = 61
|
||||
-- forward declaration of log shorthand
|
||||
local log
|
||||
|
||||
--- Functions
|
||||
-- @section mist
|
||||
do -- the main scope
|
||||
local coroutines = {}
|
||||
|
||||
@ -86,10 +88,10 @@ do -- the main scope
|
||||
local pos = unit:getPosition()
|
||||
local newtbl = ldeepcopy(lunits[i])
|
||||
if pos then
|
||||
newtbl['pos'] = pos.p
|
||||
newtbl.pos = pos.p
|
||||
end
|
||||
newtbl['unit'] = unit
|
||||
--newtbl['rt_id'] = unit.id_
|
||||
newtbl.unit = unit
|
||||
--newtbl.rt_id = unit.id_
|
||||
lalive_units[unit.id_] = newtbl
|
||||
updatedUnits[unit.id_] = true
|
||||
end
|
||||
@ -113,7 +115,7 @@ do -- the main scope
|
||||
local function dbUpdate(event)
|
||||
local newTable = {}
|
||||
|
||||
newTable['startTime'] = 0
|
||||
newTable.startTime = 0
|
||||
|
||||
if type(event) == 'string' then -- if name of an object.
|
||||
local newObject
|
||||
@ -146,11 +148,11 @@ do -- the main scope
|
||||
end
|
||||
for countryData, countryId in pairs(country.id) do
|
||||
if newTable.country and string.upper(countryData) == string.upper(newTable.country) or countryId == newTable.countryId then
|
||||
newTable['countryId'] = countryId
|
||||
newTable['country'] = string.lower(countryData)
|
||||
newTable.countryId = countryId
|
||||
newTable.country = string.lower(countryData)
|
||||
for coaData, coaId in pairs(coalition.side) do
|
||||
if coaId == coalition.getCountryCoalition(countryId) then
|
||||
newTable['coalition'] = string.lower(coaData)
|
||||
newTable.coalition = string.lower(coaData)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -158,11 +160,11 @@ do -- the main scope
|
||||
for catData, catId in pairs(Unit.Category) do
|
||||
if newType == 'group' and Group.getByName(newTable.groupName):isExist() then
|
||||
if catId == Group.getByName(newTable.groupName):getCategory() then
|
||||
newTable['category'] = string.lower(catData)
|
||||
newTable.category = string.lower(catData)
|
||||
end
|
||||
elseif newType == 'static' and StaticObject.getByName(newTable.groupName):isExist() then
|
||||
if catId == StaticObject.getByName(newTable.groupName):getCategory() then
|
||||
newTable['category'] = string.lower(catData)
|
||||
newTable.category = string.lower(catData)
|
||||
end
|
||||
|
||||
end
|
||||
@ -276,7 +278,7 @@ do -- the main scope
|
||||
end
|
||||
end
|
||||
--mist.debug.writeData(mist.utils.serialize,{'msg', newTable}, timer.getAbsTime() ..'Group.lua')
|
||||
newTable['timeAdded'] = timer.getAbsTime() -- only on the dynGroupsAdded table. For other reference, see start time
|
||||
newTable.timeAdded = timer.getAbsTime() -- only on the dynGroupsAdded table. For other reference, see start time
|
||||
--mist.debug.dumpDBs()
|
||||
--end
|
||||
|
||||
@ -369,18 +371,18 @@ do -- the main scope
|
||||
mistCategory = string.lower(newTable.category)
|
||||
end
|
||||
|
||||
if string.upper(newTable['category']) == 'GROUND_UNIT' then
|
||||
if string.upper(newTable.category) == 'GROUND_UNIT' then
|
||||
mistCategory = 'vehicle'
|
||||
newTable['category'] = mistCategory
|
||||
elseif string.upper(newTable['category']) == 'AIRPLANE' then
|
||||
newTable.category = mistCategory
|
||||
elseif string.upper(newTable.category) == 'AIRPLANE' then
|
||||
mistCategory = 'plane'
|
||||
newTable['category'] = mistCategory
|
||||
elseif string.upper(newTable['category']) == 'HELICOPTER' then
|
||||
newTable.category = mistCategory
|
||||
elseif string.upper(newTable.category) == 'HELICOPTER' then
|
||||
mistCategory = 'helicopter'
|
||||
newTable['category'] = mistCategory
|
||||
elseif string.upper(newTable['category']) == 'SHIP' then
|
||||
newTable.category = mistCategory
|
||||
elseif string.upper(newTable.category) == 'SHIP' then
|
||||
mistCategory = 'ship'
|
||||
newTable['category'] = mistCategory
|
||||
newTable.category = mistCategory
|
||||
end
|
||||
for newId, newUnitData in pairs(newTable.units) do
|
||||
newUnitData.category = mistCategory
|
||||
@ -399,7 +401,7 @@ do -- the main scope
|
||||
|
||||
if not mist.DBs.units[newTable.coalition][newTable.country] then
|
||||
mist.DBs.units[newTable.coalition][(newTable.country)] = {}
|
||||
mist.DBs.units[newTable.coalition][(newTable.country)]['countryId'] = newTable.countryId
|
||||
mist.DBs.units[newTable.coalition][(newTable.country)].countryId = newTable.countryId
|
||||
end
|
||||
if not mist.DBs.units[newTable.coalition][newTable.country][mistCategory] then
|
||||
mist.DBs.units[newTable.coalition][(newTable.country)][mistCategory] = {}
|
||||
@ -483,46 +485,46 @@ do -- the main scope
|
||||
|
||||
if mist.DBs.aliveUnits and mist.DBs.aliveUnits[val.object.id_] then
|
||||
log:info('object found in alive_units')
|
||||
val['objectData'] = mist.utils.deepCopy(mist.DBs.aliveUnits[val.object.id_])
|
||||
val.objectData = mist.utils.deepCopy(mist.DBs.aliveUnits[val.object.id_])
|
||||
local pos = Object.getPosition(val.object)
|
||||
if pos then
|
||||
val['objectPos'] = pos.p
|
||||
val.objectPos = pos.p
|
||||
end
|
||||
val['objectType'] = mist.DBs.aliveUnits[val.object.id_].category
|
||||
val.objectType = mist.DBs.aliveUnits[val.object.id_].category
|
||||
--[[if mist.DBs.activeHumans[Unit.getName(val.object)] then
|
||||
--trigger.action.outText('remove via death: ' .. Unit.getName(val.object),20)
|
||||
mist.DBs.activeHumans[Unit.getName(val.object)] = nil
|
||||
end]]
|
||||
elseif mist.DBs.removedAliveUnits and mist.DBs.removedAliveUnits[val.object.id_] then -- it didn't exist in alive_units, check old_alive_units
|
||||
log:info('object found in old_alive_units')
|
||||
val['objectData'] = mist.utils.deepCopy(mist.DBs.removedAliveUnits[val.object.id_])
|
||||
val.objectData = mist.utils.deepCopy(mist.DBs.removedAliveUnits[val.object.id_])
|
||||
local pos = Object.getPosition(val.object)
|
||||
if pos then
|
||||
val['objectPos'] = pos.p
|
||||
val.objectPos = pos.p
|
||||
end
|
||||
val['objectType'] = mist.DBs.removedAliveUnits[val.object.id_].category
|
||||
val.objectType = mist.DBs.removedAliveUnits[val.object.id_].category
|
||||
|
||||
else --attempt to determine if static object...
|
||||
log:info('object not found in alive units or old alive units')
|
||||
local pos = Object.getPosition(val.object)
|
||||
if pos then
|
||||
local static_found = false
|
||||
for ind, static in pairs(mist.DBs.unitsByCat['static']) do
|
||||
for ind, static in pairs(mist.DBs.unitsByCat.static) do
|
||||
if ((pos.p.x - static.point.x)^2 + (pos.p.z - static.point.y)^2)^0.5 < 0.1 then --really, it should be zero...
|
||||
log:info('correlated dead static object to position')
|
||||
val['objectData'] = static
|
||||
val['objectPos'] = pos.p
|
||||
val['objectType'] = 'static'
|
||||
val.objectData = static
|
||||
val.objectPos = pos.p
|
||||
val.objectType = 'static'
|
||||
static_found = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if not static_found then
|
||||
val['objectPos'] = pos.p
|
||||
val['objectType'] = 'building'
|
||||
val.objectPos = pos.p
|
||||
val.objectType = 'building'
|
||||
end
|
||||
else
|
||||
val['objectType'] = 'unknown'
|
||||
val.objectType = 'unknown'
|
||||
end
|
||||
end
|
||||
mist.DBs.deadObjects[id] = val
|
||||
@ -585,7 +587,7 @@ do -- the main scope
|
||||
write_DB_table_counter = 0
|
||||
|
||||
if not coroutines.updateDBTables then
|
||||
coroutines['updateDBTables'] = coroutine.create(updateDBTables)
|
||||
coroutines.updateDBTables = coroutine.create(updateDBTables)
|
||||
end
|
||||
|
||||
coroutine.resume(coroutines.updateDBTables)
|
||||
@ -601,7 +603,7 @@ do -- the main scope
|
||||
check_spawn_events_counter = 0
|
||||
|
||||
if not coroutines.checkSpawnedEvents then
|
||||
coroutines['checkSpawnedEvents'] = coroutine.create(checkSpawnedEvents)
|
||||
coroutines.checkSpawnedEvents = coroutine.create(checkSpawnedEvents)
|
||||
end
|
||||
|
||||
coroutine.resume(coroutines.checkSpawnedEvents)
|
||||
@ -617,7 +619,7 @@ do -- the main scope
|
||||
update_alive_units_counter = 0
|
||||
|
||||
if not coroutines.update_alive_units then
|
||||
coroutines['updateAliveUnits'] = coroutine.create(updateAliveUnits)
|
||||
coroutines.updateAliveUnits = coroutine.create(updateAliveUnits)
|
||||
end
|
||||
|
||||
coroutine.resume(coroutines.updateAliveUnits)
|
||||
@ -822,14 +824,14 @@ do -- the main scope
|
||||
end
|
||||
if newGroup.groupName or newGroup.name then
|
||||
if newGroup.groupName then
|
||||
newGroup['name'] = newGroup.groupName
|
||||
newGroup.name = newGroup.groupName
|
||||
elseif newGroup.name then
|
||||
newGroup['name'] = newGroup.name
|
||||
newGroup.name = newGroup.name
|
||||
end
|
||||
end
|
||||
|
||||
if newGroup.clone and mist.DBs.groupsByName[newGroup.name] or not newGroup.name then
|
||||
newGroup['name'] = tostring(tostring(country.name[cntry]) .. tostring(typeName) .. mistDynAddIndex)
|
||||
newGroup.name = tostring(tostring(country.name[cntry]) .. tostring(typeName) .. mistDynAddIndex)
|
||||
end
|
||||
|
||||
if not newGroup.hidden then
|
||||
@ -853,7 +855,7 @@ do -- the main scope
|
||||
local originalName = newGroup.units[unitIndex].unitName or newGroup.units[unitIndex].name
|
||||
if newGroup.clone or not unitData.unitId then
|
||||
mistUnitId = mistUnitId + 1
|
||||
newGroup.units[unitIndex]['unitId'] = mistUnitId
|
||||
newGroup.units[unitIndex].unitId = mistUnitId
|
||||
end
|
||||
if newGroup.units[unitIndex].unitName or newGroup.units[unitIndex].name then
|
||||
if newGroup.units[unitIndex].unitName then
|
||||
@ -1299,6 +1301,7 @@ do -- the main scope
|
||||
|
||||
--- Returns heading of given unit.
|
||||
-- @tparam Unit unit unit whose heading is returned.
|
||||
-- @param rawHeading
|
||||
-- @treturn number heading of the unit, in range
|
||||
-- of 0 to 2*pi.
|
||||
function mist.getHeading(unit, rawHeading)
|
||||
@ -1423,8 +1426,8 @@ do -- the main scope
|
||||
end
|
||||
end
|
||||
|
||||
function mist.makeUnitTable(tbl)
|
||||
--[[
|
||||
--[[--
|
||||
Returns a table containing unit names.
|
||||
Prefixes:
|
||||
"[-u]<unit name>" - subtract this unit if its in the table
|
||||
"[g]<group name>" - add this group to the table
|
||||
@ -1497,8 +1500,10 @@ do -- the main scope
|
||||
"South Osetia"
|
||||
"Abkhazia"
|
||||
"Italy"
|
||||
]]
|
||||
|
||||
@tparam table tbl sequential strings
|
||||
]]
|
||||
function mist.makeUnitTable(tbl)
|
||||
--Assumption: will be passed a table of strings, sequential
|
||||
local units_by_name = {}
|
||||
|
||||
@ -1796,7 +1801,7 @@ do -- the main scope
|
||||
end
|
||||
|
||||
|
||||
units_tbl['processed'] = timer.getTime() --add the processed flag
|
||||
units_tbl.processed = timer.getTime() --add the processed flag
|
||||
return units_tbl
|
||||
end
|
||||
|
||||
@ -2032,11 +2037,11 @@ function mist.getUnitsLOS(unitset1, altoffset1, unitset2, altoffset2, radius)
|
||||
if unit_added == false then
|
||||
unit_added = true
|
||||
LOS_data[#LOS_data + 1] = {}
|
||||
LOS_data[#LOS_data]['unit'] = unit_info1[unit1_ind].unit
|
||||
LOS_data[#LOS_data]['vis'] = {}
|
||||
LOS_data[#LOS_data]['vis'][#LOS_data[#LOS_data]['vis'] + 1] = unit_info2[unit2_ind].unit
|
||||
LOS_data[#LOS_data].unit = unit_info1[unit1_ind].unit
|
||||
LOS_data[#LOS_data].vis = {}
|
||||
LOS_data[#LOS_data].vis[#LOS_data[#LOS_data].vis + 1] = unit_info2[unit2_ind].unit
|
||||
else
|
||||
LOS_data[#LOS_data]['vis'][#LOS_data[#LOS_data]['vis'] + 1] = unit_info2[unit2_ind].unit
|
||||
LOS_data[#LOS_data].vis[#LOS_data[#LOS_data].vis + 1] = unit_info2[unit2_ind].unit
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -2325,18 +2330,18 @@ do -- group functions scope
|
||||
for unitNum, unitData in pairs(newGroup:getUnits()) do
|
||||
newData.units[unitNum] = {}
|
||||
newData.units[unitNum]["unitId"] = tonumber(unitData:getID())
|
||||
newData.units[unitNum]['point'] = unitData.point
|
||||
newData.units[unitNum]['x'] = unitData:getPosition().p.x
|
||||
newData.units[unitNum]['y'] = unitData:getPosition().p.z
|
||||
newData.units[unitNum].point = unitData.point
|
||||
newData.units[unitNum].x = unitData:getPosition().p.x
|
||||
newData.units[unitNum].y = unitData:getPosition().p.z
|
||||
newData.units[unitNum]["type"] = unitData:getTypeName()
|
||||
newData.units[unitNum]["skill"] = mist.getUnitSkill(unitData:getName())
|
||||
|
||||
-- get velocity needed
|
||||
newData.units[unitNum]["unitName"] = unitData:getName()
|
||||
newData.units[unitNum]["heading"] = mist.getHeading(unitData, true) -- added to DBs
|
||||
newData.units[unitNum]['alt'] = unitData:getPosition().p.y
|
||||
newData.units[unitNum].alt = unitData:getPosition().p.y
|
||||
newData.country = string.lower(country.name[unitData:getCountry()])
|
||||
newData.units[unitNum]['callsign'] = unitData:getCallsign()
|
||||
newData.units[unitNum].callsign = unitData:getCallsign()
|
||||
end
|
||||
|
||||
return newData
|
||||
@ -2382,12 +2387,12 @@ do -- group functions scope
|
||||
newData.units[unitNum] = {}
|
||||
|
||||
newData.units[unitNum]["unitId"] = unitData.unitId
|
||||
--newData.units[unitNum]['point'] = unitData.point
|
||||
newData.units[unitNum]['x'] = unitData.point.x
|
||||
newData.units[unitNum]['y'] = unitData.point.y
|
||||
newData.units[unitNum]['alt'] = unitData.alt
|
||||
newData.units[unitNum]['alt_type'] = unitData.alt_type
|
||||
newData.units[unitNum]['speed'] = unitData.speed
|
||||
--newData.units[unitNum].point = unitData.point
|
||||
newData.units[unitNum].x = unitData.point.x
|
||||
newData.units[unitNum].y = unitData.point.y
|
||||
newData.units[unitNum].alt = unitData.alt
|
||||
newData.units[unitNum].alt_type = unitData.alt_type
|
||||
newData.units[unitNum].speed = unitData.speed
|
||||
newData.units[unitNum]["type"] = unitData.type
|
||||
newData.units[unitNum]["skill"] = unitData.skill
|
||||
newData.units[unitNum]["unitName"] = unitData.unitName
|
||||
@ -2397,16 +2402,16 @@ do -- group functions scope
|
||||
|
||||
if newData.category == 'plane' or newData.category == 'helicopter' then
|
||||
newData.units[unitNum]["payload"] = payloads[unitNum]
|
||||
newData.units[unitNum]['livery_id'] = unitData.livery_id
|
||||
newData.units[unitNum]['onboard_num'] = unitData.onboard_num
|
||||
newData.units[unitNum]['callsign'] = unitData.callsign
|
||||
newData.units[unitNum]['AddPropAircraft'] = unitData.AddPropAircraft
|
||||
newData.units[unitNum].livery_id = unitData.livery_id
|
||||
newData.units[unitNum].onboard_num = unitData.onboard_num
|
||||
newData.units[unitNum].callsign = unitData.callsign
|
||||
newData.units[unitNum].AddPropAircraft = unitData.AddPropAircraft
|
||||
end
|
||||
if newData.category == 'static' then
|
||||
newData.units[unitNum]['categoryStatic'] = unitData.categoryStatic
|
||||
newData.units[unitNum]['mass'] = unitData.mass
|
||||
newData.units[unitNum]['canCargo'] = unitData.canCargo
|
||||
newData.units[unitNum]['shape_name'] = unitData.shape_name
|
||||
newData.units[unitNum].categoryStatic = unitData.categoryStatic
|
||||
newData.units[unitNum].mass = unitData.mass
|
||||
newData.units[unitNum].canCargo = unitData.canCargo
|
||||
newData.units[unitNum].shape_name = unitData.shape_name
|
||||
end
|
||||
end
|
||||
|
||||
@ -2543,7 +2548,7 @@ do -- group functions scope
|
||||
newGroupData = vars.groupData
|
||||
end
|
||||
|
||||
local diff = {['x'] = 0, ['y'] = 0}
|
||||
local diff = {x = 0, y = 0}
|
||||
local newCoord, origCoord
|
||||
if point then
|
||||
local valid = false
|
||||
@ -2561,7 +2566,7 @@ do -- group functions scope
|
||||
newCoord = mist.getRandPointInCircle(point, radius, innerRadius)
|
||||
if mist.isTerrainValid(newCoord, validTerrain) then
|
||||
origCoord = mist.utils.deepCopy(newCoord)
|
||||
diff = {['x'] = (newCoord.x - newGroupData.units[1].x), ['y'] = (newCoord.y - newGroupData.units[1].y)}
|
||||
diff = {x = (newCoord.x - newGroupData.units[1].x), y = (newCoord.y - newGroupData.units[1].y)}
|
||||
valid = true
|
||||
break
|
||||
end
|
||||
@ -2586,8 +2591,8 @@ do -- group functions scope
|
||||
--newCoord = mist.getRandPointInCircle(zone.point, zone.radius)
|
||||
end
|
||||
|
||||
newGroupData.units[unitNum]['x'] = newCoord.x
|
||||
newGroupData.units[unitNum]['y'] = newCoord.y
|
||||
newGroupData.units[unitNum].x = newCoord.x
|
||||
newGroupData.units[unitNum].y = newCoord.y
|
||||
else
|
||||
newGroupData.units[unitNum]["x"] = unitData.x + diff.x
|
||||
newGroupData.units[unitNum]["y"] = unitData.y + diff.y
|
||||
@ -4560,12 +4565,12 @@ do -- mist.msg scope
|
||||
------- new display
|
||||
|
||||
if caSlots == true and caMSGtoGroup == false then
|
||||
if msgTableText['RED'] then
|
||||
trigger.action.outTextForCoalition(coalition.side.RED, table.concat(msgTableText['RED'].text), msgTableText['RED'].displayTime, true)
|
||||
if msgTableText.RED then
|
||||
trigger.action.outTextForCoalition(coalition.side.RED, table.concat(msgTableText.RED.text), msgTableText.RED.displayTime, true)
|
||||
|
||||
end
|
||||
if msgTableText['BLUE'] then
|
||||
trigger.action.outTextForCoalition(coalition.side.BLUE, table.concat(msgTableText['BLUE'].text), msgTableText['BLUE'].displayTime, true)
|
||||
if msgTableText.BLUE then
|
||||
trigger.action.outTextForCoalition(coalition.side.BLUE, table.concat(msgTableText.BLUE.text), msgTableText.BLUE.displayTime, true)
|
||||
end
|
||||
end
|
||||
|
||||
@ -4575,11 +4580,11 @@ do -- mist.msg scope
|
||||
end
|
||||
end
|
||||
--- new audio
|
||||
if msgTableSound['RED'] then
|
||||
trigger.action.outSoundForCoalition(coalition.side.RED, msgTableSound['RED'])
|
||||
if msgTableSound.RED then
|
||||
trigger.action.outSoundForCoalition(coalition.side.RED, msgTableSound.RED)
|
||||
end
|
||||
if msgTableSound['BLUE'] then
|
||||
trigger.action.outSoundForCoalition(coalition.side.BLUE, msgTableSound['BLUE'])
|
||||
if msgTableSound.BLUE then
|
||||
trigger.action.outSoundForCoalition(coalition.side.BLUE, msgTableSound.BLUE)
|
||||
end
|
||||
|
||||
|
||||
@ -5836,11 +5841,11 @@ do -- group tasks scope
|
||||
|
||||
|
||||
if useRoads == true and ((point.x - posStart.x)^2 + (point.z - posStart.z)^2)^0.5 > radius * 1.3 then
|
||||
path[#path + 1] = mist.ground.buildWP({['x'] = posStart.x + 11, ['z'] = posStart.z + 11}, 'off_road', speed)
|
||||
path[#path + 1] = mist.ground.buildWP({x = posStart.x + 11, z = posStart.z + 11}, 'off_road', speed)
|
||||
path[#path + 1] = mist.ground.buildWP(posStart, 'on_road', speed)
|
||||
path[#path + 1] = mist.ground.buildWP(offset, 'on_road', speed)
|
||||
else
|
||||
path[#path + 1] = mist.ground.buildWP({['x'] = posStart.x + 25, ['z'] = posStart.z + 25}, form, speed)
|
||||
path[#path + 1] = mist.ground.buildWP({x = posStart.x + 25, z = posStart.z + 25}, form, speed)
|
||||
end
|
||||
|
||||
path[#path + 1] = mist.ground.buildWP(offset, form, speed)
|
||||
@ -6007,20 +6012,21 @@ do -- mist.DBs scope
|
||||
mist.DBs.missionData = {}
|
||||
if env.mission then
|
||||
|
||||
mist.DBs.missionData['startTime'] = env.mission.start_time
|
||||
mist.DBs.missionData['theatre'] = env.mission.theatre
|
||||
mist.DBs.missionData['version'] = env.mission.version
|
||||
mist.DBs.missionData['files'] = {}
|
||||
mist.DBs.missionData.startTime = env.mission.start_time
|
||||
mist.DBs.missionData.theatre = env.mission.theatre
|
||||
mist.DBs.missionData.version = env.mission.version
|
||||
mist.DBs.missionData.files = {}
|
||||
if type(env.mission.resourceCounter) == 'table' then
|
||||
for fIndex, fData in pairs (env.mission.resourceCounter) do
|
||||
mist.DBs.missionData.files[#mist.DBs.missionData.files + 1] = mist.utils.deepCopy(fIndex)
|
||||
end
|
||||
end
|
||||
mist.DBs.missionData['bullseye'] = {['red'] = {}, ['blue'] = {}} -- if we add more coalition specific data then bullsye should be categorized by coaliton. For now its just the bullseye table
|
||||
mist.DBs.missionData.bullseye.red['x'] = env.mission.coalition.red.bullseye.x --should it be point.x?
|
||||
mist.DBs.missionData.bullseye.red['y'] = env.mission.coalition.red.bullseye.y
|
||||
mist.DBs.missionData.bullseye.blue['x'] = env.mission.coalition.blue.bullseye.x
|
||||
mist.DBs.missionData.bullseye.blue['y'] = env.mission.coalition.blue.bullseye.y
|
||||
-- if we add more coalition specific data then bullsye should be categorized by coaliton. For now its just the bullseye table
|
||||
mist.DBs.missionData.bullseye = {red = {}, blue = {}}
|
||||
mist.DBs.missionData.bullseye.red.x = env.mission.coalition.red.bullseye.x --should it be point.x?
|
||||
mist.DBs.missionData.bullseye.red.y = env.mission.coalition.red.bullseye.y
|
||||
mist.DBs.missionData.bullseye.blue.x = env.mission.coalition.blue.bullseye.x
|
||||
mist.DBs.missionData.bullseye.blue.y = env.mission.coalition.blue.bullseye.y
|
||||
end
|
||||
|
||||
mist.DBs.zonesByName = {}
|
||||
@ -6031,10 +6037,10 @@ do -- mist.DBs scope
|
||||
for zone_ind, zone_data in pairs(env.mission.triggers.zones) do
|
||||
if type(zone_data) == 'table' then
|
||||
local zone = mist.utils.deepCopy(zone_data)
|
||||
zone['point'] = {} -- point is used by SSE
|
||||
zone['point']['x'] = zone_data.x
|
||||
zone['point']['y'] = 0
|
||||
zone['point']['z'] = zone_data.y
|
||||
zone.point = {} -- point is used by SSE
|
||||
zone.point.x = zone_data.x
|
||||
zone.point.y = 0
|
||||
zone.point.z = zone_data.y
|
||||
|
||||
mist.DBs.zonesByName[zone_data.name] = zone
|
||||
mist.DBs.zonesByNum[#mist.DBs.zonesByNum + 1] = mist.utils.deepCopy(zone) --[[deepcopy so that the zone in zones_by_name and the zone in
|
||||
@ -6060,11 +6066,11 @@ do -- mist.DBs scope
|
||||
if type(nav_data) == 'table' then
|
||||
mist.DBs.navPoints[coa_name][nav_ind] = mist.utils.deepCopy(nav_data)
|
||||
|
||||
mist.DBs.navPoints[coa_name][nav_ind]['name'] = nav_data.callsignStr -- name is a little bit more self-explanatory.
|
||||
mist.DBs.navPoints[coa_name][nav_ind]['point'] = {} -- point is used by SSE, support it.
|
||||
mist.DBs.navPoints[coa_name][nav_ind]['point']['x'] = nav_data.x
|
||||
mist.DBs.navPoints[coa_name][nav_ind]['point']['y'] = 0
|
||||
mist.DBs.navPoints[coa_name][nav_ind]['point']['z'] = nav_data.y
|
||||
mist.DBs.navPoints[coa_name][nav_ind].name = nav_data.callsignStr -- name is a little bit more self-explanatory.
|
||||
mist.DBs.navPoints[coa_name][nav_ind].point = {} -- point is used by SSE, support it.
|
||||
mist.DBs.navPoints[coa_name][nav_ind].point.x = nav_data.x
|
||||
mist.DBs.navPoints[coa_name][nav_ind].point.y = 0
|
||||
mist.DBs.navPoints[coa_name][nav_ind].point.z = nav_data.y
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -6142,8 +6148,8 @@ do -- mist.DBs scope
|
||||
units_tbl[unit_num]["point"]["x"] = unit_data.x
|
||||
units_tbl[unit_num]["point"]["y"] = unit_data.y
|
||||
end
|
||||
units_tbl[unit_num]['x'] = unit_data.x
|
||||
units_tbl[unit_num]['y'] = unit_data.y
|
||||
units_tbl[unit_num].x = unit_data.x
|
||||
units_tbl[unit_num].y = unit_data.y
|
||||
|
||||
units_tbl[unit_num]["callsign"] = unit_data.callsign
|
||||
units_tbl[unit_num]["onboard_num"] = unit_data.onboard_num
|
||||
@ -6186,11 +6192,11 @@ do -- mist.DBs scope
|
||||
mist.DBs.unitsById = {}
|
||||
mist.DBs.unitsByCat = {}
|
||||
|
||||
mist.DBs.unitsByCat['helicopter'] = {} -- adding default categories
|
||||
mist.DBs.unitsByCat['plane'] = {}
|
||||
mist.DBs.unitsByCat['ship'] = {}
|
||||
mist.DBs.unitsByCat['static'] = {}
|
||||
mist.DBs.unitsByCat['vehicle'] = {}
|
||||
mist.DBs.unitsByCat.helicopter = {} -- adding default categories
|
||||
mist.DBs.unitsByCat.plane = {}
|
||||
mist.DBs.unitsByCat.ship = {}
|
||||
mist.DBs.unitsByCat.static = {}
|
||||
mist.DBs.unitsByCat.vehicle = {}
|
||||
|
||||
mist.DBs.unitsByNum = {}
|
||||
|
||||
@ -6350,43 +6356,43 @@ do
|
||||
|
||||
if mist.DBs.aliveUnits and mist.DBs.aliveUnits[val.object.id_] then
|
||||
log:info('object found in alive_units')
|
||||
val['objectData'] = mist.utils.deepCopy(mist.DBs.aliveUnits[val.object.id_])
|
||||
val.objectData = mist.utils.deepCopy(mist.DBs.aliveUnits[val.object.id_])
|
||||
local pos = Object.getPosition(val.object)
|
||||
if pos then
|
||||
val['objectPos'] = pos.p
|
||||
val.objectPos = pos.p
|
||||
end
|
||||
val['objectType'] = mist.DBs.aliveUnits[val.object.id_].category
|
||||
val.objectType = mist.DBs.aliveUnits[val.object.id_].category
|
||||
|
||||
elseif mist.DBs.removedAliveUnits and mist.DBs.removedAliveUnits[val.object.id_] then -- it didn't exist in alive_units, check old_alive_units
|
||||
log:info('object found in old_alive_units')
|
||||
val['objectData'] = mist.utils.deepCopy(mist.DBs.removedAliveUnits[val.object.id_])
|
||||
val.objectData = mist.utils.deepCopy(mist.DBs.removedAliveUnits[val.object.id_])
|
||||
local pos = Object.getPosition(val.object)
|
||||
if pos then
|
||||
val['objectPos'] = pos.p
|
||||
val.objectPos = pos.p
|
||||
end
|
||||
val['objectType'] = mist.DBs.removedAliveUnits[val.object.id_].category
|
||||
val.objectType = mist.DBs.removedAliveUnits[val.object.id_].category
|
||||
|
||||
else --attempt to determine if static object...
|
||||
log:info('object not found in alive units or old alive units')
|
||||
local pos = Object.getPosition(val.object)
|
||||
if pos then
|
||||
local static_found = false
|
||||
for ind, static in pairs(mist.DBs.unitsByCat['static']) do
|
||||
for ind, static in pairs(mist.DBs.unitsByCat.static) do
|
||||
if ((pos.p.x - static.point.x)^2 + (pos.p.z - static.point.y)^2)^0.5 < 0.1 then --really, it should be zero...
|
||||
log:info('correlated dead static object to position')
|
||||
val['objectData'] = static
|
||||
val['objectPos'] = pos.p
|
||||
val['objectType'] = 'static'
|
||||
val.objectData = static
|
||||
val.objectPos = pos.p
|
||||
val.objectType = 'static'
|
||||
static_found = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if not static_found then
|
||||
val['objectPos'] = pos.p
|
||||
val['objectType'] = 'building'
|
||||
val.objectPos = pos.p
|
||||
val.objectType = 'building'
|
||||
end
|
||||
else
|
||||
val['objectType'] = 'unknown'
|
||||
val.objectType = 'unknown'
|
||||
end
|
||||
end
|
||||
rawset(t, key, val)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user