mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Removed to_merge nametags folder (now called sys_nametags)
This commit is contained in:
parent
e2b75e3d12
commit
21acccc228
@ -1,11 +0,0 @@
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE( call compile preprocessFileLineNumbers PATHTOF(XEH_preInit.sqf) );
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE( call compile preprocessFileLineNumbers PATHTOF(XEH_postInit.sqf) );
|
||||
};
|
||||
};
|
@ -1,64 +0,0 @@
|
||||
// TODO Check what faction classes are available within ACE and move this to a core pbo
|
||||
class CfgFactionClasses
|
||||
{
|
||||
class NO_CATEGORY;
|
||||
class ACEMisc: NO_CATEGORY {
|
||||
displayName = "ACE Misc Modules";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class CfgVehicles
|
||||
{
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
class ArgumentsBaseUnits {
|
||||
};
|
||||
};
|
||||
class GVAR(Module): Module_F {
|
||||
scope = 2;
|
||||
displayName = $STR_ACE_NameTags_Title;
|
||||
icon = QUOTE(PATHOF(data\module_icon.paa));
|
||||
category = "ACEMisc";
|
||||
function = QUOTE(FUNC(initalizeModule));
|
||||
functionPriority = 1;
|
||||
isGlobal = 1;
|
||||
isTriggerActivated = 0;
|
||||
class Arguments {
|
||||
class enableModule {
|
||||
displayName = $STR_ACE_NameTags_Arg_enable;
|
||||
description = $STR_ACE_NameTags_Arg_enable_Desc;
|
||||
typeName = "BOOL";
|
||||
defaultValue = 0;
|
||||
};
|
||||
class indirectDistance {
|
||||
displayName = $STR_ACE_NameTags_Arg_indirectDistance;
|
||||
description = $STR_ACE_NameTags_Arg_indirectDistance_Desc;
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 7.5;
|
||||
};
|
||||
class cursorTargetDistance {
|
||||
displayName = $STR_ACE_NameTags_Arg_directDistance;
|
||||
description = $STR_ACE_NameTags_Arg_directDistance_Desc;
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 20;
|
||||
};
|
||||
class allowDifferentSides {
|
||||
displayName = $STR_ACE_NameTags_Arg_differentSides;
|
||||
description = $STR_ACE_NameTags_Arg_differentSides_Desc;
|
||||
typeName = "BOOL";
|
||||
defaultValue = 0;
|
||||
};
|
||||
class enableSoundWaves {
|
||||
displayName = $STR_ACE_NameTags_Arg_soundWaves;
|
||||
description = $STR_ACE_NameTags_Arg_soundWaves_Desc;
|
||||
typeName = "BOOL";
|
||||
defaultValue = 0;
|
||||
};
|
||||
};
|
||||
class ModuleDescription {
|
||||
description = $STR_ACE_NameTags_ModuleDesc;
|
||||
sync[] = {};
|
||||
};
|
||||
};
|
||||
};
|
@ -1,66 +0,0 @@
|
||||
/**
|
||||
* XEH_postInit.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
if (!hasInterface) exitwith {}; // No need for this module on HC or dedicated server.
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
// Settings
|
||||
if (isNil QUOTE(ACE_NameTagsModule)) then {
|
||||
GVAR(INDIRECT_TAGS_DISTANCE) = 7.5;
|
||||
GVAR(DIRECT_TAG_DISTANCE) = 20;
|
||||
GVAR(ENABLE_SOUNDWAVES) = false;
|
||||
GVAR(ALLOW_OWN_SIDE_ONLY) = true;
|
||||
GVAR(ENABLE_MODULE) = true;
|
||||
};
|
||||
|
||||
// In case the module has been placed and the enable setting has been put to false
|
||||
if (!GVAR(ENABLE_MODULE)) exitwith {};
|
||||
|
||||
// Client side options
|
||||
// TODO Implement a framework for adjusting client side settings.
|
||||
GVAR(DRAW_TAG_ICONS) = true;
|
||||
GVAR(ENABLE_INDIRECT) = false;
|
||||
GVAR(TAG_DISPLAY_COLOR) = [1,1,1,1];
|
||||
GVAR(SHOW_SOUNDWAVES) = false;
|
||||
GVAR(DISPLAY_RANK) = false;
|
||||
|
||||
// If the distance values are set incorrectly, ensure we handle this
|
||||
if (GVAR(DIRECT_TAG_DISTANCE) < GVAR(INDIRECT_TAGS_DISTANCE)) then {
|
||||
GVAR(DIRECT_TAG_DISTANCE) = GVAR(INDIRECT_TAGS_DISTANCE);
|
||||
};
|
||||
|
||||
// If both are below 1m, exit because they will not show up.
|
||||
if (GVAR(DIRECT_TAG_DISTANCE) < 1) exitwith {};
|
||||
|
||||
// Draw the icons for each nametag
|
||||
// TODO Look into replacement with cutRsc instead of icon3d
|
||||
addMissionEventHandler ["Draw3D", FUNC(drawNameTags)];
|
||||
|
||||
if (GVAR(ENABLE_SOUNDWAVES)) then {
|
||||
|
||||
GVAR(SOUNDWAVE_ICONS) = [QUOTE(PATHTOF(data\soundwaves\soundwave1.paa)),QUOTE(PATHTOF(data\soundwaves\soundwave2.paa)), QUOTE(PATHTOF(data\soundwaves\soundwave3.paa)), QUOTE(PATHTOF(data\soundwaves\soundwave4.paa)), QUOTE(PATHTOF(data\soundwaves\soundwave5.paa)), QUOTE(PATHTOF(data\soundwaves\soundwave6.paa)), QUOTE(PATHTOF(data\soundwaves\soundwave7.paa)), QUOTE(PATHTOF(data\soundwaves\soundwave8.paa)), QUOTE(PATHTOF(data\soundwaves\soundwave9.paa)), QUOTE(PATHTOF(data\soundwaves\soundwave_silent.paa))];
|
||||
|
||||
// TODO Implement function for checking if an addon is loaded
|
||||
//if (["task_force_radio"] call ace_fnc_isModLoaded_F) then {
|
||||
if (isnil "TFAR_fnc_isSpeaking") then {
|
||||
TFAR_fnc_isSpeaking = { if (!isnil "TF_tangent_lr_pressed") then {(TF_tangent_lr_pressed || TF_tangent_sw_pressed || TF_tangent_dd_pressed)} else { false }; };
|
||||
};
|
||||
//};
|
||||
|
||||
// TODO Move to unscheduled environment with PFH
|
||||
[] spawn {
|
||||
waituntil{
|
||||
waituntil {alive player};
|
||||
/*ACE_player*/ player call FUNC(handleSpeaking);
|
||||
!GVAR(ENABLE_SOUNDWAVES); // exit when the soundwaves have been disabled
|
||||
};
|
||||
};
|
||||
};
|
@ -1,17 +0,0 @@
|
||||
/**
|
||||
* XEH_preInit.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
PREP(drawNameTags);
|
||||
PREP(findNearbyUnits);
|
||||
PREP(handleSpeaking);
|
||||
PREP(allowSide);
|
||||
PREP(initalizeModule);
|
@ -1,24 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ACE_gui","ACE_main"};
|
||||
version = VERSION;
|
||||
author[] = {$STR_ACE_Core_ACETeam};
|
||||
authorUrl = "http://ACEmod.com"; // TODO website link?
|
||||
};
|
||||
};
|
||||
|
||||
class CfgAddons {
|
||||
class PreloadAddons {
|
||||
class ADDON {
|
||||
list[] = {QUOTE(ADDON)};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgVehicles.hpp"
|
||||
#include "CfgEventHandlers.hpp"
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,15 +0,0 @@
|
||||
/**
|
||||
* fn_allowSide_TAGS.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: side
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (GVAR(ALLOW_OWN_SIDE_ONLY)) exitwith {
|
||||
_this == playerSide; /* side ACE_player */
|
||||
};
|
||||
((_this getFriend playerSide /* side ACE_player */ ) >= 0.6);
|
@ -1,71 +0,0 @@
|
||||
/**
|
||||
* fn_drawNameTags_TAGS.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
#define FONT "EtelkaMonospacePro"
|
||||
|
||||
private ["_cursor","_soundWaves", "_nameOfUnit","_pos","_color", "_nearbyUnits", "_iconOptions", "_iconSets", "_unit", "_colorOfIcon", "_nearObj"];
|
||||
if (visibleMap || !GVAR(DRAW_TAG_ICONS)) exitwith {};
|
||||
|
||||
_nearObj = if (isNull curatorCamera) then {/* ACE_player */ if (isNull (missionnamespace getvariable ["bis_fnc_moduleRemoteControl_unit",objnull])) then { player} else {(missionnamespace getvariable ["bis_fnc_moduleRemoteControl_unit",objnull]) }; } else { curatorCamera };
|
||||
|
||||
if (GVAR(ENABLE_INDIRECT)) then {
|
||||
{
|
||||
_nameOfUnit = _x select 0;
|
||||
_pos = _x select 1;
|
||||
_color = _x select 2;
|
||||
_unit = _x select 3;
|
||||
_iconDrawn = QUOTE(PATHTOF(data\empty.paa));
|
||||
if (_unit getvariable [QGVAR(isSpeaking),false] && GVAR(SHOW_SOUNDWAVES)) then {
|
||||
_iconDrawn = (GVAR(SOUNDWAVE_ICONS) select ((round(random (count GVAR(SOUNDWAVE_ICONS) - 1)))));
|
||||
};
|
||||
drawIcon3D [_iconDrawn,_color, _pos, 2, 2, 1 ,toUpper _nameOfUnit, 1, 0.03, FONT];
|
||||
false;
|
||||
}count (_nearObj call FUNC(findNearbyUnits));
|
||||
};
|
||||
|
||||
_cursor = cursortarget;
|
||||
if (_cursor == _cursor && isTouchingGround _cursor) then {
|
||||
if (_cursor isKindOf "CAManBase" && ((_cursor distance _nearObj) < GVAR(DIRECT_TAG_DISTANCE)) && ((side _cursor) call FUNC(allowSide))) then {
|
||||
|
||||
// TODO Improve this switch statement
|
||||
_pos = visiblePositionASL _cursor;
|
||||
switch (stance _cursor) do {
|
||||
case "STAND": {
|
||||
_pos set [2, ((_cursor modelToWorld [0,0,0]) select 2)+2];
|
||||
};
|
||||
case "CROUCH": {
|
||||
_pos set [2, ((_cursor modelToWorld [0,0,0]) select 2)+1.5];
|
||||
};
|
||||
case "PRONE": {
|
||||
_pos set [2, ((_cursor modelToWorld [0,0,0]) select 2)+0.5];
|
||||
};
|
||||
default {
|
||||
_pos set [2, ((_cursor modelToWorld [0,0,0]) select 2) + 1.5];
|
||||
};
|
||||
};
|
||||
_color = +GVAR(TAG_DISPLAY_COLOR);
|
||||
|
||||
_nameOfUnit = name _cursor; //[_cursor] call FUNC(getName); // TODO Implement a getName function
|
||||
// TODO implement module checking
|
||||
/*if (ACE_NameTags_SYS_MEDICAL_SYSTEM_ENABLED_TAGS) then {
|
||||
_status = [_cursor] call FUNC(getTriageStatus_CMS);
|
||||
if ((_status select 1) >0) then {
|
||||
_nameOfUnit = _nameOfUnit + " ["+ (_status select 0) + "]";
|
||||
_color = _status select 2;
|
||||
};
|
||||
};*/
|
||||
_iconDrawn = QUOTE(PATHTOF(data\empty.paa));
|
||||
if (_unit getvariable [QGVAR(isSpeaking),false] && GVAR(SHOW_SOUNDWAVES)) then {
|
||||
_iconDrawn = (GVAR(SOUNDWAVE_ICONS) select ((round(random (count GVAR(SOUNDWAVE_ICONS) - 1)))));
|
||||
};
|
||||
drawIcon3D [_iconDrawn,_color, _pos, 2, 2, 1 ,toUpper _nameOfUnit, 1, 0.03, FONT];
|
||||
|
||||
};
|
||||
};
|
@ -1,65 +0,0 @@
|
||||
/**
|
||||
* fn_findNearbyUnits_TAGS.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_info", "_nameOfUnit", "_color", "_isTalking", "_pos", "_nearest"];
|
||||
_info = [];
|
||||
if (alive player) then {
|
||||
_nearest = (_this nearEntities [["CAManBase"], GVAR(INDIRECT_TAGS_DISTANCE)]);
|
||||
{
|
||||
if (_x != _this && (vehicle _x == _x) && isTouchingGround _X) then {
|
||||
if (lineIntersects [eyePos _this, eyePos _x, _x, _this]) exitwith{};
|
||||
if ((side _x) call FUNC(allowSide) && !(_x == cursortarget)) then {
|
||||
_nameOfUnit = name _x;
|
||||
if (_x getvariable ["ACE_isDead",false]) then { // TODO, how do we check for dead units?
|
||||
_nameOfUnit = _unit getvariable ["ACE_name","Unknown"]; // TODO is there are function to get the name of a unit?
|
||||
};
|
||||
_pos = visiblePositionASL _x;
|
||||
|
||||
// TODO This can be done better
|
||||
switch (stance _x) do {
|
||||
case "STAND": {
|
||||
_pos set [2, ((_x modelToWorld [0,0,0]) select 2)+2];
|
||||
};
|
||||
case "CROUCH": {
|
||||
_pos set [2, ((_x modelToWorld [0,0,0]) select 2)+1.5];
|
||||
};
|
||||
case "PRONE": {
|
||||
_pos set [2, ((_x modelToWorld [0,0,0]) select 2) + 0.5];
|
||||
};
|
||||
default {
|
||||
_pos set [2, ((_x modelToWorld [0,0,0]) select 2) + 1.5];
|
||||
};
|
||||
};
|
||||
|
||||
_color = +GVAR(TAG_DISPLAY_COLOR);
|
||||
_color set [3, 0];
|
||||
_isTalking = (_x getvariable [QGVAR(isSpeaking),false]);
|
||||
|
||||
// TODO implement module checking
|
||||
/*if (ACE_NameTags_SYS_MEDICAL_SYSTEM_ENABLED_TAGS) then {
|
||||
_status = [_x] call FUNC(getTriageStatus_CMS;
|
||||
if ((_status select 1) >0) then {
|
||||
_nameOfUnit = _nameOfUnit + " ["+ (_status select 0) + "]";
|
||||
_color = _status select 2;
|
||||
};
|
||||
};*/
|
||||
if (GVAR(DISPLAY_RANK)) then {
|
||||
_nameOfUnit = (rank _x) + " " + _nameOfUnit;
|
||||
};
|
||||
_color set [3,(1-((_x distance _this) / GVAR(INDIRECT_TAGS_DISTANCE))) + 0.05];
|
||||
_info pushback [_nameOfUnit, _pos, _color, _x];
|
||||
};
|
||||
};
|
||||
}foreach _nearest;
|
||||
};
|
||||
|
||||
_info;
|
@ -1,40 +0,0 @@
|
||||
/**
|
||||
* fn_handleSpeaking_TAGS.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
// TODO Implement a check mod loaded function
|
||||
#define ACTION_PUSH_TO_TALK_PRESSED (inputAction "PushToTalk" > 0)
|
||||
#define ACTION_TFAR_RADIO_ACTIVE false // [] call {if (["task_force_radio"] call FUNC(isModLoaded_F)) then {player call TFAR_fnc_isSpeaking} else { false };}
|
||||
#define ACTION_ACRE_RADIO_ACTIVE false // [] call {if (["acre_api"] call FUNC(isModLoaded_F)) then {[player] call ACRE_api_fnc_isBroadcasting} else { false };}
|
||||
|
||||
private ["_unit"];
|
||||
_unit = _this select 0;
|
||||
|
||||
if (_unit != player /* _unit != ACE_Player */) exitwith {};
|
||||
|
||||
// TODO check mod loaded function
|
||||
/*if (["task_force_radio"] call FUNC(isModLoaded_F)) then {
|
||||
waituntil {!isnil "TF_tangent_lr_pressed"};
|
||||
};*/
|
||||
|
||||
waituntil {
|
||||
if (ACTION_TFAR_RADIO_ACTIVE || ACTION_PUSH_TO_TALK_PRESSED || ACTION_ACRE_RADIO_ACTIVE) then {
|
||||
if !(_unit getvariable [QGVAR(isSpeaking), false]) then {
|
||||
_unit setvariable [QGVAR(isSpeaking), true, true];
|
||||
};
|
||||
} else {
|
||||
if (_unit getvariable [QGVAR(isSpeaking), false]) then {
|
||||
_unit setvariable [QGVAR(isSpeaking), false, true];
|
||||
};
|
||||
};
|
||||
!(alive _unit) /* _unit != ACE_Player */
|
||||
};
|
||||
|
||||
_unit setvariable [QGVAR(isSpeaking),nil,true];
|
@ -1,24 +0,0 @@
|
||||
/**
|
||||
* fnc_initalizeModule.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (!hasInterface) exitwith {}; // No need for this module on HC or dedicated server.
|
||||
|
||||
private ["_logic"];
|
||||
_logic = [_this,0,objNull,[objNull]] call BIS_fnc_param;
|
||||
if (!isNull _logic) then {
|
||||
// TODO default values should be defined somewhere through an include, so they are the same in CfgVehicles and here.
|
||||
GVAR(ENABLE_MODULE) = _logic getvariable ["enableModule", false];
|
||||
GVAR(INDIRECT_TAGS_DISTANCE) = _logic getvariable ["indirectDistance", 7.5];
|
||||
GVAR(DIRECT_TAG_DISTANCE) = _logic getvariable ["cursorTargetDistance", 20];
|
||||
GVAR(ALLOW_OWN_SIDE_ONLY) = !(_logic getvariable ["allowDifferentSides", false]);
|
||||
GVAR(ENABLE_SOUNDWAVES) = _logic getvariable ["enableSoundWaves", false];
|
||||
};
|
@ -1,12 +0,0 @@
|
||||
#define COMPONENT nametags
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#ifdef DEBUG_ENABLED_NAMETAGS
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_SETTINGS_NAMETAGS
|
||||
#define DEBUG_SETTINGS DEBUG_SETTINGS_NAMETAGS
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
@ -1,43 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Project name="ACE3">
|
||||
<Package name="nametags">
|
||||
<Container ID="Module">
|
||||
<Key ID="STR_ACE_NameTags_Title">
|
||||
<Original>Name Tags [ACE]</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_Arg_enable">
|
||||
<Original>Enable Name Tags</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_Arg_enable_Desc">
|
||||
<Original>Enable the name tags</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_Arg_indirectDistance">
|
||||
<Original>Indirect Distance</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_Arg_indirectDistance_Desc">
|
||||
<Original>Distance for indirect Tags</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_Arg_directDistance">
|
||||
<Original>Target Distance</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_Arg_directDistance_Desc">
|
||||
<Original>Distance for the direct Tag (Cursortarget)</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_Arg_soundWaves">
|
||||
<Original>Enable Soundwaves</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_Arg_soundWaves_Desc">
|
||||
<Original>Enable Soundwaves when a player is speaking</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_Arg_differentSides">
|
||||
<Original>Allow Different sides</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_Arg_differentSides_Desc">
|
||||
<Original>Allow name tags for all friendly sides, instead of only player side</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_ModuleDesc">
|
||||
<Original>Adjust the name tags settings.</Original>
|
||||
</Key>
|
||||
</Container>
|
||||
</Package>
|
||||
</Project>
|
Loading…
Reference in New Issue
Block a user