Skip to content

Commit

Permalink
Use custom create vehicle crew function
Browse files Browse the repository at this point in the history
  • Loading branch information
theace0296 committed Aug 29, 2021
1 parent 44f332f commit 839c340
Show file tree
Hide file tree
Showing 11 changed files with 80 additions and 13 deletions.
2 changes: 1 addition & 1 deletion RandFramework/GUI/fn_openDialogRequests.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ _btnselectvehicle ctrlAddEventHandler ["ButtonClick", {
if ((typeOf _spawnedVeh) in TRGM_VAR_WestUnarmedHelos) then {
[_spawnedVeh, [format [localize "STR_TRGM2_spawnCrew", gettext (configFile >> "Cfgvehicles" >> (typeOf _spawnedVeh) >> "displayname")], {
params [["_target", objNull, [objNull]], ["_caller", objNull, [objNull]], ["_id", -1, [1]], ["_args", [], [[]]]];
createVehicleCrew _target;
[TRGM_VAR_FriendlySide, _target, true] call TRGM_GLOBAL_fnc_createVehicleCrew;
[driver _target] joinSilent createGroup TRGM_VAR_FriendlySide;
private _targetCrewMinusDriver = (crew vehicle _target - [driver _target]);
if (!(_targetCrewMinusDriver isEqualTo []) && _targetCrewMinusDriver isEqualType []) then {
Expand Down
2 changes: 1 addition & 1 deletion RandFramework/Global/common/fn_createConvoy.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ _pos = _startPos;
_vehicle = _vehicleClass createvehicle _pos;
_vehicle allowDamage false;
_vehicle setDir _dir;
createvehiclecrew _vehicle;
[_side, _vehicle, _allowCaching] call TRGM_GLOBAL_fnc_createVehicleCrew;
_crew = crew _vehicle;
_crew joinSilent _group;
_group addVehicle _vehicle;
Expand Down
66 changes: 66 additions & 0 deletions RandFramework/Global/common/fn_createVehicleCrew.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
params [["_side", WEST, [WEST]], ["_vehicle", objNull, [objNull]], ["_disableDynamicShowHide", false, [false]]];

if (isNull _vehicle) exitWith {};

private _vehicleType = typeof _vehicle;
private _vehicleConfig = configFile >> "CfgVehicles" >> _vehicleType;

private _group = createGroup _side;
private _crew = [];
private _crewType = getText (_vehicleConfig >> "crew");
if (_crewType isEqualTo "") then {
switch (_side) do {
case WEST: {
_crewType = [(call fRifleman), (call fPilot)] select (_vehicle isKindOf "Air");
};
case EAST: {
_crewType = [(call sRifleman), (call sEnemyHeliPilot)] select (_vehicle isKindOf "Air");
};
case INDEPENDENT: {
_crewType = [(call sRiflemanMilitia), (call sEnemyHeliPilotMilitia)] select (_vehicle isKindOf "Air");
};
default {
_crewType = sCivilian;
if (typeName _crewType isEqualTo "ARRAY") then {
_crewType = selectRandom sCivilian;
};
};
};
};

private _hasDriver = (getNumber (_vehicleConfig >> "hasDriver")) isEqualTo 1;
if (_hasDriver && {isNull driver _vehicle}) then {
private _driver = [_group, _crewType, getPos _vehicle, [], 0, "NONE", _disableDynamicShowHide] call TRGM_GLOBAL_fnc_createUnit;
_crew = _crew + [_driver];
_driver assignAsDriver _vehicle;
_driver moveInDriver _vehicle;
};

private _hasCommander = (getNumber (_vehicleConfig >> "hasCommander")) isEqualTo 1;
if (_hasCommander && {isNull driver _vehicle}) then {
private _commander = [_group, _crewType, getPos _vehicle, [], 0, "NONE", _disableDynamicShowHide] call TRGM_GLOBAL_fnc_createUnit;
_crew = _crew + [_commander];
_commander assignAsCommander _vehicle;
_commander moveInCommander _vehicle;
};

private _hasGunner = (getNumber (_vehicleConfig >> "hasGunner")) isEqualTo 1;
if (_hasGunner && {isNull gunner _vehicle}) then {
private _gunner = [_group, _crewType, getPos _vehicle, [], 0, "NONE", _disableDynamicShowHide] call TRGM_GLOBAL_fnc_createUnit;
_crew = _crew + [_gunner];
_gunner assignAsGunner _vehicle;
_gunner moveInGunner _vehicle;
};

private _turrets = [_vehicleType, false] call BIS_fnc_allTurrets;
{
if (isNull (_vehicle turretUnit _x)) then {
private _turretUnit = [_group, _crewType, getPos _vehicle, [], 0, "NONE", _disableDynamicShowHide] call TRGM_GLOBAL_fnc_createUnit;
_crew = _crew + [_turretUnit];
_turretUnit assignAsTurret _x;
_turretUnit moveInTurret _x;
};
} forEach _turrets;

[_vehicle, "LIEUTENANT"] call BIS_fnc_setRank;
_crew;
2 changes: 1 addition & 1 deletion RandFramework/Global/common/fn_enemyAirSupport.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ if (isServer) then {
sleep 1;

_enemyAirSup1 = createVehicle [_AirVehicle, call TRGM_GETTER_fnc_aGetReinforceStartPos, [], 0, "NONE"];
createVehicleCrew _enemyAirSup1;
[TRGM_VAR_EnemySide, _enemyAirSup1] call TRGM_GLOBAL_fnc_createVehicleCrew;
crew vehicle _enemyAirSup1 joinSilent _groupp1;
_enemyAirSup1 flyInHeight 40;
_enemyAirSup1 setVehicleAmmo 1;
Expand Down
2 changes: 1 addition & 1 deletion RandFramework/Missions/destroyVehiclesMission.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ MISSION_fnc_CustomMission = { //This function is the main script for your missio
_sTargetName = format["objInformant%1_%2", _targetIndex, _taskIndex];
_objVehicle = _truckType createVehicle [0,0,500];
_objVehicle setVariable [_sTargetName, _objVehicle, true];
createVehicleCrew _objVehicle;
[TRGM_VAR_EnemySide, _objVehicle, true] call TRGM_GLOBAL_fnc_createVehicleCrew;
crew vehicle _objVehicle joinSilent createGroup TRGM_VAR_EnemySide;
missionNamespace setVariable [_sTargetName, _objVehicle];
_objVehicle setPos _flatPos;
Expand Down
4 changes: 2 additions & 2 deletions RandFramework/Missions/secureAndResupplyMission.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ MISSION_fnc_CustomMission = { //This function is the main script for your missio
private _exitPos = _flag getRelPos[25000, random 360];

airDropHelo1 = createVehicle [_airToUse, [(_spawnPos select 0), (_spawnPos select 1)], [], 0, "FLY"];
createVehicleCrew airDropHelo1;
[TRGM_VAR_FriendlySide, airDropHelo1, true] call TRGM_GLOBAL_fnc_createVehicleCrew;
crew vehicle airDropHelo1 joinSilent _heloGroup;
airDropHelo1 flyInHeight 40;
airDropHelo1 allowDamage false;
Expand Down Expand Up @@ -273,7 +273,7 @@ MISSION_fnc_CustomMission = { //This function is the main script for your missio
_spawnPos = _flag getRelPos[3000, random 360];
_exitPos = _flag getRelPos[25000, random 360];
airDropHelo1 = createVehicle [_airToUse, [(_spawnPos select 0), (_spawnPos select 1)], [], 0, "FLY"];
createVehicleCrew airDropHelo1;
[TRGM_VAR_FriendlySide, airDropHelo1, true] call TRGM_GLOBAL_fnc_createVehicleCrew;
crew vehicle airDropHelo1 joinSilent _heloGroup;

airDropHelo2 flyInHeight 40;
Expand Down
2 changes: 1 addition & 1 deletion RandFramework/Server/init/fn_createNeededObjects.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ private _helo_spawn = {

[_safePos, sizeOf _name] call TRGM_GLOBAL_fnc_hideTerrainObjects;
private _helo = createVehicle [_name, _safePos, [], 0, "NONE"];
createVehicleCrew _helo;
[TRGM_VAR_FriendlySide, _helo, true] call TRGM_GLOBAL_fnc_createVehicleCrew;
crew vehicle _helo joinSilent createGroup TRGM_VAR_FriendlySide;
_helo allowDamage false;
_helo setpos _safePos;
Expand Down
6 changes: 3 additions & 3 deletions RandFramework/Server/init/fn_main.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ if (!isNil "chopper1" && {!(isNil "_airTransClassName") && {_airTransClassName !
{deleteVehicle _x;} forEach crew chopper1 + [chopper1];
private _safePos = ([heliPad1] call TRGM_GLOBAL_fnc_getRealPos) findEmptyPosition [0, 20, _airTransClassName];
chopper1 = createVehicle [_airTransClassName, _safePos vectorAdd [0, 0, .1], [], 0, "NONE"];
createVehicleCrew chopper1;
[TRGM_VAR_FriendlySide, chopper1, true] call TRGM_GLOBAL_fnc_createVehicleCrew;
[driver chopper1] joinSilent createGroup TRGM_VAR_FriendlySide;
private _chopper1CrewMinusDriver = (crew vehicle chopper1 - [driver chopper1]);
if (!(_chopper1CrewMinusDriver isEqualTo []) && _chopper1CrewMinusDriver isEqualType []) then {
Expand Down Expand Up @@ -180,7 +180,7 @@ if (!isNil "chopper2" && {!(isNil "_airSupClassName") && {_airSupClassName != ty
{deleteVehicle _x;} forEach crew chopper2 + [chopper2];
private _safePos = ([airSupportHeliPad] call TRGM_GLOBAL_fnc_getRealPos) findEmptyPosition [0, 20, _airSupClassName];
chopper2 = createVehicle [_airTransClassName, _safePos vectorAdd [0, 0, .1], [], 0, "NONE"];
createVehicleCrew chopper2;
[TRGM_VAR_FriendlySide, chopper2, true] call TRGM_GLOBAL_fnc_createVehicleCrew;
[driver chopper2] joinSilent createGroup TRGM_VAR_FriendlySide;
private _chopper2CrewMinusDriver = (crew vehicle chopper2 - [driver chopper2]);
if (!(_chopper2CrewMinusDriver isEqualTo []) && _chopper2CrewMinusDriver isEqualType []) then {
Expand Down Expand Up @@ -234,7 +234,7 @@ TRGM_VAR_transportHelosToGetActions = [chopper1];
sleep 0.01;
private _safePos = _pos findEmptyPosition [0, 20, _newVehClass];
private _newVeh = createVehicle [_newVehClass, _safePos vectorAdd [0, 0, .1], [], 0, "NONE"];
createVehicleCrew _newVeh;
[TRGM_VAR_FriendlySide, _newVeh, true] call TRGM_GLOBAL_fnc_createVehicleCrew;
[driver _newVeh] joinSilent createGroup TRGM_VAR_FriendlySide;
private _newVehCrewMinusDriver = (crew vehicle _newVeh - [driver _newVeh]);
if (!(_newVehCrewMinusDriver isEqualTo []) && _newVehCrewMinusDriver isEqualType []) then {
Expand Down
2 changes: 1 addition & 1 deletion RandFramework/Server/objectives/fn_setCheckpoint.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ if (_PosFound) then {
if (_thisSide isEqualTo TRGM_VAR_EnemySide && _AllowTurrent) then {
_NearTurret1 = createVehicle [selectRandom (call CheckPointTurret), _initItem getPos [1,_direction+180], [], 0, "CAN_COLLIDE"];
_NearTurret1 setDir (_direction);
createVehicleCrew _NearTurret1;
[_thisSide, _NearTurret1] call TRGM_GLOBAL_fnc_createVehicleCrew;
crew vehicle _NearTurret1 joinSilent createGroup _thisSide;
};
};
Expand Down
4 changes: 2 additions & 2 deletions RandFramework/Server/objectives/fn_setFireFightEvent.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ TRGM_VAR_WarEventActive = true;
_WarzoneGroupp1 = createGroup TRGM_VAR_FriendlySide;
_WarZoneAir1 = createVehicle [_AirToUse, _pos, [], 0, "FLY"];
_WarZoneAir1 setDir _dir;
createVehicleCrew _WarZoneAir1;
[TRGM_VAR_FriendlySide, _WarZoneAir1, true] call TRGM_GLOBAL_fnc_createVehicleCrew;
crew vehicle _WarZoneAir1 joinSilent _WarzoneGroupp1;
_WarZoneAir1 flyInHeight 45;
_WarZoneAir1 setBehaviour "CARELESS";
Expand All @@ -200,7 +200,7 @@ TRGM_VAR_WarEventActive = true;
_pos2 = _pos getPos [30,random 360];
_WarZoneAir2 = createVehicle [_AirToUse, _pos2, [], 0, "FLY"];
_WarZoneAir2 setDir _dir;
createVehicleCrew _WarZoneAir2;
[TRGM_VAR_FriendlySide, _WarZoneAir2] call TRGM_GLOBAL_fnc_createVehicleCrew;
crew vehicle _WarZoneAir2 joinSilent _WarzoneGroupp1;
_WarZoneAir2 flyInHeight 45;
_WarZoneAir2 setBehaviour "CARELESS";
Expand Down
1 change: 1 addition & 0 deletions RandFramework/functions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ class TRGM_GLOBAL {
class convoy {};
class createConvoy {};
class createUnit {};
class createVehicleCrew {};
class debugDotMarker {};
class deleteTrash {};
class dynamicShowHide {};
Expand Down

0 comments on commit 839c340

Please sign in to comment.