mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Removed the old Kestrel module
This commit is contained in:
parent
71886b7266
commit
c3fbd8a195
@ -1 +0,0 @@
|
||||
z\ace\addons\kestrel
|
@ -1,6 +0,0 @@
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
};
|
||||
};
|
@ -1,47 +0,0 @@
|
||||
class CfgVehicles {
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
class ACE_SelfActions {
|
||||
class ACE_OpenKestrel {
|
||||
displayName = "$STR_ACE_Wind_OpenKestrel";
|
||||
condition = QUOTE('ACE_Kestrel' in items _player && {!GVAR(isKestrel)});
|
||||
statement = QUOTE(call FUNC(openKestrel));
|
||||
showDisabled = 0;
|
||||
priority = 2;
|
||||
icon = PATHTOF(data\4500NV1.paa);
|
||||
hotkey = "K";
|
||||
};
|
||||
class ACE_CloseKestrel {
|
||||
displayName = "$STR_ACE_Wind_CloseKestrel";
|
||||
condition = QUOTE(GVAR(isKestrel));
|
||||
statement = QUOTE(call FUNC(closeKestrel));
|
||||
showDisabled = 0;
|
||||
priority = 2;
|
||||
icon = PATHTOF(data\4500NV1.paa);
|
||||
hotkey = "K";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Item_Base_F;
|
||||
class ACE_Item_Kestrel: Item_Base_F {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = "$STR_ACE_Kestrel_Name";
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
class ACE_Kestrel {
|
||||
name = "ACE_Kestrel";
|
||||
count = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Box_NATO_Support_F;
|
||||
class ACE_Box_Misc: Box_NATO_Support_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_Kestrel,6);
|
||||
};
|
||||
};
|
||||
};
|
@ -1,20 +0,0 @@
|
||||
|
||||
class CfgWeapons {
|
||||
class ACE_ItemCore;
|
||||
class InventoryItem_Base_F;
|
||||
|
||||
class ACE_Kestrel: ACE_ItemCore {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
scope = 2;
|
||||
displayName = "$STR_ACE_Kestrel_Name";
|
||||
descriptionShort = "$STR_ACE_Kestrel_Description";
|
||||
model = PATHTOF(kestrel4500.p3d);
|
||||
picture = PATHTOF(data\4500NV.paa);
|
||||
icon = "iconObject_circle";
|
||||
mapSize = 0.034;
|
||||
|
||||
class ItemInfo: InventoryItem_Base_F {
|
||||
mass = 2;
|
||||
};
|
||||
};
|
||||
};
|
@ -1,12 +0,0 @@
|
||||
ace_kestrel
|
||||
===========
|
||||
|
||||
Adds the Kestrel weather and wind meter.
|
||||
|
||||
|
||||
## Maintainers
|
||||
|
||||
The people responsible for merging changes to this component or answering potential questions.
|
||||
|
||||
- [KoffeinFlummi](https://github.com/KoffeinFlummi)
|
||||
- [commy2](https://github.com/commy2)
|
@ -1,125 +0,0 @@
|
||||
|
||||
class RscPicture;
|
||||
class RscText;
|
||||
|
||||
class RscTitles {
|
||||
class ACE_Kestrel {
|
||||
onload = QUOTE(_this call FUNC(onLoadKestrel));
|
||||
//onunload = "";
|
||||
idd = -1;
|
||||
movingEnable = 0;
|
||||
enableDisplay = 1;
|
||||
duration = 1e+011;
|
||||
fadein = 0;
|
||||
fadeout = 0;
|
||||
enablesimulation = 1;
|
||||
|
||||
class controls {
|
||||
// has to be first to be in the background
|
||||
class Wheel: RscPicture {
|
||||
idc = 3;
|
||||
type = 0;
|
||||
style = "48 + 0x800";
|
||||
text = "";
|
||||
x = "safeZoneX + 0.07";
|
||||
y = "safeZoneY + safeZoneH - 0.76";
|
||||
h = "0.15";
|
||||
w = "0.15";
|
||||
};
|
||||
|
||||
class Kestrel1: RscPicture {
|
||||
idc = 1;
|
||||
text = PATHTOF(data\4500NV1.paa);
|
||||
style = "48 + 0x800";
|
||||
x = "safeZoneX - 0.25";
|
||||
y = "safeZoneY + safeZoneH - 0.8";
|
||||
h = "0.75";
|
||||
w = "0.75";
|
||||
};
|
||||
class Kestrel2: Kestrel1 {
|
||||
idc = 2;
|
||||
text = PATHTOF(data\4500NV2.paa);
|
||||
colorText[] = {0,0,0,1-(sunOrMoon*sunOrMoon+(moonIntensity/5))};
|
||||
};
|
||||
|
||||
class HUD1: RscText {
|
||||
idc = 11;
|
||||
type = 0;
|
||||
style = 1;
|
||||
text = "";
|
||||
x = "safeZoneX + 0.08";
|
||||
y = "safeZoneY + safeZoneH - 0.51";
|
||||
h = "0.09";
|
||||
w = "0.108";
|
||||
shadow = 0;
|
||||
font = "PuristaMedium";
|
||||
sizeEx = 0.04;
|
||||
colorText[] = {0.0745,0.2196,0.1216,0.7};
|
||||
colorBackground[] = {0,0,0,0};
|
||||
lineSpacing = 1;
|
||||
};
|
||||
class HUD2: HUD1 {
|
||||
idc = 12;
|
||||
y = "safeZoneY + safeZoneH - 0.48";
|
||||
};
|
||||
class HUD3: HUD1 {
|
||||
idc = 13;
|
||||
y = "safeZoneY + safeZoneH - 0.45";
|
||||
};
|
||||
class HUD4: HUD1 {
|
||||
idc = 14;
|
||||
y = "safeZoneY + safeZoneH - 0.418";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// helper class to prevent flickering. Used together with preloadTitleRsc command.
|
||||
class ACE_Kestrel_Preload {
|
||||
idd = -1;
|
||||
movingEnable = 0;
|
||||
duration = 1e+011;
|
||||
fadein = 0;
|
||||
fadeout = 0;
|
||||
class controls {
|
||||
class Preload_0: RscPicture {
|
||||
text = PATHTOF(data\kestrel_0.paa);
|
||||
};
|
||||
class Preload_1: Preload_0 {
|
||||
text = PATHTOF(data\kestrel_1.paa);
|
||||
};
|
||||
class Preload_2: Preload_0 {
|
||||
text = PATHTOF(data\kestrel_2.paa);
|
||||
};
|
||||
class Preload_3: Preload_0 {
|
||||
text = PATHTOF(data\kestrel_3.paa);
|
||||
};
|
||||
class Preload_4: Preload_0 {
|
||||
text = PATHTOF(data\kestrel_4.paa);
|
||||
};
|
||||
class Preload_5: Preload_0 {
|
||||
text = PATHTOF(data\kestrel_5.paa);
|
||||
};
|
||||
class Preload_6: Preload_0 {
|
||||
text = PATHTOF(data\kestrel_6.paa);
|
||||
};
|
||||
class Preload_7: Preload_0 {
|
||||
text = PATHTOF(data\kestrel_7.paa);
|
||||
};
|
||||
class Preload_8: Preload_0 {
|
||||
text = PATHTOF(data\kestrel_8.paa);
|
||||
};
|
||||
class Preload_9: Preload_0 {
|
||||
text = PATHTOF(data\kestrel_9.paa);
|
||||
};
|
||||
/*class Preload_A: Preload_0 {
|
||||
text = PATHTOF(data\4500NV.paa);
|
||||
};
|
||||
class Preload_B: Preload_0 {
|
||||
text = PATHTOF(data\4500NV1.paa);
|
||||
};
|
||||
class Preload_C: Preload_0 {
|
||||
text = PATHTOF(data\4500NV2.paa);
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
@ -1,11 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
ADDON = false;
|
||||
|
||||
PREP(onLoadKestrel);
|
||||
PREP(openKestrel);
|
||||
PREP(closeKestrel);
|
||||
|
||||
GVAR(isKestrel) = false;
|
||||
|
||||
ADDON = true;
|
@ -1,18 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {"ACE_Item_Kestrel"};
|
||||
weapons[] = {"ACE_Kestrel"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common","ace_interaction"};
|
||||
author[] = {"Falke","commy2","KoffeinFlummi","esteldunedain"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
#include "CfgWeapons.hpp"
|
||||
#include "RscTitles.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.
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,6 +0,0 @@
|
||||
// by commy2
|
||||
#include "script_component.hpp"
|
||||
|
||||
GVAR(isKestrel) = false;
|
||||
|
||||
(["ACE_Kestrel"] call BIS_fnc_rscLayer) cutText ["", "PLAIN", 0, false];
|
@ -1,156 +0,0 @@
|
||||
// by Falke, commy2
|
||||
#include "script_component.hpp"
|
||||
|
||||
GVAR(windHead) = 0;
|
||||
GVAR(wheelState) = 1;
|
||||
|
||||
[{
|
||||
|
||||
// exit loop
|
||||
if (!GVAR(isKestrel) || {!("ACE_Kestrel" in items ACE_player)}) exitWith {
|
||||
call FUNC(closeKestrel);
|
||||
|
||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
// get controls
|
||||
private ["_dlgKestrel", "_ctrlKestrel1", "_ctrlKestrelWheel", "_ctrlKestrel2", "_ctrlHUD1", "_ctrlHUD2", "_ctrlHUD3", "_ctrlHUD4"];
|
||||
|
||||
disableSerialization;
|
||||
_dlgKestrel = _this select 0;
|
||||
_ctrlKestrel1 = _dlgKestrel displayCtrl 1;
|
||||
_ctrlKestrel2 = _dlgKestrel displayCtrl 2;
|
||||
_ctrlKestrelWheel = _dlgKestrel displayCtrl 3;
|
||||
_ctrlHUD1 = _dlgKestrel displayCtrl 11;
|
||||
_ctrlHUD2 = _dlgKestrel displayCtrl 12;
|
||||
_ctrlHUD3 = _dlgKestrel displayCtrl 13;
|
||||
_ctrlHUD4 = _dlgKestrel displayCtrl 14;
|
||||
|
||||
// don't show the kestrel in gunner view
|
||||
private "_show";
|
||||
_show = cameraView != "GUNNER";
|
||||
|
||||
_ctrlKestrel1 ctrlShow _show;
|
||||
_ctrlKestrel2 ctrlShow _show;
|
||||
_ctrlKestrelWheel ctrlShow _show;
|
||||
_ctrlHUD1 ctrlShow _show;
|
||||
_ctrlHUD2 ctrlShow _show;
|
||||
_ctrlHUD3 ctrlShow _show;
|
||||
_ctrlHUD4 ctrlShow _show;
|
||||
|
||||
if !(_show) exitWith {};
|
||||
|
||||
// handle shown values
|
||||
private ["_position", "_directon", "_windC", "_windD", "_windR", "_windB", "_windA"];
|
||||
|
||||
_position = eyePos ACE_player;
|
||||
_directon = direction ACE_player;
|
||||
|
||||
_windC = sqrt ((wind select 0) ^ 2 + (wind select 1) ^ 2);
|
||||
_windD = (wind select 0) atan2 (wind select 1);
|
||||
|
||||
_windR = _directon - _windD;
|
||||
|
||||
if (_windR < 0) then {
|
||||
_windR = _windR + 360;
|
||||
};
|
||||
|
||||
_windB = _windC * sin _windR;
|
||||
_windA = sqrt (_windC ^ 2 - _windB ^ 2);
|
||||
|
||||
if (_windR < 90) then {
|
||||
_windA = _windA - 2 * _windA;
|
||||
};
|
||||
|
||||
if (_windR > 270) then {
|
||||
_windA = _windA - 2 * _windA;
|
||||
};
|
||||
|
||||
// in building
|
||||
_intersects = 0;
|
||||
if (lineIntersects [_position, _position vectorAdd [0, 0, 15]]) then {_intersects = _intersects + 1};
|
||||
|
||||
if (lineIntersects [_position, _position vectorAdd [- 15 * sin windDir, - 15 * cos windDir, 0]]) then {_intersects = _intersects + 1};
|
||||
if (lineIntersects [_position, _position vectorAdd [- 15 * sin (windDir - 90), - 15 * cos (windDir - 90), 0]]) then {_intersects = _intersects + 1};
|
||||
if (lineIntersects [_position, _position vectorAdd [- 15 * sin (windDir + 90), - 15 * cos (windDir + 90), 0]]) then {_intersects = _intersects + 1};
|
||||
if (lineIntersects [_position, _position vectorAdd [- 15 * sin (windDir + 180), - 15 * cos (windDir + 180), 0]]) then {_intersects = _intersects + 1};
|
||||
|
||||
if (_intersects > 3) then {
|
||||
_windA = 99.99;
|
||||
_windB = 99.99;
|
||||
};
|
||||
|
||||
// in wind direction
|
||||
_intersects = 0;
|
||||
if (lineIntersects [_position, _position vectorAdd [- 5 * sin windDir, - 5 * cos windDir, 0]]) then {_intersects = _intersects + 1};
|
||||
if (lineIntersects [_position, _position vectorAdd [- 5 * sin (windDir - 15), - 5 * cos (windDir - 15), 0]]) then {_intersects = _intersects + 1};
|
||||
if (lineIntersects [_position, _position vectorAdd [- 5 * sin (windDir + 15), - 5 * cos (windDir + 15), 0]]) then {_intersects = _intersects + 1};
|
||||
|
||||
if (_intersects > 2) then {
|
||||
_windA = 99.99;
|
||||
_windB = 99.99;
|
||||
};
|
||||
|
||||
if (ACE_player != vehicle ACE_player) then {
|
||||
_windA = 99.99;
|
||||
_windB = 99.99;
|
||||
};
|
||||
|
||||
if (_windA == 99.99) then {
|
||||
|
||||
GVAR(windHead) = 0;
|
||||
|
||||
_windA = "0.00";
|
||||
_windB = "0.00";
|
||||
|
||||
} else {
|
||||
|
||||
GVAR(windHead) = _windA;
|
||||
|
||||
if (_windA < 0) then {
|
||||
_windA = format ["-%1", [-1 * _windA, 1, 2] call CBA_fnc_formatNumber];
|
||||
} else {
|
||||
_windA = format [ "%1", [ _windA, 1, 2] call CBA_fnc_formatNumber];
|
||||
};
|
||||
|
||||
if (_windB < 0) then {
|
||||
_windB = format ["-%1", [-1 * _windB, 1, 2] call CBA_fnc_formatNumber];
|
||||
} else {
|
||||
_windB = format [ "%1", [ _windB, 1, 2] call CBA_fnc_formatNumber];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
_directon = round _directon;
|
||||
if (_directon == 360) then {_directon = 0};
|
||||
|
||||
_ctrlHUD1 ctrlSetText _windA;
|
||||
_ctrlHUD2 ctrlSetText _windB;
|
||||
_ctrlHUD3 ctrlSetText str _directon;
|
||||
_ctrlHUD4 ctrlSetText str ((round (EGVAR(weather,currentTemperature) * 10)) / 10);
|
||||
|
||||
// adjust kestrel picture in the dark
|
||||
private "_brightness";
|
||||
_brightness = call EFUNC(common,ambientBrightness);
|
||||
|
||||
_ctrlKestrel2 ctrlSetTextColor [0, 0, 0, 1 - _brightness];
|
||||
|
||||
// handle wheel
|
||||
private ["_wheelState", "_wheelStateAdd"];
|
||||
|
||||
_wheelState = GVAR(wheelState);
|
||||
_wheelStateAdd = ((round GVAR(windHead) * 2) min 5) max -5;
|
||||
|
||||
_wheelState = _wheelState + _wheelStateAdd;
|
||||
|
||||
if (_wheelState < 0) then {_wheelState = _wheelState + 9};
|
||||
if (_wheelState > 9) then {_wheelState = _wheelState - 9};
|
||||
|
||||
GVAR(wheelState) = _wheelState;
|
||||
|
||||
if (preloadTitleRsc ["ACE_Kestrel_Preload", "PLAIN"]) then {
|
||||
_ctrlKestrelWheel ctrlSetText format [QUOTE(PATHTOF(data\kestrel_%1.paa)), _wheelState];
|
||||
_ctrlKestrelWheel ctrlSetTextColor [_brightness, _brightness, _brightness, 1];
|
||||
};
|
||||
|
||||
}, 0.01, _this select 0] call CBA_fnc_addPerFrameHandler;
|
@ -1,6 +0,0 @@
|
||||
// by commy2
|
||||
#include "script_component.hpp"
|
||||
|
||||
GVAR(isKestrel) = true;
|
||||
|
||||
(["ACE_Kestrel"] call BIS_fnc_rscLayer) cutRsc ["ACE_Kestrel", "PLAIN", 0, false];
|
@ -1 +0,0 @@
|
||||
#include "\z\ace\addons\kestrel\script_component.hpp"
|
Binary file not shown.
Binary file not shown.
@ -1,12 +0,0 @@
|
||||
#define COMPONENT kestrel
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#ifdef DEBUG_ENABLED_KESTREL
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_ENABLED_KESTREL
|
||||
#define DEBUG_SETTINGS DEBUG_ENABLED_KESTREL
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
@ -1,64 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler - 2014-12-11 -->
|
||||
<Project name="ACE">
|
||||
<Package name="Wind">
|
||||
<Key ID="STR_ACE_Wind_ApproximateTemp">
|
||||
<English>Approximate Temperature</English>
|
||||
<German>Ungefähre Temperatur</German>
|
||||
<Spanish>Temperatura aproximada</Spanish>
|
||||
<French>Estimer la température</French>
|
||||
<Polish>Przybliżona temperatura</Polish>
|
||||
<Czech>Odhadovaná teplota</Czech>
|
||||
<Hungarian>Hőmérséklet nagyábol</Hungarian>
|
||||
<Russian>Примерная температура </Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Kestrel_Name">
|
||||
<English>Kestrel 4500NV</English>
|
||||
<German>Kestrel 4500NV</German>
|
||||
<Spanish>Kestrel 4500NV</Spanish>
|
||||
<French>Kestrel 4500NV</French>
|
||||
<Polish>Kestrel 4500NV</Polish>
|
||||
<Czech>Kestrel 4500NV</Czech>
|
||||
<Italian>Kestrel 4500NV</Italian>
|
||||
<Hungarian>Kestrel 4500NV</Hungarian>
|
||||
<Portuguese>Kestrel 4500NV</Portuguese>
|
||||
<Russian>Kestrel 4500NV</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Kestrel_Description">
|
||||
<English>Applied Ballistics Meter</English>
|
||||
<German>Applied Ballistics Meter</German>
|
||||
<Spanish>Anemómetro balístico</Spanish>
|
||||
<French>Applied Ballistics Meter</French>
|
||||
<Polish>Urządzenie do monitorowania pogody</Polish>
|
||||
<Czech>Zařízení pro měření vítru</Czech>
|
||||
<Italian>Monitoraggio Balistico Attivo</Italian>
|
||||
<Hungarian>Applied Ballistics Meter</Hungarian>
|
||||
<Portuguese>Medidor Balístico Ativo</Portuguese>
|
||||
<Russian>метеостанция</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Wind_OpenKestrel">
|
||||
<English>Open Kestrel</English>
|
||||
<German>Kestrel öffnen</German>
|
||||
<Spanish>Abrir Kestrel</Spanish>
|
||||
<French>Ouvrir Kestrel</French>
|
||||
<Polish>Otwórz Kestrel</Polish>
|
||||
<Czech>Otevřít Kestrel</Czech>
|
||||
<Portuguese>Abrir Kestrel</Portuguese>
|
||||
<Italian>Apri Kestrel</Italian>
|
||||
<Hungarian>Kestrel bekapcsolása</Hungarian>
|
||||
<Russian>Открыть Kestrel</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Wind_CloseKestrel">
|
||||
<English>Close Kestrel</English>
|
||||
<German>Kestrel schließen</German>
|
||||
<Spanish>Cerrar Kestrel</Spanish>
|
||||
<French>Fermer Kestrel</French>
|
||||
<Polish>Zamknij Kestrel</Polish>
|
||||
<Czech>Zavřít Kestrel</Czech>
|
||||
<Portuguese>Fechar Kestrel</Portuguese>
|
||||
<Italian>Chiudi Kestrel</Italian>
|
||||
<Hungarian>Kestrel kikapcsolása</Hungarian>
|
||||
<Russian>Закрыть Kestrel</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
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.
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.
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.
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.
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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user