diff --git a/mist.lua b/mist.lua index abc9cdf..3efb010 100644 --- a/mist.lua +++ b/mist.lua @@ -398,7 +398,7 @@ do local check_spawn_events_counter = 0 -- THE MAIN FUNCTION -- Accessed 100 times/sec. - mist.main = function() + function mist.main() timer.scheduleFunction(mist.main, {}, timer.getTime() + 0.01) --reschedule first in case of Lua error --area to add new stuff in write_DB_table_counter = write_DB_table_counter + 1 @@ -451,16 +451,16 @@ do mist.do_scheduled_functions() end -- end of mist.main + -- mist dyn add stuff for coroutines local mistGpId = 7000 local mistUnitId = 7000 local mistDynAddIndex = 1 - mist.nextGroupId = 1 mist.nextUnitId = 1 - mist.getNextUnitId = function() + function mist.getNextUnitId() mist.nextUnitId = mist.nextUnitId + 1 if mist.nextUnitId > 6900 then mist.nextUnitId = 14000 @@ -468,7 +468,7 @@ do return mist.nextUnitId end - mist.getNextGroupId = function() + function mist.getNextGroupId() mist.nextGroupId = mist.nextGroupId + 1 if mist.nextGroupId > 6900 then mist.nextGroupId = 14000 @@ -476,7 +476,7 @@ do return mist.nextGroupId end - mist.getLastDBUpdateTime = function() + function mist.getLastDBUpdateTime() return lastUpdateTime end @@ -490,7 +490,7 @@ do - mist.dynAddStatic = function(staticObj) + function mist.dynAddStatic(staticObj) local newObj = {} newObj.groupId = staticObj.groupId newObj.category = staticObj.category @@ -586,7 +586,7 @@ do -- same as coalition.add function in SSE. checks the passed data to see if its valid. -- Will generate groupId, groupName, unitId, and unitName if needed - mist.dynAdd = function(newGroup) + function mist.dynAdd(newGroup) --mist.debug.writeData(mist.utils.serialize,{'msg', newGroup}, 'newGroupOrig.lua') local cntry = newGroup.country @@ -778,7 +778,7 @@ do rep - time between repetitions of this function (OPTIONAL) st - time when repetitions of this function will stop automatically (OPTIONAL) ]] - mist.scheduleFunction = function(f, vars, t, rep, st) + function mist.scheduleFunction(f, vars, t, rep, st) --verify correct types assert(type(f) == 'function', 'variable 1, expected function, got ' .. type(f)) assert(type(vars) == 'table' or vars == nil, 'variable 2, expected table or nil, got ' .. type(f)) @@ -794,7 +794,7 @@ do end -- removes a scheduled function based on the function's id. returns true if successful, false if not successful. - mist.removeFunction = function(id) + function mist.removeFunction(id) local i = 1 while i <= #Tasks do if Tasks[i].id == id then @@ -806,7 +806,7 @@ do end -- not intended for users to use this function. - mist.do_scheduled_functions = function() + function mist.do_scheduled_functions() local i = 1 while i <= #Tasks do if not Tasks[i].rep then -- not a repeated process @@ -845,19 +845,19 @@ do local idNum = 0 -- Simplified event handler - mist.addEventHandler = function(f) --id is optional! + function mist.addEventHandler(f) --id is optional! local handler = {} idNum = idNum + 1 handler.id = idNum handler.f = f - handler.onEvent = function(self, event) + local function handler.onEvent(self, event) self.f(event) end world.addEventHandler(handler) return handler.id end - mist.removeEventHandler = function(id) + function mist.removeEventHandler(id) for key, handler in pairs(world.eventHandlers) do if handler.id and handler.id == id then world.eventHandlers[key] = nil @@ -875,43 +875,43 @@ end -- Utils- conversion, Lua utils, etc. mist.utils = {} -mist.utils.toDegree = function(angle) +function mist.utils.toDegree (angle) return angle*180/math.pi end -mist.utils.toRadian = function(angle) +function mist.utils.toRadian (angle) return angle*math.pi/180 end -mist.utils.metersToNM = function(meters) +function mist.utils.metersToNM (meters) return meters/1852 end -mist.utils.metersToFeet = function(meters) +function mist.utils.metersToFeet (meters) return meters/0.3048 end -mist.utils.NMToMeters = function(NM) +function mist.utils.NMToMeters (NM) return NM*1852 end -mist.utils.feetToMeters = function(feet) +function mist.utils.feetToMeters (feet) return feet*0.3048 end -mist.utils.mpsToKnots = function(mps) +function mist.utils.mpsToKnots (mps) return mps*3600/1852 end -mist.utils.mpsToKmph = function(mps) +function mist.utils.mpsToKmph (mps) return mps*3.6 end -mist.utils.knotsToMps = function(knots) +function mist.utils.knotsToMps (knots) return knots*1852/3600 end -mist.utils.kmphToMps = function(kmph) +function mist.utils.kmphToMps (kmph) return kmph/3.6 end @@ -946,7 +946,7 @@ function mist.utils.makeVec3GL(Vec2, offset) end end -mist.utils.zoneToVec3 = function(zone) +function mist.utils.zoneToVec3 (zone) local new = {} if type(zone) == 'table' and zone.point then new.x = zone.point.x @@ -1020,7 +1020,7 @@ end --from http://lua-users.org/wiki/CopyTable -mist.utils.deepCopy = function(object) +function mist.utils.deepCopy(object) local lookup_table = {} local function _copy(object) if type(object) ~= "table" then @@ -1040,12 +1040,12 @@ end -- From http://lua-users.org/wiki/SimpleRound -- use negative idp for rounding ahead of decimal place, positive for rounding after decimal place -mist.utils.round = function(num, idp) +function mist.utils.round(num, idp) local mult = 10^(idp or 0) return math.floor(num * mult + 0.5) / mult end -mist.utils.roundTbl = function(tbl, idp) +function mist.utils.roundTbl(tbl, idp) for id, val in pairs(tbl) do if type(val) == 'number' then tbl[id] = mist.utils.round(val, idp) @@ -1055,7 +1055,7 @@ mist.utils.roundTbl = function(tbl, idp) end -- porting in Slmod's dostring -mist.utils.dostring = function(s) +function mist.utils.dostring(s) local f, err = loadstring(s) if f then return true, f() @@ -1146,7 +1146,7 @@ function mist.utils.typeCheck(fname, type_tbl, var_tbl) end --porting in Slmod's "safestring" basic serialize -mist.utils.basicSerialize = function(s) +function mist.utils.basicSerialize(s) if s == nil then return "\"\"" else @@ -1160,9 +1160,9 @@ mist.utils.basicSerialize = function(s) end --porting in Slmod's serialize_slmod -mist.utils.serialize = function(name, value, level) +function mist.utils.serialize(name, value, level) --Based on ED's serialize_simple2 - local basicSerialize = function (o) + local function basicSerialize(o) if type(o) == "number" then return tostring(o) elseif type(o) == "boolean" then @@ -1172,7 +1172,7 @@ mist.utils.serialize = function(name, value, level) end end - local serialize_to_t = function (name, value, level) + local function serialize_to_t(name, value, level) local var_str_tbl = {} if level == nil then level = "" end if level ~= "" then level = level.." " end @@ -1214,9 +1214,9 @@ mist.utils.serialize = function(name, value, level) end -- porting in slmod's serialize_wcycles -mist.utils.serializeWithCycles = function(name, value, saved) +function mist.utils.serializeWithCycles(name, value, saved) --mostly straight out of Programming in Lua - local basicSerialize = function (o) + local function basicSerialize(o) if type(o) == "number" then return tostring(o) elseif type(o) == "boolean" then @@ -1252,7 +1252,7 @@ mist.utils.serializeWithCycles = function(name, value, saved) end -- porting in Slmod's serialize_slmod2 -mist.utils.oneLineSerialize = function(tbl) -- serialization of a table all on a single line, no comments, made to replace old get_table_string function +function mist.utils.oneLineSerialize(tbl) -- serialization of a table all on a single line, no comments, made to replace old get_table_string function if type(tbl) == 'table' then --function only works for tables! local tbl_str = {} @@ -1292,7 +1292,7 @@ mist.utils.oneLineSerialize = function(tbl) -- serialization of a table all on end --Function to create string for viewing the contents of a table -NOT for serialization -mist.utils.tableShow = function(tbl, loc, indent, tableshow_tbls) --based on serialize_slmod, this is a _G serialization +function mist.utils.tableShow(tbl, loc, indent, tableshow_tbls) --based on serialize_slmod, this is a _G serialization tableshow_tbls = tableshow_tbls or {} --create table of tables loc = loc or "" indent = indent or "" @@ -1362,7 +1362,7 @@ end mist.debug = {} -mist.debug.dump_G = function(fname) +function mist.debug.dump_G(fname) if lfs and io then local fdir = lfs.writedir() .. [[Logs\]] .. fname local f = io.open(fdir, 'w') @@ -1378,7 +1378,7 @@ mist.debug.dump_G = function(fname) end end -mist.debug.writeData = function(fcn, fcnVars, fname) +function mist.debug.writeData(fcn, fcnVars, fname) if lfs and io then local fdir = lfs.writedir() .. [[Logs\]] .. fname local f = io.open(fdir, 'w') @@ -1394,7 +1394,7 @@ mist.debug.writeData = function(fcn, fcnVars, fname) end end -mist.debug.dumpDBs = function() +function mist.debug.dumpDBs() for DBname, DB in pairs(mist.DBs) do if type(DB) == 'table' and type(DBname) == 'string' then mist.debug.writeData(mist.utils.serialize, {DBname, DB}, 'mist_DBs_' .. DBname .. '.lua') @@ -1405,43 +1405,43 @@ end --3D Vector manipulation mist.vec = {} -mist.vec.add = function(vec1, vec2) +function mist.vec.add(vec1, vec2) return {x = vec1.x + vec2.x, y = vec1.y + vec2.y, z = vec1.z + vec2.z} end -mist.vec.sub = function(vec1, vec2) +function mist.vec.sub(vec1, vec2) return {x = vec1.x - vec2.x, y = vec1.y - vec2.y, z = vec1.z - vec2.z} end -mist.vec.scalarMult = function(vec, mult) +function mist.vec.scalarMult(vec, mult) return {x = vec.x*mult, y = vec.y*mult, z = vec.z*mult} end mist.vec.scalar_mult = mist.vec.scalarMult -mist.vec.dp = function(vec1, vec2) +function mist.vec.dp (vec1, vec2) return vec1.x*vec2.x + vec1.y*vec2.y + vec1.z*vec2.z end -mist.vec.cp = function(vec1, vec2) +function mist.vec.cp(vec1, vec2) return { x = vec1.y*vec2.z - vec1.z*vec2.y, y = vec1.z*vec2.x - vec1.x*vec2.z, z = vec1.x*vec2.y - vec1.y*vec2.x} end -mist.vec.mag = function(vec) +function mist.vec.mag(vec) return (vec.x^2 + vec.y^2 + vec.z^2)^0.5 end -mist.vec.getUnitVec = function(vec) +function mist.vec.getUnitVec(vec) local mag = mist.vec.mag(vec) return { x = vec.x/mag, y = vec.y/mag, z = vec.z/mag } end -mist.vec.rotateVec2 = function(vec2, theta) +function mist.vec.rotateVec2(vec2, theta) return { x = vec2.x*math.cos(theta) - vec2.y*math.sin(theta), y = vec2.x*math.sin(theta) + vec2.y*math.cos(theta)} end -- acc- the accuracy of each easting/northing. 0, 1, 2, 3, 4, or 5. -mist.tostringMGRS = function(MGRS, acc) +function mist.tostringMGRS(MGRS, acc) if acc == 0 then return MGRS.UTMZone .. ' ' .. MGRS.MGRSDigraph else @@ -1457,7 +1457,7 @@ position after the decimal of the least significant digit: So: 42.32 - acc of 2. ]] -mist.tostringLL = function(lat, lon, acc, DMS) +function mist.tostringLL(lat, lon, acc, DMS) local latHemi, lonHemi if lat > 0 then @@ -1544,7 +1544,7 @@ end optional: alt - meters (set to false or nil if you don't want to use it). optional: metric - set true to get dist and alt in km and m. precision will always be nearest degree and NM or km.]] -mist.tostringBR = function(az, dist, alt, metric) +function mist.tostringBR(az, dist, alt, metric) az = mist.utils.round(mist.utils.toDegree(az), 0) if metric then @@ -1565,7 +1565,7 @@ mist.tostringBR = function(az, dist, alt, metric) return s end -mist.getNorthCorrection = function(gPoint) --gets the correction needed for true north +function mist.getNorthCorrection(gPoint) --gets the correction needed for true north local point = mist.utils.deepCopy(gPoint) if not point.z then --Vec2; convert to Vec3 point.z = point.y @@ -1576,7 +1576,7 @@ mist.getNorthCorrection = function(gPoint) --gets the correction needed for tru return math.atan2(north_posit.z - point.z, north_posit.x - point.x) end -mist.getUnitSkill = function(unitName) +function mist.getUnitSkill(unitName) if Unit.getByName(unitName) and Unit.getByName(unitName):isExist() == true then local lunit = Unit.getByName(unitName) for name, data in pairs(mist.DBs.unitsByName) do @@ -2114,7 +2114,7 @@ mist.DBs.deadObjects = {} do local mt = {} - mt.__newindex = function(t, key, val) + function mt.__newindex(t, key, val) local original_key = key --only for duplicate runtime IDs. local key_ind = 1 while mist.DBs.deadObjects[key] do @@ -2640,7 +2640,7 @@ end end -mist.getDeadMapObjsInZones = function(zone_names) +function mist.getDeadMapObjsInZones(zone_names) -- zone_names: table of zone names -- returns: table of dead map objects (indexed numerically) local map_objs = {} @@ -2663,7 +2663,7 @@ mist.getDeadMapObjsInZones = function(zone_names) end -mist.getDeadMapObjsInPolygonZone = function(zone) +function mist.getDeadMapObjsInPolygonZone(zone) -- zone_names: table of zone names -- returns: table of dead map objects (indexed numerically) local map_objs = {} @@ -2679,7 +2679,7 @@ end mist.flagFunc = {} -mist.flagFunc.mapobjs_dead_zones = function(vars) +function mist.flagFunc.mapobjs_dead_zones(vars) --[[vars needs to be: zones = table or string, flag = number, @@ -2726,7 +2726,7 @@ end -mist.flagFunc.mapobjs_dead_polygon = function(vars) +function mist.flagFunc.mapobjs_dead_polygon(vars) --[[vars needs to be: zone = table, flag = number, @@ -2807,7 +2807,7 @@ function mist.pointInPolygon(point, poly, maxalt) --raycasting point in polygon. end end -mist.getUnitsInPolygon = function (unit_names, polyZone, max_alt) +function mist.getUnitsInPolygon(unit_names, polyZone, max_alt) local units = {} for i = 1, #unit_names do @@ -3142,7 +3142,7 @@ function mist.flagFunc.units_in_moving_zones(vars) end -mist.getUnitsLOS = function(unitset1, altoffset1, unitset2, altoffset2, radius) +function mist.getUnitsLOS(unitset1, altoffset1, unitset2, altoffset2, radius) radius = radius or math.huge local unit_info1 = {} @@ -3193,7 +3193,7 @@ mist.getUnitsLOS = function(unitset1, altoffset1, unitset2, altoffset2, radius) return LOS_data end -mist.flagFunc.units_LOS = function(vars) +function mist.flagFunc.units_LOS(vars) --[[vars needs to be: unitset1 = table, altoffset1 = number, @@ -3270,7 +3270,7 @@ toggle = boolean or nil end end -mist.flagFunc.group_alive = function(vars) +function mist.flagFunc.group_alive(vars) --[[vars groupName flag @@ -3315,7 +3315,7 @@ stopFlag end -mist.flagFunc.group_dead = function(vars) +function mist.flagFunc.group_dead(vars) local type_tbl = { [{'group', 'groupname', 'gp', 'groupName'}] = 'string', flag = {'number', 'string'}, @@ -3351,7 +3351,7 @@ mist.flagFunc.group_dead = function(vars) end end -mist.flagFunc.group_alive_less_than = function(vars) +function mist.flagFunc.group_alive_less_than(vars) local type_tbl = { [{'group', 'groupname', 'gp', 'groupName'}] = 'string', percent = 'number', @@ -3395,7 +3395,7 @@ mist.flagFunc.group_alive_less_than = function(vars) end end -mist.flagFunc.group_alive_more_than = function(vars) +function mist.flagFunc.group_alive_more_than(vars) local type_tbl = { [{'group', 'groupname', 'gp', 'groupName'}] = 'string', percent = 'number', @@ -3439,7 +3439,7 @@ mist.flagFunc.group_alive_more_than = function(vars) end end -mist.getAvgPoint = function(points) +function mist.getAvgPoint(points) local avgX, avgY, avgZ, totNum = 0, 0, 0, 0 for i = 1, #points do local nPoint = mist.utils.makeVec3(points[i]) @@ -3457,7 +3457,7 @@ end --Gets the average position of a group of units (by name) -mist.getAvgPos = function(unitNames) +function mist.getAvgPos(unitNames) local avgX, avgY, avgZ, totNum = 0, 0, 0, 0 for i = 1, #unitNames do local unit @@ -3481,7 +3481,7 @@ mist.getAvgPos = function(unitNames) end end -mist.getAvgGroupPos = function(groupName) +function mist.getAvgGroupPos(groupName) if type(groupName) == 'string' and Group.getByName(groupName) and Group.getByName(groupName):isExist() == true then groupName = Group.getByName(groupName) end @@ -3497,7 +3497,7 @@ end -- demos mist.demos = {} -mist.demos.printFlightData = function(unit) +function mist.demos.printFlightData(unit) if unit:isExist() then local function printData(unit, prevVel, prevE, prevTime) local angles = mist.getAttitude(unit) @@ -3616,7 +3616,7 @@ mist.air = {} mist.air.fixedWing = {} mist.air.heli = {} -mist.goRoute = function(group, path) +function mist.goRoute(group, path) local misTask = { id = 'Mission', params = { @@ -3698,11 +3698,11 @@ end -mist.ground.buildPath = function() end -- ???? +function mist.ground.buildPath() end -- ???? -- No longer accepts path -mist.ground.buildWP = function(point, overRideForm, overRideSpeed) +function mist.ground.buildWP(point, overRideForm, overRideSpeed) local wp = {} wp.x = point.x @@ -3759,7 +3759,7 @@ mist.ground.buildWP = function(point, overRideForm, overRideSpeed) end -mist.fixedWing.buildWP = function(point, WPtype, speed, alt, altType) +function mist.fixedWing.buildWP(point, WPtype, speed, alt, altType) local wp = {} wp.x = point.x @@ -3818,7 +3818,7 @@ mist.fixedWing.buildWP = function(point, WPtype, speed, alt, altType) return wp end -mist.heli.buildWP = function(point, WPtype, speed, alt, altType) +function mist.heli.buildWP(point, WPtype, speed, alt, altType) local wp = {} wp.x = point.x @@ -3905,14 +3905,14 @@ function mist.getRandPointInCircle(point, radius, innerRadius) return rndCoord end -mist.getRandomPointInZone = function(zoneName, innerRadius) +function mist.getRandomPointInZone(zoneName, innerRadius) if type(zoneName) == 'string' and type(trigger.misc.getZone(zoneName)) == 'table' then return mist.getRandPointInCircle(trigger.misc.getZone(zoneName).point, trigger.misc.getZone(zoneName).radius, innerRadius) end return false end -mist.groupToRandomPoint = function(vars) +function mist.groupToRandomPoint(vars) local group = vars.group --Required local point = vars.point --required local radius = vars.radius or 0 @@ -3966,7 +3966,7 @@ mist.groupToRandomPoint = function(vars) return end -mist.groupRandomDistSelf = function(gpData, dist, form, heading, speed) +function mist.groupRandomDistSelf(gpData, dist, form, heading, speed) local pos = mist.getLeadPos(gpData) local fakeZone = {} fakeZone.radius = dist or math.random(300, 1000) @@ -3976,7 +3976,7 @@ mist.groupRandomDistSelf = function(gpData, dist, form, heading, speed) return end -mist.groupToRandomZone = function(gpData, zone, form, heading, speed) +function mist.groupToRandomZone(gpData, zone, form, heading, speed) if type(gpData) == 'string' then gpData = Group.getByName(gpData) end @@ -4004,7 +4004,7 @@ mist.groupToRandomZone = function(gpData, zone, form, heading, speed) return end -mist.isTerrainValid = function(coord, terrainTypes) -- vec2/3 and enum or table of acceptable terrain types +function mist.isTerrainValid(coord, terrainTypes) -- vec2/3 and enum or table of acceptable terrain types if coord.z then coord.y = coord.z end @@ -4033,7 +4033,7 @@ mist.isTerrainValid = function(coord, terrainTypes) -- vec2/3 and enum or table return false end -mist.terrainHeightDiff = function(coord, searchSize) +function mist.terrainHeightDiff(coord, searchSize) local samples = {} local searchRadius = 5 if searchSize then @@ -4066,7 +4066,7 @@ end -mist.groupToPoint = function(gpData, point, form, heading, speed, useRoads) +function mist.groupToPoint(gpData, point, form, heading, speed, useRoads) if type(point) == 'string' then point = trigger.misc.getZone(point) end @@ -4087,7 +4087,7 @@ mist.groupToPoint = function(gpData, point, form, heading, speed, useRoads) end -mist.getLeadPos = function(group) +function mist.getLeadPos(group) if type(group) == 'string' then -- group name group = Group.getByName(group) end @@ -4276,7 +4276,7 @@ do ['Bf-109K-4'] = {'Bf-109'}, } - --[[mist.setCAGroupMSG = function(val) + --[[function mist.setCAGroupMSG(val) if type(val) == 'boolean' then caMSGtoGroup = val return true @@ -4502,7 +4502,7 @@ format for consistency. Maybe individual variable specification could also be s vars.units - table of unit names (NOT unitNameTable- maybe this should change). vars.acc - integer between 0 and 5, inclusive ]] -mist.getMGRSString = function(vars) +function mist.getMGRSString(vars) local units = vars.units local acc = vars.acc or 5 local avgPos = mist.getAvgPos(units) @@ -4518,7 +4518,7 @@ vars.DMS - if true, output in degrees, minutes, seconds. Otherwise, output in d ]] -mist.getLLString = function(vars) +function mist.getLLString(vars) local units = vars.units local acc = vars.acc or 3 local DMS = vars.DMS @@ -4536,7 +4536,7 @@ vars.ref - vec3 ref point, maybe overload for vec2 as well? vars.alt - boolean, if used, includes altitude in string vars.metric - boolean, gives distance in km instead of NM. ]] -mist.getBRString = function(vars) +function mist.getBRString(vars) local units = vars.units local ref = mist.utils.makeVec3(vars.ref, 0) -- turn it into Vec3 if it is not already. local alt = vars.alt @@ -4560,7 +4560,7 @@ vars.heading - direction vars.radius - number vars.headingDegrees - boolean, switches heading to degrees ]] -mist.getLeadingPos = function(vars) +function mist.getLeadingPos(vars) local units = vars.units local heading = vars.heading local radius = vars.radius @@ -4618,7 +4618,7 @@ vars.radius - number vars.headingDegrees - boolean, switches heading to degrees vars.acc - number, 0 to 5. ]] -mist.getLeadingMGRSString = function(vars) +function mist.getLeadingMGRSString(vars) local pos = mist.getLeadingPos(vars) if pos then local acc = vars.acc or 5 @@ -4634,7 +4634,7 @@ vars.headingDegrees - boolean, switches heading to degrees vars.acc - number of digits after decimal point (can be negative) vars.DMS - boolean, true if you want DMS. ]] -mist.getLeadingLLString = function(vars) +function mist.getLeadingLLString(vars) local pos = mist.getLeadingPos(vars) if pos then local acc = vars.acc or 3 @@ -4655,7 +4655,7 @@ vars.metric - boolean, if true, use km instead of NM. vars.alt - boolean, if true, include altitude. vars.ref - vec3/vec2 reference point. ]] -mist.getLeadingBRString = function(vars) +function mist.getLeadingBRString(vars) local pos = mist.getLeadingPos(vars) if pos then local ref = vars.ref @@ -4686,7 +4686,7 @@ vars.text - text in the message vars.displayTime - self explanatory vars.msgFor - scope ]] -mist.msgMGRS = function(vars) +function mist.msgMGRS(vars) local units = vars.units local acc = vars.acc local text = vars.text @@ -4719,7 +4719,7 @@ vars.text - text in the message vars.displayTime - self explanatory vars.msgFor - scope ]] -mist.msgLL = function(vars) +function mist.msgLL(vars) local units = vars.units -- technically, I don't really need to do this, but it helps readability. local acc = vars.acc local DMS = vars.DMS @@ -4757,7 +4757,7 @@ vars.text - text of the message vars.displayTime vars.msgFor - scope ]] -mist.msgBR = function(vars) +function mist.msgBR(vars) local units = vars.units -- technically, I don't really need to do this, but it helps readability. local ref = vars.ref -- vec2/vec3 will be handled in mist.getBRString local alt = vars.alt @@ -4797,7 +4797,7 @@ vars.text - text of the message vars.displayTime vars.msgFor - scope ]] -mist.msgBullseye = function(vars) +function mist.msgBullseye(vars) if string.lower(vars.ref) == 'red' then vars.ref = mist.DBs.missionData.bullseye.red mist.msgBR(vars) @@ -4817,7 +4817,7 @@ vars.displayTime vars.msgFor - scope ]] -mist.msgBRA = function(vars) +function mist.msgBRA(vars) if Unit.getByName(vars.ref) and Unit.getByName(vars.ref):isExist() == true then vars.ref = Unit.getByName(vars.ref):getPosition().p if not vars.alt then @@ -4838,7 +4838,7 @@ vars.text - text of the message vars.displayTime vars.msgFor - scope ]] -mist.msgLeadingMGRS = function(vars) +function mist.msgLeadingMGRS(vars) local units = vars.units -- technically, I don't really need to do this, but it helps readability. local heading = vars.heading local radius = vars.radius @@ -4879,7 +4879,7 @@ vars.text - text of the message vars.displayTime vars.msgFor - scope ]] -mist.msgLeadingLL = function(vars) +function mist.msgLeadingLL(vars) local units = vars.units -- technically, I don't really need to do this, but it helps readability. local heading = vars.heading local radius = vars.radius @@ -4923,7 +4923,7 @@ vars.text - text of the message vars.displayTime vars.msgFor - scope ]] -mist.msgLeadingBR = function(vars) +function mist.msgLeadingBR(vars) local units = vars.units -- technically, I don't really need to do this, but it helps readability. local heading = vars.heading local radius = vars.radius @@ -4959,7 +4959,7 @@ end -- start of sct Merge do -- all function uses of group and unit Ids must be in this do statement - mist.groupTableCheck = function(groupData) + function mist.groupTableCheck(groupData) local isOk = false if groupData.country then @@ -4983,7 +4983,7 @@ do -- all function uses of group and unit Ids must be in this do statement return isOk end - mist.getCurrentGroupData = function(gpName) + function mist.getCurrentGroupData(gpName) local dbData = mist.getGroupData(gpName) if Group.getByName(gpName) and Group.getByName(gpName):isExist() == true then @@ -5033,7 +5033,7 @@ do -- all function uses of group and unit Ids must be in this do statement end - mist.getGroupData = function(gpName) + function mist.getGroupData(gpName) local found = false local newData = {} if mist.DBs.groupsByName[gpName] then @@ -5098,7 +5098,7 @@ do -- all function uses of group and unit Ids must be in this do statement end end - mist.getPayload = function(unitIdent) + function mist.getPayload(unitIdent) -- refactor to search by groupId and allow groupId and groupName as inputs local unitId = unitIdent if type(unitIdent) == 'string' and not tonumber(unitIdent) then @@ -5138,7 +5138,7 @@ do -- all function uses of group and unit Ids must be in this do statement return end - mist.getGroupPayload = function(groupIdent) + function mist.getGroupPayload(groupIdent) local gpId = groupIdent if type(groupIdent) == 'string' and not tonumber(groupIdent) then gpId = mist.DBs.MEgroupsByName[groupIdent].groupId @@ -5177,7 +5177,7 @@ do -- all function uses of group and unit Ids must be in this do statement end - mist.teleportToPoint = function(vars) -- main teleport function that all of teleport/respawn functions call + function mist.teleportToPoint(vars) -- main teleport function that all of teleport/respawn functions call local point = vars.point local gpName @@ -5313,7 +5313,7 @@ do -- all function uses of group and unit Ids must be in this do statement end - mist.respawnInZone = function(gpName, zone, disperse, maxDisp) + function mist.respawnInZone(gpName, zone, disperse, maxDisp) if type(gpName) == 'table' and gpName:getName() then gpName = gpName:getName() @@ -5338,7 +5338,7 @@ do -- all function uses of group and unit Ids must be in this do statement return mist.teleportToPoint(vars) end - mist.cloneInZone = function(gpName, zone, disperse, maxDisp) + function mist.cloneInZone(gpName, zone, disperse, maxDisp) if type(gpName) == 'table' then gpName = gpName:getName() @@ -5361,7 +5361,7 @@ do -- all function uses of group and unit Ids must be in this do statement return mist.teleportToPoint(vars) end - mist.teleportInZone = function(gpName, zone, disperse, maxDisp) -- groupName, zoneName or table of Zone Names, keepForm is a boolean + function mist.teleportInZone(gpName, zone, disperse, maxDisp) -- groupName, zoneName or table of Zone Names, keepForm is a boolean if type(gpName) == 'table' and gpName:getName() then gpName = gpName:getName() else @@ -5384,7 +5384,7 @@ do -- all function uses of group and unit Ids must be in this do statement return mist.teleportToPoint(vars) end - mist.respawnGroup = function(gpName, task) + function mist.respawnGroup(gpName, task) local vars = {} vars.gpName = gpName vars.action = 'respawn' @@ -5399,7 +5399,7 @@ do -- all function uses of group and unit Ids must be in this do statement return newGroup end - mist.cloneGroup = function(gpName, task) + function mist.cloneGroup(gpName, task) local vars = {} vars.gpName = gpName vars.action = 'clone' @@ -5414,7 +5414,7 @@ do -- all function uses of group and unit Ids must be in this do statement return newGroup end - mist.teleportGroup = function(gpName, task) + function mist.teleportGroup(gpName, task) local vars = {} vars.gpName = gpName vars.action = 'teleport' @@ -5429,7 +5429,7 @@ do -- all function uses of group and unit Ids must be in this do statement return newGroup end - mist.spawnRandomizedGroup = function(groupName, vars) -- need to debug + function mist.spawnRandomizedGroup(groupName, vars) -- need to debug if Group.getByName(groupName) and Group.getByName(groupName):isExist() == true then local gpData = mist.getGroupData(groupName) gpData.units = mist.randomizeGroupOrder(gpData.units, vars) @@ -5441,7 +5441,7 @@ do -- all function uses of group and unit Ids must be in this do statement return true end - mist.randomizeNumTable = function(vars) + function mist.randomizeNumTable(vars) local newTable = {} local excludeIndex = {} @@ -5514,7 +5514,7 @@ do -- all function uses of group and unit Ids must be in this do statement return newTable end - mist.randomizeGroupOrder = function(passedUnits, vars) + function mist.randomizeGroupOrder(passedUnits, vars) -- figure out what to exclude, and send data to other func local units = passedUnits @@ -5581,7 +5581,7 @@ do -- all function uses of group and unit Ids must be in this do statement return newGroup end - mist.ground.patrolRoute = function(vars) + function mist.ground.patrolRoute(vars) local tempRoute = {} @@ -5682,7 +5682,7 @@ do -- all function uses of group and unit Ids must be in this do statement return end - mist.ground.patrol = function(gpData, pType, form, speed) + function mist.ground.patrol(gpData, pType, form, speed) local vars = {} if type(gpData) == 'table' and gpData:getName() then @@ -5701,7 +5701,7 @@ do -- all function uses of group and unit Ids must be in this do statement end - mist.random = function(firstNum, secondNum) -- no support for decimals + function mist.random(firstNum, secondNum) -- no support for decimals local lowNum, highNum if not secondNum then highNum = firstNum @@ -5729,7 +5729,7 @@ do -- all function uses of group and unit Ids must be in this do statement - mist.stringMatch = function(s1, s2, bool) + function mist.stringMatch(s1, s2, bool) local exclude = {'%-', '%(', '%)', '%_', '%[', '%]', '%.', '%#', '% ', '%{', '%}', '%$', '%%', '%?', '%+', '%^'} if type(s1) == 'string' and type(s2) == 'string' then for i , str in pairs(exclude) do @@ -5759,7 +5759,7 @@ do -- all function uses of group and unit Ids must be in this do statement -- theTime is optional -- if present current time in mil time is returned -- if number or table the time is converted into mil tim - mist.time.convertToSec = function(timeTable) + function mist.time.convertToSec(timeTable) timeInSec = 0 if timeTable and type(timeTable) == 'number' then @@ -5782,7 +5782,7 @@ do -- all function uses of group and unit Ids must be in this do statement return timeInSec end - mist.time.getDHMS = function(timeInSec) + function mist.time.getDHMS(timeInSec) if timeInSec and type(timeInSec) == 'number' then local tbl = {d = 0, h = 0, m = 0, s = 0} if timeInSec > 86400 then @@ -5811,7 +5811,7 @@ do -- all function uses of group and unit Ids must be in this do statement end end - mist.getMilString = function(theTime) + function mist.getMilString(theTime) local timeInSec = 0 if theTime then timeInSec = mist.time.convertToSec(theTime) @@ -5824,7 +5824,7 @@ do -- all function uses of group and unit Ids must be in this do statement return tostring(string.format('%02d', DHMS.h) .. string.format('%02d',DHMS.m)) end - mist.getClockString = function(theTime, hour) + function mist.getClockString(theTime, hour) local timeInSec = 0 if theTime then timeInSec = mist.time.convertToSec(theTime) @@ -5848,7 +5848,7 @@ do -- all function uses of group and unit Ids must be in this do statement -- both variables optional -- first val returns with the month as a string -- 2nd val defins if it should be written the American way or the wrong way. - mist.time.getDate = function(convert) + function mist.time.getDate(convert) local cal = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} -- starts at june. 2011. 2012 is leap year, sigh. add a simple check for leap year local date = {} date.d = 0 @@ -5881,13 +5881,13 @@ do -- all function uses of group and unit Ids must be in this do statement return date end - mist.time.relativeToStart = function(time) + function mist.time.relativeToStart(time) if type(time) == 'number' then return time - timer.getTime0() end end - mist.getDateString = function(rtnType, murica, oTime) -- returns date based on time + function mist.getDateString(rtnType, murica, oTime) -- returns date based on time local word = {'January', 'Feburary', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' } -- 'etc local curTime = 0 if oTime then @@ -5912,7 +5912,7 @@ do -- all function uses of group and unit Ids must be in this do statement end end --WIP - mist.time.milToGame = function(milString, rtnType) --converts a military time. By default returns the abosolute time that event would occur. With optional value it returns how many seconds from time of call till that time. + function mist.time.milToGame(milString, rtnType) --converts a military time. By default returns the abosolute time that event would occur. With optional value it returns how many seconds from time of call till that time. local curTime = mist.utils.round(timer.getAbsTime()) local milTimeInSec = 0