Compile whole trading functions at start

DB traders are no longer in. We can now compile all trading function directly at the start. This makes it easier for server admins to modify them.
This commit is contained in:
AirwavesMan
2020-09-12 14:40:57 +02:00
parent e5af93b50b
commit 56c81ba5b6
5 changed files with 94 additions and 106 deletions

View File

@@ -0,0 +1,85 @@
#define STRINGIFY(x) #x
#define PATH(sub_path) STRINGIFY(\z\addons\dayz_code\actions\AdvancedTrading\functions\sub_path)
#define CPP compile preprocessFileLineNumbers
private ["_tempGemList","_tempWorthList","_largest","_LargestGem"];
Z_SellingFrom = 2;
DZE_GemList = [];
DZE_GemWorthList = [];
Z_Selling = true;
Z_OriginalSellableArray = [];
Z_SellableArray = [];
Z_SellArray = [];
Z_OriginalBuyableArray = [];
Z_BuyableArray = [];
Z_BuyingArray = [];
_tempGemList = [];
_tempWorthList = [];
{
_tempGemList set [(count _tempGemList), (_x select 0)];
_tempWorthList set [(count _tempWorthList), (_x select 1)];
} count DZE_GemWorthArray;
for "_i" from 0 to ((count _tempGemList) - 1) do {
_largest = -1e9;
{
_largest = _largest max _x;
} forEach _tempWorthList;
_LargestGem = _tempGemList select (_tempWorthList find _largest);
_tempWorthList = _tempWorthList - [_largest];
_tempGemList = _tempGemList - [_LargestGem];
DZE_GemList set [(count DZE_GemList), _LargestGem];
DZE_GemWorthList set [(count DZE_GemWorthList), _largest];
};
Z_fillTradeTitle = CPP PATH(z_at_fillTradeTitle.sqf);
Z_clearLists = CPP PATH(z_at_clearLists.sqf);
Z_clearSellableList = CPP PATH(z_at_clearSellableList.sqf);
Z_clearBuyList = CPP PATH(z_at_clearBuyList.sqf);
Z_clearBuyingList = CPP PATH(z_at_clearBuyingList.sqf);
Z_fillCategories = CPP PATH(z_at_fillCategories.sqf);
Z_getItemInfo = CPP PATH(z_at_getItemInfo.sqf);
Z_getItemConfig = CPP PATH(z_at_getItemConfig.sqf);
Z_displayItemInfo = CPP PATH(z_at_displayItemInfo.sqf);
Z_displayWeaponInfo = CPP PATH(z_at_displayWeaponInfo.sqf);
Z_displayBackpackInfo = CPP PATH(z_at_displayBackpackInfo.sqf);
Z_displayVehicleInfo = CPP PATH(z_at_displayVehicleInfo.sqf);
Z_getContainer = CPP PATH(z_at_getContainer.sqf);
Z_getBackpackItems = CPP PATH(z_at_getBackpackItems.sqf);
Z_getVehicleItems = CPP PATH(z_at_getVehicleItems.sqf);
Z_getGearItems = CPP PATH(z_at_getGearItems.sqf);
Z_logTrade = CPP PATH(z_at_logTrade.sqf);
Z_filterList = CPP PATH(z_at_filterList.sqf);
Z_checkArrayInConfig = CPP PATH(z_at_checkArrayInConfig.sqf);
Z_calcPrice = CPP PATH(z_at_calcPrice.sqf);
Z_fillCategoryList = CPP PATH(z_at_fillCategoryList.sqf);
Z_fillSellList = CPP PATH(z_at_fillSellList.sqf);
Z_fillSellingList = CPP PATH(z_at_fillSellingList.sqf);
Z_pushItemToList = CPP PATH(z_at_pushItemToList.sqf);
Z_removeItemFromList = CPP PATH(z_at_removeItemFromList.sqf);
Z_pushAllToList = CPP PATH(z_at_pushAllToList.sqf);
Z_removeAllToList = CPP PATH(z_at_removeAllToList.sqf);
Z_SellItems = CPP PATH(z_at_sellItems.sqf);
Z_BuyItems = CPP PATH(z_at_buyItems.sqf);
Z_ChangeBuySell = CPP PATH(z_at_changeBuySell.sqf);
Z_removeAllFromBuyingList = CPP PATH(z_at_removeAllFromBuyingList.sqf);
Z_removeItemFromBuyingList = CPP PATH(z_at_removeItemFromBuyingList.sqf);
Z_toBuyingList = CPP PATH(z_at_toBuyingList.sqf);
Z_calcBuyableList = CPP PATH(z_at_calcBuyableList.sqf);
Z_fillBuyableList = CPP PATH(z_at_fillBuyableList.sqf);
Z_fillBuyingList = CPP PATH(z_at_fillBuyingList.sqf);
Z_displayFreeSpace = CPP PATH(z_at_displayFreeSpace.sqf);
Z_allowBuying = CPP PATH(z_at_allowBuying.sqf);
DZE_deleteTradedVehicle = CPP PATH(DZE_deleteTradedVehicle.sqf);
Z_checkCloseVehicle = CPP PATH(z_at_checkCloseVehicle.sqf);
Z_canAfford = CPP PATH(z_at_canAfford.sqf);
Z_calcFreeSpace = CPP PATH(z_at_calcFreeSpace.sqf);
Z_returnChange = CPP PATH(z_at_returnChange.sqf);
Z_payDefault = CPP PATH(z_at_payDefault.sqf);
z_calcCurrency = CPP PATH(z_at_calcCurrency.sqf);
ZUPA_fnc_removeWeaponsAndMagazinesCargo = CPP PATH(zupa_fnc_removeWeaponsAndMagazinesCargo.sqf);

