*****************GVCM****************************
Author: xx-Cougar-xx (AC)
 AC 2009- Cilithocal systems, P-Lab, Gibbous studios...
Private, Non Commerical, non military use (LIC) only!

"Group Vehicle Control Module"

USAGE:
     ~Setup the variables in i_gvcm.sqf, execVM on i_gvcm.sqf after all your variables are loaded in your init, it should be the last to load in init or like file, but before any gameplay sqf files. You do not need to intergrate the creation arrays/functions for GVCM to work, it will just work less effectively.

     ~You do not need to do anything else for the GVCM to try to control, Groups, Vehicles, or units. It will attempt to clean all, but might miss some.
     ***WIP***
     ~Creation control w/Bot Amount limiting
     ~Markers 


*****************Functions*************************
Author: xx-Cougar-xx

--xfnc_createGroup--
//      ~Loads Variables for GVCM
//      ~You do not have to send arrays
//      ~Backwards Compatablity to BIS_fnc_spawnGroup (overloaded)

Parmameters:
0: Starting Postion (Array)(number)
     -Position, in pos format (Array)
     ~ -1 (number) for empty group
1: Group Side -2 different types
     -Side
     -String reprensentation of side
2: 6 Different types
     - List chars (array)
     - Amount chars (number)(0 = default)
     - Cfggroups entry (config)
     ~ 0 = default
     - missing = default
   
3: (optional) Realtive Postions - 3 different ways (Array, Number, missing)
     -if an array the amount must match the amount of your units in group or BIS_fnc will return grpNull.
     -if a number then it is the realtive distance you wish to achieve between units in a non designated echelon formation.
     -if missing it is a 3 meter realtive distance as default.
4: (optional) List of Ranks - 2 different ways (Array, Missing)
     -if an array the amount must match the amount of your units in group or BIS_fnc will return grpNull.
     -Missing or empty Quotes will reslut in a ranking being randomly implied as the following (1) unit will be officer (Col.,Maj,Leu) rest will be of      random compostion of Sgt, Cor,or Priv.
5: (optional) Skill Range - 3 different ways (array, number, missing)
     - array works same as BIS, you list a Min and a Max
     - number becomes your Min and a max is always 1.
     - Missing, Min is .7 and max is 1.
6: (optional) Ammo - 3 different ways (array, number, missing)
     - array works same as BIS you list min and max
     - number is max, min is based of next Parm as a percent to devolp a min amount.
     - missing, Max is 8 with a min based on next parm.
7: (optional) Random Controls - 3 differnet ways (array, number, missing)
     - array works same as BIS, except your spawn chance becomes the rand percent used for above parms
     - number - random percent which is used for above mentioned parms and to devolp a min amt of units. (parm 2:1 * parm 7)
     - missing = .75 (75%)
8: (optional) azimuth 1 way -same as BIS (number)


For backwards compatablity, if you called to BIS_fnc_spawnGroup, you should be able to change it to a call of xfnc_createGroup with no problems.

Function loads into GVCM for you.

~Examples:
Ex1:
     myGrp = [[PostionArray], west] call xfnc_createGroup;
***Returns:
     a west squad group 6 - 8 units in size, who's roles are random config by BIS function, who's ranking leader is an officer (Col, Maj, or Leu) and rest is random of Sgt, Cor, Priv. They are spawned in a non designated formation that is of echelon postions, they could be carring 6 - 8 clips/Rnds of ammo and their skill is between .7 and 1.

Ex2:
     myGrp = [[PostionArray], west, 6] call xfnc_createGroup;
***Returns:
     a west squad group 4 - 6 units in size, who's roles are random config by BIS function, who's ranking leader is an officer (Col, Maj, or Leu) and rest is random of Sgt, Cor, Priv. They are spawned in a non designated formation that is of echelon postions, they could be carring 6 - 8 clips/Rnds of ammo and their skill is between .7 and 1.

Ex3:
     myGrp = [-1, west] call xfnc_createGroup;
***Returns:
     a empty west squad group.
*****Notes*****
~Use of function will control creation and cache the group-units.
~ If you use a Config, realtive postions and ranks are obsucred by the config as per BIS function.
~ If you are on the edge of a map, you could get an "Out of Map" error.
~ If you use a config and send an array which is of the wrong amount for a different Parm, BIS function will exit with error.
~ I did not go thru all the ECC as BIS did, it is assumed you know the correct casting for parm types, maybe a TODO: