#include "script_mod.hpp"

class DOUBLES(PREFIX,init) {
	class functions {
		file = "framework\init\functions";
		class initServer { postInit = 1;};
		class initClient { postInit = 1;};
		class setDefaults {};
		class addAARChatHandler {};
		class addRespawnChatHandler {};
		class checkMissionSettings {};
	};
};

class PREFIX {	
	class ambience {
		file = "framework\ambience";
		class flakInitVehicle {};
		class flakEH {};
	};
};

class DOUBLES(PREFIX,client) {
	class functions {
		file = "framework\client\functions";
		class initClient {};
		class addDraw3DPFH {};
		class addGetNearMenPFH {};
		class addMicroDAGRWaypoints {};
		class addZenModules {};
		class bindEventHandlers {};
		class bindVehicleActions {};
		class clearPFHCode {};
		class logRespawnButtonUse {};
		class registerPFHCode {};
		class staticLineProtection {};
	};
};

class DOUBLES(PREFIX,common) {
	class functions {
		file = "framework\common\functions";
		class addCBASettings { preInit = 1; };
		class addPlayerInfoToArray {};
		class checkPlayerInventory {};
		class createOrUpdateDiaryRecord {};
		class draw3DIconStatus {};
		class getApprovedAssetsCfg {};
		class getBattalionCfg {};
		class getNameOfBase {};
		class getNearestBase {};
		class log {};
		class logMissionInfo {};
		class logSettingChanged {};
		class padString {};
		class recurseSubclasses {};
	};
};

class DOUBLES(PREFIX,fbcb2_assets) {
	class functions {
		file = "framework\fbcb2_assets\functions";
		class addCBASettings {preInit=1;};
		class initServer {};
		class initClient {};
		class getCallsignFromClassname {};
		class getCurrentAssetsByBase {};
		class getInventory {};
		class getMagsForWeapon {};
		class getStartingAndCurrentAssets {};
		class getStartingAssetsByBase {};
		class getVehicleData {};
		class getWeaponry {};
		class hintAllApprovedAssets {};
		class isAssetInRangeOfBase {};
		class removeAssetDiaryRecords {};
		class removeMarkersOnMap {};
		class showMarkersOnMap {};
		class updateAssetDiary {};
		class updateAssetsByBase {};
	};
};

class DOUBLES(PREFIX,fbcb2_main) {
	class functions {
		file = "framework\fbcb2_main\functions";
		class initClient {};
		class addEnvironmentRecord {};
		class addFrequenciesRecord {};
		class addSignalColorsRecord {};
	};
	class util {
		file = "framework\fbcb2_main\util";
		class formatRadioElementForDiary {};
		class generateElementFrequencyRecordText {};
	};
};

class DOUBLES(PREFIX,mapcopy) {
	class functions {
		file = "framework\mapcopy\functions";
		class addCBASettings {preInit=1;};
		class initClient {};
		class getMapMarkers {};
		class loadMapMarkers {};
		class mapMarkerToString {};
		class stringToMapMarker {};
	};
};

class DOUBLES(PREFIX,performance) {
	class functions {
		file = "framework\performance\functions";
		class addCBASettings {preInit=1;};
		class addDNI_PlayerFPS {postInit = 1;};

		// PFHs managed in addCBASettings onChange code
		class addClientStatsPFH {};
		class calculateClientStats {};
		class addServerStatsPFH {};
		class calculateServerStats {};
		class addEmptyGroupCleanupPFH {};
		class addDeadUnitCleanupPFH {};
	};
};

class DOUBLES(PREFIX,reinsert) {
	class functions {
		file = "framework\reinsert\functions";
		class addCBASettings {preInit=1;};
	};
	class server {
		file = "framework\reinsert\server";
		class initServer {};
		class addToQueue {};
		class globalShowQueue {};
		class removeFromQueue {};
		class returnReinsertQueueNotification {};
		class validateQueue {};
	};
	class client {
		file = "framework\reinsert\client";
		class initClient {};
		class addAceSelfActions {};
		class addCheckQueueSelfAction {};
		class requestShowQueue {};
	};
};

class DOUBLES(PREFIX,resupply) {
	class functions {
		file = "framework\resupply\functions";
		class addCBASettings {preInit=1;};
		class initClient {};
		class createBox {};
		class getSupplyCratesCfg {};
		class addArsenalObjectSpawnBoxActions {};
	};
};

class DOUBLES(PREFIX,triageIcons) {
	class functions {
		file = "framework\triageIcons\functions";
		class addCBASettings {preInit=1;};
		class initClient {};
		class draw3D {};
		class updateColors {};
	};
};

class DOUBLES(PREFIX,vehicleFlags) {
	class functions {
		file = "framework\vehicleFlags\functions";
		class initClient {};
		class addFlagActions {};
		class draw3D {};
		class getActionsFlagCategories {};
		class compileFlagAction {};
		class compileFlagCategoryAction {};
		class getVehicleFlagsCfg {};
		class isClassExcluded {};
	};
};

class DOUBLES(PREFIX,zeus) {
	class functions {
		file = "framework\zeus\functions";
		class initClient {};
		class addZenModules {};
	};
};