From f84140c5559d40bc510de96b60a1ba2bfc335f10 Mon Sep 17 00:00:00 2001 From: ebaydayz Date: Wed, 27 Jul 2016 18:40:03 -0400 Subject: [PATCH] Don't clear buying list on category switch + AdvTrade fixes 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. --- .../Configs/RscDisplay/advancedTrading.hpp | 9 +- .../functions/{defines.sqf => defines.hpp} | 0 .../functions/z_at_calcBuyableList.sqf | 119 +++++++++--------- .../functions/z_at_calcPrice.sqf | 2 +- .../functions/z_at_calculateFreeSpace.sqf | 10 +- .../functions/z_at_changeBuySell.sqf | 18 ++- .../functions/z_at_checkArrayInConfig.sqf | 2 +- .../functions/z_at_clearBuyList.sqf | 5 +- .../functions/z_at_clearBuyingList.sqf | 2 +- .../functions/z_at_clearLists.sqf | 2 +- .../functions/z_at_clearSellableList.sqf | 2 +- .../functions/z_at_displayBackpackInfo.sqf | 2 +- .../functions/z_at_displayItemInfo.sqf | 2 +- .../functions/z_at_displayVehicleInfo.sqf | 2 +- .../functions/z_at_displayWeaponInfo.sqf | 2 +- .../functions/z_at_fillBuyableList.sqf | 4 +- .../functions/z_at_fillBuyingList.sqf | 2 +- .../functions/z_at_fillCategories.sqf | 3 +- .../functions/z_at_fillCategoryList.sqf | 2 +- .../functions/z_at_fillSellList.sqf | 2 +- .../functions/z_at_fillSellingList.sqf | 2 +- .../functions/z_at_filleTradeTitle.sqf | 2 +- .../functions/z_at_filterList.sqf | 1 + .../functions/z_at_getBackpackItems.sqf | 2 +- .../functions/z_at_getContainer.sqf | 22 ++-- .../functions/z_at_getGearItems.sqf | 2 +- .../functions/z_at_getItemConfig.sqf | 2 +- .../functions/z_at_getItemInfo.sqf | 2 +- .../functions/z_at_getVehicleItems.sqf | 2 +- .../functions/z_at_pushItemToList.sqf | 2 +- .../z_at_removeAllFromBuyingList.sqf | 1 + .../z_at_removeItemFromBuyingList.sqf | 2 +- .../functions/z_at_removeItemFromList.sqf | 2 +- .../functions/z_at_sellItems.sqf | 4 +- .../functions/z_at_toBuyingList.sqf | 2 +- .../actions/AdvancedTrading/init.sqf | 4 +- 36 files changed, 128 insertions(+), 118 deletions(-) rename SQF/dayz_code/actions/AdvancedTrading/functions/{defines.sqf => defines.hpp} (100%) diff --git a/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp b/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp index 93728914e..5275d2522 100644 --- a/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp +++ b/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp @@ -92,7 +92,7 @@ class AdvancedTrading x = 0.51 * safezoneW + safezoneX; y = 0.26 * safezoneH + safezoneY; w = 0.08 * safezoneW; - onButtonClick = "Z_CategoryView = true; call Z_ChangeBuySell;"; + onButtonClick = "Z_CategoryView = true; Z_ResetContainer = true; call Z_ChangeBuySell;"; colorBackground[] = {1,1,1,1}; color[] = {0,0,0,1}; }; @@ -123,7 +123,7 @@ class AdvancedTrading x = 0.21 * safezoneW + safezoneX; y = 0.33 * safezoneH + safezoneY; w = 0.08 * safezoneW; - onButtonClick = "Z_Selling = !Z_Selling; Z_CategoryView = true; call Z_ChangeBuySell;"; + onButtonClick = "Z_Selling = true; Z_CategoryView = true; call Z_ChangeBuySell;"; //Z_Selling is flipped in ChangeBuySell colorBackground[] = {1,1,1,1}; color[] = {0,0,0,1}; }; @@ -232,7 +232,8 @@ class AdvancedTrading soundSelect[] = {"",0.1,1}; colorBackground[] = {0.1,0.1,0.1,0.8}; onload = "ctrlShow [_this,false]"; - onLBSelChanged = "if (Z_CategoryView) then {(lbCurSel 7421) call Z_fillCategoryList} else {['buyable',(lbCurSel 7421)] call Z_getItemInfo};"; + onLBDblClick = "if (Z_CategoryView) then {(lbCurSel 7421) call Z_fillCategoryList;};"; + onLBSelChanged = "if (!Z_CategoryView) then {['buyable',(lbCurSel 7421)] call Z_getItemInfo;};"; class ListScrollBar: ZSC_RscScrollBar{}; class ScrollBar { @@ -296,7 +297,7 @@ class AdvancedTrading x = 0.21 * safezoneW + safezoneX; y = 0.77 * safezoneH + safezoneY; w = 0.13 * safezoneW; - onButtonClick = "if (Z_CategoryView) then {(lbCurSel 7421) call Z_fillCategoryList} else {[(ctrlText 7444)] call Z_filterList};"; + onButtonClick = "if (Z_CategoryView && !Z_Selling) then {(lbCurSel 7421) call Z_fillCategoryList} else {[(ctrlText 7444)] call Z_filterList};"; colorBackground[] = {1,1,1,1}; color[] = {0,0,0,1}; }; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/defines.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/defines.hpp similarity index 100% rename from SQF/dayz_code/actions/AdvancedTrading/functions/defines.sqf rename to SQF/dayz_code/actions/AdvancedTrading/functions/defines.hpp diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calcBuyableList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calcBuyableList.sqf index bf0c50e07..6b668a17e 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calcBuyableList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calcBuyableList.sqf @@ -1,76 +1,75 @@ private ["_arrayOfTraderCat","_counter","_cat","_cfgtraders","_y","_type","_buy","_sell","_pic","_text","_worth","_buyCurrency","_sellCurrency","_ignore","_categoryNumber"]; call Z_clearBuyList; -call Z_clearBuyingList; Z_BuyableArray = []; -Z_BuyingArray = []; _arrayOfTraderCat = Z_traderData; _counter = 0; { - _categoryNumber = if (Z_CategoryView) then {_this} else {(_arrayOfTraderCat select _forEachIndex select 1)}; - _cat = format["Category_%1",_categoryNumber]; - _cfgtraders = missionConfigFile >> "CfgTraderCategory" >> _cat; - if (isNumber (_cfgtraders >> "duplicate")) then { - _cat = format["Category_%1",getNumber (_cfgtraders >> "duplicate")]; - _cfgtraders = missionConfigFile >> "CfgTraderCategory" >> _cat; - }; - for "_i" from 0 to (count _cfgtraders) - 1 do - { - _y = _cfgtraders select _i; - if (isClass _y) then + _categoryNumber = _x select 1; + if (_categoryNumber == _this) exitWith { + _cat = format["Category_%1",_categoryNumber]; + _cfgtraders = missionConfigFile >> "CfgTraderCategory" >> _cat; + if (isNumber (_cfgtraders >> "duplicate")) then { + _cat = format["Category_%1",getNumber (_cfgtraders >> "duplicate")]; + _cfgtraders = missionConfigFile >> "CfgTraderCategory" >> _cat; + }; + for "_i" from 0 to (count _cfgtraders) - 1 do { - _y = configName (_y ); + _y = _cfgtraders select _i; + if (isClass _y) then + { + _y = configName (_y ); - _type = getText(missionConfigFile >> "CfgTraderCategory" >> _cat >> _y >> "type"); - _buy = getArray(missionConfigFile >> "CfgTraderCategory" >> _cat >> _y >> "buy"); - _sell = getArray(missionConfigFile >> "CfgTraderCategory" >> _cat >> _y >> "sell"); - _pic = ""; - _text = ""; - _buyCurrency = ""; - _sellCurrency = ""; - _worth = 0; - _ignore = false; - if (dayz_classicBloodBagSystem && _y in dayz_typedBags) then { - if (_y == "bloodBagONEG") then {_y = "ItemBloodbag";} else {_ignore = true;}; - }; - - if(_type == "trade_items")then{ - _pic = getText (configFile >> 'CfgMagazines' >> _y >> 'picture'); - _text = getText (configFile >> 'CfgMagazines' >> _y >> 'displayName'); - }; - if(_type == "trade_weapons")then{ - _pic = getText (configFile >> 'CfgWeapons' >> _y >> 'picture'); - _text = getText (configFile >> 'CfgWeapons' >> _y >> 'displayName'); - }; - if(_type in ["trade_backpacks", "trade_any_vehicle", "trade_any_vehicle_free", "trade_any_vehicle_old", "trade_any_bicycle", "trade_any_bicycle_old", "trade_any_boat", "trade_any_boat_old"])then{ - _pic = getText (configFile >> 'CfgVehicles' >> _y >> 'picture'); - _text = getText (configFile >> 'CfgVehicles' >> _y >> 'displayName'); - }; - - if(!Z_SingleCurrency) then { - _buyCurrency = _buy select 1; - _sellCurrency = _sell select 1, - _part = (configFile >> "CfgMagazines" >> _buyCurrency); - _worth = getNumber(_part >> "worth"); - if (_worth == 0) then { - _worth = DZE_GemWorthList select (DZE_GemList find _buyCurrency); + _type = getText(missionConfigFile >> "CfgTraderCategory" >> _cat >> _y >> "type"); + _buy = getArray(missionConfigFile >> "CfgTraderCategory" >> _cat >> _y >> "buy"); + _sell = getArray(missionConfigFile >> "CfgTraderCategory" >> _cat >> _y >> "sell"); + _pic = ""; + _text = ""; + _buyCurrency = ""; + _sellCurrency = ""; + _worth = 0; + _ignore = false; + if (dayz_classicBloodBagSystem && _y in dayz_typedBags) then { + if (_y == "bloodBagONEG") then {_y = "ItemBloodbag";} else {_ignore = true;}; + }; + + if(_type == "trade_items")then{ + _pic = getText (configFile >> 'CfgMagazines' >> _y >> 'picture'); + _text = getText (configFile >> 'CfgMagazines' >> _y >> 'displayName'); + }; + if(_type == "trade_weapons")then{ + _pic = getText (configFile >> 'CfgWeapons' >> _y >> 'picture'); + _text = getText (configFile >> 'CfgWeapons' >> _y >> 'displayName'); + }; + if(_type in ["trade_backpacks", "trade_any_vehicle", "trade_any_vehicle_free", "trade_any_vehicle_old", "trade_any_bicycle", "trade_any_bicycle_old", "trade_any_boat", "trade_any_boat_old"])then{ + _pic = getText (configFile >> 'CfgVehicles' >> _y >> 'picture'); + _text = getText (configFile >> 'CfgVehicles' >> _y >> 'displayName'); + }; + + if(!Z_SingleCurrency) then { + _buyCurrency = _buy select 1; + _sellCurrency = _sell select 1, + _part = (configFile >> "CfgMagazines" >> _buyCurrency); + _worth = getNumber(_part >> "worth"); + if (_worth == 0) then { + _worth = DZE_GemWorthList select (DZE_GemList find _buyCurrency); + }; + }else{ + _buyCurrency = CurrencyName; + _sellCurrency = CurrencyName; + }; + + if (!_ignore) then { // Fill buyable list for one category only + Z_BuyableArray set [count Z_BuyableArray, [_y,_type,_buy select 0,_text,_pic,_forEachIndex,_sell select 0, _buyCurrency, _sellCurrency, 0,_cat, _worth]]; }; - }else{ - _buyCurrency = CurrencyName; - _sellCurrency = CurrencyName; - }; - - if (!_ignore) then { - Z_BuyableArray set [count(Z_BuyableArray) , [_y,_type,_buy select 0,_text,_pic,_forEachIndex,_sell select 0, _buyCurrency, _sellCurrency, 0,_cat, _worth]]; }; }; }; - if (Z_CategoryView) exitWith { // Only filling items for one category - Z_CategoryView = false; - Z_Selling = !Z_Selling; - call Z_ChangeBuySell; - }; }forEach _arrayOfTraderCat; +Z_CategoryView = false; +Z_Selling = true; // flipped in ChangeBuySell +call Z_ChangeBuySell; + Z_OriginalBuyableArray = [] + Z_BuyableArray; call Z_fillBuyableList; -call Z_calcPrice; +call Z_calcPrice; \ No newline at end of file diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calcPrice.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calcPrice.sqf index 46530b9ff..4ebf8a7a9 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calcPrice.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calcPrice.sqf @@ -4,7 +4,7 @@ * Calculate the total price for single currency. **/ private ["_sellPrice","_ctrltext"]; -#include "defines.sqf"; +#include "defines.hpp" _sellPrice = 0; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calculateFreeSpace.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calculateFreeSpace.sqf index e7b96a039..d71b87118 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calculateFreeSpace.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_calculateFreeSpace.sqf @@ -1,7 +1,7 @@ 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.sqf"; +#include "defines.hpp" _selection = _this select 0; _returnArray = [0,0,0]; @@ -11,11 +11,11 @@ if(_selection == 2) then{ //gear // 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) >> 'picture'); - + _pic = getText (configFile >> 'CfgVehicles' >> (typeOf player) >> 'portrait'); _formattedText = format [ - "" - , _pic + "%2
" + + "
" + , _pic, localize "STR_UI_GEAR" ]; (findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_CONTAINERINFO) ctrlSetStructuredText parseText _formattedText; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_changeBuySell.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_changeBuySell.sqf index bdddaab8b..9ebf1cf1e 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_changeBuySell.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_changeBuySell.sqf @@ -1,9 +1,10 @@ -#include "defines.sqf"; +#include "defines.hpp" Z_Selling = !Z_Selling; -if(Z_Selling)then{ +if (Z_Selling) then { (findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_SELLBUYTOGGLE) ctrlSetText localize "STR_EPOCH_PLAYER_291"; (findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_RIGHTLISTTITLE) ctrlSetText localize "STR_EPOCH_TRADE_SELLING"; + (findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_FILTERBUTTON) ctrlSetText localize "STR_UI_FILTER"; {ctrlShow [_x,true];} forEach [Z_AT_SELLABLELIST,Z_AT_SELLINGLIST,Z_AT_SELLBUTTON,Z_AT_ADDSELLITEMBUTTON,Z_AT_ADDALLSELLITEMBUTTON,Z_AT_REMOVESELLITEMBUTTON,Z_AT_REMOVEALLSELLITEMBUTTON,Z_AT_FILTERBOX]; // show {ctrlShow [_x,false];} forEach [Z_AT_BUYABLELIST,Z_AT_BUYINGLIST,Z_AT_BUYBUTTON,Z_AT_ADDBUYITEMBUTTON,Z_AT_BUYINGAMOUNT,Z_AT_REMOVEBUYITEMBUTTON,Z_AT_REMOVEALLBUYITEMBUTTON,Z_AT_SLOTSDISPLAY,Z_AT_BACKBUTTON]; // hide }else{ @@ -19,9 +20,18 @@ if(Z_Selling)then{ (findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_FILTERBUTTON) ctrlSetText localize "STR_EPOCH_VIEW"; (findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_BUYABLELIST) ctrlSetFontHeight 0.026; // Slightly bigger in category view (findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_BUYABLELIST) ctrlCommit 0; - {ctrlShow [_x,false];} forEach [Z_AT_ADDBUYITEMBUTTON,Z_AT_BUYINGAMOUNT,Z_AT_REMOVEBUYITEMBUTTON,Z_AT_REMOVEALLBUYITEMBUTTON,Z_AT_FILTERBOX,Z_AT_BACKBUTTON]; // hide + {ctrlShow [_x,false];} forEach [Z_AT_ADDBUYITEMBUTTON,Z_AT_BUYINGAMOUNT,Z_AT_FILTERBOX,Z_AT_BACKBUTTON]; // hide call Z_fillCategories; }; }; -[2] call Z_getContainer; // default gear +if (Z_ResetContainer) then { + //Only reset to gear if dialog was closed or switching between buy and sell modes + Z_ResetContainer = false; + [2] call Z_getContainer; +} else { + // Switching between categories + (findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_ITEMINFO) ctrlSetStructuredText parseText ""; + ctrlSetText [Z_AT_TRADERLINE2, " "]; + ctrlSetText [Z_AT_TRADERLINE1, localize "STR_EPOCH_TRADE_SELLING_ALL"]; +}; \ No newline at end of file diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_checkArrayInConfig.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_checkArrayInConfig.sqf index 9afae7487..9e9358691 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_checkArrayInConfig.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_checkArrayInConfig.sqf @@ -9,7 +9,7 @@ * Fills up the sell or buy list if the item has a valid config. **/ private ["_weaps","_mags","_extraText","_all","_total","_arrayOfTraderCat","_totalPrice","_ctrltext","_backUpText","_bags"]; -#include "defines.sqf"; +#include "defines.hpp" _weaps = _this select 0; _mags = _this select 1; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearBuyList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearBuyList.sqf index bcff2c8a5..7eff76146 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearBuyList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearBuyList.sqf @@ -3,5 +3,6 @@ * * Clears the visual listbox of items you could buy. **/ -#include "defines.sqf"; -lbClear Z_AT_BUYABLELIST; \ No newline at end of file +#include "defines.hpp" +lbClear Z_AT_BUYABLELIST; +lbSetCurSel [Z_AT_BUYABLELIST,-1]; // clear \ No newline at end of file diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearBuyingList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearBuyingList.sqf index 0292b6363..dfa694445 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearBuyingList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearBuyingList.sqf @@ -4,5 +4,5 @@ * Clears the visual listbox of items you were going to buy. **/ -#include "defines.sqf"; +#include "defines.hpp" lbClear Z_AT_BUYINGLIST; \ No newline at end of file diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearLists.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearLists.sqf index 5b09eff78..84f1d29e6 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearLists.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearLists.sqf @@ -3,6 +3,6 @@ * * Clears the visual listbox of items you were going to sell and could be selled. **/ -#include "defines.sqf"; +#include "defines.hpp" lbClear Z_AT_SELLABLELIST; lbClear Z_AT_SELLINGLIST; \ No newline at end of file diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearSellableList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearSellableList.sqf index cb21c2cde..9fd7d6009 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearSellableList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_clearSellableList.sqf @@ -3,5 +3,5 @@ * * Clears the visual listbox of items you were going to sell. **/ -#include "defines.sqf"; +#include "defines.hpp" lbClear Z_AT_SELLABLELIST; \ No newline at end of file diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayBackpackInfo.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayBackpackInfo.sqf index a98e3038d..57c260f2e 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayBackpackInfo.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayBackpackInfo.sqf @@ -2,7 +2,7 @@ private ["_item","_picture","_class","_display","_transportMaxWeapons","_transpo ,"_buyCurrency","_sellCurrency","_formattedText","_picBuy","_picSell" ]; -#include "defines.sqf"; +#include "defines.hpp" _item = _this select 0; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayItemInfo.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayItemInfo.sqf index d084e51e2..246ee9887 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayItemInfo.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayItemInfo.sqf @@ -1,5 +1,5 @@ private ['_item','_picture','_class','_display','_buyPrice','_sellPrice','_formattedText','_buyCurrency','_sellCurrency','_compatible','_weapon','_attach','_config','_compatibleText','_type','_text']; -#include "defines.sqf"; +#include "defines.hpp" _item = _this select 0; _picture = _item select 4; _class = _item select 0; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayVehicleInfo.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayVehicleInfo.sqf index a902cc77d..c7e6faca0 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayVehicleInfo.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayVehicleInfo.sqf @@ -3,7 +3,7 @@ private ['_item', '_type','_picture',"_class","_display","_transportMaxWeapons", "_weapons2","_config","_wepText","_turret","_text" ]; -#include "defines.sqf"; +#include "defines.hpp" _item = _this select 0; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayWeaponInfo.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayWeaponInfo.sqf index 0d8cfb8d4..be6239357 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayWeaponInfo.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_displayWeaponInfo.sqf @@ -1,5 +1,5 @@ private ["_item","_picture","_class","_display","_buyPrice","_sellPrice","_magazines","_magText","_formattedText","_buyCurrency","_sellCurrency","_attachments","_attachText","_config","_text","_attach","_type"]; -#include "defines.sqf"; +#include "defines.hpp" _item = _this select 0; _picture = _item select 4; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillBuyableList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillBuyableList.sqf index a6dc3bf1f..1fd2f09dc 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillBuyableList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillBuyableList.sqf @@ -1,5 +1,5 @@ -#include "defines.sqf"; +#include "defines.hpp" { _index = lbAdd [Z_AT_BUYABLELIST, _x select 3]; lbSetPicture [Z_AT_BUYABLELIST, _index, _x select 4 ]; -}count Z_BuyableArray; \ No newline at end of file +} count Z_BuyableArray; \ No newline at end of file diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillBuyingList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillBuyingList.sqf index 2ab9a1720..7cf87f263 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillBuyingList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillBuyingList.sqf @@ -1,4 +1,4 @@ -#include "defines.sqf"; +#include "defines.hpp" { _index = lbAdd [Z_AT_BUYINGLIST, _x select 3]; lbSetPicture [Z_AT_BUYINGLIST, _index, _x select 4]; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillCategories.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillCategories.sqf index bb9061d22..47ffbab8e 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillCategories.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillCategories.sqf @@ -1,7 +1,6 @@ private "_index"; -#include "defines.sqf"; +#include "defines.hpp" call Z_clearBuyList; -call Z_clearBuyingList; { _index = lbAdd [Z_AT_BUYABLELIST,_x select 0]; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillCategoryList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillCategoryList.sqf index 2bc5908ee..4d5a5506a 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillCategoryList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillCategoryList.sqf @@ -1,5 +1,5 @@ private ["_categoryName","_categoryNumber"]; -#include "defines.sqf"; +#include "defines.hpp" _categoryName = lbText [Z_AT_BUYABLELIST,_this]; { diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillSellList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillSellList.sqf index 823a6922a..8f209c403 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillSellList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillSellList.sqf @@ -3,7 +3,7 @@ * * Visualy fills in the listbox of items that can be sold. **/ -#include "defines.sqf"; +#include "defines.hpp" { _index = lbAdd [Z_AT_SELLABLELIST, _x select 3]; lbSetPicture [Z_AT_SELLABLELIST, _index, _x select 4 ]; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillSellingList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillSellingList.sqf index 65873983a..9e4adb0ff 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillSellingList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_fillSellingList.sqf @@ -3,7 +3,7 @@ * * Visualy fills in the listbox of items currently being sold. **/ -#include "defines.sqf"; +#include "defines.hpp" { _index = lbAdd [Z_AT_SELLINGLIST, _x select 3]; lbSetPicture [Z_AT_SELLINGLIST, _index, _x select 4]; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_filleTradeTitle.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_filleTradeTitle.sqf index b62888159..05aef9901 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_filleTradeTitle.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_filleTradeTitle.sqf @@ -5,6 +5,6 @@ * * Changes the indication of where you are selling/buying from in the trade window. **/ -#include "defines.sqf"; +#include "defines.hpp" _text = _this select 0; ctrlSetText [Z_AT_CONTAINERINDICATOR, _text]; \ No newline at end of file diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_filterList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_filterList.sqf index c24918837..4042799f3 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_filterList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_filterList.sqf @@ -9,6 +9,7 @@ if(count _this > 0) then { _query = _this select 0; // the search string. if(Z_Selling)then { + if (count Z_SellArray > 0) exitWith {}; //Do not filter if items already in selling list (dupes) if(isNil '_query' || _query == "") then { _newSellArray = []; { diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getBackpackItems.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getBackpackItems.sqf index 452e33100..c1c9eda26 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getBackpackItems.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getBackpackItems.sqf @@ -3,7 +3,7 @@ * * Gets all your items stored in your backpack and innitiates the selling list. **/ -#include "defines.sqf"; +#include "defines.hpp" private ["_backpack","_pic","_formattedText","_mags","_weaps","_normalMags","_normalWeaps","_kinds","_kinds2","_ammmounts","_ammmounts2","_ctrltext"]; call Z_clearLists; Z_SellableArray = []; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getContainer.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getContainer.sqf index 776bbd8f9..9b77327f6 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getContainer.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getContainer.sqf @@ -3,20 +3,20 @@ * * Switches between selling and buying and the item container (gear/vehicle/bakcpack) and initiates item loading. **/ -private ["_lbIndex","_formattedText","_canBuyInVehicle"]; -#include "defines.sqf"; +private ["_lbIndex","_canBuyInVehicle"]; +#include "defines.hpp" (findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_SLOTSDISPLAY) ctrlSetText format["0 / 0 / 0"]; -call Z_clearBuyingList; +if (Z_Selling) then { + call Z_clearBuyingList; + Z_BuyingArray = []; +}; call Z_clearLists; Z_SellableArray = []; Z_SellArray = []; -Z_BuyingArray = []; _lbIndex = _this select 0; -_formattedText = format ['']; - -(findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_ITEMINFO) ctrlSetStructuredText parseText _formattedText; +(findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_ITEMINFO) ctrlSetStructuredText parseText ""; call Z_calcPrice; @@ -39,13 +39,9 @@ if(Z_Selling)then{ }; }; }else{ - _ctrltext = format[" "]; - ctrlSetText [Z_AT_TRADERLINE2, _ctrltext]; - - _ctrltext = localize "STR_EPOCH_TRADE_SELLING_ALL"; - ctrlSetText [Z_AT_TRADERLINE1, _ctrltext]; + ctrlSetText [Z_AT_TRADERLINE2, " "]; + ctrlSetText [Z_AT_TRADERLINE1, localize "STR_EPOCH_TRADE_SELLING_ALL"]; switch (_lbIndex) do { - case 0: { Z_SellingFrom = 0; [localize "STR_EPOCH_TRADE_BUYING_BACKPACK"] call Z_filleTradeTitle; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getGearItems.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getGearItems.sqf index 52ab8d965..70dfaf427 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getGearItems.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getGearItems.sqf @@ -4,7 +4,7 @@ * Gets all your items stored in your gear and innitiates the selling list. **/ private ["_mags","_weaps","_skin","_formattedText","_bag","_bags"]; -#include "defines.sqf"; +#include "defines.hpp" call Z_clearLists; Z_SellArray = []; Z_SellableArray = []; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getItemConfig.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getItemConfig.sqf index 157cbff50..7cefd4f23 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getItemConfig.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getItemConfig.sqf @@ -1,5 +1,5 @@ -#include "defines.sqf"; +#include "defines.hpp" private ['_item', '_type']; _item = _this select 0; _type = _item select 1; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getItemInfo.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getItemInfo.sqf index a5ed6d5ed..10e912e3d 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getItemInfo.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getItemInfo.sqf @@ -19,7 +19,7 @@ if(_selectedIndex >= 0) then { _item = Z_SellArray select _selectedIndex; }; case 'buyable': { - _item = Z_BuyableArray select _selectedIndex; + _item = Z_BuyableArray select _selectedIndex; }; case 'buying': { _item = Z_BuyingArray select _selectedIndex; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getVehicleItems.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getVehicleItems.sqf index 5d71a325f..647fed2ff 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getVehicleItems.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_getVehicleItems.sqf @@ -3,7 +3,7 @@ * * Gets all your items stored in your vehicle and innitiates the selling list. **/ -#include "defines.sqf"; +#include "defines.hpp" Z_vehicle = objNull; call Z_clearLists; Z_SellableArray = []; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_pushItemToList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_pushItemToList.sqf index 1d6a865d3..1a39505bd 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_pushItemToList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_pushItemToList.sqf @@ -1,4 +1,4 @@ -#include "defines.sqf"; +#include "defines.hpp" _index = _this select 0; if(!isNil"_index" && _index > -1)then { lbDelete [Z_AT_SELLABLELIST, _index]; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeAllFromBuyingList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeAllFromBuyingList.sqf index b16798ffb..e9ab82427 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeAllFromBuyingList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeAllFromBuyingList.sqf @@ -1,2 +1,3 @@ call Z_clearBuyingList; Z_BuyingArray = []; +call Z_calcPrice; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeItemFromBuyingList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeItemFromBuyingList.sqf index 6dadd1305..a06246881 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeItemFromBuyingList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeItemFromBuyingList.sqf @@ -1,4 +1,4 @@ -#include "defines.sqf"; +#include "defines.hpp" _index = _this select 0; if(!isNil"_index" && _index > -1)then { lbDelete [Z_AT_BUYINGLIST, _index]; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeItemFromList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeItemFromList.sqf index 4d66f3100..438d791c6 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeItemFromList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_removeItemFromList.sqf @@ -1,4 +1,4 @@ -#include "defines.sqf"; +#include "defines.hpp" _index = _this select 0; if(!isNil"_index" && _index > -1)then { lbDelete [Z_AT_SELLINGLIST, _index]; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_sellItems.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_sellItems.sqf index 2c8cdc635..5f6642221 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_sellItems.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_sellItems.sqf @@ -1,5 +1,7 @@ private ["_tempArray","_outcome","_vehCheckArray","_vehArray","_weaponsArray","_itemsArray","_bpArray","_bpCheckArray","_weaponsCheckArray","_itemsCheckArray","_VehKey","_wA","_mA","_money","_itemData","_success","_bag","_itemsToLog","_tCost","_tSold"]; +if (count Z_SellArray < 1) exitWith { systemChat localize "STR_EPOCH_TRADE_SELL_NO_ITEMS"; }; + _tempArray = Z_SellArray; closeDialog 2; _outcome = []; @@ -13,8 +15,6 @@ _weaponsCheckArray = []; _itemsCheckArray = []; _itemsToLog = [[],[],[],"sell"]; -if (count Z_SellArray < 1) exitWith { systemChat localize "STR_EPOCH_TRADE_SELL_NO_ITEMS"; }; - _deleteTradedVehicle = { private ["_localResult2","_VehKey2"]; _VehKey2 = (_this select 0) select 0; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_toBuyingList.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_toBuyingList.sqf index 12ffd868c..13abcd0b6 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_toBuyingList.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_toBuyingList.sqf @@ -1,6 +1,6 @@ private ["_amount","_index","_index2","_temp"]; -#include "defines.sqf"; +#include "defines.hpp" _index = _this select 0; _amount = parseNumber(_this select 1); if(!isNil"_index" && _index > -1 && (typeName _amount == "SCALAR") && _amount > 0 )then { diff --git a/SQF/dayz_code/actions/AdvancedTrading/init.sqf b/SQF/dayz_code/actions/AdvancedTrading/init.sqf index 96848aae4..6a68c256b 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/init.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/init.sqf @@ -11,7 +11,7 @@ if(DZE_ActionInProgress) exitWith { localize "str_player_actionslimit" call dayz if(isNil "Z_AdvancedTradingInit")then{ //#include "config.sqf"; // Moved to dayz_code/configVariables.sqf - #include "\z\addons\dayz_code\actions\AdvancedTrading\functions\defines.sqf"; + #include "\z\addons\dayz_code\actions\AdvancedTrading\functions\defines.hpp" /* Configs that needs to be defined but not changed in config file */ @@ -106,6 +106,8 @@ if(isNil "Z_AdvancedTradingInit")then{ Z_Selling = true; // Always start menu in buy mode (flipped in z_at_changeBuySell.sqf on startup) Z_CategoryView = true; // Always start in category view +Z_BuyingArray = []; +Z_ResetContainer = true; createDialog "AdvancedTrading"; (findDisplay Z_AT_DIALOGWINDOW displayCtrl Z_AT_REMOVESELLITEMBUTTON) ctrlSetText " < ";