View File

@@ -1,39 +0,0 @@
#define STRINGIFY(x) #x
#define PATH(sub_path) STRINGIFY(\z\addons\dayz_code\actions\AdvancedTrading\functions\sub_path)
#define CPP compile preprocessFileLineNumbers
private ["_tempGemList","_tempWorthList","_largest","_LargestGem"];
Z_SellingFrom = 2;
DZE_GemList = [];
DZE_GemWorthList = [];
_tempGemList = [];
_tempWorthList = [];
{
_tempGemList set [(count _tempGemList), (_x select 0)];
_tempWorthList set [(count _tempWorthList), (_x select 1)];
} count DZE_GemWorthArray;
for "_i" from 0 to ((count _tempGemList) - 1) do {
_largest = -1e9;
{
_largest = _largest max _x;
} forEach _tempWorthList;
_LargestGem = _tempGemList select (_tempWorthList find _largest);
_tempWorthList = _tempWorthList - [_largest];
_tempGemList = _tempGemList - [_LargestGem];
DZE_GemList set [(count DZE_GemList), _LargestGem];
DZE_GemWorthList set [(count DZE_GemWorthList), _largest];
};
Z_checkCloseVehicle = CPP PATH(z_at_checkCloseVehicle.sqf);
Z_canAfford = CPP PATH(z_at_canAfford.sqf);
Z_calcFreeSpace = CPP PATH(z_at_calcFreeSpace.sqf);
Z_returnChange = CPP PATH(z_at_returnChange.sqf);
Z_payDefault = CPP PATH(z_at_payDefault.sqf);
z_calcCurrency = CPP PATH(z_at_calcCurrency.sqf);
ZUPA_fnc_removeWeaponsAndMagazinesCargo = CPP PATH(zupa_fnc_removeWeaponsAndMagazinesCargo.sqf);

View File

