mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-13 19:52:38 +03:00
The buying list now acts like a shopping cart. It is no longer cleared when switching between categories or containers. Closing the dialog or switching to sell mode still clears it. Also fixed: - Filter button in sell mode - Bug where filtering sellable list readded items already moved to selling list - Visual price display not clearing when remove all button is used on buying list - Gear container picture showing rank instead of portrait in buy mode - Dialog is no longer closed when trying to sell zero items - LbCurSel is now reset when the buyable list is cleared - Category is no longer opened onLbSelChanged. Instead you need to double click or use the "View" button, so the arrow keys can be used for selecting too.
134 lines
4.7 KiB
Plaintext
134 lines
4.7 KiB
Plaintext
private["_selection","_returnArray","_allowedMags","_allowedWeapons","_allowedBackpacks","_allowedTools","_allowedPrimary","_allowedSidearm","_formattedText","_pic"
|
|
,"_backpack","_vehicleWeapons","_vehicleMagazines","_vehicleBackpacks","_tempWeaponsArray","_tempBackpackArray","_tempMagazinesArray","_actualMags"
|
|
,"_normalMags","_normalWeaps","_kinds","_kinds2","_amounts","_amounts2","_counter"];
|
|
#include "defines.hpp"
|
|
|
|
_selection = _this select 0;
|
|
_returnArray = [0,0,0];
|
|
if(_selection == 2) then{ //gear
|
|
_actualMags = {!(_x in MeleeMagazines)} count (magazines player);
|
|
_allowedMags = 20 - _actualMags;
|
|
// 12 toolbelt + 1 Binoculars + 1 NVG + 1 Pistol + 1 Primary (onBack isn't counted in weapons player)
|
|
_allowedWeapons = 16 - count(weapons player);
|
|
|
|
_pic = getText (configFile >> 'CfgVehicles' >> (typeOf player) >> 'portrait');
|
|
_formattedText = format [
|
|
"<t size='1' align='center' color='#ffffff'>%2</t><br />" +
|
|
"<img image='%1' size='3' align='center'/><br />"
|
|
, _pic, localize "STR_UI_GEAR"
|
|
];
|
|
|
|
(findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_CONTAINERINFO) ctrlSetStructuredText parseText _formattedText;
|
|
|
|
_backpack = unitBackpack player;
|
|
_allowedBackpacks = if (isNull _backpack) then {1} else {0};
|
|
|
|
_returnArray = [_allowedMags, _allowedWeapons, _allowedBackpacks];
|
|
};
|
|
if(_selection == 1) then{ //vehicle
|
|
_allowedMags = 0;
|
|
_allowedWeapons = 0;
|
|
_allowedBackpacks = 0;
|
|
_vehicleMagazines = 0;
|
|
_vehicleWeapons = 0;
|
|
_vehicleBackpacks = 0;
|
|
if (!isNull Z_vehicle) then {
|
|
|
|
_pic = getText (configFile >> 'CfgVehicles' >> (typeOf Z_vehicle) >> 'picture');
|
|
|
|
_formattedText = format [
|
|
"<img image='%1' size='3' align='center'/>"
|
|
, _pic
|
|
];
|
|
|
|
(findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_CONTAINERINFO) ctrlSetStructuredText parseText _formattedText;
|
|
|
|
_tempMagazinesArray = getMagazineCargo Z_vehicle;
|
|
|
|
{
|
|
_vehicleMagazines = _vehicleMagazines + _x;
|
|
}count ( _tempMagazinesArray select 1);
|
|
|
|
|
|
_tempWeaponsArray = getWeaponCargo Z_vehicle;
|
|
|
|
{
|
|
_vehicleWeapons = _vehicleWeapons + _x;
|
|
}count ( _tempWeaponsArray select 1);
|
|
|
|
|
|
_tempBackpackArray = getBackpackCargo Z_vehicle;
|
|
|
|
{
|
|
_vehicleBackpacks = _vehicleBackpacks + _x;
|
|
}count ( _tempBackpackArray select 1);
|
|
|
|
_allowedWeapons = getNumber (configFile >> 'CfgVehicles' >> (typeOf Z_vehicle) >> 'transportMaxWeapons');
|
|
_allowedMags = getNumber (configFile >> 'CfgVehicles' >> (typeOf Z_vehicle) >> 'transportMaxMagazines');
|
|
_allowedBackpacks = getNumber (configFile >> 'CfgVehicles' >> (typeOf Z_vehicle) >> 'transportmaxbackpacks');
|
|
};
|
|
_returnArray = [_allowedMags - _vehicleMagazines, _allowedWeapons - _vehicleWeapons, _allowedBackpacks - _vehicleBackpacks];
|
|
};
|
|
if(_selection == 0) then{ //backpack
|
|
_allowedBackpacks = 0;
|
|
_totalBagSlots = 0;
|
|
_alreadyInBackpack = 0;
|
|
_backpack = unitBackpack player;
|
|
if (!isNull _backpack) then {
|
|
_pic = getText (configFile >> 'CfgVehicles' >> (typeOf _backpack) >> 'picture');
|
|
|
|
_formattedText = format [
|
|
"<img image='%1' size='3' align='center'/>"
|
|
, _pic
|
|
];
|
|
|
|
(findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_CONTAINERINFO) ctrlSetStructuredText parseText _formattedText;
|
|
|
|
_tempMagazinesArray = getMagazineCargo _backpack;
|
|
_tempWeaponsArray = getWeaponCargo _backpack;
|
|
_normalMags = [];
|
|
_normalWeaps = [];
|
|
|
|
_kinds = _tempMagazinesArray select 0;
|
|
_amounts = _tempMagazinesArray select 1;
|
|
{
|
|
_counter = 0;
|
|
while {_counter < (_amounts select _forEachIndex)} do {
|
|
_normalMags set [count(_normalMags), _x];
|
|
_counter = _counter + 1;
|
|
};
|
|
} forEach _kinds;
|
|
|
|
_kinds2 = _tempWeaponsArray select 0;
|
|
_amounts2 = _tempWeaponsArray select 1;
|
|
{
|
|
_counter = 0;
|
|
while {_counter < (_amounts2 select _forEachIndex)} do {
|
|
_normalWeaps set [count(_normalWeaps), _x];
|
|
_counter = _counter + 1;
|
|
};
|
|
} forEach _kinds2;
|
|
|
|
_totalBagSlots = getNumber (configFile >> 'CfgVehicles' >> (typeOf _backpack) >> 'transportMaxMagazines');
|
|
_currentPrim = 0;
|
|
_currentSec = 0;
|
|
_currentTool = 0;
|
|
{
|
|
_parentClasses = [(configFile >> "CfgWeapons" >> _x ),true] call BIS_fnc_returnParents;
|
|
if ('ItemCore' in _parentClasses or 'Binocular' in _parentClasses) then {
|
|
_currentTool = _currentTool + 1;
|
|
} else {
|
|
if ('PistolCore' in _parentClasses) then {
|
|
_currentSec = _currentSec + 1;
|
|
} else {
|
|
_currentPrim = _currentPrim + 1;
|
|
};
|
|
};
|
|
} count _normalWeaps;
|
|
|
|
_alreadyInBackpack = (10 * _currentPrim) + (5 * _currentSec) + _currentTool + count(_normalMags);
|
|
};
|
|
_returnArray = [_totalBagSlots - _alreadyInBackpack, floor((_totalBagSlots - _alreadyInBackpack) / 10), _allowedBackpacks];
|
|
};
|
|
(findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_SLOTSDISPLAY) ctrlSetText format["%1/%2/%3",_returnArray select 1,_returnArray select 0,_returnArray select 2];
|