diff --git a/TO_MERGE/cse/sys_field_rations/CfgFunctions.h b/TO_MERGE/cse/sys_field_rations/CfgFunctions.h new file mode 100644 index 0000000000..9c8df9f7c8 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/CfgFunctions.h @@ -0,0 +1,33 @@ +class CfgFunctions { + class CSE { + class FieldRations { + file = "cse\cse_sys_field_rations\functions"; + class reduceLevels_FR { recompile = 1; }; + class updateFieldRations_FR { recompile = 1; }; + class updateUIStatus_FR { recompile = 1; }; + + class actionEat_FR { recompile = 1; }; + class canEat_FR { recompile = 1; }; + class getEatableValue_FR { recompile = 1; }; + class itemIsEatable_FR { recompile = 1; }; + class hasEatableItem_FR { recompile = 1; }; + class actionDrink_FR { recompile = 1; }; + class canDrink_FR { recompile = 1; }; + class getDrinkableValue_FR { recompile = 1; }; + class itemIsDrinkable_FR { recompile = 1; }; + class hasDrinkableItem_FR { recompile = 1; }; + + class canRefill_FR { recompile = 1; }; + class itemIsRefillable_FR { recompile = 1; }; + class hasRefillableItem_FR { recompile = 1; }; + class actionRefill_FR { recompile = 1; }; + + class actionRefillCamelbak_FR; + class hasCamelbak_FR; + class isCamelbak_FR; + class getMaxContent_Camelbak_FR; + class getInitialContent_Camelbak_FR; + class canRefillCamelbak_FR; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/CfgMagazines.h b/TO_MERGE/cse/sys_field_rations/CfgMagazines.h new file mode 100644 index 0000000000..48bc356ee5 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/CfgMagazines.h @@ -0,0 +1,412 @@ +class CfgMagazines { + class Default; + class CA_magazine: Default {}; + class cse_backwardsCompatMagazineBase_FR: CA_magazine {}; + class cse_waterbottle: cse_backwardsCompatMagazineBase_FR { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Water Bottle"; + picture = "\cse\cse_sys_field_rations\data\pictures\waterbottle.paa"; + model = "\A3\Structures_F_EPA\Items\Food\BottlePlastic_V2_F.p3d"; + descriptionShort = "A waterbottle"; + mass = 5; + cse_isDrinkable = 3.75; + cse_onDrink = "cse_waterbottle_half"; + }; + class cse_canteen: cse_backwardsCompatMagazineBase_FR { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Canteen (Water)"; + picture = "\cse\cse_sys_field_rations\data\pictures\image_canteen.paa"; + model = "\A3\Structures_F_EPA\Items\Food\Canteen_F.p3d"; + descriptionShort = "A Canteen containing water"; + mass = 5; + cse_isDrinkable = 3.75; + cse_onDrink = "cse_canteen_half"; + }; + class cse_canteen_half: cse_canteen { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Canteen (Half)"; + picture = "\cse\cse_sys_field_rations\data\pictures\image_canteen.paa"; + model = "\A3\Structures_F_EPA\Items\Food\Canteen_F.p3d"; + descriptionShort = "A Canteen containing water (Half)"; + mass = 5; + cse_isDrinkable = 3.75; + cse_onDrink = "cse_canteen_empty"; + cse_onRefill = "cse_canteen"; + }; + class cse_canteen_empty: cse_canteen { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Canteen (Empty)"; + picture = "\cse\cse_sys_field_rations\data\pictures\image_canteen.paa"; + model = "\A3\Structures_F_EPA\Items\Food\Canteen_F.p3d"; + descriptionShort = "A Canteen containing water (Half)"; + mass = 5; + cse_isDrinkable = 0; + cse_onDrink = ""; + cse_onRefill = "cse_canteen"; + }; + + + class cse_waterbottle_half: cse_waterbottle { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Water Bottle 1/2"; + picture = "\cse\cse_sys_field_rations\data\pictures\waterbottle.paa"; + model ="\cse\cse_sys_field_rations\waterbottle.p3d"; + descriptionShort = "Half full waterbottle"; + cse_onDrink = "cse_waterbottle_empty"; + cse_isDrinkable = 3.75; + se_onRefill = "cse_waterbottle"; + }; + + + class cse_waterbottle_empty: cse_waterbottle { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Empty Water Bottle"; + picture = "\cse\cse_sys_field_rations\data\pictures\waterbottle_empty.paa"; + model ="\cse\cse_sys_field_rations\waterbottle.p3d"; + descriptionShort = "An empty waterbottle"; + cse_isDrinkable = 0; + cse_onRefill = "cse_waterbottle"; + cse_onDrink = ""; + }; + + class cse_MRE_BASE: cse_waterbottle { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE.paa"; + model ="\cse\cse_sys_field_rations\mre_type1.p3d"; + descriptionShort = "A Meal Ready to Eat, unprepared"; + mass = 3; + cse_isEatable = 10; + cse_isDrinkable = 0; + }; + + class cse_MRE_LambC: cse_MRE_BASE { + displayName = "MRE Lamb Curry"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + model ="\cse\cse_sys_field_rations\mre_type1.p3d"; + descriptionShort = "An MRE containing Lamb Curry. Heat for best effect"; + }; + class cse_MRE_LambC_prepared: cse_MRE_LambC { + displayName = "MRE Lamb Curry (Heated)"; + }; + + class cse_MRE_Rice: cse_MRE_BASE { + displayName = "MRE Rice"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type2.paa"; + model ="\cse\cse_sys_field_rations\mre_type2.p3d"; + descriptionShort = "An MRE Containing Rice. Heat for best effect"; + }; + class cse_MRE_Rice_prepared: cse_MRE_Rice { + displayName = "MRE Rice (Heated)"; + }; + + class cse_MRE_CreamTomatoSoup: cse_MRE_BASE { + displayName = "MRE Cream Tomato Soup"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type3.paa"; + model ="\cse\cse_sys_field_rations\mre_type3.p3d"; + descriptionShort = "An MRE Containing Tomato Soup cream. Mix with water and heat for best effect"; + }; + class cse_MRE_CreamTomatoSoup_prepared: cse_MRE_CreamTomatoSoup { + displayName = "MRE Cream Tomato Soup (Heated)"; + }; + + class cse_MRE_CreamChickenSoup: cse_MRE_BASE { + displayName = "MRE Cream Chicken Soup"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type3.paa"; + model ="\cse\cse_sys_field_rations\mre_type3.p3d"; + descriptionShort = "An MRE Containing Chicken Soup. Mix with water and heat for best effect"; + }; + class cse_MRE_CreamChickenSoup_prepared: cse_MRE_CreamChickenSoup { + displayName = "MRE Cream Chicken Soup (Heated)"; + }; + + class cse_MRE_ChickenTikkaMassala: cse_MRE_BASE { + displayName = "MRE Chicken Tikka Massala"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type4.paa"; + model = "\cse\cse_sys_field_rations\mre_type4.p3d"; + descriptionShort = "An MRE with Chicken Tikka Massala. Heat for best effect"; + }; + class cse_MRE_ChickenTikkaMassala_prepared: cse_MRE_ChickenTikkaMassala { + displayName = "MRE Chicken Tikka Massala (Heated)"; + }; + + class cse_MRE_SteakVegetables: cse_MRE_BASE { + displayName = "MRE Steak & Vegetables"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type5.paa"; + model ="\cse\cse_sys_field_rations\mre_type5.p3d"; + descriptionShort = "An MRE Containing Steak & Vegetables. Heat for best effect"; + }; + class cse_MRE_SteakVegetables_prepared: cse_MRE_SteakVegetables { + displayName = "MRE Steak & Vegetables (Heated)"; + }; + + class cse_MRE_MeatballsPasta: cse_MRE_BASE { + displayName = "MRE Meatballs & Pasta"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type6.paa"; + model ="\cse\cse_sys_field_rations\mre_type6.p3d"; + descriptionShort = "An MRE Containing Meatballs & Pasta. Heat for best effect"; + }; + class cse_MRE_MeatballsPasta_prepared: cse_MRE_MeatballsPasta { + displayName = "MRE Meatballs & Pastas (Heated)"; + }; + + class cse_MRE_ChickenHerbDumplings: cse_MRE_BASE { + displayName = "MRE Chicken with Herb Dumplings"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type6.paa"; + model ="\cse\cse_sys_field_rations\mre_type6.p3d"; + descriptionShort = "An MRE Containing Chicken with Herb Dumplings. Heat for best effect"; + }; + class cse_MRE_ChickenHerbDumplings_prepared: cse_MRE_ChickenHerbDumplings { + displayName = "MRE Chicken with Herb Dumplings (Heated)"; + }; + + class cse_Humanitarian_Ration: cse_MRE_BASE { + displayName = "Humanitarian Ration"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_human.paa"; + model ="\cse\cse_sys_field_rations\mre_human.p3d"; + descriptionShort = "An Humanitarian Ration, for handing out to the local population"; + }; + + class cse_US_MRE_ChiliBeans: cse_MRE_BASE { + displayName = "Chile with Beans MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Chili with Beans"; + }; + class cse_US_MRE_ChiliBeans_prepared: cse_US_MRE_ChiliBeans { + displayName = "Chile with Beans MRE (Heated)"; + }; + class cse_US_MRE_ChickenFajita: cse_MRE_BASE { + displayName = "Chicken Fajita MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "A Chicken Fajita MRE"; + }; + class cse_US_MRE_ChickenFajita_prepared: cse_US_MRE_ChickenFajita { + displayName = "Chicken Fajita MRE (Heated)"; + }; + + class cse_US_MRE_ChickenNoodles: cse_MRE_BASE { + displayName = "Chicken with Noodles MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Chicken with Noodles"; + }; + class cse_US_MRE_ChickenNoodles_prepared: cse_US_MRE_ChickenNoodles { + displayName = "Chicken Fajita MRE(Heated)"; + }; + + class cse_US_MRE_PorkSausageGravy: cse_MRE_BASE { + displayName = "Pork Sausage with Gravy MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Pork Sausage with Gravy"; + }; + class cse_US_MRE_PorkSausageGravy_prepared: cse_US_MRE_PorkSausageGravy { + displayName = "Pork Sausage Gravy MRE(Heated)"; + }; + + class cse_US_MRE_MedChicen: cse_MRE_BASE { + displayName = "Mediterranean Chicken MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Mediterranean Chicken"; + }; + class cse_US_MRE_MedChicken_prepared: cse_US_MRE_MedChicen { + displayName = "Mediterranean Chicken MRE(Heated)"; + }; + + class cse_US_MRE_BeefRoastVeggies: cse_MRE_BASE { + displayName = "Beef Roast with Veggies MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Beef Roast with Veggies"; + }; + class cse_US_MRE_BeefRoastVeggies_prepared: cse_US_MRE_BeefRoastVeggies { + displayName = "Beef Roast Veg MRE(Heated)"; + }; + + class cse_US_MRE_BeefBrisket: cse_MRE_BASE { + displayName = "Beef Brisket MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Beef Brisket"; + }; + class cse_US_MRE_BeefBrisket_prepared: cse_US_MRE_BeefBrisket { + displayName = "Beef Brisket MRE(Heated)"; + }; + + class cse_US_MRE_MeatballMarinara: cse_MRE_BASE { + displayName = "Meatball Marinara MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Meatballs with Marinara Sauce"; + }; + class cse_US_MRE_MeatballMarinara_prepared: cse_US_MRE_MeatballMarinara { + displayName = "Meatball Marinara(Heated)"; + }; + + class cse_US_MRE_BeefStew: cse_MRE_BASE { + displayName = "Beef Stew MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Beef Stew"; + }; + class cse_US_MRE_BeefStew_prepared: cse_US_MRE_BeefStew { + displayName = "Beef Stew MRE(Heated)"; + }; + + class cse_US_MRE_ChiliMacaroni: cse_MRE_BASE { + displayName = "Chile Macaroni MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Chile Macaroni"; + }; + class cse_US_MRE_ChileMacaroni_prepared: cse_US_MRE_ChiliMacaroni { + displayName = "Chile Macaroni MRE(Heated)"; + }; + + class cse_US_MRE_VegetableLasagna: cse_MRE_BASE { + displayName = "Vegetable Lasagna MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Vegetable Lasagna"; + }; + class cse_US_MRE_VegetableLasagna_prepared: cse_US_MRE_VegetableLasagna { + displayName = "Vegetable Lasagna MRE(Heated)"; + }; + + class cse_US_MRE_SpicyPennePasta: cse_MRE_BASE { + displayName = "Spicy Penne Pasta MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Spicy Penne Pasta"; + }; + class cse_US_MRE_SpicyPennePasta_prepared: cse_US_MRE_SpicyPennePasta { + displayName = "Spicy Penne Pasta MRE(Heated)"; + }; + + class cse_US_MRE_CheeseTortellini: cse_MRE_BASE { + displayName = "Cheese Tortellini MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing CheeseTortellini"; + }; + class cse_US_MRE_CheeseTortellini_prepared: cse_US_MRE_CheeseTortellini { + displayName = "Cheese Tortellini MRE(Heated)"; + }; + + class cse_US_MRE_Ratatouille: cse_MRE_BASE { + displayName = "Ratatouille MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Ratatouille"; + }; + class cse_US_MRE_Ratatouille_prepared: cse_US_MRE_Ratatouille { + displayName = "Ratatouille MRE (Heated)"; + }; + + class cse_US_MRE_MexicanStyleChickenStew: cse_MRE_BASE { + displayName = "Mexican Style Chicken Stew MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Mexican Style Chicken Stew"; + }; + class cse_US_MRE_MexicanStyleChickenStew_prepared: cse_US_MRE_MexicanStyleChickenStew { + displayName = "Mexican Style Chicken Stew MRE (Heated)"; + }; + + class cse_US_MRE_PorkRib: cse_MRE_BASE { + displayName = "Pork Rib MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Pork Rib"; + }; + class cse_US_MRE_PorkRib_prepared: cse_US_MRE_PorkRib { + displayName = "Pork Rib MRE (Heated)"; + }; + + class cse_US_MRE_MapleSausage: cse_MRE_BASE { + displayName = "Maple Sausage MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Maple Sausage"; + }; + class cse_US_MRE_MapleSausage_prepared: cse_US_MRE_MapleSausage { + displayName = "Maple Sausage MRE (Heated)"; + }; + + class cse_US_MRE_BeefRavioli: cse_MRE_BASE { + displayName = "Beef Ravioli MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Beef Ravioli"; + }; + class cse_US_MRE_BeefRavioli_prepared: cse_US_MRE_BeefRavioli { + displayName = "Beef Ravioli MRE (Heated)"; + }; + + class cse_US_MRE_SloppyJoe: cse_MRE_BASE { + displayName = "Sloppy Joe MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing a Sloppy Joe"; + }; + class cse_US_MRE_SloppyJoe_prepared: cse_US_MRE_SloppyJoe { + displayName = "Sloppy Joe MRE (Heated)"; + }; + + class cse_US_MRE_SpaghettiMeatSauce: cse_MRE_BASE { + displayName = "Spaghetti with Meat Sauce MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Spaghetti with Meat Sauce"; + }; + class cse_US_MRE_SpaghettiMeatSauce_prepared: cse_US_MRE_SpaghettiMeatSauce { + displayName = "Spaghetti with Meat Sauce MRE (Heated)"; + }; + + class cse_US_MRE_LemonPepperTuna: cse_MRE_BASE { + displayName = " Lemon Pepper Tuna MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Lemon Pepper Tuna"; + }; + class cse_US_MRE_LemonPepperTuna_prepared: cse_US_MRE_LemonPepperTuna { + displayName = "Lemon Pepper Tuna MRE (Heated)"; + }; + + class cse_US_MRE_AsianBeefStrips: cse_MRE_BASE { + displayName = "Asian Beef Strips MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Asian Beef Strips"; + }; + class cse_US_MRE_AsianBeefStrips_prepared: cse_US_MRE_AsianBeefStrips { + displayName = "Asian Beef Strips MRE (Heated)"; + }; + + class cse_US_MRE_ChickenPestoPasta: cse_MRE_BASE { + displayName = "Chicken Pesto Pasta MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Chicken Pesto Pasta"; + }; + class cse_US_MRE_ChickenPestoPasta_prepared: cse_US_MRE_ChickenPestoPasta { + displayName = "Chicken Pesto Pasta (Heated)"; + }; + + class cse_US_MRE_SouthwestStyleBeefBlackBeans: cse_MRE_BASE { + displayName = "Southwest Style Beef & Black Beans"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Southwest Style Beef & Black Beans"; + }; + class cse_US_MRE_SouthwestStyleBeefBlackBeans_prepared: cse_US_MRE_SouthwestStyleBeefBlackBeans { + displayName = "Southwest Style Beef & Black Beans (Heated)"; + }; + + class cse_mre_c_ration: cse_MRE_BASE { + displayName = "C Ration"; + picture = "\cse\cse_sys_field_rations\data\pictures\gbl_mre_c_ration.paa"; + descriptionShort = "C ration"; + }; + +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/CfgSounds.h b/TO_MERGE/cse/sys_field_rations/CfgSounds.h new file mode 100644 index 0000000000..238bc7024a --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/CfgSounds.h @@ -0,0 +1,7 @@ +class CfgSounds { + class cse_drinking { + name = "cse_drinking"; + sound[] = {"cse\cse_sys_field_rations\sounds\drinkingSound.ogg","db-1",1.0}; + titles[] = {}; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/CfgVehicles.h b/TO_MERGE/cse/sys_field_rations/CfgVehicles.h new file mode 100644 index 0000000000..b0f1b82c9f --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/CfgVehicles.h @@ -0,0 +1,201 @@ +class CfgVehicles { + class Logic; + class Module_F: Logic { + class ArgumentsBaseUnits {}; + }; + class cse_sys_field_rations: Module_F { + scope = 2; + displayName = "Field Rations [CSE]"; + icon = "\cse\cse_main\data\cse_basic_module.paa"; + category = "cseModules"; + function = "cse_fnc_initalizeModule_F"; + functionPriority = 1; + isGlobal = 1; + isTriggerActivated = 0; + class Arguments { + class timeWithoutWater { + displayName = "Time without water"; + description = "How long should a unit be able to go without water"; + typeName = "NUMBER"; + class values { + class Twodays {name="48 hours"; value= 0.5; }; + class 32Hours {name="32 hours"; value= 0.75; }; + class oneDay {name="24 hours"; value=1; default=1; }; + class halfDay {name="12 hours"; value=2; }; + class quarterDay {name="6 hours"; value=4; }; + class eightDay {name="3 hours"; value=8; }; + class oneHour {name="1 hour"; value=24; }; + }; + }; + class timeWithoutFood { + displayName = "Time without food"; + description = "How long should a unit be able to go without food"; + typeName = "NUMBER"; + class values { + class Twodays {name="48 hours"; value= 0.5; }; + class 32Hours {name="32 hours"; value= 0.75; default=1;}; + class oneDay {name="24 hours"; value=1; }; + class halfDay {name="12 hours"; value=2; }; + class quarterDay {name="6 hours"; value=4; }; + class eightDay {name="3 hours"; value=8; }; + class oneHour {name="1 hour"; value=24; }; + }; + }; + }; + }; + + class NATO_Box_Base; + class cse_field_rations_all : NATO_Box_Base { + scope = 2; + accuracy = 1000; + displayName = "Field Rations [All] (CSE)"; + model = "\A3\weapons_F\AmmoBoxes\AmmoBox_F"; + author = "Combat Space Enhancement"; + class TransportWeapons { + class cse_waterbottle { + weapon = "cse_waterbottle"; + count = 20; + }; + class _xx_cse_canteen { + weapon = "cse_canteen"; + count = 20; + }; + class _xx_cse_MRE_LambC { + weapon = "cse_MRE_LambC"; + count = 10; + }; + class _xx_cse_MRE_Rice { + weapon = "cse_MRE_Rice"; + count = 10; + }; + class _xx_cse_MRE_CreamTomatoSoup { + weapon = "cse_MRE_CreamTomatoSoup"; + count = 10; + }; + class _xx_cse_MRE_CreamChickenSoup { + weapon = "cse_MRE_CreamChickenSoup"; + count = 10; + }; + class _xx_cse_MRE_ChickenTikkaMassala { + weapon = "cse_MRE_ChickenTikkaMassala"; + count = 10; + }; + class _xx_cse_MRE_SteakVegetables { + weapon = "cse_MRE_SteakVegetables"; + count = 10; + }; + class _xx_cse_MRE_MeatballsPasta { + weapon = "cse_MRE_MeatballsPasta"; + count = 10; + }; + class _xx_cse_MRE_ChickenHerbDumplings { + weapon = "cse_MRE_ChickenHerbDumplings"; + count = 10; + }; + class _xx_cse_Humanitarian_Ration { + weapon = "cse_Humanitarian_Ration"; + count = 10; + }; + class _xx_cse_US_MRE_ChiliBeans { + weapon = "cse_US_MRE_ChiliBeans"; + count = 10; + }; + class _xx_cse_US_MRE_ChickenFajita { + weapon = "cse_US_MRE_ChickenFajita"; + count = 10; + }; + class _xx_cse_US_MRE_ChickenNoodles { + weapon = "cse_US_MRE_ChickenNoodles"; + count = 10; + }; + class _xx_cse_US_MRE_PorkSausageGravy { + weapon = "cse_US_MRE_PorkSausageGravy"; + count = 10; + }; + class _xx_cse_US_MRE_MedChicen { + weapon = "cse_US_MRE_MedChicen"; + count = 10; + }; + class _xx_cse_US_MRE_BeefRoastVeggies { + weapon = "cse_US_MRE_BeefRoastVeggies"; + count = 10; + }; + class _xx_cse_US_MRE_BeefBrisket { + weapon = "cse_US_MRE_BeefBrisket"; + count = 10; + }; + class _xx_cse_US_MRE_MeatballMarinara { + weapon = "cse_US_MRE_MeatballMarinara"; + count = 10; + }; + class _xx_cse_US_MRE_BeefStew { + weapon = "cse_US_MRE_BeefStew"; + count = 10; + }; + class _xx_cse_US_MRE_ChiliMacaroni { + weapon = "cse_US_MRE_ChiliMacaroni"; + count = 10; + }; + class _xx_cse_US_MRE_VegetableLasagna { + weapon = "cse_US_MRE_VegetableLasagna"; + count = 10; + }; + class _xx_cse_US_MRE_SpicyPennePasta { + weapon = "cse_US_MRE_SpicyPennePasta"; + count = 10; + }; + class _xx_cse_US_MRE_CheeseTortellini { + weapon = "cse_US_MRE_CheeseTortellini"; + count = 10; + }; + class _xx_cse_US_MRE_Ratatouille { + weapon = "cse_US_MRE_Ratatouille"; + count = 10; + }; + class _xx_cse_US_MRE_MexicanStyleChickenStew { + weapon = "cse_US_MRE_MexicanStyleChickenStew"; + count = 10; + }; + class _xx_cse_US_MRE_PorkRib { + weapon = "cse_US_MRE_PorkRib"; + count = 10; + }; + class _xx_cse_US_MRE_MapleSausage { + weapon = "cse_US_MRE_MapleSausage"; + count = 10; + }; + class _xx_cse_US_MRE_BeefRavioli { + weapon = "cse_US_MRE_BeefRavioli"; + count = 10; + }; + class _xx_cse_US_MRE_SloppyJoe { + weapon = "cse_US_MRE_SloppyJoe"; + count = 10; + }; + class _xx_cse_US_MRE_SpaghettiMeatSauce { + weapon = "cse_US_MRE_SpaghettiMeatSauce"; + count = 10; + }; + class _xx_cse_US_MRE_LemonPepperTuna { + weapon = "cse_US_MRE_LemonPepperTuna"; + count = 10; + }; + class _xx_cse_US_MRE_AsianBeefStrips { + weapon = "cse_US_MRE_AsianBeefStrips"; + count = 10; + }; + class _xx_cse_US_MRE_ChickenPestoPasta { + weapon = "cse_US_MRE_ChickenPestoPasta"; + count = 10; + }; + class _xx_cse_US_MRE_SouthwestStyleBeefBlackBeans { + weapon = "cse_US_MRE_SouthwestStyleBeefBlackBeans"; + count = 10; + }; + class _xx_cse_mre_c_ration { + weapon = "cse_mre_c_ration"; + count = 10; + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/CfgWeapons.h b/TO_MERGE/cse/sys_field_rations/CfgWeapons.h new file mode 100644 index 0000000000..06efed1750 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/CfgWeapons.h @@ -0,0 +1,431 @@ +class CfgWeapons { + class ItemCore; + class InventoryItem_Base_F; + class cse_waterbottle: ItemCore { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Water Bottle"; + picture = "\cse\cse_sys_field_rations\data\pictures\waterbottle.paa"; + model = "\A3\Structures_F_EPA\Items\Food\BottlePlastic_V2_F.p3d"; + descriptionShort = "A waterbottle"; + class ItemInfo: InventoryItem_Base_F + { + mass= 5; + type= 201; + }; + cse_isDrinkable = 3.75; + cse_onDrink = "cse_waterbottle_half"; + }; + class cse_canteen: ItemCore { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Canteen (Water)"; + picture = "\cse\cse_sys_field_rations\data\pictures\image_canteen.paa"; + model = "\A3\Structures_F_EPA\Items\Food\Canteen_F.p3d"; + descriptionShort = "A Canteen containing water"; + class ItemInfo: InventoryItem_Base_F + { + mass= 5; + type= 201; + }; + cse_isDrinkable = 3.75; + cse_onDrink = "cse_canteen_half"; + }; + class cse_canteen_half: cse_canteen { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Canteen (Half)"; + picture = "\cse\cse_sys_field_rations\data\pictures\image_canteen.paa"; + model = "\A3\Structures_F_EPA\Items\Food\Canteen_F.p3d"; + descriptionShort = "A Canteen containing water (Half)"; + class ItemInfo: InventoryItem_Base_F + { + mass= 5; + type= 201; + }; + cse_isDrinkable = 3.75; + cse_onDrink = "cse_canteen_empty"; + cse_onRefill = "cse_canteen"; + }; + class cse_canteen_empty: cse_canteen { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Canteen (Empty)"; + picture = "\cse\cse_sys_field_rations\data\pictures\image_canteen.paa"; + model = "\A3\Structures_F_EPA\Items\Food\Canteen_F.p3d"; + descriptionShort = "A Canteen containing water (Half)"; + class ItemInfo: InventoryItem_Base_F + { + mass= 5; + type= 201; + }; + cse_isDrinkable = 0; + cse_onDrink = ""; + cse_onRefill = "cse_canteen"; + }; + + + class cse_waterbottle_half: cse_waterbottle { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Water Bottle 1/2"; + picture = "\cse\cse_sys_field_rations\data\pictures\waterbottle.paa"; + model ="\cse\cse_sys_field_rations\waterbottle.p3d"; + descriptionShort = "Half full waterbottle"; + cse_onDrink = "cse_waterbottle_empty"; + cse_isDrinkable = 3.75; + se_onRefill = "cse_waterbottle"; + }; + + + class cse_waterbottle_empty: cse_waterbottle { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "Empty Water Bottle"; + picture = "\cse\cse_sys_field_rations\data\pictures\waterbottle_empty.paa"; + model ="\cse\cse_sys_field_rations\waterbottle.p3d"; + descriptionShort = "An empty waterbottle"; + cse_isDrinkable = 0; + cse_onRefill = "cse_waterbottle"; + cse_onDrink = ""; + }; + + class cse_MRE_BASE: cse_waterbottle { + scope = 2; + value = 1; + count = 1; + type = 16; + displayName = "MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE.paa"; + model ="\cse\cse_sys_field_rations\mre_type1.p3d"; + descriptionShort = "A Meal Ready to Eat, unprepared"; + class ItemInfo: InventoryItem_Base_F + { + mass= 2; + type= 201; + }; + cse_isEatable = 10; + cse_isDrinkable = 0; + }; + + class cse_MRE_LambC: cse_MRE_BASE { + displayName = "MRE Lamb Curry"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + model ="\cse\cse_sys_field_rations\mre_type1.p3d"; + descriptionShort = "An MRE containing Lamb Curry. Heat for best effect"; + }; + class cse_MRE_LambC_prepared: cse_MRE_LambC { + displayName = "MRE Lamb Curry (Heated)"; + }; + + class cse_MRE_Rice: cse_MRE_BASE { + displayName = "MRE Rice"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type2.paa"; + model ="\cse\cse_sys_field_rations\mre_type2.p3d"; + descriptionShort = "An MRE Containing Rice. Heat for best effect"; + }; + class cse_MRE_Rice_prepared: cse_MRE_Rice { + displayName = "MRE Rice (Heated)"; + }; + + class cse_MRE_CreamTomatoSoup: cse_MRE_BASE { + displayName = "MRE Cream Tomato Soup"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type3.paa"; + model ="\cse\cse_sys_field_rations\mre_type3.p3d"; + descriptionShort = "An MRE Containing Tomato Soup cream. Mix with water and heat for best effect"; + }; + class cse_MRE_CreamTomatoSoup_prepared: cse_MRE_CreamTomatoSoup { + displayName = "MRE Cream Tomato Soup (Heated)"; + }; + + class cse_MRE_CreamChickenSoup: cse_MRE_BASE { + displayName = "MRE Cream Chicken Soup"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type3.paa"; + model ="\cse\cse_sys_field_rations\mre_type3.p3d"; + descriptionShort = "An MRE Containing Chicken Soup. Mix with water and heat for best effect"; + }; + class cse_MRE_CreamChickenSoup_prepared: cse_MRE_CreamChickenSoup { + displayName = "MRE Cream Chicken Soup (Heated)"; + }; + + class cse_MRE_ChickenTikkaMassala: cse_MRE_BASE { + displayName = "MRE Chicken Tikka Massala"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type4.paa"; + model = "\cse\cse_sys_field_rations\mre_type4.p3d"; + descriptionShort = "An MRE with Chicken Tikka Massala. Heat for best effect"; + }; + class cse_MRE_ChickenTikkaMassala_prepared: cse_MRE_ChickenTikkaMassala { + displayName = "MRE Chicken Tikka Massala (Heated)"; + }; + + class cse_MRE_SteakVegetables: cse_MRE_BASE { + displayName = "MRE Steak & Vegetables"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type5.paa"; + model ="\cse\cse_sys_field_rations\mre_type5.p3d"; + descriptionShort = "An MRE Containing Steak & Vegetables. Heat for best effect"; + }; + class cse_MRE_SteakVegetables_prepared: cse_MRE_SteakVegetables { + displayName = "MRE Steak & Vegetables (Heated)"; + }; + + class cse_MRE_MeatballsPasta: cse_MRE_BASE { + displayName = "MRE Meatballs & Pasta"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type6.paa"; + model ="\cse\cse_sys_field_rations\mre_type6.p3d"; + descriptionShort = "An MRE Containing Meatballs & Pasta. Heat for best effect"; + }; + class cse_MRE_MeatballsPasta_prepared: cse_MRE_MeatballsPasta { + displayName = "MRE Meatballs & Pastas (Heated)"; + }; + + class cse_MRE_ChickenHerbDumplings: cse_MRE_BASE { + displayName = "MRE Chicken with Herb Dumplings"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type6.paa"; + model ="\cse\cse_sys_field_rations\mre_type6.p3d"; + descriptionShort = "An MRE Containing Chicken with Herb Dumplings. Heat for best effect"; + }; + class cse_MRE_ChickenHerbDumplings_prepared: cse_MRE_ChickenHerbDumplings { + displayName = "MRE Chicken with Herb Dumplings (Heated)"; + }; + + class cse_Humanitarian_Ration: cse_MRE_BASE { + displayName = "Humanitarian Ration"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_human.paa"; + model ="\cse\cse_sys_field_rations\mre_human.p3d"; + descriptionShort = "An Humanitarian Ration, for handing out to the local population"; + }; + + class cse_US_MRE_ChiliBeans: cse_MRE_BASE { + displayName = "Chile with Beans MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Chili with Beans"; + }; + class cse_US_MRE_ChiliBeans_prepared: cse_US_MRE_ChiliBeans { + displayName = "Chile with Beans MRE (Heated)"; + }; + class cse_US_MRE_ChickenFajita: cse_MRE_BASE { + displayName = "Chicken Fajita MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "A Chicken Fajita MRE"; + }; + class cse_US_MRE_ChickenFajita_prepared: cse_US_MRE_ChickenFajita { + displayName = "Chicken Fajita MRE (Heated)"; + }; + + class cse_US_MRE_ChickenNoodles: cse_MRE_BASE { + displayName = "Chicken with Noodles MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Chicken with Noodles"; + }; + class cse_US_MRE_ChickenNoodles_prepared: cse_US_MRE_ChickenNoodles { + displayName = "Chicken Fajita MRE(Heated)"; + }; + + class cse_US_MRE_PorkSausageGravy: cse_MRE_BASE { + displayName = "Pork Sausage with Gravy MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Pork Sausage with Gravy"; + }; + class cse_US_MRE_PorkSausageGravy_prepared: cse_US_MRE_PorkSausageGravy { + displayName = "Pork Sausage Gravy MRE(Heated)"; + }; + + class cse_US_MRE_MedChicen: cse_MRE_BASE { + displayName = "Mediterranean Chicken MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Mediterranean Chicken"; + }; + class cse_US_MRE_MedChicken_prepared: cse_US_MRE_MedChicen { + displayName = "Mediterranean Chicken MRE(Heated)"; + }; + + class cse_US_MRE_BeefRoastVeggies: cse_MRE_BASE { + displayName = "Beef Roast with Veggies MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Beef Roast with Veggies"; + }; + class cse_US_MRE_BeefRoastVeggies_prepared: cse_US_MRE_BeefRoastVeggies { + displayName = "Beef Roast Veg MRE(Heated)"; + }; + + class cse_US_MRE_BeefBrisket: cse_MRE_BASE { + displayName = "Beef Brisket MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Beef Brisket"; + }; + class cse_US_MRE_BeefBrisket_prepared: cse_US_MRE_BeefBrisket { + displayName = "Beef Brisket MRE(Heated)"; + }; + + class cse_US_MRE_MeatballMarinara: cse_MRE_BASE { + displayName = "Meatball Marinara MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Meatballs with Marinara Sauce"; + }; + class cse_US_MRE_MeatballMarinara_prepared: cse_US_MRE_MeatballMarinara { + displayName = "Meatball Marinara(Heated)"; + }; + + class cse_US_MRE_BeefStew: cse_MRE_BASE { + displayName = "Beef Stew MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Beef Stew"; + }; + class cse_US_MRE_BeefStew_prepared: cse_US_MRE_BeefStew { + displayName = "Beef Stew MRE(Heated)"; + }; + + class cse_US_MRE_ChiliMacaroni: cse_MRE_BASE { + displayName = "Chile Macaroni MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Chile Macaroni"; + }; + class cse_US_MRE_ChileMacaroni_prepared: cse_US_MRE_ChiliMacaroni { + displayName = "Chile Macaroni MRE(Heated)"; + }; + + class cse_US_MRE_VegetableLasagna: cse_MRE_BASE { + displayName = "Vegetable Lasagna MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Vegetable Lasagna"; + }; + class cse_US_MRE_VegetableLasagna_prepared: cse_US_MRE_VegetableLasagna { + displayName = "Vegetable Lasagna MRE(Heated)"; + }; + + class cse_US_MRE_SpicyPennePasta: cse_MRE_BASE { + displayName = "Spicy Penne Pasta MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Spicy Penne Pasta"; + }; + class cse_US_MRE_SpicyPennePasta_prepared: cse_US_MRE_SpicyPennePasta { + displayName = "Spicy Penne Pasta MRE(Heated)"; + }; + + class cse_US_MRE_CheeseTortellini: cse_MRE_BASE { + displayName = "Cheese Tortellini MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing CheeseTortellini"; + }; + class cse_US_MRE_CheeseTortellini_prepared: cse_US_MRE_CheeseTortellini { + displayName = "Cheese Tortellini MRE(Heated)"; + }; + + class cse_US_MRE_Ratatouille: cse_MRE_BASE { + displayName = "Ratatouille MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Ratatouille"; + }; + class cse_US_MRE_Ratatouille_prepared: cse_US_MRE_Ratatouille { + displayName = "Ratatouille MRE (Heated)"; + }; + + class cse_US_MRE_MexicanStyleChickenStew: cse_MRE_BASE { + displayName = "Mexican Style Chicken Stew MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE containing Mexican Style Chicken Stew"; + }; + class cse_US_MRE_MexicanStyleChickenStew_prepared: cse_US_MRE_MexicanStyleChickenStew { + displayName = "Mexican Style Chicken Stew MRE (Heated)"; + }; + + class cse_US_MRE_PorkRib: cse_MRE_BASE { + displayName = "Pork Rib MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Pork Rib"; + }; + class cse_US_MRE_PorkRib_prepared: cse_US_MRE_PorkRib { + displayName = "Pork Rib MRE (Heated)"; + }; + + class cse_US_MRE_MapleSausage: cse_MRE_BASE { + displayName = "Maple Sausage MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Maple Sausage"; + }; + class cse_US_MRE_MapleSausage_prepared: cse_US_MRE_MapleSausage { + displayName = "Maple Sausage MRE (Heated)"; + }; + + class cse_US_MRE_BeefRavioli: cse_MRE_BASE { + displayName = "Beef Ravioli MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Beef Ravioli"; + }; + class cse_US_MRE_BeefRavioli_prepared: cse_US_MRE_BeefRavioli { + displayName = "Beef Ravioli MRE (Heated)"; + }; + + class cse_US_MRE_SloppyJoe: cse_MRE_BASE { + displayName = "Sloppy Joe MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing a Sloppy Joe"; + }; + class cse_US_MRE_SloppyJoe_prepared: cse_US_MRE_SloppyJoe { + displayName = "Sloppy Joe MRE (Heated)"; + }; + + class cse_US_MRE_SpaghettiMeatSauce: cse_MRE_BASE { + displayName = "Spaghetti with Meat Sauce MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Spaghetti with Meat Sauce"; + }; + class cse_US_MRE_SpaghettiMeatSauce_prepared: cse_US_MRE_SpaghettiMeatSauce { + displayName = "Spaghetti with Meat Sauce MRE (Heated)"; + }; + + class cse_US_MRE_LemonPepperTuna: cse_MRE_BASE { + displayName = " Lemon Pepper Tuna MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Lemon Pepper Tuna"; + }; + class cse_US_MRE_LemonPepperTuna_prepared: cse_US_MRE_LemonPepperTuna { + displayName = "Lemon Pepper Tuna MRE (Heated)"; + }; + + class cse_US_MRE_AsianBeefStrips: cse_MRE_BASE { + displayName = "Asian Beef Strips MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Asian Beef Strips"; + }; + class cse_US_MRE_AsianBeefStrips_prepared: cse_US_MRE_AsianBeefStrips { + displayName = "Asian Beef Strips MRE (Heated)"; + }; + + class cse_US_MRE_ChickenPestoPasta: cse_MRE_BASE { + displayName = "Chicken Pesto Pasta MRE"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Chicken Pesto Pasta"; + }; + class cse_US_MRE_ChickenPestoPasta_prepared: cse_US_MRE_ChickenPestoPasta { + displayName = "Chicken Pesto Pasta (Heated)"; + }; + + class cse_US_MRE_SouthwestStyleBeefBlackBeans: cse_MRE_BASE { + displayName = "Southwest Style Beef & Black Beans"; + picture = "\cse\cse_sys_field_rations\data\pictures\MRE_type1.paa"; + descriptionShort = "An MRE Containing Southwest Style Beef & Black Beans"; + }; + class cse_US_MRE_SouthwestStyleBeefBlackBeans_prepared: cse_US_MRE_SouthwestStyleBeefBlackBeans { + displayName = "Southwest Style Beef & Black Beans (Heated)"; + }; + + class cse_mre_c_ration: cse_MRE_BASE { + displayName = "C Ration"; + picture = "\cse\cse_sys_field_rations\data\pictures\gbl_mre_c_ration.paa"; + descriptionShort = "C ration"; + }; + +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/Combat_Space_Enhancement.h b/TO_MERGE/cse/sys_field_rations/Combat_Space_Enhancement.h new file mode 100644 index 0000000000..674ed4195d --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/Combat_Space_Enhancement.h @@ -0,0 +1,8 @@ +class Combat_Space_Enhancement { + class cfgModules { + class cse_sys_field_rations { + init = "call compile preprocessFile 'cse\cse_sys_field_rations\init_sys_field_rations.sqf';"; + name = "Field Rations"; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/GUI.h b/TO_MERGE/cse/sys_field_rations/GUI.h new file mode 100644 index 0000000000..fa22af3773 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/GUI.h @@ -0,0 +1,3 @@ + + #include "gui\define.h" + #include "gui\dialog_menu.h" \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/config.cpp b/TO_MERGE/cse/sys_field_rations/config.cpp new file mode 100644 index 0000000000..3feec5fde7 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/config.cpp @@ -0,0 +1,31 @@ +#define _ARMA_ +class CfgPatches { + class cse_sys_field_rations { + units[] = {"cse_field_rations_all"}; + weapons[] = {}; + requiredVersion = 0.1; + requiredAddons[] = {"cse_gui", "cse_main", "cse_f_eh", "cse_f_configuration", "cse_f_modules", "cse_f_states"}; + version = "0.10.0_rc"; + author[] = {"Combat Space Enhancement"}; + authorUrl = "http://csemod.com"; + }; +}; + +class CfgAddons { + class PreloadAddons { + class cse_sys_field_rations { + list[] = {"cse_sys_field_rations"}; + }; + }; +}; + +#include "CfgFunctions.h" +#include "Combat_Space_Enhancement.h" +#include "CfgVehicles.h" + +// Here for backwards compatabilty. +// #include "CfgMagazines.h" + +#include "CfgWeapons.h" +#include "CfgSounds.h" +#include "GUI.h" \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/data/Humanitarian_Ration.paa b/TO_MERGE/cse/sys_field_rations/data/Humanitarian_Ration.paa new file mode 100644 index 0000000000..349a133b9a Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/Humanitarian_Ration.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/MRE_nohq.paa b/TO_MERGE/cse/sys_field_rations/data/MRE_nohq.paa new file mode 100644 index 0000000000..6972636a3d Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/MRE_nohq.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/MRE_smdi.paa b/TO_MERGE/cse/sys_field_rations/data/MRE_smdi.paa new file mode 100644 index 0000000000..f450605958 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/MRE_smdi.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/Thumbs.db b/TO_MERGE/cse/sys_field_rations/data/Thumbs.db new file mode 100644 index 0000000000..ae0aed9c59 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/Thumbs.db differ diff --git a/TO_MERGE/cse/sys_field_rations/data/hud_camelbak.paa b/TO_MERGE/cse/sys_field_rations/data/hud_camelbak.paa new file mode 100644 index 0000000000..35dfe4b273 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/hud_camelbak.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/hud_drinkstatus.paa b/TO_MERGE/cse/sys_field_rations/data/hud_drinkstatus.paa new file mode 100644 index 0000000000..99f0195871 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/hud_drinkstatus.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/hud_drinkstatus2.paa b/TO_MERGE/cse/sys_field_rations/data/hud_drinkstatus2.paa new file mode 100644 index 0000000000..9a6801c1da Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/hud_drinkstatus2.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/hud_foodstatus.paa b/TO_MERGE/cse/sys_field_rations/data/hud_foodstatus.paa new file mode 100644 index 0000000000..a7263b22af Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/hud_foodstatus.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/hud_foodstatus2.paa b/TO_MERGE/cse/sys_field_rations/data/hud_foodstatus2.paa new file mode 100644 index 0000000000..1c23460c77 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/hud_foodstatus2.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/human.rvmat b/TO_MERGE/cse/sys_field_rations/data/human.rvmat new file mode 100644 index 0000000000..fde5e41869 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/data/human.rvmat @@ -0,0 +1,32 @@ +ambient[]={1,1,1,1}; +diffuse[]={0.5,0.5,0.5,1}; +forcedDiffuse[]={0.5,0.5,0.5,0}; +emmisive[]={0,0,0,1}; +specular[]={0.30000001,0.30000001,0.30000001,0}; +specularPower=17; +PixelShaderID="NormalMapSpecularDIMap"; +VertexShaderID="NormalMap"; +class Stage1 +{ + texture="cse\cse_sys_field_rations\data\MRE_nohq.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="cse\cse_sys_field_rations\data\MRE_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; diff --git a/TO_MERGE/cse/sys_field_rations/data/human_co.paa b/TO_MERGE/cse/sys_field_rations/data/human_co.paa new file mode 100644 index 0000000000..e713006bb3 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/human_co.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/igui_background_dialog.paa b/TO_MERGE/cse/sys_field_rations/data/igui_background_dialog.paa new file mode 100644 index 0000000000..ed3ef5d002 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/igui_background_dialog.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/mre-type125_co.paa b/TO_MERGE/cse/sys_field_rations/data/mre-type125_co.paa new file mode 100644 index 0000000000..27c94eaf2b Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/mre-type125_co.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/mre-type3_co.paa b/TO_MERGE/cse/sys_field_rations/data/mre-type3_co.paa new file mode 100644 index 0000000000..367f7e7c9e Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/mre-type3_co.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/MRE.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE.paa new file mode 100644 index 0000000000..5a941e7edf Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Heaterpackage.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Heaterpackage.paa new file mode 100644 index 0000000000..5083552df5 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Heaterpackage.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type1.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type1.paa new file mode 100644 index 0000000000..ec397cea4c Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type1.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type2.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type2.paa new file mode 100644 index 0000000000..3c75c24f2c Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type2.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type3.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type3.paa new file mode 100644 index 0000000000..5a941e7edf Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type3.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type4.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type4.paa new file mode 100644 index 0000000000..f90514a1c1 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type4.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type5.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type5.paa new file mode 100644 index 0000000000..08fde02f9a Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type5.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type6.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type6.paa new file mode 100644 index 0000000000..267b8a9b6e Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_Type6.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_human.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_human.paa new file mode 100644 index 0000000000..349a133b9a Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/MRE_human.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/britisharmy_waterbottle.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/britisharmy_waterbottle.paa new file mode 100644 index 0000000000..f7c940b823 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/britisharmy_waterbottle.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/camelbak.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/camelbak.paa new file mode 100644 index 0000000000..fa9d24b7c9 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/camelbak.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/camelbak_empty.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/camelbak_empty.paa new file mode 100644 index 0000000000..40ad5e02a8 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/camelbak_empty.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/gbl_mre_c_ration.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/gbl_mre_c_ration.paa new file mode 100644 index 0000000000..c2ed77897e Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/gbl_mre_c_ration.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/image_canteen.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/image_canteen.paa new file mode 100644 index 0000000000..f9b6ad6887 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/image_canteen.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/rationpack.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/rationpack.paa new file mode 100644 index 0000000000..f90514a1c1 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/rationpack.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/waterbottle.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/waterbottle.paa new file mode 100644 index 0000000000..d9f49d2596 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/waterbottle.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/pictures/waterbottle_empty.paa b/TO_MERGE/cse/sys_field_rations/data/pictures/waterbottle_empty.paa new file mode 100644 index 0000000000..ff29021140 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/pictures/waterbottle_empty.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/type46.rvmat b/TO_MERGE/cse/sys_field_rations/data/type46.rvmat new file mode 100644 index 0000000000..fde5e41869 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/data/type46.rvmat @@ -0,0 +1,32 @@ +ambient[]={1,1,1,1}; +diffuse[]={0.5,0.5,0.5,1}; +forcedDiffuse[]={0.5,0.5,0.5,0}; +emmisive[]={0,0,0,1}; +specular[]={0.30000001,0.30000001,0.30000001,0}; +specularPower=17; +PixelShaderID="NormalMapSpecularDIMap"; +VertexShaderID="NormalMap"; +class Stage1 +{ + texture="cse\cse_sys_field_rations\data\MRE_nohq.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="cse\cse_sys_field_rations\data\MRE_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; diff --git a/TO_MERGE/cse/sys_field_rations/data/type46_nohq.paa b/TO_MERGE/cse/sys_field_rations/data/type46_nohq.paa new file mode 100644 index 0000000000..ab85da35e9 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/type46_nohq.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/type4_co.paa b/TO_MERGE/cse/sys_field_rations/data/type4_co.paa new file mode 100644 index 0000000000..34a674c4c0 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/type4_co.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/type6_co.paa b/TO_MERGE/cse/sys_field_rations/data/type6_co.paa new file mode 100644 index 0000000000..87e97ea62f Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/type6_co.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/uk-bottle.paa b/TO_MERGE/cse/sys_field_rations/data/uk-bottle.paa new file mode 100644 index 0000000000..ea80e5d567 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/uk-bottle.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/waterbottle.paa b/TO_MERGE/cse/sys_field_rations/data/waterbottle.paa new file mode 100644 index 0000000000..591f414142 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/waterbottle.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/data/waterbottle_2.paa b/TO_MERGE/cse/sys_field_rations/data/waterbottle_2.paa new file mode 100644 index 0000000000..ca04325513 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/data/waterbottle_2.paa differ diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_actionDrink_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_actionDrink_FR.sqf new file mode 100644 index 0000000000..ea6caaa728 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_actionDrink_FR.sqf @@ -0,0 +1,39 @@ +/** + * fn_actionDrink_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_unit", "_item", "_time", "_res"]; +_unit = [_this, 0, objNull, [objNull]] call BIS_fnc_param; +_item = [_this, 1, "", [""]] call BIS_fnc_param; +_time = [_this, 2, 0, [0]] call BIS_fnc_param; + + +["cse_fieldRations_actionConsuming", true, "cse\cse_sys_field_rations\data\icons\icon_drinking.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; + +CSE_ORIGINAL_POSITION_PLAYER = getPos _unit; +playsound "cse_drinking"; +_res = [_time,{((vehicle player != player) ||((getPos player) distance CSE_ORIGINAL_POSITION_PLAYER) < 1)}, {},{[player, "STR_CSE_CMS_CANCELED", ["STR_CSE_CMS_ACTION_CANCELED","STR_CSE_CMS_YOU_MOVED_AWAY"]] call cse_fnc_sendDisplayInformationTo;}] call cse_fnc_gui_loadingBar; + +["cse_fieldRations_actionConsuming", false, "cse\cse_sys_field_rations\data\icons\icon_drinking.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; + + +if ([_item] call cse_fnc_itemIsDrinkable_FR && _res) then { + _unit removeItem _item; + _unit setvariable ["cse_drink_status_fr", ((_unit getvariable ["cse_drink_status_fr", 100]) + ([_item] call cse_fnc_getDrinkableValue_FR)) min 100]; + + _onDrink = getText(ConfigFile >> "CfgWeapons" >> _item >> "cse_onDrink"); + if (_onDrink != "") then { + _unit addItem _onDrink; + }; + + [format["ACTION DRINK: %1 FOUND %2",_unit, _item]] call cse_fnc_debug; + if ((_unit getvariable ["cse_drink_status_fr", 100]) >= 100) then { + hint "You feel stuffed.."; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_actionEat_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_actionEat_FR.sqf new file mode 100644 index 0000000000..b568d6bac3 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_actionEat_FR.sqf @@ -0,0 +1,33 @@ +/** + * fn_actionEat_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_unit", "_item", "_time", "_res"]; +_unit = [_this, 0, objNull, [objNull]] call BIS_fnc_param; +_item = [_this, 1, "", [""]] call BIS_fnc_param; +_time = [_this, 2, 0, [0]] call BIS_fnc_param; + + +["cse_fieldRations_actionConsuming", true, CSE_ICON_PATH + "icon_survival.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; + +CSE_ORIGINAL_POSITION_PLAYER = getPos _unit; +_res = [_time,{((vehicle player != player) ||((getPos player) distance CSE_ORIGINAL_POSITION_PLAYER) < 1)}, {},{[player, "STR_CSE_CMS_CANCELED", ["STR_CSE_CMS_ACTION_CANCELED","STR_CSE_CMS_YOU_MOVED_AWAY"]] call cse_fnc_sendDisplayInformationTo;}] call cse_fnc_gui_loadingBar; + +["cse_fieldRations_actionConsuming", false, "cse\cse_sys_field_rations\data\icons\icon_drinking.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; + + +if ([_item] call cse_fnc_itemIsEatable_FR && _res) then { + _unit removeItem _item; + _unit setvariable ["cse_food_status_fr", ((_unit getvariable ["cse_food_status_fr", 100]) + ([_item] call cse_fnc_getEatableValue_FR)) min 100]; + + [format["ACTIONEAT: %1 FOUND %2",_unit, _item]] call cse_fnc_debug; + if ((_unit getvariable ["cse_food_status_fr", 100]) >= 100) then { + hint "You feel stuffed.."; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_actionRefillCamelbak_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_actionRefillCamelbak_FR.sqf new file mode 100644 index 0000000000..63edf83d0d --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_actionRefillCamelbak_FR.sqf @@ -0,0 +1,26 @@ +/** + * fn_actionRefillCamelbak_FR.sqf + * @Descr: + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: true + */ + +private ["_unit", "_item", "_onRefill", "_time", "_res"]; +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_time = [_this, 1, 0, [0]] call BIS_fnc_param; + + +CSE_ORIGINAL_POSITION_PLAYER = getPos _unit; +_res = [_time,{((vehicle player != player) ||((getPos player) distance CSE_ORIGINAL_POSITION_PLAYER) < 1)}, {},{[player, "STR_CSE_CMS_CANCELED", ["STR_CSE_CMS_ACTION_CANCELED","STR_CSE_CMS_YOU_MOVED_AWAY"]] call cse_fnc_sendDisplayInformationTo;}] call cse_fnc_gui_loadingBar; + + +if ([uniformContainer _unit] call cse_fnc_isCamelbak_FR && _res) then { + _maxValue = getNumber(ConfigFile >> "cfgWeapons" >> typeOf (uniformContainer _unit) >> "cse_camelbak_maxContent"); + if (_maxValue > 0) then { + _uniform = uniformContainer _unit; + _uniform setvariable ["cse_camelbak_status_fr", _maxValue]; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_actionRefill_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_actionRefill_FR.sqf new file mode 100644 index 0000000000..f95e18753b --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_actionRefill_FR.sqf @@ -0,0 +1,28 @@ +/** + * fn_actionRefill_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_unit", "_item", "_onRefill", "_time", "_res"]; +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_item = [_this, 1, "", [""]] call BIS_fnc_param; +_time = [_this, 2, 0, [0]] call BIS_fnc_param; + + +CSE_ORIGINAL_POSITION_PLAYER = getPos _unit; +_res = [_time,{((vehicle player != player) ||((getPos player) distance CSE_ORIGINAL_POSITION_PLAYER) < 1)}, {},{[player, "STR_CSE_CMS_CANCELED", ["STR_CSE_CMS_ACTION_CANCELED","STR_CSE_CMS_YOU_MOVED_AWAY"]] call cse_fnc_sendDisplayInformationTo;}] call cse_fnc_gui_loadingBar; + + +if ([_item] call cse_fnc_itemIsRefillable_FR && _res) then { + _unit removeItem _item; + _onRefill = getText(ConfigFile >> "CfgWeapons" >> _item >> "cse_onRefill"); + if (_onRefill != "") then { + _unit addItem _onRefill; + }; + [format["ACTION REFILL: %1 FOUND %2 %3",_unit, _item, _onRefill]] call cse_fnc_debug; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_canDrink_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_canDrink_FR.sqf new file mode 100644 index 0000000000..70d6539a8a --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_canDrink_FR.sqf @@ -0,0 +1,11 @@ +/** + * fn_canDrink_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +(((_this select 0) getvariable ["cse_drink_status_fr", 100]) < 101) \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_canEat_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_canEat_FR.sqf new file mode 100644 index 0000000000..69c412f41b --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_canEat_FR.sqf @@ -0,0 +1,14 @@ +/** + * fn_canEat_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_unit"]; +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; + +((_unit getvariable ["cse_food_status_fr", 100]) < 101) \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_canRefillCamelbak_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_canRefillCamelbak_FR.sqf new file mode 100644 index 0000000000..e374d111b2 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_canRefillCamelbak_FR.sqf @@ -0,0 +1,6 @@ +private ["_unit", "_target"]; +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_target = [_this, 1, objNull, [objNull]] call bis_fnc_param; + + +([_unit,_target] call cse_fnc_canRefill_FR); \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_canRefill_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_canRefill_FR.sqf new file mode 100644 index 0000000000..e2a02af147 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_canRefill_FR.sqf @@ -0,0 +1,16 @@ +/** + * fn_canRefill_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_unit", "_target"]; +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_target = [_this, 1, objNull, [objNull]] call bis_fnc_param; + + +(((_target getvariable ["cse_isRefillObject_FR", false]) || (_target iskindof "Land_Misc_Well_C_EP1") || (_target iskindof "Land_Misc_Well_L_EP1") || (_target iskindof "Land_Barrel_water") || (_target iskindof "Land_stand_waterl_EP1") || (_target iskindof "Land_Reservoir_EP1")) && (_target distance _unit < 5)) \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_getDrinkableValue_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_getDrinkableValue_FR.sqf new file mode 100644 index 0000000000..57e2f2b0a2 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_getDrinkableValue_FR.sqf @@ -0,0 +1,18 @@ +/** + * fn_getDrinkableValue_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_item", "_return"]; +_item = [_this, 0, "", [""]] call bis_fnc_param; +_return = 0; + +if ([_item] call cse_fnc_itemIsDrinkable_FR) then { + _return = getNumber(ConfigFile >> "CfgWeapons" >> _item >> "cse_isDrinkable"); +}; +_return; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_getEatableValue_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_getEatableValue_FR.sqf new file mode 100644 index 0000000000..5619f7cb05 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_getEatableValue_FR.sqf @@ -0,0 +1,18 @@ +/** + * fn_getEatableValue_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_item", "_return"]; +_item = [_this, 0, "", [""]] call bis_fnc_param; +_return = 0; + +if ([_item] call cse_fnc_itemIsEatable_FR) then { + _return = getNumber(ConfigFile >> "CfgWeapons" >> _item >> "cse_isEatable"); +}; +_return; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_getInitialContent_Camelbak_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_getInitialContent_Camelbak_FR.sqf new file mode 100644 index 0000000000..48d1e29d74 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_getInitialContent_Camelbak_FR.sqf @@ -0,0 +1,13 @@ +/** + * fn_getStartContent_Camelbak_FR.sqf + * @Descr: + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: true + */ + +private ["_camelbak"]; +_camelbak = [_this, 0, objNull, [objNull]] call bis_fnc_param; +(getNumber(ConfigFile >> "cfgWeapons" >> typeOf _camelbak >> "cse_camelbak_initialContent") min ([_camelbak] call cse_fnc_getMaxContent_Camelbak_FR)); \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_getMaxContent_Camelbak_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_getMaxContent_Camelbak_FR.sqf new file mode 100644 index 0000000000..a41de4f97c --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_getMaxContent_Camelbak_FR.sqf @@ -0,0 +1,13 @@ +/** + * fn_getMaxContent_Camelbak_FR.sqf + * @Descr: + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: true + */ + +private ["_camelbak"]; +_camelbak = [_this, 0, objNull, [objNull]] call bis_fnc_param; +getNumber(ConfigFile >> "cfgWeapons" >> typeOf _camelbak >> "cse_camelbak_maxContent"); \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_hasCamelbak_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_hasCamelbak_FR.sqf new file mode 100644 index 0000000000..d1315cd654 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_hasCamelbak_FR.sqf @@ -0,0 +1,16 @@ +/** + * fn_hasCamelbak_FR.sqf + * @Descr: + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: true + */ + + +private ["_unit"]; +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; + +if !(_unit isKindOf "CAManBase") exitwith {false}; +([uniformContainer _unit] call cse_fnc_isCamelbak_FR); \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_hasDrinkableItem_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_hasDrinkableItem_FR.sqf new file mode 100644 index 0000000000..dcfe758649 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_hasDrinkableItem_FR.sqf @@ -0,0 +1,22 @@ +/** + * fn_hasDrinkableItem_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_unit", "_return", "_magazines"]; +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_return = false; + +_magazines = items _unit; +{ + if ([_x] call cse_fnc_itemIsDrinkable_FR) exitwith { + _return = true; + }; +}foreach _magazines; + +_return; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_hasEatableItem_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_hasEatableItem_FR.sqf new file mode 100644 index 0000000000..e643ed182f --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_hasEatableItem_FR.sqf @@ -0,0 +1,22 @@ +/** + * fn_hasEatableItem_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_unit", "_return", "_magazines"]; +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_return = false; + +_magazines = items _unit; +{ + if ([_x] call cse_fnc_itemIsEatable_FR) exitwith { + _return = true; + }; +}foreach _magazines; + +_return; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_hasRefillableItem_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_hasRefillableItem_FR.sqf new file mode 100644 index 0000000000..7f6fe27261 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_hasRefillableItem_FR.sqf @@ -0,0 +1,22 @@ +/** + * fn_hasRefillableItem_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_unit", "_return", "_magazines"]; +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_return = false; + +_magazines = items _unit; +{ + if ([_x] call cse_fnc_itemIsRefillable_FR) exitwith { + _return = true; + }; +}foreach _magazines; + +_return; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_isCamelbak_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_isCamelbak_FR.sqf new file mode 100644 index 0000000000..be3f57b975 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_isCamelbak_FR.sqf @@ -0,0 +1,17 @@ +/** + * fn_isCamelbak_FR.sqf + * @Descr: + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: true + */ + +private ["_return", "_object"]; +_object = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_return = false; +if (isClass (ConfigFile >> "cfgWeapons" >> typeOf _object)) then { + _return = getNumber(ConfigFile >> "cfgWeapons" >> typeOf _object >> "cse_camelbak_maxContent") > 0; +}; +_return \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_itemIsDrinkable_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_itemIsDrinkable_FR.sqf new file mode 100644 index 0000000000..026f51568d --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_itemIsDrinkable_FR.sqf @@ -0,0 +1,20 @@ +/** + * fn_itemIsDrinkable_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_item", "_return", "_cfg"]; +_item = [_this, 0, "", [""]] call bis_fnc_param; +_return = false; + +_cfg = (ConfigFile >> "CfgWeapons" >> _item); +if (isClass _cfg) then { + _return = (getNumber (_cfg >> "cse_isDrinkable") > 0); +}; + +_return; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_itemIsEatable_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_itemIsEatable_FR.sqf new file mode 100644 index 0000000000..ed2df08bce --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_itemIsEatable_FR.sqf @@ -0,0 +1,20 @@ +/** + * fn_itemIsEatable_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_item", "_return", "_cfg"]; +_item = [_this, 0, "", [""]] call bis_fnc_param; +_return = false; + +_cfg = (ConfigFile >> "CfgWeapons" >> _item); +if (isClass _cfg) then { + _return = (getNumber (_cfg >> "cse_isEatable") > 0); +}; + +_return; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_itemIsRefillable_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_itemIsRefillable_FR.sqf new file mode 100644 index 0000000000..3545eafbbd --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_itemIsRefillable_FR.sqf @@ -0,0 +1,20 @@ +/** + * fn_itemIsRefillable_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_item", "_return", "_cfg"]; +_item = [_this, 0, "", [""]] call bis_fnc_param; +_return = false; + +_cfg = (ConfigFile >> "CfgWeapons" >> _item); +if (isClass _cfg) then { + _return = (getText(_cfg >> "cse_onRefill") != ""); +}; + +_return; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_reduceLevels_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_reduceLevels_FR.sqf new file mode 100644 index 0000000000..e577a9147e --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_reduceLevels_FR.sqf @@ -0,0 +1,40 @@ +/** + * fn_reduceLevels_FR.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_absSpeed", "_camelbak_state","_decentWater","_decentFood", "_unit"]; +_unit = _this select 0; + +_drinkStatus = _unit getvariable ["cse_drink_status_fr", 100]; +_foodStatus = _unit getvariable ["cse_food_status_fr", 100]; + +_absSpeed = abs(speed _unit); + +_decentWater = CSE_DESCENT_RATE_WATER_FR; +_decentFood = CSE_DESCENT_RATE_FOOD_FR; + +// TODO add in weight calculation and effect +// If _unit is inside a vehicle, adjust waterlevels +if (vehicle _unit == _unit) then { + if (_absSpeed > 1) then { + _decentWater = _decentWater + (_absSpeed / 400); + _decentFood = _decentFood + (_absSpeed / 1200); + }; +}; +if ([_unit] call cse_fnc_hasCamelbak_FR) then { + _camelbak_state = (uniformContainer _unit) getvariable ["cse_camelbak_status_fr", [(uniformContainer _unit)] call cse_fnc_getInitialContent_Camelbak_FR]; + if (_camelbak_state > 0) then { + (uniformContainer _unit) setvariable ["cse_camelbak_status_fr", _camelbak_state - _decentWater]; + } else { + _unit setvariable ["cse_drink_status_fr", _drinkStatus - _decentWater]; + }; +} else { + _unit setvariable ["cse_drink_status_fr", _drinkStatus - _decentWater]; +}; +_unit setvariable ["cse_food_status_fr", _foodStatus - _decentFood]; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_updateFieldRations_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_updateFieldRations_FR.sqf new file mode 100644 index 0000000000..ee676456f9 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_updateFieldRations_FR.sqf @@ -0,0 +1,53 @@ +/** + * fn_updateFieldRations_FR.sqf + * @Descr: Updates the hydration and hunger levels for given unit and if the unit is the player, it will also give a call to the UI icons from Field Rations. + * @Author: Glowbal + * + * @Arguments: [unit OBJECT (The unit that will have the levels updated)] + * @Return: void + * @PublicAPI: false + */ + +private ["_unit", "_drinkStatus","_foodStatus","_camelbakStatus", "_animState", "_aniMStateChars", "_animP"]; +_unit = _this select 0; +[_unit] call cse_fnc_reduceLevels_FR; +_drinkStatus = _unit getvariable ["cse_drink_status_fr", 100]; +_foodStatus = _unit getvariable ["cse_food_status_fr", 100]; +_camelbakStatus = _unit getvariable ["cse_camelbak_status_fr", 0]; +//[format["drink: %1 Food: %2 Camelbak: %3 - %4", _drinkStatus, _foodStatus, _camelbakStatus, _unit]] call cse_fnc_debug; + +[] call cse_fnc_updateUIStatus_FR; +if (_drinkStatus < 25 || _foodStatus < 25) then { + if (speed _unit > 12 && vehicle _unit == _unit) then { + _unit playMove "amovppnemstpsraswrfldnon"; + }; +}; + +if (_drinkStatus < 30 || _foodStatus < 30) then { + CSE_SHOW_UI_ICONS_FR = true; +} else { + CSE_SHOW_UI_ICONS_FR = false; +}; + +if (_drinkStatus < 20 || _foodStatus < 20) then { + if (random(1) > 0.8) then { + [_unit] call cse_fnc_setUnconsciousState; + }; +}; + +_animState = animationState _unit; +_animStateChars = toArray _animState; +_animP = toString [_animStateChars select 5,_animStateChars select 6,_aniMStateChars select 7]; + + +if (_drinkStatus < 7 || _foodStatus < 7) then { + if (speed _unit > 1 && vehicle _unit == _unit && (_animP != "pne")) then { + _unit playMove "amovppnemstpsraswrfldnon"; + }; +}; + +if (_drinkStatus < 1 || _foodStatus < 1) then { + if (random(1) > 0.2) then { + [_unit] call cse_fnc_setDead; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/functions/fn_updateUIStatus_FR.sqf b/TO_MERGE/cse/sys_field_rations/functions/fn_updateUIStatus_FR.sqf new file mode 100644 index 0000000000..b3ac2bb126 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/functions/fn_updateUIStatus_FR.sqf @@ -0,0 +1,60 @@ +/** + * fn_updateUIStatus_FR.sqf + * @Descr: Updates the UI icons for field rations, based on player stats. + * @Author: Glowbal + * + * @Arguments: [skipCheck BOOL (Whatever or not checks for display should be skipped. True will force display)] + * @Return: void + * @PublicAPI: true + */ + +#define DEFAULT_ALPHA_LEVEL 0.4 + +private ["_unit","_PlayerStatusUI","_ctrlPlayerStatusDrink", "_ctrlPlayerStatusFood", "_ctrlCamelBakStatus", "_alphaCamelBak", "_drinkStatus","_foodStatus","_camelbakStatus", "_greenCamelBak", "_greenDrink", "_greenFood", "_yellowFood","_yellowDrink","_yellowCamelBak", "_redFood", "_redDrink", "_redCamelBak"]; + +_skipChecks = [_this, 0, false, [false]] call BIS_fnc_Param; + +if !(hasInterface) exitwith {}; +_unit = player; +disableSerialization; +_PlayerStatusUI = uiNamespace getVariable "CSE_sys_field_rations_PlayerStatusUI"; +if (!isnil "_PlayerStatusUI") then { + _ctrlPlayerStatusDrink = _PlayerStatusUI displayCtrl 11113; + _ctrlPlayerStatusFood = _PlayerStatusUI displayCtrl 11112; + _ctrlCamelBakStatus = _PlayerStatusUI displayCtrl 11114; + + _drinkStatus = _unit getvariable ["cse_drink_status_fr", 100]; + _foodStatus = _unit getvariable ["cse_food_status_fr", 100]; + _camelbakStatus = _unit getvariable ["cse_camelbak_status_fr", 0]; + + if (CSE_SHOW_UI_ICONS_FR || CSE_SHOW_UI_ICONS_ONACTION_FR || CSE_SHOW_UI_ICONS_SETTING_FR || ((_drinkStatus < 30) || (_foodStatus < 30))) then { + _alphaCamelBak = 0; + if ([_unit] call cse_fnc_hasCamelbak_FR) then { + _alphaCamelBak = DEFAULT_ALPHA_LEVEL; + }; + + _greenCamelBak = _camelbakStatus/100; + _redCamelBak = 1.0 - _greenCamelBak; + _yellowCamelBak = 0; + _ctrlCamelBakStatus ctrlSetTextColor [_redCamelBak,_greenCamelBak,_yellowCamelBak, _alphaCamelBak]; + + _greenFood = _foodStatus/100; + _redFood = 1.0 - _greenFood; + _yellowFood = 0; + _ctrlPlayerStatusFood ctrlSetTextColor [_redFood,_greenFood,_yellowFood, DEFAULT_ALPHA_LEVEL]; + + _greenDrink = _drinkStatus/100; + _redDrink = 1.0 - _greenDrink; + _yellowDrink = 0; + _ctrlPlayerStatusDrink ctrlSetTextColor [_redDrink,_greenDrink,_yellowDrink, DEFAULT_ALPHA_LEVEL]; + } else { + _ctrlCamelBakStatus ctrlSetTextColor [0, 0, 0, 0]; + _ctrlPlayerStatusFood ctrlSetTextColor [0, 0, 0, 0]; + _ctrlPlayerStatusDrink ctrlSetTextColor [0, 0, 0, 0]; + }; + if (!_skipChecks) then { + if (CSE_SHOW_UI_ICONS_ONACTION_FR) then { + CSE_SHOW_UI_ICONS_ONACTION_FR = false; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/gui/define.h b/TO_MERGE/cse/sys_field_rations/gui/define.h new file mode 100644 index 0000000000..c521de470f --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/gui/define.h @@ -0,0 +1,797 @@ + +#ifndef CSE_DEFINE_H +#define CSE_DEFINE_H +// define.hpp + +#define true 1 +#define false 0 + +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_SLIDER 3 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_SHORTCUTBUTTON 16 +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_ANIMATED_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define CT_LISTNBOX 102 + +// Static styles +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0c + +#define ST_TYPE 0xF0 +#define ST_SINGLE 0 +#define ST_MULTI 16 +#define ST_TITLE_BAR 32 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX 96 +#define ST_GROUP_BOX2 112 +#define ST_HUD_BACKGROUND 128 +#define ST_TILE_PICTURE 144 +#define ST_WITH_RECT 160 +#define ST_LINE 176 + +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 // this style works for CT_STATIC in conjunction with ST_MULTI +#define ST_KEEP_ASPECT_RATIO 0x800 + +#define ST_TITLE ST_TITLE_BAR + ST_CENTER + +// Slider styles +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 + +#define SL_TEXTURES 0x10 + +// Listbox styles +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 +#define FontCSE "PuristaMedium" + +class cse_gui_backgroundBase { + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + colorBackground[] = {0,0,0,0}; + colorText[] = {1, 1, 1, 1}; + font = FontCSE; + text = ""; + sizeEx = 0.032; +}; +class cse_gui_editBase +{ + access = 0; + type = 2; + x = 0; + y = 0; + h = 0.04; + w = 0.2; + colorBackground[] = + { + 0, + 0, + 0, + 1 + }; + colorText[] = + { + 0.95, + 0.95, + 0.95, + 1 + }; + colorSelection[] = + { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", + 1 + }; + autocomplete = ""; + text = ""; + size = 0.2; + style = "0x00 + 0x40"; + font = "PuristaMedium"; + shadow = 2; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorDisabled[] = + { + 1, + 1, + 1, + 0.25 + }; +}; + + + +class cse_gui_buttonBase { + idc = -1; + type = 16; + style = ST_LEFT; + text = ""; + action = ""; + x = 0.0; + y = 0.0; + w = 0.25; + h = 0.04; + size = 0.03921; + sizeEx = 0.03921; + color[] = {1.0, 1.0, 1.0, 1}; + color2[] = {1.0, 1.0, 1.0, 1}; + /*colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.5])"}; + colorbackground2[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.4}; + colorDisabled[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.25}; + colorFocused[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])", 0.8}; + colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.8}; + */ + + colorBackground[] = {1,1,1,0.95}; + colorbackground2[] = {1,1,1,0.95}; + colorDisabled[] = {1,1,1,0.6}; + colorFocused[] = {1,1,1,1}; + colorBackgroundFocused[] = {1,1,1,1}; + periodFocus = 1.2; + periodOver = 0.8; + default = false; + class HitZone { + left = 0.00; + top = 0.00; + right = 0.00; + bottom = 0.00; + }; + + class ShortcutPos { + left = 0.00; + top = 0.00; + w = 0.00; + h = 0.00; + }; + + class TextPos { + left = 0.002; + top = 0.0004; + right = 0.0; + bottom = 0.00; + }; + textureNoShortcut = ""; + animTextureNormal = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTextureDisabled = "cse\cse_gui\data\buttonDisabled_gradient.paa"; + animTextureOver = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTextureFocused = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTexturePressed = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTextureDefault = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + period = 0.5; + font = FontCSE; + soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.0,0}; + soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.07,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1}; + class Attributes { + font = FontCSE; + color = "#E5E5E5"; + align = "center"; + shadow = "true"; + }; + class AttributesImage { + font = FontCSE; + color = "#E5E5E5"; + align = "left"; + shadow = "true"; + }; +}; + +class cse_gui_RscProgress { + type = 8; + style = 0; + colorFrame[] = {1,1,1,0.7}; + colorBar[] = {1,1,1,0.7}; + texture = "#(argb,8,8,3)color(1,1,1,0.7)"; + x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "0.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; +}; + + +class cse_gui_staticBase { + idc = -1; + type = CT_STATIC; + x = 0.0; + y = 0.0; + w = 0.183825; + h = 0.104575; + style = ST_LEFT; + font = FontCSE; + sizeEx = 0.03921; + colorText[] = {0.95, 0.95, 0.95, 1.0}; + colorBackground[] = {0, 0, 0, 0}; + text = ""; +}; + +class RscListBox; +class cse_gui_listBoxBase : RscListBox{ + type = CT_LISTBOX; + style = ST_MULTI; + font = FontCSE; + sizeEx = 0.03921; + color[] = {1, 1, 1, 1}; + colorText[] = {0.543, 0.5742, 0.4102, 1.0}; + colorScrollbar[] = {0.95, 0.95, 0.95, 1}; + colorSelect[] = {0.95, 0.95, 0.95, 1}; + colorSelect2[] = {0.95, 0.95, 0.95, 1}; + colorSelectBackground[] = {0, 0, 0, 1}; + colorSelectBackground2[] = {0.543, 0.5742, 0.4102, 1.0}; + colorDisabled[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.25}; + period = 1.2; + rowHeight = 0.03; + colorBackground[] = {0, 0, 0, 1}; + maxHistoryDelay = 1.0; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + soundSelect[] = {"",0.1,1}; + soundExpand[] = {"",0.1,1}; + soundCollapse[] = {"",0.1,1}; + class ListScrollBar { + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + autoScrollDelay = 5; + autoScrollEnabled = 0; + autoScrollRewind = 0; + autoScrollSpeed = -1; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + height = 0; + scrollSpeed = 0.06; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + width = 0; + }; + class ScrollBar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = ""; + arrowFull = ""; + arrowEmpty = ""; + border = ""; + }; +}; + + +class cse_gui_listNBox { + access = 0; + type = CT_LISTNBOX;// 102; + style =ST_MULTI; + w = 0.4; + h = 0.4; + font = FontCSE; + sizeEx = 0.031; + + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; + arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; + columns[] = {0.0}; + color[] = {1, 1, 1, 1}; + + rowHeight = 0.03; + colorBackground[] = {0, 0, 0, 0.2}; + colorText[] = {1,1, 1, 1.0}; + colorScrollbar[] = {0.95, 0.95, 0.95, 1}; + colorSelect[] = {0.95, 0.95, 0.95, 1}; + colorSelect2[] = {0.95, 0.95, 0.95, 1}; + colorSelectBackground[] = {0, 0, 0, 0.0}; + colorSelectBackground2[] = {0.0, 0.0, 0.0, 0.5}; + colorActive[] = {0,0,0,1}; + colorDisabled[] = {0,0,0,0.3}; + rows = 1; + + drawSideArrows = 0; + idcLeft = -1; + idcRight = -1; + maxHistoryDelay = 1; + soundSelect[] = {"", 0.1, 1}; + period = 1; + shadow = 2; + class ScrollBar { + arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; + arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; + border = "#(argb,8,8,3)color(1,1,1,1)"; + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "#(argb,8,8,3)color(1,1,1,1)"; + }; + class ListScrollBar { + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + autoScrollDelay = 5; + autoScrollEnabled = 0; + autoScrollRewind = 0; + autoScrollSpeed = -1; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + height = 0; + scrollSpeed = 0.06; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + width = 0; + }; +}; + + +class RscCombo; +class cse_gui_comboBoxBase: RscCombo { + idc = -1; + type = 4; + style = "0x10 + 0x200"; + x = 0; + y = 0; + w = 0.3; + h = 0.035; + color[] = {0,0,0,0.6}; + colorActive[] = {1,0,0,1}; + colorBackground[] = {0,0,0,1}; + colorDisabled[] = {1,1,1,0.25}; + colorScrollbar[] = {1,0,0,1}; + colorSelect[] = {0,0,0,1}; + colorSelectBackground[] = {1,1,1,0.7}; + colorText[] = {1,1,1,1}; + + arrowEmpty = ""; + arrowFull = ""; + wholeHeight = 0.45; + font = FontCSE; + sizeEx = 0.031; + soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1}; + soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1}; + soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1}; + maxHistoryDelay = 1.0; + class ScrollBar + { + color[] = {0.3,0.3,0.3,0.6}; + colorActive[] = {0.3,0.3,0.3,1}; + colorDisabled[] = {0.3,0.3,0.3,0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + border = ""; + }; + class ComboScrollBar { + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + autoScrollDelay = 5; + autoScrollEnabled = 0; + autoScrollRewind = 0; + autoScrollSpeed = -1; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + color[] = {0.3,0.3,0.3,0.6}; + colorActive[] = {0.3,0.3,0.3,1}; + colorDisabled[] = {0.3,0.3,0.3,0.3}; + height = 0; + scrollSpeed = 0.06; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + width = 0; + }; +}; + + + +class cse_gui_mapBase { + moveOnEdges = 1; + x = "SafeZoneXAbs"; + y = "SafeZoneY + 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "SafeZoneWAbs"; + h = "SafeZoneH - 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + type = 100; // Use 100 to hide markers + style = 48; + shadow = 0; + + ptsPerSquareSea = 5; + ptsPerSquareTxt = 3; + ptsPerSquareCLn = 10; + ptsPerSquareExp = 10; + ptsPerSquareCost = 10; + ptsPerSquareFor = 9; + ptsPerSquareForEdge = 9; + ptsPerSquareRoad = 6; + ptsPerSquareObj = 9; + showCountourInterval = 0; + scaleMin = 0.001; + scaleMax = 1.0; + scaleDefault = 0.16; + maxSatelliteAlpha = 0.85; + alphaFadeStartScale = 0.35; + alphaFadeEndScale = 0.4; + colorBackground[] = {0.969,0.957,0.949,1.0}; + colorSea[] = {0.467,0.631,0.851,0.5}; + colorForest[] = {0.624,0.78,0.388,0.5}; + colorForestBorder[] = {0.0,0.0,0.0,0.0}; + colorRocks[] = {0.0,0.0,0.0,0.3}; + colorRocksBorder[] = {0.0,0.0,0.0,0.0}; + colorLevels[] = {0.286,0.177,0.094,0.5}; + colorMainCountlines[] = {0.572,0.354,0.188,0.5}; + colorCountlines[] = {0.572,0.354,0.188,0.25}; + colorMainCountlinesWater[] = {0.491,0.577,0.702,0.6}; + colorCountlinesWater[] = {0.491,0.577,0.702,0.3}; + colorPowerLines[] = {0.1,0.1,0.1,1.0}; + colorRailWay[] = {0.8,0.2,0.0,1.0}; + colorNames[] = {0.1,0.1,0.1,0.9}; + colorInactive[] = {1.0,1.0,1.0,0.5}; + colorOutside[] = {0.0,0.0,0.0,1.0}; + colorTracks[] = {0.84,0.76,0.65,0.15}; + colorTracksFill[] = {0.84,0.76,0.65,1.0}; + colorRoads[] = {0.7,0.7,0.7,1.0}; + colorRoadsFill[] = {1.0,1.0,1.0,1.0}; + colorMainRoads[] = {0.9,0.5,0.3,1.0}; + colorMainRoadsFill[] = {1.0,0.6,0.4,1.0}; + colorGrid[] = {0.1,0.1,0.1,0.6}; + colorGridMap[] = {0.1,0.1,0.1,0.6}; + colorText[] = {1, 1, 1, 0.85}; +font = "PuristaMedium"; +sizeEx = 0.0270000; +stickX[] = {0.20, {"Gamma", 1.00, 1.50} }; +stickY[] = {0.20, {"Gamma", 1.00, 1.50} }; +onMouseButtonClick = ""; +onMouseButtonDblClick = ""; + + fontLabel = "PuristaMedium"; + sizeExLabel = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; + fontGrid = "TahomaB"; + sizeExGrid = 0.02; + fontUnits = "TahomaB"; + sizeExUnits = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; + fontNames = "PuristaMedium"; + sizeExNames = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8) * 2"; + fontInfo = "PuristaMedium"; + sizeExInfo = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; + fontLevel = "TahomaB"; + sizeExLevel = 0.02; + text = "#(argb,8,8,3)color(1,1,1,1)"; + class ActiveMarker { + color[] = {0.30, 0.10, 0.90, 1.00}; + size = 50; + }; + class Legend + { + x = "SafeZoneX + ( ((safezoneW / safezoneH) min 1.2) / 40)"; + y = "SafeZoneY + safezoneH - 4.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; + colorBackground[] = {1,1,1,0.5}; + color[] = {0,0,0,1}; + }; + class Task + { + icon = "\A3\ui_f\data\map\mapcontrol\taskIcon_CA.paa"; + iconCreated = "\A3\ui_f\data\map\mapcontrol\taskIconCreated_CA.paa"; + iconCanceled = "\A3\ui_f\data\map\mapcontrol\taskIconCanceled_CA.paa"; + iconDone = "\A3\ui_f\data\map\mapcontrol\taskIconDone_CA.paa"; + iconFailed = "\A3\ui_f\data\map\mapcontrol\taskIconFailed_CA.paa"; + color[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])"}; + colorCreated[] = {1,1,1,1}; + colorCanceled[] = {0.7,0.7,0.7,1}; + colorDone[] = {0.7,1,0.3,1}; + colorFailed[] = {1,0.3,0.2,1}; + size = 27; + importance = 1; + coefMin = 1; + coefMax = 1; + }; + class Waypoint + { + icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; + color[] = {0,0,0,1}; + size = 20; + importance = "1.2 * 16 * 0.05"; + coefMin = 0.900000; + coefMax = 4; + }; + class WaypointCompleted + { + icon = "\A3\ui_f\data\map\mapcontrol\waypointCompleted_ca.paa"; + color[] = {0,0,0,1}; + size = 20; + importance = "1.2 * 16 * 0.05"; + coefMin = 0.900000; + coefMax = 4; + }; + class CustomMark + { + icon = "\A3\ui_f\data\map\mapcontrol\custommark_ca.paa"; + size = 24; + importance = 1; + coefMin = 1; + coefMax = 1; + color[] = {0,0,0,1}; + }; + class Command + { + icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; + size = 18; + importance = 1; + coefMin = 1; + coefMax = 1; + color[] = {1,1,1,1}; + }; + class Bush + { + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + color[] = {0.45,0.64,0.33,0.4}; + size = "14/2"; + importance = "0.2 * 14 * 0.05 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Rock + { + icon = "\A3\ui_f\data\map\mapcontrol\rock_ca.paa"; + color[] = {0.1,0.1,0.1,0.8}; + size = 12; + importance = "0.5 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class SmallTree + { + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + color[] = {0.45,0.64,0.33,0.4}; + size = 12; + importance = "0.6 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Tree + { + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + color[] = {0.45,0.64,0.33,0.4}; + size = 12; + importance = "0.9 * 16 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class busstop + { + icon = "\A3\ui_f\data\map\mapcontrol\busstop_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class fuelstation + { + icon = "\A3\ui_f\data\map\mapcontrol\fuelstation_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class hospital + { + icon = "\A3\ui_f\data\map\mapcontrol\hospital_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class church + { + icon = "\A3\ui_f\data\map\mapcontrol\church_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class lighthouse + { + icon = "\A3\ui_f\data\map\mapcontrol\lighthouse_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class power + { + icon = "\A3\ui_f\data\map\mapcontrol\power_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class powersolar + { + icon = "\A3\ui_f\data\map\mapcontrol\powersolar_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class powerwave + { + icon = "\A3\ui_f\data\map\mapcontrol\powerwave_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class powerwind + { + icon = "\A3\ui_f\data\map\mapcontrol\powerwind_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class quay + { + icon = "\A3\ui_f\data\map\mapcontrol\quay_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class shipwreck + { + icon = "\A3\ui_f\data\map\mapcontrol\shipwreck_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class transmitter + { + icon = "\A3\ui_f\data\map\mapcontrol\transmitter_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class watertower + { + icon = "\A3\ui_f\data\map\mapcontrol\watertower_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class Cross + { + icon = "\A3\ui_f\data\map\mapcontrol\Cross_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {0,0,0,1}; + }; + class Chapel + { + icon = "\A3\ui_f\data\map\mapcontrol\Chapel_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {0,0,0,1}; + }; + class Bunker + { + icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; + size = 14; + importance = "1.5 * 14 * 0.05"; + coefMin = 0.25; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class Fortress + { + icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; + size = 16; + importance = "2 * 16 * 0.05"; + coefMin = 0.25; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class Fountain + { + icon = "\A3\ui_f\data\map\mapcontrol\fountain_ca.paa"; + size = 11; + importance = "1 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class Ruin + { + icon = "\A3\ui_f\data\map\mapcontrol\ruin_ca.paa"; + size = 16; + importance = "1.2 * 16 * 0.05"; + coefMin = 1; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class Stack + { + icon = "\A3\ui_f\data\map\mapcontrol\stack_ca.paa"; + size = 20; + importance = "2 * 16 * 0.05"; + coefMin = 0.9; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class Tourism + { + icon = "\A3\ui_f\data\map\mapcontrol\tourism_ca.paa"; + size = 16; + importance = "1 * 16 * 0.05"; + coefMin = 0.7; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class ViewTower + { + icon = "\A3\ui_f\data\map\mapcontrol\viewtower_ca.paa"; + size = 16; + importance = "2.5 * 16 * 0.05"; + coefMin = 0.5; + coefMax = 4; + color[] = {0,0,0,1}; + }; +}; + +#endif \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/gui/dialog_menu.h b/TO_MERGE/cse/sys_field_rations/gui/dialog_menu.h new file mode 100644 index 0000000000..6db9dc28e3 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/gui/dialog_menu.h @@ -0,0 +1,172 @@ +class cse_dialog_menu_frm { + idd = 54328; + movingEnable = false; + onLoad = "uiNamespace setVariable ['cse_dialog_menu_frm', _this select 0];"; + onUnload = "uiNamespace setVariable ['cse_dialog_menu_frm', nil];"; + class controlsBackground { + class HeaderBackground: cse_gui_backgroundBase{ + idc = -1; + type = CT_STATIC; + x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + style = ST_LEFT + ST_SHADOW; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {0.95, 0.95, 0.95, 0.75}; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"}; + text = ""; + }; + class CenterBackground: HeaderBackground { + y = "2.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + h = "2.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + text = ""; + colorText[] = {0, 0, 0, "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"}; + colorBackground[] = {0,0,0,"(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"}; + }; + class LeftBackground: CenterBackground { + y = "4.8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + h = "12.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "25 * (((safezoneW / safezoneH) min 1.2) / 40)"; + }; + class RightBackground: LeftBackground { + x = "26.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + w = "12.9 * (((safezoneW / safezoneH) min 1.2) / 40)"; + }; + }; + + class controls { + class HeaderName { + idc = 1; + type = CT_STATIC; + x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + style = ST_LEFT + ST_SHADOW; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {0.95, 0.95, 0.95, 0.75}; + colorBackground[] = {0,0,0,0}; + text = "Dialog with Person"; + }; + + class labelShow : cse_gui_staticBase { + idc = 12; + x = "2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "2.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "30 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + text = "Name:"; + }; + class labelShow2: cse_gui_staticBase { + idc = 13; + x = "2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "3.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "30 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + text = "State:"; + }; + + class actionClose : cse_gui_buttonBase { + idc = 10; + text = "Close"; + x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "6 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.8)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.5)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)"; + color[] = {1, 1, 1, 1}; + color2[] = {0,0,0, 1}; + colorBackgroundFocused[] = {1,1,1,1}; + colorBackground[] = {1,1,1,1}; + colorbackground2[] = {1,1,1,1}; + colorDisabled[] = {0.5,0.5,0.5,0.8}; + colorFocused[] = {0,0,0,1}; + periodFocus = 1; + periodOver = 1; + action = "closedialog 0;"; + }; + + class listboxConversationOverView: cse_gui_listNBox { + idc = 200; + x = "2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "5.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "23 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.7)"; + colorBackground[] = {0, 0, 0, 0.9}; + colorSelectBackground[] = {0, 0, 0, 0.9}; + columns[] = {0.0, 0.25}; + }; + + class labelTitle: cse_gui_staticBase { + idc = 250; + x = "27.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "5.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "10 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + text = "Conversation Selection"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + }; + + + class actionListBox1: cse_gui_listBoxBase { + idc = 400; + x = "27.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "7.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "11 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + colorBackground[] = {0,0,0, 0.9}; + colorSelectBackground[] = {0,0,0, 0.9}; + colorSelectBackground2[] = { 0.9, 0.9, 0.9, 0.9}; + color[] = {1, 1, 1, 1}; + colorText[] = {1, 1, 1, 1}; + colorSelect[] = {1, 1, 1, 1}; + colorSelect2[] = {0,0,0, 1}; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.75)"; + rowHeight = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.75)"; + }; + + class labelKey: cse_gui_staticBase { + idc = 300; + x = "27.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "6.2 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "10 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + text = ""; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + }; + + + class actionPerformAction: actionClose { + idc = 30; + text = "Say selected line type"; + x = "27.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "11 * (((safezoneW / safezoneH) min 1.2) / 40)"; + action = "[CSE_AIM_DIALOG_INTERACTION_TARGET_AIM, player] call cse_fnc_playerSpeaksLine_AIM; "; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)"; + color[] = {0,0,0, 1}; + color2[] = {0,0,0, 1}; + colorBackgroundFocused[] = {1,1,1,1}; + colorBackground[] = {1,1,1,1}; + colorbackground2[] = {1,1,1,1}; + colorDisabled[] = {0.5,0.5,0.5,0.8}; + colorFocused[] = {0,0,0,1}; + }; + + + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/gui/player_hud.h b/TO_MERGE/cse/sys_field_rations/gui/player_hud.h new file mode 100644 index 0000000000..76fd93508d --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/gui/player_hud.h @@ -0,0 +1,48 @@ + +#define RIGHT_SIDE (safezoneW + safezoneX) +#define LEFT_SIDE safezoneX +#define TOP_SIDE safeZoneY +#define BOTTOM_SIDE (safeZoneH + safezoneY) + +#define ICON_WIDTH (1.75 * (((safezoneW / safezoneH) min 1.2) / 40)) +#define X_POS_ICONS RIGHT_SIDE - (1.1 * ICON_WIDTH) +#define Y_POS_ICONS BOTTOM_SIDE - (0.1 * ICON_WIDTH) +#define DIFFERENCE_ICONS (1.1 * ICON_WIDTH) + +class RscTitles { + class CSE_sys_field_rations_PlayerStatusUI { + duration = 1e+011; + idd = 1111; + movingenable = 0; + onLoad = "uiNamespace setVariable ['CSE_sys_field_rations_PlayerStatusUI', _this select 0];"; + class controlsBackground { + class FoodStatus: cse_gui_backgroundBase { + text = "cse\cse_sys_field_rations\data\hud_foodstatus.paa"; + colorText[] = {0.0,1.0,0.0,0.4}; + idc = 11112; + x = X_POS_ICONS; + y = Y_POS_ICONS; + w = ICON_WIDTH; + h = ICON_WIDTH; + }; + class drinkStatus: cse_gui_backgroundBase { + text = "cse\cse_sys_field_rations\data\icons\icon_drinking.paa"; + colorText[] = {0.0,1.0,0.0,0.4}; + idc = 11113; + x = X_POS_ICONS; + y = Y_POS_ICONS - DIFFERENCE_ICONS; + w = ICON_WIDTH; + h = ICON_WIDTH; + }; + /* class CamelBak: cse_gui_backgroundBase { + text = "cse\cse_sys_field_rations\data\hud_camelbak.paa"; + colorText[] = {0.0,1.0,0.0,0}; + idc = 11114; + x = "0.955313 * safezoneW + safezoneX"; + y = "0.80 * safezoneH + safezoneY"; + w = 0.05; + h = 0.09; + };*/ + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/hud.hpp b/TO_MERGE/cse/sys_field_rations/hud.hpp new file mode 100644 index 0000000000..d9ceda8332 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/hud.hpp @@ -0,0 +1,36 @@ +// CSE FRM HUD +// by Glowbal + +class RscTitles{ + class RscCSEPlayerStatus { + duration = 10000000000; + idd = 1111; + movingenable = 0; + onLoad = "uiNamespace setVariable ['CSEFRMStatusUI', _this select 0];"; + + class controlsBackground { + class cse_FoodStatus: cse_backgroundBase { + text = "cse\cse_sys_field_rations\data\hud_foodstatus2.paa"; + colorText[] = {0.0, 1.0, 0.0, 0.9}; + idc = 11112; + x = "0.955313 * safezoneW + safezoneX"; + y = "0.90 * safezoneH + safezoneY"; + w = "0.04 * safezoneW"; + h = "0.05 * safezoneH"; + }; + + class cse_drinkStatus: cse_FoodStatus { + text = "cse\cse_sys_field_rations\data\hud_drinkstatus2.paa"; + idc = 11113; + y = "0.85 * safezoneH + safezoneY"; + + }; + + class cse_CamelBak: cse_FoodStatus { + text = "cse\cse_sys_field_rations\data\hud_camelbak.paa"; + idc = 11114; + y = "0.80 * safezoneH + safezoneY"; + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/init_sys_field_rations.sqf b/TO_MERGE/cse/sys_field_rations/init_sys_field_rations.sqf new file mode 100644 index 0000000000..cece0f7706 --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/init_sys_field_rations.sqf @@ -0,0 +1,156 @@ +/** + * init_sys_field_rations.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + + +/* + 24 hours: + - 86400 seconds total + + Run every 10 seconds so: + - 8640 iterations in 24 hours + + If we want to lower the decent rate from 100% to 0 in 24 hours: + 100% / 8640 = 0.011574% per iteration. + + To increase it, decrease the modifier. + To decease it, increase the modifier. +*/ +#define DEFAULT_DECENT_RATE 0.011574 + +private ["_args", "_entries"]; +CSE_DESCENT_RATE_WATER_FR = DEFAULT_DECENT_RATE; +CSE_DESCENT_RATE_FOOD_FR = DEFAULT_DECENT_RATE; +CSE_SHOW_UI_ICONS_FR = false; +CSE_SHOW_UI_ICONS_ONACTION_FR = false; +CSE_SHOW_UI_ICONS_SETTING_FR = true; + +["cse_drink_status_fr",100,false,"frm", false] call cse_fnc_defineVariable; +["cse_food_status_fr",100,false,"frm", false] call cse_fnc_defineVariable; + +if (!hasInterface) exitwith {}; // only want to run this on clients + +_args = _this; +{ + if (_x select 0 == "timeWithoutWater") then { + CSE_DESCENT_RATE_WATER_FR = DEFAULT_DECENT_RATE * (_X select 1); + }; + if (_x select 0 == "timeWithoutFood") then { + CSE_DESCENT_RATE_FOOD_FR = DEFAULT_DECENT_RATE * (_X select 1); + }; +}foreach _args; +waituntil{!isnil "cse_gui"}; +[format["FRM - Field Rations Module initialised"],2] call cse_fnc_debug; + +["itemAdd", ["cse_sys_field_rations_task_loop_CMS", { + if (alive player) then { + [player] call cse_fnc_updateFieldRations_FR; + }; +}, 10]] call BIS_fnc_loop; + +sleep 1; +101 cutRsc ["CSE_sys_field_rations_PlayerStatusUI","PLAIN"]; +[] call cse_fnc_updateUIStatus_FR; + +waituntil {!isnil "cse_gui"}; + +cse_displayEntries_Eat_FRM = { + private ["_subMenus", "_passedMags", "_magazines"]; + _subMenus = []; + _passedMags = []; + _magazines = items player; + { + if (!((_x) in _passedMags)) then { + _passedMags pushback _x; + if ([(_x)] call cse_fnc_itemIsEatable_FR) then { + _subMenus set [ count _subMenus, + call compile format['[getText(configFile >> "CfgWeapons" >> "%1" >> "displayName"),getText(configFile >> "CfgWeapons" >> "%1" >> "picture"), { + closeDialog 0; + [player,"%1",10] spawn cse_fnc_actionEat_FR; CSE_SHOW_UI_ICONS_ONACTION_FR = true; [true] call cse_fnc_updateUIStatus_FR; + }, true, "Eat " + getText(configFile >> "CfgWeapons" >> "%1" >> "displayName")]',(_x)] + ]; + }; + }; + }foreach _magazines; + [_subMenus] call cse_fnc_debug; + [ _this select 3, _subMenus, _this select 1, CSE_SELECTED_RADIAL_OPTION_N_GUI, true] call cse_fnc_openRadialSecondRing_GUI; + CSE_SHOW_UI_ICONS_ONACTION_FR = true; [true] call cse_fnc_updateUIStatus_FR; +}; + + +cse_displayEntries_Drink_FRM = { + private ["_subMenus", "_passedMags", "_magazines"]; + _subMenus = []; + _passedMags = []; + _magazines = items player; + { + if (!(_x in _passedMags)) then { + _passedMags pushback _x; + if ([_x] call cse_fnc_itemIsDrinkable_FR) then { + _subMenus set [ count _subMenus, + call compile format['[getText(configFile >> "CfgWeapons" >> "%1" >> "displayName"),getText(configFile >> "CfgWeapons" >> "%1" >> "picture"), { + closeDialog 0; + [player,"%1", 4.5] spawn cse_fnc_actionDrink_FR; CSE_SHOW_UI_ICONS_ONACTION_FR = true; [true] call cse_fnc_updateUIStatus_FR; + }, true, "Drink " + getText(configFile >> "CfgWeapons" >> "%1" >> "displayName")]',_x] + ]; + }; + }; + }foreach _magazines; + [ _this select 3, _subMenus, _this select 1, CSE_SELECTED_RADIAL_OPTION_N_GUI, true] call cse_fnc_openRadialSecondRing_GUI; + CSE_SHOW_UI_ICONS_ONACTION_FR = true; + [true] call cse_fnc_updateUIStatus_FR; +}; + +cse_displayEntries_Refill_FRM = { + private ["_subMenus", "_passedMags", "_magazines"]; + _subMenus = []; + _passedMags = []; + _magazines = items player; + { + if (!(_x in _passedMags)) then { + _passedMags pushback _x; + if ([_x] call cse_fnc_itemIsRefillable_FR) then { + _subMenus set [ count _subMenus, + call compile format['[getText(configFile >> "CfgWeapons" >> "%1" >> "displayName"),getText(configFile >> "CfgWeapons" >> "%1" >> "picture"), { + closeDialog 0; + [player,"%1",6] spawn cse_fnc_actionRefill_FR; CSE_SHOW_UI_ICONS_ONACTION_FR = true; [true] call cse_fnc_updateUIStatus_FR; + }, true, "Refill " + getText(configFile >> "CfgWeapons" >> "%1" >> "displayName")]',_x] + ]; + }; + }; + }foreach _magazines; + [_subMenus] call cse_fnc_debug; + [ _this select 3, _subMenus, _this select 1, CSE_SELECTED_RADIAL_OPTION_N_GUI, true] call cse_fnc_openRadialSecondRing_GUI; + CSE_SHOW_UI_ICONS_ONACTION_FR = true; + [true] call cse_fnc_updateUIStatus_FR; +}; + +_entries = [ + ["Eat", {(([player] call cse_fnc_canEat_FR) && ([player] call cse_fnc_hasEatableItem_FR))}, CSE_ICON_PATH + "icon_survival.paa", cse_displayEntries_Eat_FRM, "Show consume options"], + ["Drink", {(([player] call cse_fnc_canDrink_FR) && ([player] call cse_fnc_hasDrinkableItem_FR))}, "cse\cse_sys_field_rations\data\icons\icon_drinking.paa", cse_displayEntries_Drink_FRM, "Show drink options"], + ["Refill", {(([player, _this select 1] call cse_fnc_canRefill_FR) && ([player] call cse_fnc_hasRefillableItem_FR))}, "cse\cse_sys_field_rations\data\hud_drinkstatus.paa", cse_displayEntries_Refill_FRM, "Show refill actions"], + ["Camelbak", {(([player, _this select 1] call cse_fnc_canRefillCamelbak_FR) && ([player] call cse_fnc_hasCamelbak_FR))}, "cse\cse_sys_field_rations\data\hud_drinkstatus.paa", {[player,10] spawn cse_fnc_actionRefillCamelbak_FR;}, "Refill camelbak"] + ]; +["ActionMenu","survival", _entries ] call cse_fnc_addMultipleEntriesToRadialCategory_F; + + +// This is here for backwards compatability. This code will be removed in the near future. +_showError = false; +{ + _configEntry = (configFile >> "CfgMagazines" >> _x); + if([_configEntry, "cse_backwardsCompatMagazineBase_FR"] call cse_fnc_inheritsFrom) then { + player removeMagazine _x; + player addItem _x; + diag_log format["WARNING: Outdated Field Rations magazine classname %1 found. Please replace magazine by item variant. Future versions will not support this anymore.", _x]; + _showError = true; + }; +}foreach (magazines player); +if (_showError) then { + ["Outdated Field Rations Classnames have been found. Please replace magazine classname by item variant. Future versions will not support magazine variant"] call BIS_fnc_error; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/mre_human.p3d b/TO_MERGE/cse/sys_field_rations/mre_human.p3d new file mode 100644 index 0000000000..e4830bdda6 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/mre_human.p3d differ diff --git a/TO_MERGE/cse/sys_field_rations/mre_type1.p3d b/TO_MERGE/cse/sys_field_rations/mre_type1.p3d new file mode 100644 index 0000000000..17c5cf815b Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/mre_type1.p3d differ diff --git a/TO_MERGE/cse/sys_field_rations/mre_type2.p3d b/TO_MERGE/cse/sys_field_rations/mre_type2.p3d new file mode 100644 index 0000000000..b049bd2e10 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/mre_type2.p3d differ diff --git a/TO_MERGE/cse/sys_field_rations/mre_type3.p3d b/TO_MERGE/cse/sys_field_rations/mre_type3.p3d new file mode 100644 index 0000000000..f8123720bd Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/mre_type3.p3d differ diff --git a/TO_MERGE/cse/sys_field_rations/mre_type4.p3d b/TO_MERGE/cse/sys_field_rations/mre_type4.p3d new file mode 100644 index 0000000000..96c835eb76 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/mre_type4.p3d differ diff --git a/TO_MERGE/cse/sys_field_rations/mre_type5.p3d b/TO_MERGE/cse/sys_field_rations/mre_type5.p3d new file mode 100644 index 0000000000..1c0419c8e6 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/mre_type5.p3d differ diff --git a/TO_MERGE/cse/sys_field_rations/mre_type6.p3d b/TO_MERGE/cse/sys_field_rations/mre_type6.p3d new file mode 100644 index 0000000000..7b0619b685 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/mre_type6.p3d differ diff --git a/TO_MERGE/cse/sys_field_rations/sounds/drinkingSound.ogg b/TO_MERGE/cse/sys_field_rations/sounds/drinkingSound.ogg new file mode 100644 index 0000000000..7e048ed4f0 Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/sounds/drinkingSound.ogg differ diff --git a/TO_MERGE/cse/sys_field_rations/stringtable.xml b/TO_MERGE/cse/sys_field_rations/stringtable.xml new file mode 100644 index 0000000000..643a54ef7e --- /dev/null +++ b/TO_MERGE/cse/sys_field_rations/stringtable.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/TO_MERGE/cse/sys_field_rations/uk_bottle.p3d b/TO_MERGE/cse/sys_field_rations/uk_bottle.p3d new file mode 100644 index 0000000000..b561ebd6cc Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/uk_bottle.p3d differ diff --git a/TO_MERGE/cse/sys_field_rations/waterbottle.p3d b/TO_MERGE/cse/sys_field_rations/waterbottle.p3d new file mode 100644 index 0000000000..55a3a92bbe Binary files /dev/null and b/TO_MERGE/cse/sys_field_rations/waterbottle.p3d differ