@@ -1,6 +1,6 @@
#define STRINGIFY(x) #x
#define PATH(sub_path) STRINGIFY(\z\addons\dayz_code\actions\AdvancedTrading\functions\sub_path)
#define CPP compile preprocessFileLineNumbers
if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; };
#include "\z\addons\dayz_code\actions\AdvancedTrading\functions\defines.hpp"
disableSerialization;
@@ -10,67 +10,6 @@ if (isNil "Z_traderData" or {count Z_traderData == 0}) exitWith {
localize "STR_EPOCH_TRADE_ERROR" call dayz_rollingMessages;
};
if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; };
if (isNil "Z_AdvancedTradingInit") then {
#include "\z\addons\dayz_code\actions\AdvancedTrading\functions\defines.hpp"
/* Configs that needs to be defined but not changed in config file */
Z_Selling = true;
Z_OriginalSellableArray = [];
Z_SellableArray = [];
Z_SellArray = [];
Z_OriginalBuyableArray = [];
Z_BuyableArray = [];
Z_BuyingArray = [];
/* end script config */
Z_fillTradeTitle = CPP PATH(z_at_fillTradeTitle.sqf);
Z_clearLists = CPP PATH(z_at_clearLists.sqf);
Z_clearSellableList = CPP PATH(z_at_clearSellableList.sqf);
Z_clearBuyList = CPP PATH(z_at_clearBuyList.sqf);
Z_clearBuyingList = CPP PATH(z_at_clearBuyingList.sqf);
Z_fillCategories = CPP PATH(z_at_fillCategories.sqf);
Z_getItemInfo = CPP PATH(z_at_getItemInfo.sqf);
Z_getItemConfig = CPP PATH(z_at_getItemConfig.sqf);
Z_displayItemInfo = CPP PATH(z_at_displayItemInfo.sqf);
Z_displayWeaponInfo = CPP PATH(z_at_displayWeaponInfo.sqf);
Z_displayBackpackInfo = CPP PATH(z_at_displayBackpackInfo.sqf);
Z_displayVehicleInfo = CPP PATH(z_at_displayVehicleInfo.sqf);
Z_getContainer = CPP PATH(z_at_getContainer.sqf);
Z_getBackpackItems = CPP PATH(z_at_getBackpackItems.sqf);
Z_getVehicleItems = CPP PATH(z_at_getVehicleItems.sqf);
Z_getGearItems = CPP PATH(z_at_getGearItems.sqf);
Z_logTrade = CPP PATH(z_at_logTrade.sqf);
Z_filterList = CPP PATH(z_at_filterList.sqf);
Z_checkArrayInConfig = CPP PATH(z_at_checkArrayInConfig.sqf);
Z_calcPrice = CPP PATH(z_at_calcPrice.sqf);
Z_fillCategoryList = CPP PATH(z_at_fillCategoryList.sqf);
Z_fillSellList = CPP PATH(z_at_fillSellList.sqf);
Z_fillSellingList = CPP PATH(z_at_fillSellingList.sqf);
Z_pushItemToList = CPP PATH(z_at_pushItemToList.sqf);
Z_removeItemFromList = CPP PATH(z_at_removeItemFromList.sqf);
Z_pushAllToList = CPP PATH(z_at_pushAllToList.sqf);
Z_removeAllToList = CPP PATH(z_at_removeAllToList.sqf);
Z_SellItems = CPP PATH(z_at_sellItems.sqf);
Z_BuyItems = CPP PATH(z_at_buyItems.sqf);
Z_ChangeBuySell = CPP PATH(z_at_changeBuySell.sqf);
Z_removeAllFromBuyingList = CPP PATH(z_at_removeAllFromBuyingList.sqf);
Z_removeItemFromBuyingList = CPP PATH(z_at_removeItemFromBuyingList.sqf);
Z_toBuyingList = CPP PATH(z_at_toBuyingList.sqf);
Z_calcBuyableList = CPP PATH(z_at_calcBuyableList.sqf);
Z_fillBuyableList = CPP PATH(z_at_fillBuyableList.sqf);
Z_fillBuyingList = CPP PATH(z_at_fillBuyingList.sqf);
Z_displayFreeSpace = CPP PATH(z_at_displayFreeSpace.sqf);
Z_allowBuying = CPP PATH(z_at_allowBuying.sqf);
DZE_deleteTradedVehicle = CPP PATH(DZE_deleteTradedVehicle.sqf);
Z_AdvancedTradingInit = true;
};
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 = [];

View File

@@ -205,8 +205,8 @@ if (!isDedicated) then {
fnc_setWeather = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\weather\setWeather.sqf";
fnc_groundFog = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\weather\groundFog.sqf";
// Advanced trading default inits for maintaining, Advanced Trading and custom scripts to utilize gem based currency.
call compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\AdvancedTrading\defaultInit.sqf";
// Compiles of all trading related functions
call compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\AdvancedTrading\compiles.sqf";
fnc_alertZombies = {
private ["_unit","_pos","_dis","_sfx"];

View File

@@ -30223,7 +30223,10 @@
<English>A blood bag filled with blood from a sheep.</English>
<German>Eine Blutkonserve gefüllt mit dem Blut eines Schafes.</German>
</Key>
<Key ID="STR_EPOCH_WEIGHT">
<English>Weight</English>
<German>Gewicht</German>
</Key>
<!--Fix for missing strings from the buildings3.pbo, this is just a placeholder-->
<Key ID="STR_FAL_Street_Sign">