From ff870a03caebe6b8d220d2d08f479013b2d1e390 Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Fri, 23 Aug 2024 09:47:28 -0500 Subject: [PATCH 01/15] cleanup: Remove maps from scriptfiles --- scriptfiles/maps/Aim_Headshot.ini | 23 -------------------- scriptfiles/maps/Aim_Headshot2.ini | 23 -------------------- scriptfiles/maps/Area51.ini | 29 ------------------------- scriptfiles/maps/Area66.ini | 23 -------------------- scriptfiles/maps/Compound.ini | 23 -------------------- scriptfiles/maps/CrackFactory.ini | 32 ---------------------------- scriptfiles/maps/DesertGlory.ini | 23 -------------------- scriptfiles/maps/GateToHell.ini | 29 ------------------------- scriptfiles/maps/RC_Battlefield.ini | 26 ---------------------- scriptfiles/maps/SA_Hill.ini | 23 -------------------- scriptfiles/maps/Simpson.ini | 23 -------------------- scriptfiles/maps/TheBunker.ini | 26 ---------------------- scriptfiles/maps/TheConstruction.ini | 26 ---------------------- scriptfiles/maps/TheWild.ini | 29 ------------------------- scriptfiles/maps/WarZone.ini | 29 ------------------------- scriptfiles/maps/ZM_Italy.ini | 23 -------------------- scriptfiles/maps/cs_assault.ini | 26 ---------------------- scriptfiles/maps/cs_deagle5.ini | 23 -------------------- scriptfiles/maps/cs_rockwar.ini | 29 ------------------------- scriptfiles/maps/de_aztec.ini | 29 ------------------------- scriptfiles/maps/de_dust2.ini | 23 -------------------- scriptfiles/maps/de_dust2_small.ini | 23 -------------------- scriptfiles/maps/de_dust2_x1.ini | 23 -------------------- scriptfiles/maps/de_dust2_x2.ini | 23 -------------------- scriptfiles/maps/de_dust2_x3.ini | 23 -------------------- scriptfiles/maps/de_dust5.ini | 23 -------------------- scriptfiles/maps/fy_iceworld.ini | 26 ---------------------- scriptfiles/maps/fy_iceworld2.ini | 29 ------------------------- scriptfiles/maps/fy_snow.ini | 23 -------------------- scriptfiles/maps/fy_snow2.ini | 23 -------------------- scriptfiles/maps/mp_island.ini | 23 -------------------- scriptfiles/maps/mp_jetdoor.ini | 26 ---------------------- scriptfiles/maps/zone_paintball.ini | 23 -------------------- 33 files changed, 828 deletions(-) delete mode 100644 scriptfiles/maps/Aim_Headshot.ini delete mode 100644 scriptfiles/maps/Aim_Headshot2.ini delete mode 100644 scriptfiles/maps/Area51.ini delete mode 100644 scriptfiles/maps/Area66.ini delete mode 100644 scriptfiles/maps/Compound.ini delete mode 100644 scriptfiles/maps/CrackFactory.ini delete mode 100644 scriptfiles/maps/DesertGlory.ini delete mode 100644 scriptfiles/maps/GateToHell.ini delete mode 100644 scriptfiles/maps/RC_Battlefield.ini delete mode 100644 scriptfiles/maps/SA_Hill.ini delete mode 100644 scriptfiles/maps/Simpson.ini delete mode 100644 scriptfiles/maps/TheBunker.ini delete mode 100644 scriptfiles/maps/TheConstruction.ini delete mode 100644 scriptfiles/maps/TheWild.ini delete mode 100644 scriptfiles/maps/WarZone.ini delete mode 100644 scriptfiles/maps/ZM_Italy.ini delete mode 100644 scriptfiles/maps/cs_assault.ini delete mode 100644 scriptfiles/maps/cs_deagle5.ini delete mode 100644 scriptfiles/maps/cs_rockwar.ini delete mode 100644 scriptfiles/maps/de_aztec.ini delete mode 100644 scriptfiles/maps/de_dust2.ini delete mode 100644 scriptfiles/maps/de_dust2_small.ini delete mode 100644 scriptfiles/maps/de_dust2_x1.ini delete mode 100644 scriptfiles/maps/de_dust2_x2.ini delete mode 100644 scriptfiles/maps/de_dust2_x3.ini delete mode 100644 scriptfiles/maps/de_dust5.ini delete mode 100644 scriptfiles/maps/fy_iceworld.ini delete mode 100644 scriptfiles/maps/fy_iceworld2.ini delete mode 100644 scriptfiles/maps/fy_snow.ini delete mode 100644 scriptfiles/maps/fy_snow2.ini delete mode 100644 scriptfiles/maps/mp_island.ini delete mode 100644 scriptfiles/maps/mp_jetdoor.ini delete mode 100644 scriptfiles/maps/zone_paintball.ini diff --git a/scriptfiles/maps/Aim_Headshot.ini b/scriptfiles/maps/Aim_Headshot.ini deleted file mode 100644 index 50f5ba3d..00000000 --- a/scriptfiles/maps/Aim_Headshot.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] --129.5612,81.0056,3.1172,156.7189 --127.6526,87.7695,3.1172,156.7189 --134.9525,90.2646,3.1172,167.0590 --138.4023,83.5352,3.1172,163.6123 --145.3216,85.1476,3.1172,163.6123 --152.4534,80.4830,3.1094,163.6123 --161.3326,83.2152,3.1094,167.3724 --159.6665,98.1220,3.1121,165.8291 --173.8980,102.8791,3.1668,162.3824 --186.4793,93.0401,3.1172,162.3824 - -[Beta] --277.0338,-85.0175,2.8617,345.0341 --277.7510,-90.4126,2.7030,345.0341 --270.0297,-92.0674,3.0969,345.0341 --263.8904,-93.2464,3.1172,345.0341 --262.2849,-87.2403,3.1172,345.0341 --255.3565,-84.1217,3.1172,345.0341 --245.9794,-86.1564,3.1172,345.0341 --247.4499,-99.9677,3.1172,345.0341 --235.9863,-102.5671,3.1094,345.3474 --220.4884,-110.9102,3.1172,352.5542 \ No newline at end of file diff --git a/scriptfiles/maps/Aim_Headshot2.ini b/scriptfiles/maps/Aim_Headshot2.ini deleted file mode 100644 index b0665df2..00000000 --- a/scriptfiles/maps/Aim_Headshot2.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -3135.0095,-1951.7092,29.7594,177.3993 -3127.7036,-1951.8118,29.7750,177.7126 -3118.8323,-1951.8817,29.7948,177.7126 -3110.2168,-1951.4366,29.8226,177.7126 -3100.7705,-1951.4370,29.8450,177.7126 -3101.8120,-1970.7468,23.6870,191.1861 -3107.7581,-1970.7133,23.7226,183.6661 -3113.6248,-1970.7870,23.7581,183.6661 -3120.4753,-1970.9171,23.7996,178.9660 -3128.0989,-1970.3503,23.8438,176.7727 - -[Beta] -3096.4604,-2066.2092,30.0486,3.2076 -3103.0786,-2066.8262,30.0666,0.3876 -3110.2588,-2066.4280,30.0513,0.3876 -3116.1079,-2066.4033,30.0142,0.3876 -3127.3621,-2065.5085,29.9360,0.3876 -3099.8252,-2049.5215,23.8662,0.0742 -3105.6738,-2048.9641,23.9004,1.0142 -3111.9612,-2048.4937,23.9368,1.0142 -3118.2915,-2048.0261,23.9733,1.0142 -3126.2610,-2047.4581,24.0193,1.0142 \ No newline at end of file diff --git a/scriptfiles/maps/Area51.ini b/scriptfiles/maps/Area51.ini deleted file mode 100644 index 5ef950d4..00000000 --- a/scriptfiles/maps/Area51.ini +++ /dev/null @@ -1,29 +0,0 @@ -[Alpha] -274.1718,1889.3787,7.9736,178.8448 -270.8778,1889.0217,7.9736,178.8448 -266.1731,1889.7405,7.9736,176.6514 -262.4897,1889.0963,7.9736,176.6514 -262.6836,1886.2330,7.9736,181.3515 -267.9928,1885.6332,7.9736,181.3515 -273.9212,1885.3027,7.9736,181.3515 -274.1799,1880.8765,7.9736,183.5449 -266.7765,1880.0331,7.9736,183.5449 -262.5721,1879.3914,7.9736,183.5449 - -[Beta] -203.7018,1860.7205,13.1406,267.4956 -204.3426,1866.1722,13.1406,267.4956 -204.9689,1871.4957,13.1406,267.4956 -210.0249,1872.7759,13.1406,267.4956 -210.5978,1867.3236,13.1406,267.4956 -210.5721,1859.0951,13.1406,266.8689 -218.1441,1855.8999,12.9948,266.8689 -219.0185,1864.7566,13.1406,266.8689 -219.7373,1870.1967,13.1406,266.8689 -224.5002,1867.4492,13.1406,359.2797 - -[Weather] -8 - -[WorldTime] -5 \ No newline at end of file diff --git a/scriptfiles/maps/Area66.ini b/scriptfiles/maps/Area66.ini deleted file mode 100644 index 06d4e21d..00000000 --- a/scriptfiles/maps/Area66.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -2158.0247,-3855.2444,8.5145,310.5162 -2152.9380,-3847.7720,8.5145,303.9362 -2147.6165,-3840.1572,8.5145,305.5029 -2152.8533,-3836.1064,8.5145,308.0095 -2159.3586,-3831.1907,8.5145,305.1895 -2166.3206,-3836.9807,8.5145,301.1161 -2172.3928,-3844.8879,8.5145,327.4364 -2187.9810,-3853.9734,8.5145,352.1900 -2153.7380,-3813.1829,8.5145,260.6958 -2160.3462,-3841.5781,9.5840,294.5361 - -[Beta] -2318.9922,-3419.0669,8.5145,142.9281 -2324.1377,-3424.8850,8.5145,131.3346 -2331.7302,-3432.8535,8.5145,128.5146 -2327.5012,-3438.4927,8.5145,131.9613 -2320.8267,-3443.0859,8.5145,125.3812 -2314.2546,-3437.4436,8.5145,132.2746 -2306.4429,-3431.0190,8.5145,154.5215 -2289.7561,-3428.6301,8.5145,203.0887 -2324.0210,-3461.7532,8.5145,76.1874 -2319.0933,-3432.0413,9.5763,126.3212 \ No newline at end of file diff --git a/scriptfiles/maps/Compound.ini b/scriptfiles/maps/Compound.ini deleted file mode 100644 index 658ff5f2..00000000 --- a/scriptfiles/maps/Compound.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -2030.2408,255.3289,248.8178,90.9183 -2029.6740,263.0668,248.8178,90.9183 -2029.1130,275.3492,248.8178,91.2316 -2027.6245,286.4270,248.8178,115.6719 -2015.7562,286.3731,248.8178,89.0383 -2015.6172,277.2291,248.8178,90.2916 -2016.7008,267.0775,248.8178,85.5916 -2015.3552,254.2865,248.8178,85.5916 -2007.5742,254.4396,248.8178,343.4439 -2030.3656,299.2522,248.8178,175.8090 - -[Beta] -1863.5652,313.3448,248.8178,272.5831 -1863.5531,320.3714,248.8178,275.4031 -1864.1598,331.1123,248.8178,261.6164 -1873.3802,333.3292,248.8178,271.0165 -1873.2858,323.5585,248.8178,267.2564 -1883.6218,331.5376,248.8178,268.5098 -1896.1394,332.4847,248.8178,92.4148 -1893.3344,320.6938,248.8178,90.5348 -1871.9673,347.0481,248.8178,266.2931 -1874.9197,338.9482,248.8178,282.8999 \ No newline at end of file diff --git a/scriptfiles/maps/CrackFactory.ini b/scriptfiles/maps/CrackFactory.ini deleted file mode 100644 index 31b697a8..00000000 --- a/scriptfiles/maps/CrackFactory.ini +++ /dev/null @@ -1,32 +0,0 @@ -[Alpha] -2548.7009,-1283.2224,1060.9844,230.3022 -2565.8301,-1281.7773,1065.3672,238.1356 -2575.7759,-1283.3206,1065.3672,177.9750 -2580.8525,-1284.6443,1065.3579,88.0476 -2568.5518,-1283.6564,1060.9844,181.0851 -2565.0220,-1290.9614,1060.9844,224.6389 -2565.4963,-1301.7297,1060.9844,275.0860 -2558.1384,-1304.1283,1060.9844,272.2661 -2558.3372,-1298.2233,1060.9844,272.2661 -2558.2466,-1293.2781,1062.0391,260.6727 - -[Beta] -2532.1660,-1283.6971,1031.4219,270.0725 -2532.5823,-1292.2178,1031.4219,275.7126 -2532.9485,-1302.3477,1031.4219,269.4458 -2541.2852,-1303.9135,1031.4219,269.4458 -2542.1389,-1293.7726,1031.4219,262.8658 -2542.5986,-1282.2380,1031.4219,264.1191 -2550.1204,-1282.6653,1031.4219,263.8058 -2551.0386,-1293.5071,1031.4219,277.2793 -2553.0278,-1305.5601,1031.4219,277.2793 -2560.5957,-1291.2533,1031.4219,265.3724 - -[Interior] -2 - -[Weather] -9 - -[WorldTime] -22 \ No newline at end of file diff --git a/scriptfiles/maps/DesertGlory.ini b/scriptfiles/maps/DesertGlory.ini deleted file mode 100644 index 3e70788d..00000000 --- a/scriptfiles/maps/DesertGlory.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] --1653.2010,-226.2253,265.9619,181.3516 --1645.1259,-226.4343,265.9619,181.3516 --1634.3878,-226.5849,265.9619,181.3516 --1622.8600,-227.8519,265.9619,175.7115 --1622.0652,-237.3373,265.9619,184.7983 --1632.1815,-238.6525,265.9619,184.7983 --1644.1536,-240.0769,265.9619,184.7983 --1653.8022,-241.2988,265.9619,184.7983 --1665.3876,-247.1903,265.9619,204.2252 --1634.7794,-250.6799,265.9619,179.4715 - -[Beta] --1542.3864,-510.7887,265.9619,359.9533 --1550.5566,-510.3571,265.9619,359.9533 --1560.6515,-509.9548,265.9619,359.9533 --1572.8971,-509.4944,265.9619,359.9533 --1585.0007,-505.2358,265.9619,4.6534 --1569.1410,-499.6516,265.9619,1.5200 --1557.9012,-498.9355,265.9619,1.5200 --1545.6387,-497.8590,265.9619,1.5200 --1530.6692,-497.0673,265.9619,1.5200 --1535.6615,-488.2272,265.9619,1.5200 \ No newline at end of file diff --git a/scriptfiles/maps/GateToHell.ini b/scriptfiles/maps/GateToHell.ini deleted file mode 100644 index 74de0fba..00000000 --- a/scriptfiles/maps/GateToHell.ini +++ /dev/null @@ -1,29 +0,0 @@ -[Alpha] -3274.9690,-1672.4760,168.0839,93.1118 -3274.4111,-1668.4269,168.0105,92.7985 -3274.1060,-1665.0518,167.9483,88.4117 -3273.8604,-1660.9714,167.8721,88.4117 -3273.6243,-1656.5548,167.7896,88.4117 -3270.3975,-1655.9285,167.7996,87.1584 -3268.7722,-1658.9390,167.8680,87.1584 -3268.2183,-1662.8839,167.9470,87.1584 -3267.1907,-1667.3782,168.0397,87.1584 -3262.4084,-1664.2148,168.0119,120.0587 - -[Beta] -3093.9414,-1688.0375,158.4888,186.4859 -3097.0703,-1688.0946,158.4812,186.4859 -3102.1755,-1689.0255,158.4888,177.7125 -3103.9797,-1693.7493,158.6272,95.3051 -3102.5417,-1698.4216,159.1233,139.1721 -3092.4761,-1700.5328,159.4099,237.8731 -3089.2456,-1695.2534,158.7764,273.5934 -3090.4512,-1690.3799,158.4888,234.7397 -3095.0112,-1692.9312,159.5845,186.7993 -3097.7090,-1694.3888,159.6511,182.4126 - -[Weather] -11 - -[WorldTime] -20 \ No newline at end of file diff --git a/scriptfiles/maps/RC_Battlefield.ini b/scriptfiles/maps/RC_Battlefield.ini deleted file mode 100644 index b42e0697..00000000 --- a/scriptfiles/maps/RC_Battlefield.ini +++ /dev/null @@ -1,26 +0,0 @@ -[Alpha] --1136.4539,1098.1666,1345.8258,269.4457 --1135.1912,1093.8064,1345.8119,267.8791 --1135.6179,1088.5378,1345.8096,267.8791 --1135.4375,1082.0457,1345.8021,267.8791 --1135.2130,1075.4181,1345.7941,267.8791 --1135.0983,1066.7756,1345.7872,267.8791 --1129.9963,1067.1566,1345.7528,274.1458 --1129.5995,1074.0201,1345.7581,274.1458 --1129.0844,1081.9758,1345.7615,268.5057 --1131.0197,1092.0566,1345.7826,264.1190 - -[Beta] --969.8113,1021.9630,1345.0767,89.9275 --970.1436,1028.6224,1345.0679,88.9874 --970.4197,1036.5406,1345.0582,88.9874 --969.6072,1046.1462,1345.0544,88.9874 --970.4572,1055.3048,1345.0397,88.9874 --976.7345,1054.0677,1344.9979,90.8674 --976.9385,1044.5823,1345.0059,88.6741 --977.0988,1035.4301,1345.0137,88.6741 --976.4217,1024.6754,1345.0288,92.1208 --976.2883,1020.3914,1345.0339,93.3741 - -[Interior] -10 \ No newline at end of file diff --git a/scriptfiles/maps/SA_Hill.ini b/scriptfiles/maps/SA_Hill.ini deleted file mode 100644 index ab619284..00000000 --- a/scriptfiles/maps/SA_Hill.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -524.6265,-2452.1128,17.7816,269.1792 -529.6189,-2452.1846,17.7816,269.1792 -529.9183,-2461.1907,17.7816,266.3592 -530.3346,-2470.6594,17.7816,281.7127 -524.9189,-2470.6074,17.7816,287.3527 -539.1684,-2472.6079,17.7816,286.4127 -537.5321,-2452.4692,17.7816,265.4191 -533.1941,-2452.0603,19.9958,272.3125 -548.9929,-2464.2104,20.0764,359.1067 -526.0565,-2461.1157,19.7680,271.9759 - -[Beta] -673.4208,-2471.9617,17.7816,93.6876 -673.0779,-2465.8335,17.7816,94.9410 -672.8025,-2459.8650,17.7816,82.0942 -673.4128,-2451.0491,17.7816,105.9077 -667.2205,-2452.2200,17.7816,105.2811 -662.9964,-2455.8127,17.7816,88.0476 -662.2356,-2465.7839,17.7816,88.0476 -661.4607,-2472.0854,17.7894,88.0476 -656.7994,-2462.5986,17.7816,91.1809 -651.3649,-2462.7102,20.1194,91.1809 \ No newline at end of file diff --git a/scriptfiles/maps/Simpson.ini b/scriptfiles/maps/Simpson.ini deleted file mode 100644 index ea605c81..00000000 --- a/scriptfiles/maps/Simpson.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -631.6804,1739.0253,501.5315,177.6383 -628.7578,1738.7491,501.5315,177.6383 -625.2876,1738.4983,501.5314,177.6383 -622.5142,1738.1760,501.5314,177.6383 -620.2277,1737.3713,501.5304,177.6383 -621.0443,1745.1467,498.0546,178.9150 -623.7411,1744.7461,498.0546,178.9150 -626.6167,1744.2882,498.0546,178.9150 -630.5735,1743.8160,498.0546,178.9150 -633.2531,1744.7001,498.0546,178.9150 - -[Beta] -620.9976,1703.1520,501.5310,0.6267 -623.1171,1703.6747,501.5310,2.8201 -626.3206,1704.2292,501.5317,2.8201 -628.8699,1704.7319,501.5317,2.8201 -631.8885,1705.2688,501.5321,2.8201 -619.2932,1696.6735,498.0546,1.5667 -622.6071,1697.3009,498.0546,3.7601 -626.5843,1697.9843,498.0546,3.7601 -629.8161,1697.2092,498.0546,3.7601 -634.2712,1697.9205,498.0546,3.7601 \ No newline at end of file diff --git a/scriptfiles/maps/TheBunker.ini b/scriptfiles/maps/TheBunker.ini deleted file mode 100644 index f6726f0c..00000000 --- a/scriptfiles/maps/TheBunker.ini +++ /dev/null @@ -1,26 +0,0 @@ -[Alpha] -592.8154,-2433.9148,10.8944,79.0350 -593.3266,-2430.6772,10.8968,75.2750 -593.7708,-2427.1843,10.9065,81.8550 -594.2177,-2425.0789,10.9081,78.0950 -591.5002,-2424.4595,10.9011,77.1550 -590.2183,-2427.9417,10.8983,77.1550 -588.6526,-2431.8225,10.8952,77.1550 -584.6981,-2430.9185,10.9023,348.4808 -575.6008,-2417.5117,10.9036,252.9133 -584.4872,-2417.1072,10.9053,166.1425 - -[Beta] -891.1278,-2397.3025,19.8204,87.1585 -889.6392,-2407.8728,20.2593,80.5784 -887.4858,-2418.1658,21.0038,80.5784 -885.3065,-2425.9482,21.5207,49.8714 -875.5358,-2419.4922,21.7868,67.4183 -876.6066,-2412.1060,22.0539,80.2651 -877.5095,-2404.7627,22.3557,80.2651 -878.8505,-2396.0938,22.6503,92.4852 -870.1289,-2393.8157,23.9384,92.4852 -864.5809,-2400.9045,25.0956,94.6786 - -[WorldTime] -23 \ No newline at end of file diff --git a/scriptfiles/maps/TheConstruction.ini b/scriptfiles/maps/TheConstruction.ini deleted file mode 100644 index c140051d..00000000 --- a/scriptfiles/maps/TheConstruction.ini +++ /dev/null @@ -1,26 +0,0 @@ -[Alpha] -2076.6748,1061.7410,476.7758,270.6058 -2076.2942,1071.1493,476.7758,273.1125 -2076.1174,1086.4053,477.5536,262.1458 -2084.8645,1095.2849,476.8290,271.5459 -2100.0337,1096.0536,476.7758,241.7789 -2088.3020,1080.4142,476.7758,275.6191 -2088.3372,1072.1584,476.7822,274.0525 -2107.6826,1060.7325,476.7758,327.0063 -2111.5581,1073.5750,476.7758,270.2925 -2119.4583,1057.4404,476.7758,305.0728 - -[Beta] -2240.2939,941.7416,476.0473,8.0300 -2227.9966,940.2764,475.7448,2.3899 -2209.6042,938.4466,475.7077,4.2700 -2206.2979,949.8488,475.7077,344.8431 -2224.2419,950.9100,475.7188,11.1633 -2237.7861,952.8008,475.8244,34.0369 -2237.7939,970.3250,475.7077,64.4305 -2207.2490,968.4916,475.7077,350.4832 -2254.5923,982.1379,475.8295,63.8039 -2205.2302,958.3261,475.7077,281.5493 - -[Weather] -12 \ No newline at end of file diff --git a/scriptfiles/maps/TheWild.ini b/scriptfiles/maps/TheWild.ini deleted file mode 100644 index 26fa472f..00000000 --- a/scriptfiles/maps/TheWild.ini +++ /dev/null @@ -1,29 +0,0 @@ -[Alpha] --2254.6338,1900.8910,100.2155,227.2430 --2241.3894,1896.2594,102.7858,246.0432 --2244.1335,1889.2263,103.6321,246.0432 --2246.9988,1879.4545,105.2410,259.8300 --2248.2219,1866.8461,108.0911,285.8369 --2244.3398,1856.7350,111.4196,295.5503 --2232.9404,1866.6824,110.8282,284.2702 --2219.6140,1881.5078,108.8331,277.0634 --2225.8865,1900.6715,103.3748,250.7432 --2213.6099,1896.7827,108.1216,244.7898 - -[Beta] --2191.2327,1758.7166,112.4979,359.7609 --2181.8281,1760.7605,112.1644,9.1610 --2173.0947,1764.0543,112.1001,20.1278 --2162.6155,1771.2721,111.8005,48.6414 --2163.0601,1783.9620,112.1602,40.4946 --2172.9292,1786.4960,112.2046,16.0544 --2184.7393,1786.6788,112.0514,333.7540 --2195.7034,1792.1458,112.0839,256.9866 --2195.7903,1806.0188,111.1194,312.1338 --2202.1663,1797.1541,115.5429,327.1739 - -[Weather] -8 - -[WorldTime] -18 \ No newline at end of file diff --git a/scriptfiles/maps/WarZone.ini b/scriptfiles/maps/WarZone.ini deleted file mode 100644 index 0c43ab76..00000000 --- a/scriptfiles/maps/WarZone.ini +++ /dev/null @@ -1,29 +0,0 @@ -[Alpha] --1361.5770,2531.9614,93.9766,274.8467 --1360.5895,2525.5527,93.9766,274.8467 --1359.6013,2518.1367,94.0347,274.8467 --1360.3835,2511.8054,94.0347,266.0733 --1359.9539,2502.3049,94.0828,273.9067 --1359.0724,2495.8953,94.0828,273.9067 --1358.4415,2487.7456,94.0303,269.2067 --1357.5499,2476.2319,94.0381,278.6068 --1360.5935,2467.9065,94.0381,270.4600 --1359.0089,2459.2986,94.0633,271.7133 - -[Beta] --1262.7394,2440.6177,94.0361,89.0616 --1263.0089,2446.0381,94.0361,89.0616 --1263.3616,2451.5520,94.0361,89.0616 --1263.6271,2457.2244,94.0361,89.0616 --1263.8870,2463.2375,94.0361,89.0616 --1264.1414,2469.5830,94.0361,89.0616 --1264.3887,2476.3643,94.0361,89.0616 --1264.6412,2482.8198,94.1224,89.0616 --1264.8656,2490.9934,94.1224,89.0616 --1265.0806,2499.7429,94.1224,89.0616 - -[Weather] -50 - -[WorldTime] -0 \ No newline at end of file diff --git a/scriptfiles/maps/ZM_Italy.ini b/scriptfiles/maps/ZM_Italy.ini deleted file mode 100644 index b1634e79..00000000 --- a/scriptfiles/maps/ZM_Italy.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] --4014.6306,-1133.8168,107.1583,313.0504 --4009.9214,-1134.3419,107.1592,8.5110 --4010.8088,-1128.7617,107.1617,184.2693 --4001.8857,-1129.7975,107.1633,11.9577 --4002.0845,-1134.3412,107.1611,9.4743 --3997.1633,-1135.5808,107.1701,7.5943 --3996.9368,-1129.8197,107.1645,0.7010 --3991.5361,-1142.3916,107.1742,6.6543 --3991.1956,-1137.6559,107.1745,0.7009 --3987.3020,-1128.4504,107.1773,178.6759 - -[Beta] --3948.7759,-1035.6813,107.9404,175.2291 --3951.8606,-1035.7764,107.9340,175.2291 --3955.0330,-1037.4443,107.9020,189.0159 --3959.0698,-1037.3000,107.8911,189.0159 --3962.8105,-1038.2520,107.8756,183.0625 --3965.6316,-1041.4009,107.8276,183.0625 --3965.0898,-1047.8712,107.7337,182.7492 --3962.9980,-1051.8182,107.6766,271.7367 --3956.6274,-1051.2816,107.6848,100.9684 --3951.6501,-1051.2505,107.6856,102.2219 \ No newline at end of file diff --git a/scriptfiles/maps/cs_assault.ini b/scriptfiles/maps/cs_assault.ini deleted file mode 100644 index 9f032ad5..00000000 --- a/scriptfiles/maps/cs_assault.ini +++ /dev/null @@ -1,26 +0,0 @@ -[Alpha] -1951.2930,-2443.0417,15.8835,94.9918 -1955.8907,-2427.7234,15.8835,95.3052 -1932.7996,-2434.9675,16.0446,284.2469 -1933.3302,-2413.5896,16.0266,270.4601 -1959.3699,-2396.9949,21.4766,182.0993 -1941.9036,-2396.3044,21.2350,185.2327 -1935.8511,-2400.3149,21.2232,253.2266 -1932.6703,-2411.9165,21.2385,272.9668 -1932.2966,-2433.4741,21.2430,328.7407 -1932.9927,-2446.1880,18.0436,350.3609 - -[Beta] -1853.9275,-2467.7710,13.5547,353.2278 -1864.1841,-2469.1975,13.5547,358.8678 -1867.3278,-2458.1208,13.5547,6.3879 -1858.6993,-2456.1531,13.5547,349.7810 -1861.1115,-2436.3508,13.5547,283.3537 -1856.0217,-2413.8318,13.5547,238.8600 -1858.3375,-2400.2629,13.5547,184.3395 -1868.0935,-2396.8328,13.6030,179.3261 -1850.3311,-2387.6704,13.5547,185.6162 -1867.1493,-2421.3494,13.5547,224.0122 - -[WorldTime] -20 \ No newline at end of file diff --git a/scriptfiles/maps/cs_deagle5.ini b/scriptfiles/maps/cs_deagle5.ini deleted file mode 100644 index 6e2e468d..00000000 --- a/scriptfiles/maps/cs_deagle5.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -66.4288,2476.9685,16.6857,92.7243 -65.9138,2480.5413,16.6857,90.8442 -65.4079,2484.6541,16.6857,90.8442 -64.9735,2488.3787,16.6857,90.8442 -65.7381,2497.2910,16.6857,84.8908 -67.4365,2507.6694,16.6857,83.0108 -67.2686,2511.9604,16.6857,84.8908 -66.9290,2517.2217,16.6857,88.0242 -65.8867,2530.2373,16.6857,90.2176 -61.7923,2534.5464,16.6857,98.0509 - -[Beta] --48.5080,2477.4517,16.6857,270.0726 --48.1457,2480.6843,16.6857,270.0726 --47.7878,2484.3867,16.6857,270.0726 --47.3919,2489.3105,16.6857,270.0726 --46.9963,2494.4944,16.6857,270.0726 --46.9170,2497.1936,16.6857,283.8594 --47.4334,2501.0229,16.6857,273.2059 --47.8474,2509.6943,16.6857,271.3259 --44.2476,2518.3862,16.6857,270.0726 --48.4613,2524.5649,16.6857,271.9760 \ No newline at end of file diff --git a/scriptfiles/maps/cs_rockwar.ini b/scriptfiles/maps/cs_rockwar.ini deleted file mode 100644 index 5cc1d025..00000000 --- a/scriptfiles/maps/cs_rockwar.ini +++ /dev/null @@ -1,29 +0,0 @@ -[Alpha] -1199.1923,2053.5850,143.4960,0.3642 -1194.8339,2053.7275,143.4960,2.8709 -1190.2040,2053.9375,143.4960,2.8709 -1186.8108,2054.1606,143.4960,2.2442 -1182.7269,2054.3591,143.4960,2.2442 -1178.6499,2054.5554,143.4960,2.2442 -1167.5458,2055.3684,143.4960,357.8341 -1163.4127,2055.8833,143.4960,357.8341 -1159.4974,2055.6907,143.4960,3.7875 -1149.1208,2054.2935,143.4960,358.7742 - -[Beta] -1146.3257,2115.1106,143.5038,226.5696 -1150.5636,2115.1021,143.4960,179.8824 -1154.6356,2114.7354,143.4960,179.8824 -1159.4426,2114.2825,143.4960,179.8824 -1164.5139,2113.9133,143.4960,179.8824 -1168.2430,2113.5471,143.4960,179.8824 -1178.1140,2113.9524,143.4960,188.0291 -1180.7157,2113.7356,143.4960,179.2557 -1183.7253,2113.3386,143.4960,179.2557 -1187.7933,2112.9280,143.4960,179.2557 - -[Weather] -40 - -[WorldTime] -20 \ No newline at end of file diff --git a/scriptfiles/maps/de_aztec.ini b/scriptfiles/maps/de_aztec.ini deleted file mode 100644 index d8065f7b..00000000 --- a/scriptfiles/maps/de_aztec.ini +++ /dev/null @@ -1,29 +0,0 @@ -[Alpha] --3361.6487,-1527.0422,1.3591,97.7845 --3361.6487,-1527.0422,1.3591,97.7845 --3362.2214,-1523.0206,1.3591,92.7711 --3362.7910,-1518.6259,1.3791,92.7711 --3363.4751,-1513.6633,1.3791,92.7711 --3363.9805,-1509.2786,1.3791,151.9917 --3359.0071,-1509.2805,1.3791,182.3853 --3356.5859,-1512.6044,1.3791,182.0720 --3359.6641,-1513.2585,1.3791,182.0720 --3367.8882,-1508.9312,0.7291,210.8989 - -[Beta] --3497.8196,-1530.7451,6.5191,278.9397 --3497.4778,-1534.6877,6.5191,269.2263 --3497.1785,-1539.0875,6.5191,269.2263 --3496.8049,-1544.2454,6.5191,269.2263 --3496.4919,-1547.6298,6.5191,269.2263 --3499.8733,-1546.8214,6.5191,269.2263 --3499.4712,-1543.5586,6.5191,269.2263 --3499.0552,-1539.2593,6.5191,269.2263 --3498.6421,-1535.2046,6.5191,269.2263 --3498.1440,-1531.1202,6.5191,269.2263 - -[Weather] -53 - -[WorldTime] -18 \ No newline at end of file diff --git a/scriptfiles/maps/de_dust2.ini b/scriptfiles/maps/de_dust2.ini deleted file mode 100644 index 056b3770..00000000 --- a/scriptfiles/maps/de_dust2.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] --669.9301,2567.7261,233.1899,4.0968 --662.3662,2568.0757,233.1899,4.4101 --655.0732,2569.0535,233.1899,4.4101 --647.9728,2569.4668,233.1899,0.3367 --638.0440,2570.3137,233.1899,0.3367 --639.5786,2562.3525,233.1899,5.3501 --648.1184,2562.6292,233.1899,3.7834 --657.4561,2562.6628,233.1899,357.8300 --669.2877,2562.1140,233.1899,356.8900 --680.0007,2562.0994,233.1899,355.9500 - -[Beta] --656.4174,2739.6848,219.2168,177.9750 --650.9906,2739.0764,219.2168,177.9750 --645.7310,2738.4836,219.2168,177.9750 --645.8832,2734.1885,219.2168,177.9750 --651.6318,2733.9893,219.2168,177.9750 --656.4081,2733.0417,219.2168,177.9750 --656.6006,2727.5969,219.4199,177.9750 --651.1097,2726.9893,219.2168,177.9750 --645.4995,2727.2031,219.2168,180.4818 --644.1847,2722.3389,219.2168,177.9751 \ No newline at end of file diff --git a/scriptfiles/maps/de_dust2_small.ini b/scriptfiles/maps/de_dust2_small.ini deleted file mode 100644 index 2ebb3054..00000000 --- a/scriptfiles/maps/de_dust2_small.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -551.0983,-2346.7917,21.2222,87.4443 -550.8411,-2343.7151,21.2258,87.4443 -550.5829,-2339.8208,21.2295,87.4443 -547.5768,-2337.9485,21.2787,87.4443 -546.9608,-2342.5117,21.2849,87.4443 -546.4477,-2345.7212,21.2907,87.4443 -542.2518,-2345.5339,21.3636,87.4443 -541.9902,-2342.2146,21.3714,87.4443 -537.3602,-2337.9771,21.4146,4.6510 -521.0339,-2345.3982,21.4146,284.5094 - -[Beta] -466.5383,-2359.1289,19.5676,359.1069 -464.2357,-2356.5378,19.5676,4.7469 -469.7299,-2355.6960,19.5676,4.7469 -471.6035,-2350.1848,19.5676,4.7469 -465.3604,-2348.9814,19.5676,294.8729 -467.2872,-2342.9116,20.2420,357.2268 -472.8541,-2342.7727,20.2678,357.2268 -465.3369,-2338.8931,20.9868,355.6602 -469.6723,-2338.8235,20.9997,355.6602 -473.3263,-2336.1138,21.4236,18.2204 \ No newline at end of file diff --git a/scriptfiles/maps/de_dust2_x1.ini b/scriptfiles/maps/de_dust2_x1.ini deleted file mode 100644 index 12173dae..00000000 --- a/scriptfiles/maps/de_dust2_x1.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -143.0992,1571.4447,50.1578,3.2076 -142.8365,1576.7993,50.1578,3.2076 -142.4981,1582.8369,50.1578,3.2076 -142.0829,1590.2450,50.1578,3.2076 -134.7231,1589.5183,50.1578,89.3751 -128.4045,1583.5237,50.1578,93.1351 -121.1933,1571.9312,50.1578,93.1351 -117.6822,1580.6498,50.1578,358.5076 -111.0327,1590.7256,50.1578,91.2551 -151.8522,1578.3458,48.4282,3.5444 - -[Beta] -189.9555,1789.0250,42.6203,179.9760 -189.8947,1783.6633,42.6203,179.3494 -194.9825,1783.5128,42.6203,182.4828 -199.6116,1783.4681,42.6270,182.4828 -206.7419,1783.4187,42.6203,182.4828 -211.7888,1776.3341,42.6203,181.8561 -207.6024,1776.0618,42.6203,88.7952 -196.7002,1773.7798,42.6270,354.1676 -191.2338,1774.3287,42.6270,354.1676 -180.5120,1785.6130,42.6203,270.2169 \ No newline at end of file diff --git a/scriptfiles/maps/de_dust2_x2.ini b/scriptfiles/maps/de_dust2_x2.ini deleted file mode 100644 index 28369b17..00000000 --- a/scriptfiles/maps/de_dust2_x2.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -119.8855,2003.2329,19.9234,1.3042 -124.2207,2003.3458,19.9234,359.1108 -124.3043,2008.7290,19.9234,359.1108 -119.5755,2011.1010,19.9234,359.1108 -119.3095,2016.8264,19.9234,359.1108 -124.3915,2019.4412,19.9234,359.1108 -125.6652,2031.2169,18.4099,92.1717 -117.5531,2026.8528,18.6143,92.4850 -112.7141,2021.0238,18.7487,84.6516 -114.4898,2033.9099,18.4553,106.5852 - -[Beta] -12.0713,2043.5754,17.7020,271.0166 -17.7730,2043.6764,17.6896,271.0166 -18.2212,2038.6116,17.6406,271.0166 -18.6879,2032.5052,17.6406,271.0166 -19.1790,2025.0264,17.6406,271.0166 -11.8089,2024.4734,17.6473,269.4265 -12.2090,2029.4895,17.6473,269.4265 -12.6159,2035.1863,17.6473,269.4265 -11.7392,2014.6735,17.8401,265.0632 -14.2811,2006.1548,17.8401,2.8241 \ No newline at end of file diff --git a/scriptfiles/maps/de_dust2_x3.ini b/scriptfiles/maps/de_dust2_x3.ini deleted file mode 100644 index 4b2e1b8f..00000000 --- a/scriptfiles/maps/de_dust2_x3.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] --1076.5094,2609.5681,141.2628,182.6517 --1071.4005,2609.3518,141.2628,182.6517 --1065.7511,2609.0935,141.2628,182.6517 --1060.0747,2604.7991,141.2628,185.1584 --1059.5304,2598.7686,141.2628,185.1584 --1058.8413,2591.1296,141.2628,185.1584 --1066.5577,2589.9866,141.2628,185.1584 --1073.0854,2589.0691,141.2628,183.5917 --1078.5083,2588.2754,141.2628,183.5917 --1083.1416,2589.3928,139.5197,276.0258 - -[Beta] --1088.3314,2411.1218,127.0129,12.8041 --1096.9119,2410.9363,127.0129,358.3907 --1103.3280,2411.5601,127.0129,358.3907 --1103.1876,2416.5513,127.0129,358.3907 --1096.3082,2417.8738,127.0129,358.3907 --1089.4492,2418.8762,127.0129,0.8973 --1088.1395,2425.1792,127.0129,4.6574 --1093.7845,2425.5471,127.0129,359.3307 --1100.9735,2426.0562,127.0129,359.3307 --1109.9390,2427.2339,128.7179,195.7691 \ No newline at end of file diff --git a/scriptfiles/maps/de_dust5.ini b/scriptfiles/maps/de_dust5.ini deleted file mode 100644 index ac5245d3..00000000 --- a/scriptfiles/maps/de_dust5.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -560.2054,-2453.2395,12.3350,92.6305 -559.8215,-2446.8892,12.3350,130.2308 -552.6857,-2444.8403,12.3350,186.6314 -553.5848,-2450.4438,14.5238,134.6175 -553.5755,-2452.6921,16.6878,107.3573 -543.5572,-2447.2249,12.3350,193.8147 -548.1649,-2454.1919,12.3350,174.0745 -539.8318,-2454.5381,12.3350,185.9812 -539.1287,-2460.5676,12.3350,179.7145 -548.2609,-2463.2827,12.3350,183.7879 - -[Beta] -401.1117,-2482.2688,12.3350,182.8714 -396.4311,-2482.1946,12.3350,181.9314 -391.2772,-2483.5254,12.3350,195.4048 -392.4164,-2491.0613,12.3350,233.9453 -398.9259,-2491.9358,12.3350,176.6047 -401.6145,-2502.9536,12.3350,181.9315 -391.7648,-2508.8220,12.3350,196.6583 -393.3364,-2523.7463,12.3350,291.2858 -394.6246,-2504.5686,14.3385,315.4852 -393.1626,-2499.7234,16.6878,198.5382 \ No newline at end of file diff --git a/scriptfiles/maps/fy_iceworld.ini b/scriptfiles/maps/fy_iceworld.ini deleted file mode 100644 index 654a53c1..00000000 --- a/scriptfiles/maps/fy_iceworld.ini +++ /dev/null @@ -1,26 +0,0 @@ -[Alpha] --372.3682,3151.0010,25.2089,96.1942 --368.7675,3157.0830,25.2089,92.1208 --373.2101,3158.3303,25.2089,92.1208 --369.8257,3163.9590,25.2089,94.9408 --373.0765,3167.4539,25.2089,93.3741 --373.7389,3171.8723,25.2089,93.3741 --369.2356,3174.6270,25.2089,91.4941 --369.3762,3181.0840,25.2089,91.8074 --373.6253,3180.9839,25.2089,92.1207 --368.8558,3190.1553,25.2089,91.8074 - -[Beta] --413.6060,3189.8655,25.2089,269.7824 --411.8539,3186.1338,25.2089,269.1558 --416.5368,3183.6323,25.2089,269.4691 --412.7262,3181.5247,25.2089,269.4691 --416.5819,3177.0405,25.2089,275.4225 --412.8896,3173.1372,25.2089,270.7225 --413.8066,3167.8850,25.2089,272.9158 --416.3889,3161.6323,25.2089,273.8558 --412.3153,3160.3589,25.2089,267.5891 --416.0299,3151.3928,25.2089,267.9025 - -[WorldTime] -19 \ No newline at end of file diff --git a/scriptfiles/maps/fy_iceworld2.ini b/scriptfiles/maps/fy_iceworld2.ini deleted file mode 100644 index 6097d7f2..00000000 --- a/scriptfiles/maps/fy_iceworld2.ini +++ /dev/null @@ -1,29 +0,0 @@ -[Alpha] --179.8633,1353.9165,1133.0581,92.5276 --180.5565,1361.2913,1133.0581,92.5276 --181.2746,1368.9706,1133.0581,92.5276 --180.8687,1376.2174,1133.0581,92.5276 --181.1496,1381.8474,1133.0581,92.5276 --180.8848,1389.3093,1133.0581,92.5276 --181.5493,1395.5526,1133.0581,92.5276 --181.2193,1401.3604,1133.0581,92.5276 --181.4124,1408.0603,1133.0581,92.5276 --181.3317,1414.7081,1133.0581,92.5276 - -[Beta] --259.4254,1410.4475,1133.0581,275.8759 --259.4109,1404.9280,1133.0503,268.9825 --259.1616,1398.6016,1133.0503,268.9825 --258.9162,1390.8751,1133.0503,268.9825 --258.6426,1384.6238,1133.0503,268.9825 --258.3881,1378.4149,1133.0581,268.9825 --258.8628,1373.0563,1133.0581,268.9825 --258.6558,1365.8923,1133.0581,268.9825 --258.4535,1357.3385,1133.0581,268.9825 --258.2224,1347.6072,1133.0581,268.9825 - -[Weather] -35 - -[WorldTime] -2 \ No newline at end of file diff --git a/scriptfiles/maps/fy_snow.ini b/scriptfiles/maps/fy_snow.ini deleted file mode 100644 index 910d91b4..00000000 --- a/scriptfiles/maps/fy_snow.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] --2323.3496,-1567.6365,1287.8210,354.9867 --2323.3862,-1560.9791,1287.8210,0.3134 --2316.2983,-1562.5337,1287.8210,0.9401 --2314.8745,-1569.0963,1287.8210,2.5068 --2308.9846,-1563.1633,1287.8210,1.2534 --2300.8904,-1567.8193,1287.8210,5.6402 --2290.8779,-1569.0896,1287.8210,359.0602 --2291.6919,-1561.7869,1287.8210,359.0602 --2283.4854,-1569.0551,1287.8210,8.7737 --2271.3679,-1567.5569,1287.8210,21.3071 - -[Beta] --2281.6316,-1523.0906,1287.8210,182.9886 --2281.9165,-1513.3104,1287.8210,183.9287 --2290.1670,-1512.7667,1287.8210,180.4820 --2291.0520,-1519.3511,1287.8210,180.1686 --2297.9731,-1514.9285,1287.8210,184.8687 --2309.1184,-1519.2896,1287.8210,177.9752 --2309.1733,-1513.1965,1287.8210,183.9286 --2319.8179,-1512.9851,1287.8210,187.6887 --2319.6086,-1520.9521,1287.8210,183.6153 --2333.1160,-1514.9375,1287.8210,213.0689 \ No newline at end of file diff --git a/scriptfiles/maps/fy_snow2.ini b/scriptfiles/maps/fy_snow2.ini deleted file mode 100644 index 2587a0f4..00000000 --- a/scriptfiles/maps/fy_snow2.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -39.7530,1491.3424,12.7500,90.5542 -44.5623,1501.0831,12.7500,93.0609 -37.9868,1506.2257,12.7500,93.0609 -45.3393,1507.0083,12.7500,83.6608 -42.9517,1515.2280,12.7500,87.4209 -38.3068,1525.4397,12.7560,87.4209 -44.6101,1527.3783,12.7560,94.9410 -43.6591,1535.1487,12.7500,89.3009 -46.6689,1549.7229,12.7500,110.2710 -49.0553,1501.8490,14.0457,90.8442 - -[Beta] --21.4892,1547.7408,12.7500,271.9292 --21.4675,1536.7697,12.7560,276.6293 --11.8862,1534.3207,12.7560,270.0492 --12.0646,1526.1538,12.7500,270.0492 --21.0470,1526.0854,12.7560,270.0492 --20.6394,1514.8779,12.7500,270.0492 --11.5434,1513.6584,12.7500,270.0492 --11.1164,1506.0215,12.7500,270.0492 --21.7734,1502.7694,12.7500,265.3492 --21.4350,1490.5544,12.7500,291.0428 \ No newline at end of file diff --git a/scriptfiles/maps/mp_island.ini b/scriptfiles/maps/mp_island.ini deleted file mode 100644 index a08f4dc7..00000000 --- a/scriptfiles/maps/mp_island.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -3585.7258,1274.0166,30.8687,181.4258 -3588.9329,1262.2716,30.8687,88.0516 -3588.2554,1256.8756,30.8687,85.2316 -3587.3904,1250.8126,30.8687,85.2316 -3593.4922,1242.5599,30.8687,83.6649 -3592.7371,1239.0006,30.8687,83.6649 -3592.2996,1235.3254,30.8687,84.2916 -3592.0828,1230.4924,30.8687,84.6049 -3591.7773,1224.3538,30.8687,88.9916 -3589.4907,1211.8466,30.8687,8.8009 - -[Beta] -3490.9448,1218.0336,30.8687,269.1599 -3491.4265,1223.1649,30.8687,269.1599 -3491.9070,1229.5614,30.8687,269.1599 -3492.4182,1234.7572,30.8687,269.1599 -3492.8774,1238.6390,30.8687,269.1599 -3493.3821,1242.9308,30.8687,269.1599 -3493.8916,1247.9011,30.8687,269.1599 -3494.3987,1252.5872,30.8687,269.1599 -3494.9209,1258.2722,30.8687,269.1599 -3490.0466,1266.5525,30.8687,274.5101 \ No newline at end of file diff --git a/scriptfiles/maps/mp_jetdoor.ini b/scriptfiles/maps/mp_jetdoor.ini deleted file mode 100644 index 37357567..00000000 --- a/scriptfiles/maps/mp_jetdoor.ini +++ /dev/null @@ -1,26 +0,0 @@ -[Alpha] -1924.6316,-2570.1958,13.5469,263.9034 -1924.5703,-2565.7947,13.5469,270.7968 -1924.9493,-2560.9683,13.5469,270.7968 -1925.2819,-2556.2283,13.5469,270.7968 -1925.6493,-2550.9736,13.5469,270.7968 -1925.9901,-2547.4990,13.5469,270.7968 -1926.3241,-2542.6313,13.5469,270.7968 -1926.6416,-2536.8364,13.5469,270.7968 -1926.9790,-2531.8003,13.5469,270.7968 -1927.2733,-2524.2292,13.5469,270.7968 - -[Beta] -2036.6779,-2570.9531,13.5469,87.2052 -2036.4393,-2567.5505,13.5469,87.2052 -2036.2686,-2562.9453,13.5469,87.2052 -2036.0927,-2558.4614,13.5469,87.2052 -2035.9241,-2553.0352,13.5469,87.2052 -2036.9818,-2546.1816,13.5469,87.8319 -2036.7446,-2541.9917,13.5469,87.8319 -2036.4990,-2538.1726,13.5469,87.8319 -2036.2910,-2533.4944,13.5469,87.8319 -2036.7222,-2527.1538,13.5469,87.8319 - -[Weather] -12 \ No newline at end of file diff --git a/scriptfiles/maps/zone_paintball.ini b/scriptfiles/maps/zone_paintball.ini deleted file mode 100644 index 82caacb7..00000000 --- a/scriptfiles/maps/zone_paintball.ini +++ /dev/null @@ -1,23 +0,0 @@ -[Alpha] -3117.3726,-1394.0422,11.1078,184.2927 -3123.3052,-1394.4641,11.1078,178.3393 -3128.4844,-1395.0371,11.1078,178.3393 -3134.3262,-1396.0936,11.1078,178.3393 -3139.4006,-1396.6395,11.1078,178.3393 -3145.5195,-1397.2377,11.1078,178.3393 -3151.4617,-1397.7628,11.1078,178.3393 -3156.9575,-1398.3308,11.1078,178.3393 -3165.1692,-1399.1538,11.1078,148.2590 -3165.1494,-1386.9292,11.1078,168.6259 - -[Beta] -3120.3904,-1617.1298,11.1078,4.5078 -3124.4346,-1616.5570,11.1078,2.9411 -3129.1563,-1615.9558,11.1078,2.9411 -3133.7585,-1615.7980,11.1078,2.9411 -3138.4802,-1615.1968,11.1078,2.9411 -3143.8840,-1614.4761,11.1078,2.9411 -3148.5901,-1613.8717,11.1078,2.9411 -3154.2598,-1613.4854,11.1000,2.9411 -3160.3333,-1612.8148,11.1078,2.9411 -3169.6145,-1606.3535,11.1078,87.5419 \ No newline at end of file From bba62666493b4fe168548b27738f636e6452589a Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Fri, 23 Aug 2024 09:48:25 -0500 Subject: [PATCH 02/15] Create map files in the application layer --- src/Application/Maps/Files/Aim_Headshot.ini | 23 +++++++++++++ src/Application/Maps/Files/Aim_Headshot2.ini | 23 +++++++++++++ src/Application/Maps/Files/Area51.ini | 29 +++++++++++++++++ src/Application/Maps/Files/Area66.ini | 23 +++++++++++++ src/Application/Maps/Files/Compound.ini | 23 +++++++++++++ src/Application/Maps/Files/CrackFactory.ini | 32 +++++++++++++++++++ src/Application/Maps/Files/DesertGlory.ini | 23 +++++++++++++ src/Application/Maps/Files/GateToHell.ini | 29 +++++++++++++++++ src/Application/Maps/Files/RC_Battlefield.ini | 26 +++++++++++++++ src/Application/Maps/Files/SA_Hill.ini | 23 +++++++++++++ src/Application/Maps/Files/Simpson.ini | 23 +++++++++++++ src/Application/Maps/Files/TheBunker.ini | 26 +++++++++++++++ .../Maps/Files/TheConstruction.ini | 26 +++++++++++++++ src/Application/Maps/Files/TheWild.ini | 29 +++++++++++++++++ src/Application/Maps/Files/WarZone.ini | 29 +++++++++++++++++ src/Application/Maps/Files/ZM_Italy.ini | 23 +++++++++++++ src/Application/Maps/Files/cs_assault.ini | 26 +++++++++++++++ src/Application/Maps/Files/cs_deagle5.ini | 23 +++++++++++++ src/Application/Maps/Files/cs_rockwar.ini | 29 +++++++++++++++++ src/Application/Maps/Files/de_aztec.ini | 29 +++++++++++++++++ src/Application/Maps/Files/de_dust2.ini | 23 +++++++++++++ src/Application/Maps/Files/de_dust2_small.ini | 23 +++++++++++++ src/Application/Maps/Files/de_dust2_x1.ini | 23 +++++++++++++ src/Application/Maps/Files/de_dust2_x2.ini | 23 +++++++++++++ src/Application/Maps/Files/de_dust2_x3.ini | 23 +++++++++++++ src/Application/Maps/Files/de_dust5.ini | 23 +++++++++++++ src/Application/Maps/Files/fy_iceworld.ini | 26 +++++++++++++++ src/Application/Maps/Files/fy_iceworld2.ini | 29 +++++++++++++++++ src/Application/Maps/Files/fy_snow.ini | 23 +++++++++++++ src/Application/Maps/Files/fy_snow2.ini | 23 +++++++++++++ src/Application/Maps/Files/mp_island.ini | 23 +++++++++++++ src/Application/Maps/Files/mp_jetdoor.ini | 26 +++++++++++++++ src/Application/Maps/Files/zone_paintball.ini | 23 +++++++++++++ 33 files changed, 828 insertions(+) create mode 100644 src/Application/Maps/Files/Aim_Headshot.ini create mode 100644 src/Application/Maps/Files/Aim_Headshot2.ini create mode 100644 src/Application/Maps/Files/Area51.ini create mode 100644 src/Application/Maps/Files/Area66.ini create mode 100644 src/Application/Maps/Files/Compound.ini create mode 100644 src/Application/Maps/Files/CrackFactory.ini create mode 100644 src/Application/Maps/Files/DesertGlory.ini create mode 100644 src/Application/Maps/Files/GateToHell.ini create mode 100644 src/Application/Maps/Files/RC_Battlefield.ini create mode 100644 src/Application/Maps/Files/SA_Hill.ini create mode 100644 src/Application/Maps/Files/Simpson.ini create mode 100644 src/Application/Maps/Files/TheBunker.ini create mode 100644 src/Application/Maps/Files/TheConstruction.ini create mode 100644 src/Application/Maps/Files/TheWild.ini create mode 100644 src/Application/Maps/Files/WarZone.ini create mode 100644 src/Application/Maps/Files/ZM_Italy.ini create mode 100644 src/Application/Maps/Files/cs_assault.ini create mode 100644 src/Application/Maps/Files/cs_deagle5.ini create mode 100644 src/Application/Maps/Files/cs_rockwar.ini create mode 100644 src/Application/Maps/Files/de_aztec.ini create mode 100644 src/Application/Maps/Files/de_dust2.ini create mode 100644 src/Application/Maps/Files/de_dust2_small.ini create mode 100644 src/Application/Maps/Files/de_dust2_x1.ini create mode 100644 src/Application/Maps/Files/de_dust2_x2.ini create mode 100644 src/Application/Maps/Files/de_dust2_x3.ini create mode 100644 src/Application/Maps/Files/de_dust5.ini create mode 100644 src/Application/Maps/Files/fy_iceworld.ini create mode 100644 src/Application/Maps/Files/fy_iceworld2.ini create mode 100644 src/Application/Maps/Files/fy_snow.ini create mode 100644 src/Application/Maps/Files/fy_snow2.ini create mode 100644 src/Application/Maps/Files/mp_island.ini create mode 100644 src/Application/Maps/Files/mp_jetdoor.ini create mode 100644 src/Application/Maps/Files/zone_paintball.ini diff --git a/src/Application/Maps/Files/Aim_Headshot.ini b/src/Application/Maps/Files/Aim_Headshot.ini new file mode 100644 index 00000000..50f5ba3d --- /dev/null +++ b/src/Application/Maps/Files/Aim_Headshot.ini @@ -0,0 +1,23 @@ +[Alpha] +-129.5612,81.0056,3.1172,156.7189 +-127.6526,87.7695,3.1172,156.7189 +-134.9525,90.2646,3.1172,167.0590 +-138.4023,83.5352,3.1172,163.6123 +-145.3216,85.1476,3.1172,163.6123 +-152.4534,80.4830,3.1094,163.6123 +-161.3326,83.2152,3.1094,167.3724 +-159.6665,98.1220,3.1121,165.8291 +-173.8980,102.8791,3.1668,162.3824 +-186.4793,93.0401,3.1172,162.3824 + +[Beta] +-277.0338,-85.0175,2.8617,345.0341 +-277.7510,-90.4126,2.7030,345.0341 +-270.0297,-92.0674,3.0969,345.0341 +-263.8904,-93.2464,3.1172,345.0341 +-262.2849,-87.2403,3.1172,345.0341 +-255.3565,-84.1217,3.1172,345.0341 +-245.9794,-86.1564,3.1172,345.0341 +-247.4499,-99.9677,3.1172,345.0341 +-235.9863,-102.5671,3.1094,345.3474 +-220.4884,-110.9102,3.1172,352.5542 \ No newline at end of file diff --git a/src/Application/Maps/Files/Aim_Headshot2.ini b/src/Application/Maps/Files/Aim_Headshot2.ini new file mode 100644 index 00000000..b0665df2 --- /dev/null +++ b/src/Application/Maps/Files/Aim_Headshot2.ini @@ -0,0 +1,23 @@ +[Alpha] +3135.0095,-1951.7092,29.7594,177.3993 +3127.7036,-1951.8118,29.7750,177.7126 +3118.8323,-1951.8817,29.7948,177.7126 +3110.2168,-1951.4366,29.8226,177.7126 +3100.7705,-1951.4370,29.8450,177.7126 +3101.8120,-1970.7468,23.6870,191.1861 +3107.7581,-1970.7133,23.7226,183.6661 +3113.6248,-1970.7870,23.7581,183.6661 +3120.4753,-1970.9171,23.7996,178.9660 +3128.0989,-1970.3503,23.8438,176.7727 + +[Beta] +3096.4604,-2066.2092,30.0486,3.2076 +3103.0786,-2066.8262,30.0666,0.3876 +3110.2588,-2066.4280,30.0513,0.3876 +3116.1079,-2066.4033,30.0142,0.3876 +3127.3621,-2065.5085,29.9360,0.3876 +3099.8252,-2049.5215,23.8662,0.0742 +3105.6738,-2048.9641,23.9004,1.0142 +3111.9612,-2048.4937,23.9368,1.0142 +3118.2915,-2048.0261,23.9733,1.0142 +3126.2610,-2047.4581,24.0193,1.0142 \ No newline at end of file diff --git a/src/Application/Maps/Files/Area51.ini b/src/Application/Maps/Files/Area51.ini new file mode 100644 index 00000000..5ef950d4 --- /dev/null +++ b/src/Application/Maps/Files/Area51.ini @@ -0,0 +1,29 @@ +[Alpha] +274.1718,1889.3787,7.9736,178.8448 +270.8778,1889.0217,7.9736,178.8448 +266.1731,1889.7405,7.9736,176.6514 +262.4897,1889.0963,7.9736,176.6514 +262.6836,1886.2330,7.9736,181.3515 +267.9928,1885.6332,7.9736,181.3515 +273.9212,1885.3027,7.9736,181.3515 +274.1799,1880.8765,7.9736,183.5449 +266.7765,1880.0331,7.9736,183.5449 +262.5721,1879.3914,7.9736,183.5449 + +[Beta] +203.7018,1860.7205,13.1406,267.4956 +204.3426,1866.1722,13.1406,267.4956 +204.9689,1871.4957,13.1406,267.4956 +210.0249,1872.7759,13.1406,267.4956 +210.5978,1867.3236,13.1406,267.4956 +210.5721,1859.0951,13.1406,266.8689 +218.1441,1855.8999,12.9948,266.8689 +219.0185,1864.7566,13.1406,266.8689 +219.7373,1870.1967,13.1406,266.8689 +224.5002,1867.4492,13.1406,359.2797 + +[Weather] +8 + +[WorldTime] +5 \ No newline at end of file diff --git a/src/Application/Maps/Files/Area66.ini b/src/Application/Maps/Files/Area66.ini new file mode 100644 index 00000000..06d4e21d --- /dev/null +++ b/src/Application/Maps/Files/Area66.ini @@ -0,0 +1,23 @@ +[Alpha] +2158.0247,-3855.2444,8.5145,310.5162 +2152.9380,-3847.7720,8.5145,303.9362 +2147.6165,-3840.1572,8.5145,305.5029 +2152.8533,-3836.1064,8.5145,308.0095 +2159.3586,-3831.1907,8.5145,305.1895 +2166.3206,-3836.9807,8.5145,301.1161 +2172.3928,-3844.8879,8.5145,327.4364 +2187.9810,-3853.9734,8.5145,352.1900 +2153.7380,-3813.1829,8.5145,260.6958 +2160.3462,-3841.5781,9.5840,294.5361 + +[Beta] +2318.9922,-3419.0669,8.5145,142.9281 +2324.1377,-3424.8850,8.5145,131.3346 +2331.7302,-3432.8535,8.5145,128.5146 +2327.5012,-3438.4927,8.5145,131.9613 +2320.8267,-3443.0859,8.5145,125.3812 +2314.2546,-3437.4436,8.5145,132.2746 +2306.4429,-3431.0190,8.5145,154.5215 +2289.7561,-3428.6301,8.5145,203.0887 +2324.0210,-3461.7532,8.5145,76.1874 +2319.0933,-3432.0413,9.5763,126.3212 \ No newline at end of file diff --git a/src/Application/Maps/Files/Compound.ini b/src/Application/Maps/Files/Compound.ini new file mode 100644 index 00000000..658ff5f2 --- /dev/null +++ b/src/Application/Maps/Files/Compound.ini @@ -0,0 +1,23 @@ +[Alpha] +2030.2408,255.3289,248.8178,90.9183 +2029.6740,263.0668,248.8178,90.9183 +2029.1130,275.3492,248.8178,91.2316 +2027.6245,286.4270,248.8178,115.6719 +2015.7562,286.3731,248.8178,89.0383 +2015.6172,277.2291,248.8178,90.2916 +2016.7008,267.0775,248.8178,85.5916 +2015.3552,254.2865,248.8178,85.5916 +2007.5742,254.4396,248.8178,343.4439 +2030.3656,299.2522,248.8178,175.8090 + +[Beta] +1863.5652,313.3448,248.8178,272.5831 +1863.5531,320.3714,248.8178,275.4031 +1864.1598,331.1123,248.8178,261.6164 +1873.3802,333.3292,248.8178,271.0165 +1873.2858,323.5585,248.8178,267.2564 +1883.6218,331.5376,248.8178,268.5098 +1896.1394,332.4847,248.8178,92.4148 +1893.3344,320.6938,248.8178,90.5348 +1871.9673,347.0481,248.8178,266.2931 +1874.9197,338.9482,248.8178,282.8999 \ No newline at end of file diff --git a/src/Application/Maps/Files/CrackFactory.ini b/src/Application/Maps/Files/CrackFactory.ini new file mode 100644 index 00000000..31b697a8 --- /dev/null +++ b/src/Application/Maps/Files/CrackFactory.ini @@ -0,0 +1,32 @@ +[Alpha] +2548.7009,-1283.2224,1060.9844,230.3022 +2565.8301,-1281.7773,1065.3672,238.1356 +2575.7759,-1283.3206,1065.3672,177.9750 +2580.8525,-1284.6443,1065.3579,88.0476 +2568.5518,-1283.6564,1060.9844,181.0851 +2565.0220,-1290.9614,1060.9844,224.6389 +2565.4963,-1301.7297,1060.9844,275.0860 +2558.1384,-1304.1283,1060.9844,272.2661 +2558.3372,-1298.2233,1060.9844,272.2661 +2558.2466,-1293.2781,1062.0391,260.6727 + +[Beta] +2532.1660,-1283.6971,1031.4219,270.0725 +2532.5823,-1292.2178,1031.4219,275.7126 +2532.9485,-1302.3477,1031.4219,269.4458 +2541.2852,-1303.9135,1031.4219,269.4458 +2542.1389,-1293.7726,1031.4219,262.8658 +2542.5986,-1282.2380,1031.4219,264.1191 +2550.1204,-1282.6653,1031.4219,263.8058 +2551.0386,-1293.5071,1031.4219,277.2793 +2553.0278,-1305.5601,1031.4219,277.2793 +2560.5957,-1291.2533,1031.4219,265.3724 + +[Interior] +2 + +[Weather] +9 + +[WorldTime] +22 \ No newline at end of file diff --git a/src/Application/Maps/Files/DesertGlory.ini b/src/Application/Maps/Files/DesertGlory.ini new file mode 100644 index 00000000..3e70788d --- /dev/null +++ b/src/Application/Maps/Files/DesertGlory.ini @@ -0,0 +1,23 @@ +[Alpha] +-1653.2010,-226.2253,265.9619,181.3516 +-1645.1259,-226.4343,265.9619,181.3516 +-1634.3878,-226.5849,265.9619,181.3516 +-1622.8600,-227.8519,265.9619,175.7115 +-1622.0652,-237.3373,265.9619,184.7983 +-1632.1815,-238.6525,265.9619,184.7983 +-1644.1536,-240.0769,265.9619,184.7983 +-1653.8022,-241.2988,265.9619,184.7983 +-1665.3876,-247.1903,265.9619,204.2252 +-1634.7794,-250.6799,265.9619,179.4715 + +[Beta] +-1542.3864,-510.7887,265.9619,359.9533 +-1550.5566,-510.3571,265.9619,359.9533 +-1560.6515,-509.9548,265.9619,359.9533 +-1572.8971,-509.4944,265.9619,359.9533 +-1585.0007,-505.2358,265.9619,4.6534 +-1569.1410,-499.6516,265.9619,1.5200 +-1557.9012,-498.9355,265.9619,1.5200 +-1545.6387,-497.8590,265.9619,1.5200 +-1530.6692,-497.0673,265.9619,1.5200 +-1535.6615,-488.2272,265.9619,1.5200 \ No newline at end of file diff --git a/src/Application/Maps/Files/GateToHell.ini b/src/Application/Maps/Files/GateToHell.ini new file mode 100644 index 00000000..74de0fba --- /dev/null +++ b/src/Application/Maps/Files/GateToHell.ini @@ -0,0 +1,29 @@ +[Alpha] +3274.9690,-1672.4760,168.0839,93.1118 +3274.4111,-1668.4269,168.0105,92.7985 +3274.1060,-1665.0518,167.9483,88.4117 +3273.8604,-1660.9714,167.8721,88.4117 +3273.6243,-1656.5548,167.7896,88.4117 +3270.3975,-1655.9285,167.7996,87.1584 +3268.7722,-1658.9390,167.8680,87.1584 +3268.2183,-1662.8839,167.9470,87.1584 +3267.1907,-1667.3782,168.0397,87.1584 +3262.4084,-1664.2148,168.0119,120.0587 + +[Beta] +3093.9414,-1688.0375,158.4888,186.4859 +3097.0703,-1688.0946,158.4812,186.4859 +3102.1755,-1689.0255,158.4888,177.7125 +3103.9797,-1693.7493,158.6272,95.3051 +3102.5417,-1698.4216,159.1233,139.1721 +3092.4761,-1700.5328,159.4099,237.8731 +3089.2456,-1695.2534,158.7764,273.5934 +3090.4512,-1690.3799,158.4888,234.7397 +3095.0112,-1692.9312,159.5845,186.7993 +3097.7090,-1694.3888,159.6511,182.4126 + +[Weather] +11 + +[WorldTime] +20 \ No newline at end of file diff --git a/src/Application/Maps/Files/RC_Battlefield.ini b/src/Application/Maps/Files/RC_Battlefield.ini new file mode 100644 index 00000000..b42e0697 --- /dev/null +++ b/src/Application/Maps/Files/RC_Battlefield.ini @@ -0,0 +1,26 @@ +[Alpha] +-1136.4539,1098.1666,1345.8258,269.4457 +-1135.1912,1093.8064,1345.8119,267.8791 +-1135.6179,1088.5378,1345.8096,267.8791 +-1135.4375,1082.0457,1345.8021,267.8791 +-1135.2130,1075.4181,1345.7941,267.8791 +-1135.0983,1066.7756,1345.7872,267.8791 +-1129.9963,1067.1566,1345.7528,274.1458 +-1129.5995,1074.0201,1345.7581,274.1458 +-1129.0844,1081.9758,1345.7615,268.5057 +-1131.0197,1092.0566,1345.7826,264.1190 + +[Beta] +-969.8113,1021.9630,1345.0767,89.9275 +-970.1436,1028.6224,1345.0679,88.9874 +-970.4197,1036.5406,1345.0582,88.9874 +-969.6072,1046.1462,1345.0544,88.9874 +-970.4572,1055.3048,1345.0397,88.9874 +-976.7345,1054.0677,1344.9979,90.8674 +-976.9385,1044.5823,1345.0059,88.6741 +-977.0988,1035.4301,1345.0137,88.6741 +-976.4217,1024.6754,1345.0288,92.1208 +-976.2883,1020.3914,1345.0339,93.3741 + +[Interior] +10 \ No newline at end of file diff --git a/src/Application/Maps/Files/SA_Hill.ini b/src/Application/Maps/Files/SA_Hill.ini new file mode 100644 index 00000000..ab619284 --- /dev/null +++ b/src/Application/Maps/Files/SA_Hill.ini @@ -0,0 +1,23 @@ +[Alpha] +524.6265,-2452.1128,17.7816,269.1792 +529.6189,-2452.1846,17.7816,269.1792 +529.9183,-2461.1907,17.7816,266.3592 +530.3346,-2470.6594,17.7816,281.7127 +524.9189,-2470.6074,17.7816,287.3527 +539.1684,-2472.6079,17.7816,286.4127 +537.5321,-2452.4692,17.7816,265.4191 +533.1941,-2452.0603,19.9958,272.3125 +548.9929,-2464.2104,20.0764,359.1067 +526.0565,-2461.1157,19.7680,271.9759 + +[Beta] +673.4208,-2471.9617,17.7816,93.6876 +673.0779,-2465.8335,17.7816,94.9410 +672.8025,-2459.8650,17.7816,82.0942 +673.4128,-2451.0491,17.7816,105.9077 +667.2205,-2452.2200,17.7816,105.2811 +662.9964,-2455.8127,17.7816,88.0476 +662.2356,-2465.7839,17.7816,88.0476 +661.4607,-2472.0854,17.7894,88.0476 +656.7994,-2462.5986,17.7816,91.1809 +651.3649,-2462.7102,20.1194,91.1809 \ No newline at end of file diff --git a/src/Application/Maps/Files/Simpson.ini b/src/Application/Maps/Files/Simpson.ini new file mode 100644 index 00000000..ea605c81 --- /dev/null +++ b/src/Application/Maps/Files/Simpson.ini @@ -0,0 +1,23 @@ +[Alpha] +631.6804,1739.0253,501.5315,177.6383 +628.7578,1738.7491,501.5315,177.6383 +625.2876,1738.4983,501.5314,177.6383 +622.5142,1738.1760,501.5314,177.6383 +620.2277,1737.3713,501.5304,177.6383 +621.0443,1745.1467,498.0546,178.9150 +623.7411,1744.7461,498.0546,178.9150 +626.6167,1744.2882,498.0546,178.9150 +630.5735,1743.8160,498.0546,178.9150 +633.2531,1744.7001,498.0546,178.9150 + +[Beta] +620.9976,1703.1520,501.5310,0.6267 +623.1171,1703.6747,501.5310,2.8201 +626.3206,1704.2292,501.5317,2.8201 +628.8699,1704.7319,501.5317,2.8201 +631.8885,1705.2688,501.5321,2.8201 +619.2932,1696.6735,498.0546,1.5667 +622.6071,1697.3009,498.0546,3.7601 +626.5843,1697.9843,498.0546,3.7601 +629.8161,1697.2092,498.0546,3.7601 +634.2712,1697.9205,498.0546,3.7601 \ No newline at end of file diff --git a/src/Application/Maps/Files/TheBunker.ini b/src/Application/Maps/Files/TheBunker.ini new file mode 100644 index 00000000..f6726f0c --- /dev/null +++ b/src/Application/Maps/Files/TheBunker.ini @@ -0,0 +1,26 @@ +[Alpha] +592.8154,-2433.9148,10.8944,79.0350 +593.3266,-2430.6772,10.8968,75.2750 +593.7708,-2427.1843,10.9065,81.8550 +594.2177,-2425.0789,10.9081,78.0950 +591.5002,-2424.4595,10.9011,77.1550 +590.2183,-2427.9417,10.8983,77.1550 +588.6526,-2431.8225,10.8952,77.1550 +584.6981,-2430.9185,10.9023,348.4808 +575.6008,-2417.5117,10.9036,252.9133 +584.4872,-2417.1072,10.9053,166.1425 + +[Beta] +891.1278,-2397.3025,19.8204,87.1585 +889.6392,-2407.8728,20.2593,80.5784 +887.4858,-2418.1658,21.0038,80.5784 +885.3065,-2425.9482,21.5207,49.8714 +875.5358,-2419.4922,21.7868,67.4183 +876.6066,-2412.1060,22.0539,80.2651 +877.5095,-2404.7627,22.3557,80.2651 +878.8505,-2396.0938,22.6503,92.4852 +870.1289,-2393.8157,23.9384,92.4852 +864.5809,-2400.9045,25.0956,94.6786 + +[WorldTime] +23 \ No newline at end of file diff --git a/src/Application/Maps/Files/TheConstruction.ini b/src/Application/Maps/Files/TheConstruction.ini new file mode 100644 index 00000000..c140051d --- /dev/null +++ b/src/Application/Maps/Files/TheConstruction.ini @@ -0,0 +1,26 @@ +[Alpha] +2076.6748,1061.7410,476.7758,270.6058 +2076.2942,1071.1493,476.7758,273.1125 +2076.1174,1086.4053,477.5536,262.1458 +2084.8645,1095.2849,476.8290,271.5459 +2100.0337,1096.0536,476.7758,241.7789 +2088.3020,1080.4142,476.7758,275.6191 +2088.3372,1072.1584,476.7822,274.0525 +2107.6826,1060.7325,476.7758,327.0063 +2111.5581,1073.5750,476.7758,270.2925 +2119.4583,1057.4404,476.7758,305.0728 + +[Beta] +2240.2939,941.7416,476.0473,8.0300 +2227.9966,940.2764,475.7448,2.3899 +2209.6042,938.4466,475.7077,4.2700 +2206.2979,949.8488,475.7077,344.8431 +2224.2419,950.9100,475.7188,11.1633 +2237.7861,952.8008,475.8244,34.0369 +2237.7939,970.3250,475.7077,64.4305 +2207.2490,968.4916,475.7077,350.4832 +2254.5923,982.1379,475.8295,63.8039 +2205.2302,958.3261,475.7077,281.5493 + +[Weather] +12 \ No newline at end of file diff --git a/src/Application/Maps/Files/TheWild.ini b/src/Application/Maps/Files/TheWild.ini new file mode 100644 index 00000000..26fa472f --- /dev/null +++ b/src/Application/Maps/Files/TheWild.ini @@ -0,0 +1,29 @@ +[Alpha] +-2254.6338,1900.8910,100.2155,227.2430 +-2241.3894,1896.2594,102.7858,246.0432 +-2244.1335,1889.2263,103.6321,246.0432 +-2246.9988,1879.4545,105.2410,259.8300 +-2248.2219,1866.8461,108.0911,285.8369 +-2244.3398,1856.7350,111.4196,295.5503 +-2232.9404,1866.6824,110.8282,284.2702 +-2219.6140,1881.5078,108.8331,277.0634 +-2225.8865,1900.6715,103.3748,250.7432 +-2213.6099,1896.7827,108.1216,244.7898 + +[Beta] +-2191.2327,1758.7166,112.4979,359.7609 +-2181.8281,1760.7605,112.1644,9.1610 +-2173.0947,1764.0543,112.1001,20.1278 +-2162.6155,1771.2721,111.8005,48.6414 +-2163.0601,1783.9620,112.1602,40.4946 +-2172.9292,1786.4960,112.2046,16.0544 +-2184.7393,1786.6788,112.0514,333.7540 +-2195.7034,1792.1458,112.0839,256.9866 +-2195.7903,1806.0188,111.1194,312.1338 +-2202.1663,1797.1541,115.5429,327.1739 + +[Weather] +8 + +[WorldTime] +18 \ No newline at end of file diff --git a/src/Application/Maps/Files/WarZone.ini b/src/Application/Maps/Files/WarZone.ini new file mode 100644 index 00000000..0c43ab76 --- /dev/null +++ b/src/Application/Maps/Files/WarZone.ini @@ -0,0 +1,29 @@ +[Alpha] +-1361.5770,2531.9614,93.9766,274.8467 +-1360.5895,2525.5527,93.9766,274.8467 +-1359.6013,2518.1367,94.0347,274.8467 +-1360.3835,2511.8054,94.0347,266.0733 +-1359.9539,2502.3049,94.0828,273.9067 +-1359.0724,2495.8953,94.0828,273.9067 +-1358.4415,2487.7456,94.0303,269.2067 +-1357.5499,2476.2319,94.0381,278.6068 +-1360.5935,2467.9065,94.0381,270.4600 +-1359.0089,2459.2986,94.0633,271.7133 + +[Beta] +-1262.7394,2440.6177,94.0361,89.0616 +-1263.0089,2446.0381,94.0361,89.0616 +-1263.3616,2451.5520,94.0361,89.0616 +-1263.6271,2457.2244,94.0361,89.0616 +-1263.8870,2463.2375,94.0361,89.0616 +-1264.1414,2469.5830,94.0361,89.0616 +-1264.3887,2476.3643,94.0361,89.0616 +-1264.6412,2482.8198,94.1224,89.0616 +-1264.8656,2490.9934,94.1224,89.0616 +-1265.0806,2499.7429,94.1224,89.0616 + +[Weather] +50 + +[WorldTime] +0 \ No newline at end of file diff --git a/src/Application/Maps/Files/ZM_Italy.ini b/src/Application/Maps/Files/ZM_Italy.ini new file mode 100644 index 00000000..b1634e79 --- /dev/null +++ b/src/Application/Maps/Files/ZM_Italy.ini @@ -0,0 +1,23 @@ +[Alpha] +-4014.6306,-1133.8168,107.1583,313.0504 +-4009.9214,-1134.3419,107.1592,8.5110 +-4010.8088,-1128.7617,107.1617,184.2693 +-4001.8857,-1129.7975,107.1633,11.9577 +-4002.0845,-1134.3412,107.1611,9.4743 +-3997.1633,-1135.5808,107.1701,7.5943 +-3996.9368,-1129.8197,107.1645,0.7010 +-3991.5361,-1142.3916,107.1742,6.6543 +-3991.1956,-1137.6559,107.1745,0.7009 +-3987.3020,-1128.4504,107.1773,178.6759 + +[Beta] +-3948.7759,-1035.6813,107.9404,175.2291 +-3951.8606,-1035.7764,107.9340,175.2291 +-3955.0330,-1037.4443,107.9020,189.0159 +-3959.0698,-1037.3000,107.8911,189.0159 +-3962.8105,-1038.2520,107.8756,183.0625 +-3965.6316,-1041.4009,107.8276,183.0625 +-3965.0898,-1047.8712,107.7337,182.7492 +-3962.9980,-1051.8182,107.6766,271.7367 +-3956.6274,-1051.2816,107.6848,100.9684 +-3951.6501,-1051.2505,107.6856,102.2219 \ No newline at end of file diff --git a/src/Application/Maps/Files/cs_assault.ini b/src/Application/Maps/Files/cs_assault.ini new file mode 100644 index 00000000..9f032ad5 --- /dev/null +++ b/src/Application/Maps/Files/cs_assault.ini @@ -0,0 +1,26 @@ +[Alpha] +1951.2930,-2443.0417,15.8835,94.9918 +1955.8907,-2427.7234,15.8835,95.3052 +1932.7996,-2434.9675,16.0446,284.2469 +1933.3302,-2413.5896,16.0266,270.4601 +1959.3699,-2396.9949,21.4766,182.0993 +1941.9036,-2396.3044,21.2350,185.2327 +1935.8511,-2400.3149,21.2232,253.2266 +1932.6703,-2411.9165,21.2385,272.9668 +1932.2966,-2433.4741,21.2430,328.7407 +1932.9927,-2446.1880,18.0436,350.3609 + +[Beta] +1853.9275,-2467.7710,13.5547,353.2278 +1864.1841,-2469.1975,13.5547,358.8678 +1867.3278,-2458.1208,13.5547,6.3879 +1858.6993,-2456.1531,13.5547,349.7810 +1861.1115,-2436.3508,13.5547,283.3537 +1856.0217,-2413.8318,13.5547,238.8600 +1858.3375,-2400.2629,13.5547,184.3395 +1868.0935,-2396.8328,13.6030,179.3261 +1850.3311,-2387.6704,13.5547,185.6162 +1867.1493,-2421.3494,13.5547,224.0122 + +[WorldTime] +20 \ No newline at end of file diff --git a/src/Application/Maps/Files/cs_deagle5.ini b/src/Application/Maps/Files/cs_deagle5.ini new file mode 100644 index 00000000..6e2e468d --- /dev/null +++ b/src/Application/Maps/Files/cs_deagle5.ini @@ -0,0 +1,23 @@ +[Alpha] +66.4288,2476.9685,16.6857,92.7243 +65.9138,2480.5413,16.6857,90.8442 +65.4079,2484.6541,16.6857,90.8442 +64.9735,2488.3787,16.6857,90.8442 +65.7381,2497.2910,16.6857,84.8908 +67.4365,2507.6694,16.6857,83.0108 +67.2686,2511.9604,16.6857,84.8908 +66.9290,2517.2217,16.6857,88.0242 +65.8867,2530.2373,16.6857,90.2176 +61.7923,2534.5464,16.6857,98.0509 + +[Beta] +-48.5080,2477.4517,16.6857,270.0726 +-48.1457,2480.6843,16.6857,270.0726 +-47.7878,2484.3867,16.6857,270.0726 +-47.3919,2489.3105,16.6857,270.0726 +-46.9963,2494.4944,16.6857,270.0726 +-46.9170,2497.1936,16.6857,283.8594 +-47.4334,2501.0229,16.6857,273.2059 +-47.8474,2509.6943,16.6857,271.3259 +-44.2476,2518.3862,16.6857,270.0726 +-48.4613,2524.5649,16.6857,271.9760 \ No newline at end of file diff --git a/src/Application/Maps/Files/cs_rockwar.ini b/src/Application/Maps/Files/cs_rockwar.ini new file mode 100644 index 00000000..5cc1d025 --- /dev/null +++ b/src/Application/Maps/Files/cs_rockwar.ini @@ -0,0 +1,29 @@ +[Alpha] +1199.1923,2053.5850,143.4960,0.3642 +1194.8339,2053.7275,143.4960,2.8709 +1190.2040,2053.9375,143.4960,2.8709 +1186.8108,2054.1606,143.4960,2.2442 +1182.7269,2054.3591,143.4960,2.2442 +1178.6499,2054.5554,143.4960,2.2442 +1167.5458,2055.3684,143.4960,357.8341 +1163.4127,2055.8833,143.4960,357.8341 +1159.4974,2055.6907,143.4960,3.7875 +1149.1208,2054.2935,143.4960,358.7742 + +[Beta] +1146.3257,2115.1106,143.5038,226.5696 +1150.5636,2115.1021,143.4960,179.8824 +1154.6356,2114.7354,143.4960,179.8824 +1159.4426,2114.2825,143.4960,179.8824 +1164.5139,2113.9133,143.4960,179.8824 +1168.2430,2113.5471,143.4960,179.8824 +1178.1140,2113.9524,143.4960,188.0291 +1180.7157,2113.7356,143.4960,179.2557 +1183.7253,2113.3386,143.4960,179.2557 +1187.7933,2112.9280,143.4960,179.2557 + +[Weather] +40 + +[WorldTime] +20 \ No newline at end of file diff --git a/src/Application/Maps/Files/de_aztec.ini b/src/Application/Maps/Files/de_aztec.ini new file mode 100644 index 00000000..d8065f7b --- /dev/null +++ b/src/Application/Maps/Files/de_aztec.ini @@ -0,0 +1,29 @@ +[Alpha] +-3361.6487,-1527.0422,1.3591,97.7845 +-3361.6487,-1527.0422,1.3591,97.7845 +-3362.2214,-1523.0206,1.3591,92.7711 +-3362.7910,-1518.6259,1.3791,92.7711 +-3363.4751,-1513.6633,1.3791,92.7711 +-3363.9805,-1509.2786,1.3791,151.9917 +-3359.0071,-1509.2805,1.3791,182.3853 +-3356.5859,-1512.6044,1.3791,182.0720 +-3359.6641,-1513.2585,1.3791,182.0720 +-3367.8882,-1508.9312,0.7291,210.8989 + +[Beta] +-3497.8196,-1530.7451,6.5191,278.9397 +-3497.4778,-1534.6877,6.5191,269.2263 +-3497.1785,-1539.0875,6.5191,269.2263 +-3496.8049,-1544.2454,6.5191,269.2263 +-3496.4919,-1547.6298,6.5191,269.2263 +-3499.8733,-1546.8214,6.5191,269.2263 +-3499.4712,-1543.5586,6.5191,269.2263 +-3499.0552,-1539.2593,6.5191,269.2263 +-3498.6421,-1535.2046,6.5191,269.2263 +-3498.1440,-1531.1202,6.5191,269.2263 + +[Weather] +53 + +[WorldTime] +18 \ No newline at end of file diff --git a/src/Application/Maps/Files/de_dust2.ini b/src/Application/Maps/Files/de_dust2.ini new file mode 100644 index 00000000..056b3770 --- /dev/null +++ b/src/Application/Maps/Files/de_dust2.ini @@ -0,0 +1,23 @@ +[Alpha] +-669.9301,2567.7261,233.1899,4.0968 +-662.3662,2568.0757,233.1899,4.4101 +-655.0732,2569.0535,233.1899,4.4101 +-647.9728,2569.4668,233.1899,0.3367 +-638.0440,2570.3137,233.1899,0.3367 +-639.5786,2562.3525,233.1899,5.3501 +-648.1184,2562.6292,233.1899,3.7834 +-657.4561,2562.6628,233.1899,357.8300 +-669.2877,2562.1140,233.1899,356.8900 +-680.0007,2562.0994,233.1899,355.9500 + +[Beta] +-656.4174,2739.6848,219.2168,177.9750 +-650.9906,2739.0764,219.2168,177.9750 +-645.7310,2738.4836,219.2168,177.9750 +-645.8832,2734.1885,219.2168,177.9750 +-651.6318,2733.9893,219.2168,177.9750 +-656.4081,2733.0417,219.2168,177.9750 +-656.6006,2727.5969,219.4199,177.9750 +-651.1097,2726.9893,219.2168,177.9750 +-645.4995,2727.2031,219.2168,180.4818 +-644.1847,2722.3389,219.2168,177.9751 \ No newline at end of file diff --git a/src/Application/Maps/Files/de_dust2_small.ini b/src/Application/Maps/Files/de_dust2_small.ini new file mode 100644 index 00000000..2ebb3054 --- /dev/null +++ b/src/Application/Maps/Files/de_dust2_small.ini @@ -0,0 +1,23 @@ +[Alpha] +551.0983,-2346.7917,21.2222,87.4443 +550.8411,-2343.7151,21.2258,87.4443 +550.5829,-2339.8208,21.2295,87.4443 +547.5768,-2337.9485,21.2787,87.4443 +546.9608,-2342.5117,21.2849,87.4443 +546.4477,-2345.7212,21.2907,87.4443 +542.2518,-2345.5339,21.3636,87.4443 +541.9902,-2342.2146,21.3714,87.4443 +537.3602,-2337.9771,21.4146,4.6510 +521.0339,-2345.3982,21.4146,284.5094 + +[Beta] +466.5383,-2359.1289,19.5676,359.1069 +464.2357,-2356.5378,19.5676,4.7469 +469.7299,-2355.6960,19.5676,4.7469 +471.6035,-2350.1848,19.5676,4.7469 +465.3604,-2348.9814,19.5676,294.8729 +467.2872,-2342.9116,20.2420,357.2268 +472.8541,-2342.7727,20.2678,357.2268 +465.3369,-2338.8931,20.9868,355.6602 +469.6723,-2338.8235,20.9997,355.6602 +473.3263,-2336.1138,21.4236,18.2204 \ No newline at end of file diff --git a/src/Application/Maps/Files/de_dust2_x1.ini b/src/Application/Maps/Files/de_dust2_x1.ini new file mode 100644 index 00000000..12173dae --- /dev/null +++ b/src/Application/Maps/Files/de_dust2_x1.ini @@ -0,0 +1,23 @@ +[Alpha] +143.0992,1571.4447,50.1578,3.2076 +142.8365,1576.7993,50.1578,3.2076 +142.4981,1582.8369,50.1578,3.2076 +142.0829,1590.2450,50.1578,3.2076 +134.7231,1589.5183,50.1578,89.3751 +128.4045,1583.5237,50.1578,93.1351 +121.1933,1571.9312,50.1578,93.1351 +117.6822,1580.6498,50.1578,358.5076 +111.0327,1590.7256,50.1578,91.2551 +151.8522,1578.3458,48.4282,3.5444 + +[Beta] +189.9555,1789.0250,42.6203,179.9760 +189.8947,1783.6633,42.6203,179.3494 +194.9825,1783.5128,42.6203,182.4828 +199.6116,1783.4681,42.6270,182.4828 +206.7419,1783.4187,42.6203,182.4828 +211.7888,1776.3341,42.6203,181.8561 +207.6024,1776.0618,42.6203,88.7952 +196.7002,1773.7798,42.6270,354.1676 +191.2338,1774.3287,42.6270,354.1676 +180.5120,1785.6130,42.6203,270.2169 \ No newline at end of file diff --git a/src/Application/Maps/Files/de_dust2_x2.ini b/src/Application/Maps/Files/de_dust2_x2.ini new file mode 100644 index 00000000..28369b17 --- /dev/null +++ b/src/Application/Maps/Files/de_dust2_x2.ini @@ -0,0 +1,23 @@ +[Alpha] +119.8855,2003.2329,19.9234,1.3042 +124.2207,2003.3458,19.9234,359.1108 +124.3043,2008.7290,19.9234,359.1108 +119.5755,2011.1010,19.9234,359.1108 +119.3095,2016.8264,19.9234,359.1108 +124.3915,2019.4412,19.9234,359.1108 +125.6652,2031.2169,18.4099,92.1717 +117.5531,2026.8528,18.6143,92.4850 +112.7141,2021.0238,18.7487,84.6516 +114.4898,2033.9099,18.4553,106.5852 + +[Beta] +12.0713,2043.5754,17.7020,271.0166 +17.7730,2043.6764,17.6896,271.0166 +18.2212,2038.6116,17.6406,271.0166 +18.6879,2032.5052,17.6406,271.0166 +19.1790,2025.0264,17.6406,271.0166 +11.8089,2024.4734,17.6473,269.4265 +12.2090,2029.4895,17.6473,269.4265 +12.6159,2035.1863,17.6473,269.4265 +11.7392,2014.6735,17.8401,265.0632 +14.2811,2006.1548,17.8401,2.8241 \ No newline at end of file diff --git a/src/Application/Maps/Files/de_dust2_x3.ini b/src/Application/Maps/Files/de_dust2_x3.ini new file mode 100644 index 00000000..4b2e1b8f --- /dev/null +++ b/src/Application/Maps/Files/de_dust2_x3.ini @@ -0,0 +1,23 @@ +[Alpha] +-1076.5094,2609.5681,141.2628,182.6517 +-1071.4005,2609.3518,141.2628,182.6517 +-1065.7511,2609.0935,141.2628,182.6517 +-1060.0747,2604.7991,141.2628,185.1584 +-1059.5304,2598.7686,141.2628,185.1584 +-1058.8413,2591.1296,141.2628,185.1584 +-1066.5577,2589.9866,141.2628,185.1584 +-1073.0854,2589.0691,141.2628,183.5917 +-1078.5083,2588.2754,141.2628,183.5917 +-1083.1416,2589.3928,139.5197,276.0258 + +[Beta] +-1088.3314,2411.1218,127.0129,12.8041 +-1096.9119,2410.9363,127.0129,358.3907 +-1103.3280,2411.5601,127.0129,358.3907 +-1103.1876,2416.5513,127.0129,358.3907 +-1096.3082,2417.8738,127.0129,358.3907 +-1089.4492,2418.8762,127.0129,0.8973 +-1088.1395,2425.1792,127.0129,4.6574 +-1093.7845,2425.5471,127.0129,359.3307 +-1100.9735,2426.0562,127.0129,359.3307 +-1109.9390,2427.2339,128.7179,195.7691 \ No newline at end of file diff --git a/src/Application/Maps/Files/de_dust5.ini b/src/Application/Maps/Files/de_dust5.ini new file mode 100644 index 00000000..ac5245d3 --- /dev/null +++ b/src/Application/Maps/Files/de_dust5.ini @@ -0,0 +1,23 @@ +[Alpha] +560.2054,-2453.2395,12.3350,92.6305 +559.8215,-2446.8892,12.3350,130.2308 +552.6857,-2444.8403,12.3350,186.6314 +553.5848,-2450.4438,14.5238,134.6175 +553.5755,-2452.6921,16.6878,107.3573 +543.5572,-2447.2249,12.3350,193.8147 +548.1649,-2454.1919,12.3350,174.0745 +539.8318,-2454.5381,12.3350,185.9812 +539.1287,-2460.5676,12.3350,179.7145 +548.2609,-2463.2827,12.3350,183.7879 + +[Beta] +401.1117,-2482.2688,12.3350,182.8714 +396.4311,-2482.1946,12.3350,181.9314 +391.2772,-2483.5254,12.3350,195.4048 +392.4164,-2491.0613,12.3350,233.9453 +398.9259,-2491.9358,12.3350,176.6047 +401.6145,-2502.9536,12.3350,181.9315 +391.7648,-2508.8220,12.3350,196.6583 +393.3364,-2523.7463,12.3350,291.2858 +394.6246,-2504.5686,14.3385,315.4852 +393.1626,-2499.7234,16.6878,198.5382 \ No newline at end of file diff --git a/src/Application/Maps/Files/fy_iceworld.ini b/src/Application/Maps/Files/fy_iceworld.ini new file mode 100644 index 00000000..654a53c1 --- /dev/null +++ b/src/Application/Maps/Files/fy_iceworld.ini @@ -0,0 +1,26 @@ +[Alpha] +-372.3682,3151.0010,25.2089,96.1942 +-368.7675,3157.0830,25.2089,92.1208 +-373.2101,3158.3303,25.2089,92.1208 +-369.8257,3163.9590,25.2089,94.9408 +-373.0765,3167.4539,25.2089,93.3741 +-373.7389,3171.8723,25.2089,93.3741 +-369.2356,3174.6270,25.2089,91.4941 +-369.3762,3181.0840,25.2089,91.8074 +-373.6253,3180.9839,25.2089,92.1207 +-368.8558,3190.1553,25.2089,91.8074 + +[Beta] +-413.6060,3189.8655,25.2089,269.7824 +-411.8539,3186.1338,25.2089,269.1558 +-416.5368,3183.6323,25.2089,269.4691 +-412.7262,3181.5247,25.2089,269.4691 +-416.5819,3177.0405,25.2089,275.4225 +-412.8896,3173.1372,25.2089,270.7225 +-413.8066,3167.8850,25.2089,272.9158 +-416.3889,3161.6323,25.2089,273.8558 +-412.3153,3160.3589,25.2089,267.5891 +-416.0299,3151.3928,25.2089,267.9025 + +[WorldTime] +19 \ No newline at end of file diff --git a/src/Application/Maps/Files/fy_iceworld2.ini b/src/Application/Maps/Files/fy_iceworld2.ini new file mode 100644 index 00000000..6097d7f2 --- /dev/null +++ b/src/Application/Maps/Files/fy_iceworld2.ini @@ -0,0 +1,29 @@ +[Alpha] +-179.8633,1353.9165,1133.0581,92.5276 +-180.5565,1361.2913,1133.0581,92.5276 +-181.2746,1368.9706,1133.0581,92.5276 +-180.8687,1376.2174,1133.0581,92.5276 +-181.1496,1381.8474,1133.0581,92.5276 +-180.8848,1389.3093,1133.0581,92.5276 +-181.5493,1395.5526,1133.0581,92.5276 +-181.2193,1401.3604,1133.0581,92.5276 +-181.4124,1408.0603,1133.0581,92.5276 +-181.3317,1414.7081,1133.0581,92.5276 + +[Beta] +-259.4254,1410.4475,1133.0581,275.8759 +-259.4109,1404.9280,1133.0503,268.9825 +-259.1616,1398.6016,1133.0503,268.9825 +-258.9162,1390.8751,1133.0503,268.9825 +-258.6426,1384.6238,1133.0503,268.9825 +-258.3881,1378.4149,1133.0581,268.9825 +-258.8628,1373.0563,1133.0581,268.9825 +-258.6558,1365.8923,1133.0581,268.9825 +-258.4535,1357.3385,1133.0581,268.9825 +-258.2224,1347.6072,1133.0581,268.9825 + +[Weather] +35 + +[WorldTime] +2 \ No newline at end of file diff --git a/src/Application/Maps/Files/fy_snow.ini b/src/Application/Maps/Files/fy_snow.ini new file mode 100644 index 00000000..910d91b4 --- /dev/null +++ b/src/Application/Maps/Files/fy_snow.ini @@ -0,0 +1,23 @@ +[Alpha] +-2323.3496,-1567.6365,1287.8210,354.9867 +-2323.3862,-1560.9791,1287.8210,0.3134 +-2316.2983,-1562.5337,1287.8210,0.9401 +-2314.8745,-1569.0963,1287.8210,2.5068 +-2308.9846,-1563.1633,1287.8210,1.2534 +-2300.8904,-1567.8193,1287.8210,5.6402 +-2290.8779,-1569.0896,1287.8210,359.0602 +-2291.6919,-1561.7869,1287.8210,359.0602 +-2283.4854,-1569.0551,1287.8210,8.7737 +-2271.3679,-1567.5569,1287.8210,21.3071 + +[Beta] +-2281.6316,-1523.0906,1287.8210,182.9886 +-2281.9165,-1513.3104,1287.8210,183.9287 +-2290.1670,-1512.7667,1287.8210,180.4820 +-2291.0520,-1519.3511,1287.8210,180.1686 +-2297.9731,-1514.9285,1287.8210,184.8687 +-2309.1184,-1519.2896,1287.8210,177.9752 +-2309.1733,-1513.1965,1287.8210,183.9286 +-2319.8179,-1512.9851,1287.8210,187.6887 +-2319.6086,-1520.9521,1287.8210,183.6153 +-2333.1160,-1514.9375,1287.8210,213.0689 \ No newline at end of file diff --git a/src/Application/Maps/Files/fy_snow2.ini b/src/Application/Maps/Files/fy_snow2.ini new file mode 100644 index 00000000..2587a0f4 --- /dev/null +++ b/src/Application/Maps/Files/fy_snow2.ini @@ -0,0 +1,23 @@ +[Alpha] +39.7530,1491.3424,12.7500,90.5542 +44.5623,1501.0831,12.7500,93.0609 +37.9868,1506.2257,12.7500,93.0609 +45.3393,1507.0083,12.7500,83.6608 +42.9517,1515.2280,12.7500,87.4209 +38.3068,1525.4397,12.7560,87.4209 +44.6101,1527.3783,12.7560,94.9410 +43.6591,1535.1487,12.7500,89.3009 +46.6689,1549.7229,12.7500,110.2710 +49.0553,1501.8490,14.0457,90.8442 + +[Beta] +-21.4892,1547.7408,12.7500,271.9292 +-21.4675,1536.7697,12.7560,276.6293 +-11.8862,1534.3207,12.7560,270.0492 +-12.0646,1526.1538,12.7500,270.0492 +-21.0470,1526.0854,12.7560,270.0492 +-20.6394,1514.8779,12.7500,270.0492 +-11.5434,1513.6584,12.7500,270.0492 +-11.1164,1506.0215,12.7500,270.0492 +-21.7734,1502.7694,12.7500,265.3492 +-21.4350,1490.5544,12.7500,291.0428 \ No newline at end of file diff --git a/src/Application/Maps/Files/mp_island.ini b/src/Application/Maps/Files/mp_island.ini new file mode 100644 index 00000000..a08f4dc7 --- /dev/null +++ b/src/Application/Maps/Files/mp_island.ini @@ -0,0 +1,23 @@ +[Alpha] +3585.7258,1274.0166,30.8687,181.4258 +3588.9329,1262.2716,30.8687,88.0516 +3588.2554,1256.8756,30.8687,85.2316 +3587.3904,1250.8126,30.8687,85.2316 +3593.4922,1242.5599,30.8687,83.6649 +3592.7371,1239.0006,30.8687,83.6649 +3592.2996,1235.3254,30.8687,84.2916 +3592.0828,1230.4924,30.8687,84.6049 +3591.7773,1224.3538,30.8687,88.9916 +3589.4907,1211.8466,30.8687,8.8009 + +[Beta] +3490.9448,1218.0336,30.8687,269.1599 +3491.4265,1223.1649,30.8687,269.1599 +3491.9070,1229.5614,30.8687,269.1599 +3492.4182,1234.7572,30.8687,269.1599 +3492.8774,1238.6390,30.8687,269.1599 +3493.3821,1242.9308,30.8687,269.1599 +3493.8916,1247.9011,30.8687,269.1599 +3494.3987,1252.5872,30.8687,269.1599 +3494.9209,1258.2722,30.8687,269.1599 +3490.0466,1266.5525,30.8687,274.5101 \ No newline at end of file diff --git a/src/Application/Maps/Files/mp_jetdoor.ini b/src/Application/Maps/Files/mp_jetdoor.ini new file mode 100644 index 00000000..37357567 --- /dev/null +++ b/src/Application/Maps/Files/mp_jetdoor.ini @@ -0,0 +1,26 @@ +[Alpha] +1924.6316,-2570.1958,13.5469,263.9034 +1924.5703,-2565.7947,13.5469,270.7968 +1924.9493,-2560.9683,13.5469,270.7968 +1925.2819,-2556.2283,13.5469,270.7968 +1925.6493,-2550.9736,13.5469,270.7968 +1925.9901,-2547.4990,13.5469,270.7968 +1926.3241,-2542.6313,13.5469,270.7968 +1926.6416,-2536.8364,13.5469,270.7968 +1926.9790,-2531.8003,13.5469,270.7968 +1927.2733,-2524.2292,13.5469,270.7968 + +[Beta] +2036.6779,-2570.9531,13.5469,87.2052 +2036.4393,-2567.5505,13.5469,87.2052 +2036.2686,-2562.9453,13.5469,87.2052 +2036.0927,-2558.4614,13.5469,87.2052 +2035.9241,-2553.0352,13.5469,87.2052 +2036.9818,-2546.1816,13.5469,87.8319 +2036.7446,-2541.9917,13.5469,87.8319 +2036.4990,-2538.1726,13.5469,87.8319 +2036.2910,-2533.4944,13.5469,87.8319 +2036.7222,-2527.1538,13.5469,87.8319 + +[Weather] +12 \ No newline at end of file diff --git a/src/Application/Maps/Files/zone_paintball.ini b/src/Application/Maps/Files/zone_paintball.ini new file mode 100644 index 00000000..82caacb7 --- /dev/null +++ b/src/Application/Maps/Files/zone_paintball.ini @@ -0,0 +1,23 @@ +[Alpha] +3117.3726,-1394.0422,11.1078,184.2927 +3123.3052,-1394.4641,11.1078,178.3393 +3128.4844,-1395.0371,11.1078,178.3393 +3134.3262,-1396.0936,11.1078,178.3393 +3139.4006,-1396.6395,11.1078,178.3393 +3145.5195,-1397.2377,11.1078,178.3393 +3151.4617,-1397.7628,11.1078,178.3393 +3156.9575,-1398.3308,11.1078,178.3393 +3165.1692,-1399.1538,11.1078,148.2590 +3165.1494,-1386.9292,11.1078,168.6259 + +[Beta] +3120.3904,-1617.1298,11.1078,4.5078 +3124.4346,-1616.5570,11.1078,2.9411 +3129.1563,-1615.9558,11.1078,2.9411 +3133.7585,-1615.7980,11.1078,2.9411 +3138.4802,-1615.1968,11.1078,2.9411 +3143.8840,-1614.4761,11.1078,2.9411 +3148.5901,-1613.8717,11.1078,2.9411 +3154.2598,-1613.4854,11.1000,2.9411 +3160.3333,-1612.8148,11.1078,2.9411 +3169.6145,-1606.3535,11.1078,87.5419 \ No newline at end of file From abcc9e0317fa4b8cdf86fe4bba2989b2d39d3a9d Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Fri, 23 Aug 2024 09:49:06 -0500 Subject: [PATCH 03/15] chore: Copy map files to the output directory --- src/Application/CTF.Application.csproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Application/CTF.Application.csproj b/src/Application/CTF.Application.csproj index 7d5bf1dc..4f2f4d3b 100644 --- a/src/Application/CTF.Application.csproj +++ b/src/Application/CTF.Application.csproj @@ -29,4 +29,8 @@ + + + + From 2344b30d9a845d81474ec7bafb9e2f33135c920d Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Fri, 23 Aug 2024 09:49:24 -0500 Subject: [PATCH 04/15] chore: Update global usings --- tests/Application.Tests/Usings.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Application.Tests/Usings.cs b/tests/Application.Tests/Usings.cs index e0eb58bb..98210378 100644 --- a/tests/Application.Tests/Usings.cs +++ b/tests/Application.Tests/Usings.cs @@ -11,3 +11,4 @@ global using CTF.Application.Players.Accounts; global using CTF.Application.Teams; global using CTF.Application.Teams.Flags; +global using CTF.Application.Maps; From 9ff4039e8ecb7c8d38edf95a6aff816001c39860 Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Sat, 24 Aug 2024 15:44:47 -0500 Subject: [PATCH 05/15] Add new error messages --- .../Common/Resources/Messages.Designer.cs | 36 +++++++++++++++++++ .../Common/Resources/Messages.resx | 12 +++++++ 2 files changed, 48 insertions(+) diff --git a/src/Application/Common/Resources/Messages.Designer.cs b/src/Application/Common/Resources/Messages.Designer.cs index ad17f5f2..8c79353c 100644 --- a/src/Application/Common/Resources/Messages.Designer.cs +++ b/src/Application/Common/Resources/Messages.Designer.cs @@ -78,6 +78,15 @@ internal static string EmptyWeaponPackage { } } + /// + /// Looks up a localized string similar to Invalid map id has been passed. + /// + internal static string InvalidMap { + get { + return ResourceManager.GetString("InvalidMap", resourceCulture); + } + } + /// /// Looks up a localized string similar to Must be 3-20 characters long and only contain valid characters (0-9, a-z, A-Z, [], (), $, @ . _ and = only). /// @@ -132,6 +141,24 @@ internal static string InvalidWeapon { } } + /// + /// Looks up a localized string similar to The spawn location list cannot be empty. + /// + internal static string LocationListCannotBeEmpty { + get { + return ResourceManager.GetString("LocationListCannotBeEmpty", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Map has not been found. + /// + internal static string MapNotFound { + get { + return ResourceManager.GetString("MapNotFound", resourceCulture); + } + } + /// /// Looks up a localized string similar to Player '{Name}' is a member that already exists. /// @@ -186,6 +213,15 @@ internal static string PlayerNotFound { } } + /// + /// Looks up a localized string similar to A spawn location can only be obtained for the alpha or beta team. + /// + internal static string SpawnLocationFailure { + get { + return ResourceManager.GetString("SpawnLocationFailure", resourceCulture); + } + } + /// /// Looks up a localized string similar to Points must be between -1 to -100. /// diff --git a/src/Application/Common/Resources/Messages.resx b/src/Application/Common/Resources/Messages.resx index f70b5d9a..9aca28e3 100644 --- a/src/Application/Common/Resources/Messages.resx +++ b/src/Application/Common/Resources/Messages.resx @@ -123,6 +123,9 @@ You have no items in your weapon package + + Invalid map id has been passed + Must be 3-20 characters long and only contain valid characters (0-9, a-z, A-Z, [], (), $, @ . _ and = only) @@ -141,6 +144,12 @@ Invalid weapon has been passed + + The spawn location list cannot be empty + + + Map has not been found + Player '{Name}' is a member that already exists @@ -159,6 +168,9 @@ Player '{Name}' is not found + + A spawn location can only be obtained for the alpha or beta team + Points must be between -1 to -100 From 282d72625b5efde0e58cd664cbea3e3050f8f68f Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Sat, 24 Aug 2024 15:45:09 -0500 Subject: [PATCH 06/15] chore: Update global usings --- src/Application/Usings.cs | 2 ++ tests/Application.Tests/Usings.cs | 1 + 2 files changed, 3 insertions(+) diff --git a/src/Application/Usings.cs b/src/Application/Usings.cs index 213af353..e155e2b8 100644 --- a/src/Application/Usings.cs +++ b/src/Application/Usings.cs @@ -1,4 +1,5 @@ global using System.Collections; +global using System.Globalization; global using System.Text.RegularExpressions; global using SampSharp.Core; global using SampSharp.Entities; @@ -6,6 +7,7 @@ global using Color = SampSharp.Entities.SAMP.Color; global using SampSharp.Entities.SAMP.Commands; global using SmartFormat; +global using SeztionParser; global using Microsoft.Extensions.DependencyInjection; global using CTF.Application.Common; diff --git a/tests/Application.Tests/Usings.cs b/tests/Application.Tests/Usings.cs index 98210378..b2198178 100644 --- a/tests/Application.Tests/Usings.cs +++ b/tests/Application.Tests/Usings.cs @@ -12,3 +12,4 @@ global using CTF.Application.Teams; global using CTF.Application.Teams.Flags; global using CTF.Application.Maps; +global using CTF.Application.Maps.Services; From 5009f4e8b120e6ff86721a4a515866ab4a5cf42a Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Sat, 24 Aug 2024 15:45:57 -0500 Subject: [PATCH 07/15] chore: Add package reference --- src/Application/CTF.Application.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Application/CTF.Application.csproj b/src/Application/CTF.Application.csproj index 4f2f4d3b..d003c3fb 100644 --- a/src/Application/CTF.Application.csproj +++ b/src/Application/CTF.Application.csproj @@ -7,6 +7,7 @@ + From fcb98ba806e8a4a8d9578164f092caa9f306c2fe Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Sat, 24 Aug 2024 16:18:02 -0500 Subject: [PATCH 08/15] fix!: Throw InvalidOperationException when result value cannot be accessed --- src/Application/Common/ResultOfT.cs | 40 +++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/src/Application/Common/ResultOfT.cs b/src/Application/Common/ResultOfT.cs index f3b5ff5f..cbba91e7 100644 --- a/src/Application/Common/ResultOfT.cs +++ b/src/Application/Common/ResultOfT.cs @@ -4,41 +4,59 @@ /// Represents the result of an operation that returns a value. /// /// A value associated to the result. -public readonly ref struct Result +public ref struct Result { + private TValue _value; public Result() { } /// /// Gets the value associated with the result. /// - public TValue Value { get; init; } = default; + /// + /// when is true. + /// + public TValue Value + { + get + { + return IsSuccess ? + _value : + throw new InvalidOperationException("The value of a failure result can not be accessed."); + } + private set + { + _value = value; + } + } /// /// Gets the description of a result. /// - public string Message { get; init; } = string.Empty; + public string Message { get; private set; } = string.Empty; /// /// A value indicating that the result was successful. /// - public bool IsSuccess { get; init; } = true; + public bool IsSuccess { get; private set; } = false; /// /// A value that indicates that the result was a failure. /// public bool IsFailed => !IsSuccess; - public static Result Success(TValue value) => new() { Value = value }; + public static Result Success(TValue value) => new() + { + IsSuccess = true, + Value = value + }; + public static Result Success(TValue value, string message) => new() { + IsSuccess = true, Value = value, Message = message }; - public static Result Failure() => new() { IsSuccess = false }; - public static Result Failure(string message) => new() - { - IsSuccess = false, - Message = message - }; + public static Result Failure() => new(); + public static Result Failure(string message) => new() { Message = message }; } From 70d2c03edefbd5245e4ff3ef5ad3aadd6da6e232 Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Sat, 24 Aug 2024 16:20:42 -0500 Subject: [PATCH 09/15] BREAKING CHANGE: Prevent properties from not being initialized from the outside --- src/Application/Common/Result.cs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Application/Common/Result.cs b/src/Application/Common/Result.cs index 8d2b669d..6faf606a 100644 --- a/src/Application/Common/Result.cs +++ b/src/Application/Common/Result.cs @@ -3,32 +3,32 @@ /// /// Represents the result of an operation that does not return a value. /// -public readonly ref struct Result +public ref struct Result { public Result() { } /// /// Gets the description of a result. /// - public string Message { get; init; } = string.Empty; + public string Message { get; private set; } = string.Empty; /// /// A value indicating that the result was successful. /// - public bool IsSuccess { get; init; } = true; + public bool IsSuccess { get; private set; } = false; /// /// A value that indicates that the result was a failure. /// public bool IsFailed => !IsSuccess; - public static Result Success() => new(); - public static Result Success(string message) => new() { Message = message }; - - public static Result Failure() => new() { IsSuccess = false }; - public static Result Failure(string message) => new() - { - IsSuccess = false, - Message = message + public static Result Success() => new() { IsSuccess = true }; + public static Result Success(string message) => new() + { + IsSuccess = true, + Message = message }; + + public static Result Failure() => new(); + public static Result Failure(string message) => new() { Message = message }; } From b547676027d3a274c98d92fa7408c749cc45abdd Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Sun, 25 Aug 2024 11:35:16 -0500 Subject: [PATCH 10/15] Add invalid interval message --- src/Application/Common/Resources/Messages.Designer.cs | 9 +++++++++ src/Application/Common/Resources/Messages.resx | 3 +++ 2 files changed, 12 insertions(+) diff --git a/src/Application/Common/Resources/Messages.Designer.cs b/src/Application/Common/Resources/Messages.Designer.cs index 8c79353c..2bc82903 100644 --- a/src/Application/Common/Resources/Messages.Designer.cs +++ b/src/Application/Common/Resources/Messages.Designer.cs @@ -78,6 +78,15 @@ internal static string EmptyWeaponPackage { } } + /// + /// Looks up a localized string similar to The interval must be between 0 to {Max}. + /// + internal static string InvalidInterval { + get { + return ResourceManager.GetString("InvalidInterval", resourceCulture); + } + } + /// /// Looks up a localized string similar to Invalid map id has been passed. /// diff --git a/src/Application/Common/Resources/Messages.resx b/src/Application/Common/Resources/Messages.resx index 9aca28e3..7dff94a2 100644 --- a/src/Application/Common/Resources/Messages.resx +++ b/src/Application/Common/Resources/Messages.resx @@ -123,6 +123,9 @@ You have no items in your weapon package + + The interval must be between 0 to {Max} + Invalid map id has been passed From 0a3353ae2f6ea8ce65e7d537e8ce4ed64b7df264 Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Sun, 25 Aug 2024 11:36:24 -0500 Subject: [PATCH 11/15] chore: Enable unsafe blocks --- src/Application/CTF.Application.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Application/CTF.Application.csproj b/src/Application/CTF.Application.csproj index d003c3fb..7be5084b 100644 --- a/src/Application/CTF.Application.csproj +++ b/src/Application/CTF.Application.csproj @@ -1,7 +1,7 @@  - + true From 65382081ec9f20aff8cb3aa460489d80d0592b08 Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Sun, 25 Aug 2024 11:37:41 -0500 Subject: [PATCH 12/15] feat: Create the Maps module --- src/Application/Maps/CurrentMap.cs | 65 +++++++++++ src/Application/Maps/IMap.cs | 7 ++ src/Application/Maps/LoadTime.cs | 58 +++++++++ src/Application/Maps/MapCollection.cs | 59 ++++++++++ .../Maps/Services/MapInfoService.cs | 77 ++++++++++++ src/Application/Maps/SpawnLocation.cs | 19 +++ src/Application/Maps/TimeLeft.cs | 110 ++++++++++++++++++ 7 files changed, 395 insertions(+) create mode 100644 src/Application/Maps/CurrentMap.cs create mode 100644 src/Application/Maps/IMap.cs create mode 100644 src/Application/Maps/LoadTime.cs create mode 100644 src/Application/Maps/MapCollection.cs create mode 100644 src/Application/Maps/Services/MapInfoService.cs create mode 100644 src/Application/Maps/SpawnLocation.cs create mode 100644 src/Application/Maps/TimeLeft.cs diff --git a/src/Application/Maps/CurrentMap.cs b/src/Application/Maps/CurrentMap.cs new file mode 100644 index 00000000..6f41b42b --- /dev/null +++ b/src/Application/Maps/CurrentMap.cs @@ -0,0 +1,65 @@ +namespace CTF.Application.Maps; + +/// +/// Represents the current information of a map. +/// +public class CurrentMap +{ + private IMap _nextMap; + private readonly Random _random = new(); + public const int DefaultInterior = 0; + public const int DefaultWeather = 10; + public const int DefaultWorldTime = 12; + public int Id { get; } + public string Name { get; } + public IReadOnlyList AlphaTeamLocations { get; } + public IReadOnlyList BetaTeamLocations { get; } + public int Interior { get; } + public int Weather { get; } + public int WorldTime { get; } + public IMap NextMap => _nextMap; + public int IsLoading { get; set; } + + public CurrentMap( + IMap map, + IReadOnlyList alphaTeamLocations, + IReadOnlyList betaTeamLocations, + int interior = DefaultInterior, + int weather = DefaultWeather, + int worldTime = DefaultWorldTime) + { + ArgumentNullException.ThrowIfNull(map); + ArgumentNullException.ThrowIfNull(alphaTeamLocations); + ArgumentNullException.ThrowIfNull(betaTeamLocations); + + if (alphaTeamLocations.Count == 0) + throw new ArgumentException(Messages.LocationListCannotBeEmpty, nameof(alphaTeamLocations)); + + if (betaTeamLocations.Count == 0) + throw new ArgumentException(Messages.LocationListCannotBeEmpty, nameof(betaTeamLocations)); + + Id = map.Id; + Name = map.Name; + AlphaTeamLocations = alphaTeamLocations; + BetaTeamLocations = betaTeamLocations; + Interior = interior; + Weather = weather; + WorldTime = worldTime; + int nextMapId = (Id + 1) % MapCollection.Count; + _nextMap = MapCollection.GetById(nextMapId).Value; + } + + public string GetMapNameAsText() => $"Map: ~w~{Name}"; + public void SetNextMap(IMap nextMap) + { + ArgumentNullException.ThrowIfNull(nextMap); + _nextMap = nextMap; + } + + public SpawnLocation GetRandomSpawnLocation(TeamId team) => team switch + { + TeamId.Alpha => AlphaTeamLocations[_random.Next(AlphaTeamLocations.Count)], + TeamId.Beta => BetaTeamLocations[_random.Next(BetaTeamLocations.Count)], + _ => throw new NotSupportedException(Messages.SpawnLocationFailure) + }; +} diff --git a/src/Application/Maps/IMap.cs b/src/Application/Maps/IMap.cs new file mode 100644 index 00000000..f011dccd --- /dev/null +++ b/src/Application/Maps/IMap.cs @@ -0,0 +1,7 @@ +namespace CTF.Application.Maps; + +public interface IMap +{ + int Id { get; } + string Name { get; } +} diff --git a/src/Application/Maps/LoadTime.cs b/src/Application/Maps/LoadTime.cs new file mode 100644 index 00000000..97b21a33 --- /dev/null +++ b/src/Application/Maps/LoadTime.cs @@ -0,0 +1,58 @@ +namespace CTF.Application.Maps; + +/// +/// Represents the total wait time for the new map to load. +/// +public class LoadTime +{ + private readonly Action _onLoadingMap; + private readonly Action _onLoadedMap; + private int _interval = MaxLoadTime; + public const int MaxLoadTime = 6; + + /// + /// Displays the load time in the game. + /// + public string GameText { get; private set; } = string.Empty; + + /// + /// Represents the interval in seconds. + /// + public int Interval => _interval; + + public LoadTime(Action onLoadingMap, Action onLoadedMap) + { + ArgumentNullException.ThrowIfNull(onLoadingMap); + ArgumentNullException.ThrowIfNull(onLoadedMap); + _onLoadingMap = onLoadingMap; + _onLoadedMap = onLoadedMap; + } + + /// + /// Reduces the load time until it reaches zero. + /// + public void Decrease() + { + if (_interval == 0) + { + Reset(); + _onLoadedMap(); + return; + } + + if (_interval == MaxLoadTime) + { + _onLoadingMap(); + } + + _interval--; + UpdateGameText(); + } + + private void UpdateGameText() => GameText = $"Loading map... ({_interval})"; + private void Reset() + { + _interval = MaxLoadTime; + GameText = string.Empty; + } +} diff --git a/src/Application/Maps/MapCollection.cs b/src/Application/Maps/MapCollection.cs new file mode 100644 index 00000000..e10a5aa7 --- /dev/null +++ b/src/Application/Maps/MapCollection.cs @@ -0,0 +1,59 @@ +namespace CTF.Application.Maps; + +public class MapCollection +{ + private static Map[] s_maps; + static MapCollection() => SetMapNamesFromFileSystem(); + private static void SetMapNamesFromFileSystem() + { + var path = Path.Combine(AppContext.BaseDirectory, "Maps", "Files"); + var random = new Random(); + string[] names = Directory.GetFiles(path); + random.Shuffle(names); + s_maps = new Map[names.Length]; + for (int i = 0; i < names.Length; i++) + { + var map = new Map + { + Id = i, + Name = Path.GetFileNameWithoutExtension(names[i]) + }; + s_maps[i] = map; + } + } + + public static int Count => s_maps.Length; + public static IReadOnlyList GetAll() => s_maps; + public static IEnumerable GetAll(string findBy) + { + foreach(Map map in s_maps) + { + if (map.Name.StartsWith(findBy, StringComparison.OrdinalIgnoreCase)) + yield return map; + } + } + + public static Result GetById(int id) + { + if (id < 0 || id >= Count) + return Result.Failure(Messages.InvalidMap); + + Map map = s_maps[id]; + return Result.Success(map); + } + + public static Result GetByName(string mapName) + { + Map map = s_maps + .FirstOrDefault(map => map.Name.Equals(mapName, StringComparison.OrdinalIgnoreCase)); + return map is null ? + Result.Failure(Messages.MapNotFound) : + Result.Success(map); + } + + private class Map : IMap + { + public int Id { get; init; } + public string Name { get; init; } + } +} diff --git a/src/Application/Maps/Services/MapInfoService.cs b/src/Application/Maps/Services/MapInfoService.cs new file mode 100644 index 00000000..b2a5ca68 --- /dev/null +++ b/src/Application/Maps/Services/MapInfoService.cs @@ -0,0 +1,77 @@ +namespace CTF.Application.Maps.Services; + +/// +/// Represents a service to load information from a map. +/// +public class MapInfoService +{ + private CurrentMap _currentMap; + public MapInfoService() + { + int defaultMapId = 0; + IMap defaultMap = MapCollection.GetById(defaultMapId).Value; + Load(defaultMap); + } + + /// + /// Reads the current information from a map. + /// + public CurrentMap Read() => _currentMap; + + /// + /// Loads map information from the file system. + /// + /// The map to load. + /// + public void Load(IMap map) + { + ArgumentNullException.ThrowIfNull(map); + var basePath = AppContext.BaseDirectory; + var path = Path.Combine(basePath, "Maps", "Files", $"{map.Name}.ini"); + ISectionsData sections = SectionsFile.Load(path); + SpawnLocation[] alphaTeamLocations = GetLocations(sections["Alpha"]); + SpawnLocation[] betaTeamLocations = GetLocations(sections["Beta"]); + sections.TryGetData(section: "Interior", out ISectionData retrievedInterior); + sections.TryGetData(section: "Weather", out ISectionData retrievedWeather); + sections.TryGetData(section: "WorldTime", out ISectionData retrievedWorldTime); + + int interior = retrievedInterior is null ? + CurrentMap.DefaultInterior : + int.Parse(retrievedInterior.First()); + + int weather = retrievedWeather is null ? + CurrentMap.DefaultWeather : + int.Parse(retrievedWeather.First()); + + int worldTime = retrievedWorldTime is null ? + CurrentMap.DefaultWorldTime : + int.Parse(retrievedWorldTime.First()); + + _currentMap = new CurrentMap( + map, + alphaTeamLocations, + betaTeamLocations, + interior, + weather, + worldTime); + } + + private static SpawnLocation[] GetLocations(ISectionData section) + { + var locations = new SpawnLocation[section.Count]; + for(int i = 0; i < section.Count; i++) + { + string data = section[i]; + string[] coordinates = data.Split(','); + var position = new Vector3( + float.Parse(coordinates[0], CultureInfo.InvariantCulture), + float.Parse(coordinates[1], CultureInfo.InvariantCulture), + float.Parse(coordinates[2], CultureInfo.InvariantCulture) + ); + float angle = float.Parse(coordinates[3], CultureInfo.InvariantCulture); + var spawnLocation = new SpawnLocation(position, angle); + locations[i] = spawnLocation; + } + return locations; + } +} diff --git a/src/Application/Maps/SpawnLocation.cs b/src/Application/Maps/SpawnLocation.cs new file mode 100644 index 00000000..333b71dc --- /dev/null +++ b/src/Application/Maps/SpawnLocation.cs @@ -0,0 +1,19 @@ +namespace CTF.Application.Maps; + +public class SpawnLocation +{ + public static readonly SpawnLocation Empty = new(0, 0, 0, 0); + public Vector3 Position { get; } + public float Angle { get; } + public SpawnLocation(float x, float y, float z, float angle) + { + Position = new Vector3(x, y, z); + Angle = angle; + } + + public SpawnLocation(Vector3 position, float angle) + { + Position = position; + Angle = angle; + } +} diff --git a/src/Application/Maps/TimeLeft.cs b/src/Application/Maps/TimeLeft.cs new file mode 100644 index 00000000..d1a08eb2 --- /dev/null +++ b/src/Application/Maps/TimeLeft.cs @@ -0,0 +1,110 @@ +namespace CTF.Application.Maps; + +/// +/// Represents the time left on the current map. +/// +public class TimeLeft +{ + private const int MaxRoundTime = 900; + /// + /// Represents the interval in seconds. + /// + private int _interval = MaxRoundTime; + + /// + /// Represents the time left in a text draw. + /// + // This property can never be mutable. + // If this property is modified from the outside, it may cause buffer overflow. + public string TextDraw { get; } = "00:00"; + + public TimeLeft() => UpdateTextDraw(); + + /// + /// Checks if the countdown has ended. + /// + public bool IsCompleted() => _interval == 0; + + public Result SetInterval(Minutes minutes) + { + if (minutes.Value < 0 || minutes.Value > (MaxRoundTime / 60)) + { + var message = Smart.Format(Messages.InvalidInterval, new { Max = MaxRoundTime / 60 }); + return Result.Failure(message); + } + + _interval = minutes.Value * 60; + UpdateTextDraw(); + return Result.Success(); + } + + public Result SetInterval(Seconds seconds) + { + if (seconds.Value < 0 || seconds.Value > MaxRoundTime) + { + var message = Smart.Format(Messages.InvalidInterval, new { Max = MaxRoundTime }); + return Result.Failure(message); + } + + _interval = seconds.Value; + UpdateTextDraw(); + return Result.Success(); + } + + /// + /// Reduces the time remaining until it reaches zero. + /// + public void Decrease() + { + if(_interval == 0) + return; + + _interval--; + UpdateTextDraw(); + } + + public void Reset() + { + _interval = MaxRoundTime; + UpdateTextDraw(); + } + + /// + /// The purpose is to manipulate the buffer directly with pointers + /// to avoid memory reallocations caused by string interpolation. + /// + /// + /// This decision was made because the text will be updated every 1 ms by a timer. + /// + private unsafe void UpdateTextDraw() + { + int minutes = _interval / 60; + int seconds = _interval % 60; + + int digit1 = minutes % 10; + int digit0 = minutes / 10 % 10; + + int digit4 = seconds % 10; + int digit3 = seconds / 10 % 10; + + fixed (char* text = TextDraw) + { + text[0] = (char)(digit0 + '0'); + text[1] = (char)(digit1 + '0'); + text[3] = (char)(digit3 + '0'); + text[4] = (char)(digit4 + '0'); + } + } +} + +public readonly ref struct Minutes +{ + public int Value { get; } + public Minutes(int value) => Value = value; +} + +public readonly ref struct Seconds +{ + public int Value { get; } + public Seconds(int value) => Value = value; +} From d32d44dc99f1040b9e4d34c7d573d0b2c73b3b45 Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Sun, 25 Aug 2024 11:38:15 -0500 Subject: [PATCH 13/15] test: Add unit tests to Maps module --- .../Application.Tests/Maps/CurrentMapTests.cs | 184 +++++++++++++++++ .../Maps/DecreaseTimeLeftTestCases.cs | 191 +++++++++++++++++ .../Maps/GetNextMapTestCases.cs | 26 +++ tests/Application.Tests/Maps/LoadTimeTests.cs | 111 ++++++++++ .../Maps/MapCollectionTests.cs | 96 +++++++++ .../Maps/MapInfoServiceTests.cs | 163 +++++++++++++++ tests/Application.Tests/Maps/TimeLeftTests.cs | 194 ++++++++++++++++++ 7 files changed, 965 insertions(+) create mode 100644 tests/Application.Tests/Maps/CurrentMapTests.cs create mode 100644 tests/Application.Tests/Maps/DecreaseTimeLeftTestCases.cs create mode 100644 tests/Application.Tests/Maps/GetNextMapTestCases.cs create mode 100644 tests/Application.Tests/Maps/LoadTimeTests.cs create mode 100644 tests/Application.Tests/Maps/MapCollectionTests.cs create mode 100644 tests/Application.Tests/Maps/MapInfoServiceTests.cs create mode 100644 tests/Application.Tests/Maps/TimeLeftTests.cs diff --git a/tests/Application.Tests/Maps/CurrentMapTests.cs b/tests/Application.Tests/Maps/CurrentMapTests.cs new file mode 100644 index 00000000..132cdfb2 --- /dev/null +++ b/tests/Application.Tests/Maps/CurrentMapTests.cs @@ -0,0 +1,184 @@ +namespace CTF.Application.Tests.Maps; + +public class CurrentMapTests +{ + [Test] + public void Constructor_WhenMapIsNull_ShouldThrowArgumentNullException() + { + // Arrange + IMap map = default; + List locations = [SpawnLocation.Empty]; + + // Act + Action act = () => + { + var currentMap = new CurrentMap(map, locations, locations); + }; + + // Assert + act.Should() + .Throw() + .WithParameterName(nameof(map)); + } + + [Test] + public void Constructor_WhenAlphaTeamLocationsIsNull_ShouldThrowArgumentNullException() + { + // Arrange + IMap map = MapCollection.GetById(0).Value; + List alphaTeamLocations = default; + List betaTeamLocations = [SpawnLocation.Empty]; + + // Act + Action act = () => + { + var currentMap = new CurrentMap(map, alphaTeamLocations, betaTeamLocations); + }; + + // Assert + act.Should() + .Throw() + .WithParameterName(nameof(alphaTeamLocations)); + } + + [Test] + public void Constructor_WhenBetaTeamLocationsIsNull_ShouldThrowArgumentNullException() + { + // Arrange + IMap map = MapCollection.GetById(0).Value; + List betaTeamLocations = default; + List alphaTeamLocations = [SpawnLocation.Empty]; + + // Act + Action act = () => + { + var currentMap = new CurrentMap(map, alphaTeamLocations, betaTeamLocations); + }; + + // Assert + act.Should() + .Throw() + .WithParameterName(nameof(betaTeamLocations)); + } + + [Test] + public void Constructor_WhenAlphaTeamLocationsIsEmpty_ShouldThrowArgumentException() + { + // Arrange + IMap map = MapCollection.GetById(0).Value; + List alphaTeamLocations = []; + List betaTeamLocations = [SpawnLocation.Empty]; + + // Act + Action act = () => + { + var currentMap = new CurrentMap(map, alphaTeamLocations, betaTeamLocations); + }; + + // Assert + act.Should() + .Throw() + .WithParameterName(nameof(alphaTeamLocations)); + } + + [Test] + public void Constructor_WhenBetaTeamLocationsIsEmpty_ShouldThrowArgumentException() + { + // Arrange + IMap map = MapCollection.GetById(0).Value; + List alphaTeamLocations = [SpawnLocation.Empty]; + List betaTeamLocations = []; + + // Act + Action act = () => + { + var currentMap = new CurrentMap(map, alphaTeamLocations, betaTeamLocations); + }; + + // Assert + act.Should() + .Throw() + .WithParameterName(nameof(betaTeamLocations)); + } + + [TestCaseSource(typeof(GetNextMapTestCases))] + public void NextMap_WhenMapIsObtained_ShouldReturnsNextMap((IMap Map, IMap Expected) data) + { + // Arrange + List locations = [SpawnLocation.Empty]; + var currentMap = new CurrentMap(data.Map, locations, locations); + + // Act + IMap actual = currentMap.NextMap; + + // Assert + actual.Should().Be(data.Expected); + } + + [Test] + public void GetMapNameAsText_WhenNameIsObtained_ShouldReturnsValidStringFormat() + { + // Arrange + IMap map = MapCollection.GetByName("RC_Battlefield").Value; + List locations = [SpawnLocation.Empty]; + var currentMap = new CurrentMap(map, locations, locations); + var expectedString = "Map: ~w~RC_Battlefield"; + + // Act + string actual = currentMap.GetMapNameAsText(); + + // Assert + actual.Should().Be(expectedString); + } + + [Test] + public void SetNextMap_WhenArgumentIsNull_ShouldThrowArgumentNullException() + { + // Arrange + IMap map = MapCollection.GetById(0).Value; + IMap nextMap = default; + List locations = [SpawnLocation.Empty]; + var currentMap = new CurrentMap(map, locations, locations); + + // Act + Action act = () => currentMap.SetNextMap(nextMap); + + // Assert + act.Should() + .Throw() + .WithParameterName(nameof(nextMap)); + } + + [TestCase(TeamId.Alpha)] + [TestCase(TeamId.Beta)] + public void GetRandomSpawnLocation_WhenTeamIsAlphaOrBeta_ShouldReturnsSpawnLocation(TeamId team) + { + // Arrange + IMap map = MapCollection.GetById(0).Value; + List locations = [SpawnLocation.Empty]; + var currentMap = new CurrentMap(map, locations, locations); + SpawnLocation expectedSpawnLocation = locations[0]; + + // Act + SpawnLocation actual = currentMap.GetRandomSpawnLocation(team); + + // Assert + actual.Should().Be(expectedSpawnLocation); + } + + [Test] + public void GetRandomSpawnLocation_WhenTeamIsNotAlphaOrBeta_ShouldThrowNotSupportedException() + { + // Arrange + IMap map = MapCollection.GetById(0).Value; + List locations = [SpawnLocation.Empty]; + TeamId team = TeamId.NoTeam; + var currentMap = new CurrentMap(map, locations, locations); + + // Act + Action act = () => currentMap.GetRandomSpawnLocation(team); + + // Assert + act.Should().Throw(); + } +} diff --git a/tests/Application.Tests/Maps/DecreaseTimeLeftTestCases.cs b/tests/Application.Tests/Maps/DecreaseTimeLeftTestCases.cs new file mode 100644 index 00000000..85de1a7f --- /dev/null +++ b/tests/Application.Tests/Maps/DecreaseTimeLeftTestCases.cs @@ -0,0 +1,191 @@ +namespace CTF.Application.Tests.Maps; + +public class DecreaseTimeLeftTestCases : IEnumerable +{ + public IEnumerator GetEnumerator() + { + yield return "02:59"; + yield return "02:58"; + yield return "02:57"; + yield return "02:56"; + yield return "02:55"; + yield return "02:54"; + yield return "02:53"; + yield return "02:52"; + yield return "02:51"; + yield return "02:50"; + yield return "02:49"; + yield return "02:48"; + yield return "02:47"; + yield return "02:46"; + yield return "02:45"; + yield return "02:44"; + yield return "02:43"; + yield return "02:42"; + yield return "02:41"; + yield return "02:40"; + yield return "02:39"; + yield return "02:38"; + yield return "02:37"; + yield return "02:36"; + yield return "02:35"; + yield return "02:34"; + yield return "02:33"; + yield return "02:32"; + yield return "02:31"; + yield return "02:30"; + yield return "02:29"; + yield return "02:28"; + yield return "02:27"; + yield return "02:26"; + yield return "02:25"; + yield return "02:24"; + yield return "02:23"; + yield return "02:22"; + yield return "02:21"; + yield return "02:20"; + yield return "02:19"; + yield return "02:18"; + yield return "02:17"; + yield return "02:16"; + yield return "02:15"; + yield return "02:14"; + yield return "02:13"; + yield return "02:12"; + yield return "02:11"; + yield return "02:10"; + yield return "02:09"; + yield return "02:08"; + yield return "02:07"; + yield return "02:06"; + yield return "02:05"; + yield return "02:04"; + yield return "02:03"; + yield return "02:02"; + yield return "02:01"; + yield return "02:00"; + yield return "01:59"; + yield return "01:58"; + yield return "01:57"; + yield return "01:56"; + yield return "01:55"; + yield return "01:54"; + yield return "01:53"; + yield return "01:52"; + yield return "01:51"; + yield return "01:50"; + yield return "01:49"; + yield return "01:48"; + yield return "01:47"; + yield return "01:46"; + yield return "01:45"; + yield return "01:44"; + yield return "01:43"; + yield return "01:42"; + yield return "01:41"; + yield return "01:40"; + yield return "01:39"; + yield return "01:38"; + yield return "01:37"; + yield return "01:36"; + yield return "01:35"; + yield return "01:34"; + yield return "01:33"; + yield return "01:32"; + yield return "01:31"; + yield return "01:30"; + yield return "01:29"; + yield return "01:28"; + yield return "01:27"; + yield return "01:26"; + yield return "01:25"; + yield return "01:24"; + yield return "01:23"; + yield return "01:22"; + yield return "01:21"; + yield return "01:20"; + yield return "01:19"; + yield return "01:18"; + yield return "01:17"; + yield return "01:16"; + yield return "01:15"; + yield return "01:14"; + yield return "01:13"; + yield return "01:12"; + yield return "01:11"; + yield return "01:10"; + yield return "01:09"; + yield return "01:08"; + yield return "01:07"; + yield return "01:06"; + yield return "01:05"; + yield return "01:04"; + yield return "01:03"; + yield return "01:02"; + yield return "01:01"; + yield return "01:00"; + yield return "00:59"; + yield return "00:58"; + yield return "00:57"; + yield return "00:56"; + yield return "00:55"; + yield return "00:54"; + yield return "00:53"; + yield return "00:52"; + yield return "00:51"; + yield return "00:50"; + yield return "00:49"; + yield return "00:48"; + yield return "00:47"; + yield return "00:46"; + yield return "00:45"; + yield return "00:44"; + yield return "00:43"; + yield return "00:42"; + yield return "00:41"; + yield return "00:40"; + yield return "00:39"; + yield return "00:38"; + yield return "00:37"; + yield return "00:36"; + yield return "00:35"; + yield return "00:34"; + yield return "00:33"; + yield return "00:32"; + yield return "00:31"; + yield return "00:30"; + yield return "00:29"; + yield return "00:28"; + yield return "00:27"; + yield return "00:26"; + yield return "00:25"; + yield return "00:24"; + yield return "00:23"; + yield return "00:22"; + yield return "00:21"; + yield return "00:20"; + yield return "00:19"; + yield return "00:18"; + yield return "00:17"; + yield return "00:16"; + yield return "00:15"; + yield return "00:14"; + yield return "00:13"; + yield return "00:12"; + yield return "00:11"; + yield return "00:10"; + yield return "00:09"; + yield return "00:08"; + yield return "00:07"; + yield return "00:06"; + yield return "00:05"; + yield return "00:04"; + yield return "00:03"; + yield return "00:02"; + yield return "00:01"; + yield return "00:00"; + } + + IEnumerator IEnumerable.GetEnumerator() + => this.GetEnumerator(); +} diff --git a/tests/Application.Tests/Maps/GetNextMapTestCases.cs b/tests/Application.Tests/Maps/GetNextMapTestCases.cs new file mode 100644 index 00000000..e49ca391 --- /dev/null +++ b/tests/Application.Tests/Maps/GetNextMapTestCases.cs @@ -0,0 +1,26 @@ +namespace CTF.Application.Tests.Maps; + +public class GetNextMapTestCases : IEnumerable<(IMap Map, IMap Expected)> +{ + public IEnumerator<(IMap Map, IMap Expected)> GetEnumerator() + { + yield return (GetCurrentMap(0), GetNextMap(1)); + yield return (GetCurrentMap(1), GetNextMap(2)); + yield return (GetCurrentMap(2), GetNextMap(3)); + yield return (GetCurrentMap(3), GetNextMap(4)); + yield return (GetCurrentMap(4), GetNextMap(5)); + yield return (GetCurrentMap(5), GetNextMap(6)); + yield return (GetCurrentMap(6), GetNextMap(7)); + yield return (GetCurrentMap(7), GetNextMap(8)); + yield return (GetCurrentMap(31), GetNextMap(32)); + yield return ( + GetCurrentMap(MapCollection.Count - 1), + GetNextMap(0) + ); + } + + private static IMap GetCurrentMap(int id) => MapCollection.GetById(id).Value; + private static IMap GetNextMap(int id) => MapCollection.GetById(id).Value; + IEnumerator IEnumerable.GetEnumerator() + => this.GetEnumerator(); +} diff --git a/tests/Application.Tests/Maps/LoadTimeTests.cs b/tests/Application.Tests/Maps/LoadTimeTests.cs new file mode 100644 index 00000000..af63411a --- /dev/null +++ b/tests/Application.Tests/Maps/LoadTimeTests.cs @@ -0,0 +1,111 @@ +namespace CTF.Application.Tests.Maps; + +public class LoadTimeTests +{ + static readonly int[] ExpectedIntervalCases = [5, 4, 3, 2, 1, 0]; + private readonly LoadTime _loadTime; + public LoadTimeTests() + { + static void OnLoadingMap() { } + static void OnLoadedMap() { } + _loadTime = new LoadTime(OnLoadingMap, OnLoadedMap); + } + + [Test] + public void Constructor_WhenOnLoadingMapIsNull_ShouldThrowArgumentNullException() + { + // Arrange + Action onLoadingMap = default; + static void OnLoadedMap() { } + + // Act + Action act = () => + { + var loadTime = new LoadTime(onLoadingMap, OnLoadedMap); + }; + + // Assert + act.Should() + .Throw() + .WithParameterName(nameof(onLoadingMap)); + } + + [Test] + public void Constructor_WhenOnLoadedMapIsNull_ShouldThrowArgumentNullException() + { + // Arrange + Action onLoadedMap = default; + static void OnLoadingMap() { } + + // Act + Action act = () => + { + var loadTime = new LoadTime(OnLoadingMap, onLoadedMap); + }; + + // Assert + act.Should() + .Throw() + .WithParameterName(nameof(onLoadedMap)); + } + + [TestCaseSource(nameof(ExpectedIntervalCases))] + public void Decrease_WhenIntervalIsNotEqualsToZero_ShouldContinueToDecrease(int expectedInterval) + { + // Arrange + var expectedText = $"Loading map... ({expectedInterval})"; + + // Act + _loadTime.Decrease(); + int currentInterval = _loadTime.Interval; + + // Asserts + currentInterval.Should().Be(expectedInterval); + _loadTime.GameText.Should().Be(expectedText); + } + + [Test] + public void Decrease_WhenIntervalIsEqualsToZero_ShouldInvokeOnLoadedMap() + { + // Arrange + static void OnLoadingMap() { } + static void OnLoadedMap() => throw new Exception(nameof(OnLoadedMap)); + var loadTime = new LoadTime(OnLoadingMap, OnLoadedMap); + loadTime.Decrease(); // 5 + loadTime.Decrease(); // 4 + loadTime.Decrease(); // 3 + loadTime.Decrease(); // 2 + loadTime.Decrease(); // 1 + loadTime.Decrease(); // 0 + + // Act + // Invoke to OnLoadedMap + Action act = loadTime.Decrease; + + // Asserts + act.Should() + .Throw() + .WithMessage(nameof(OnLoadedMap)); + + loadTime.Interval.Should().Be(LoadTime.MaxLoadTime); + loadTime.GameText.Should().BeEmpty(); + } + + [Test] + public void Decrease_WhenIntervalIsEqualsToMaxLoadTime_ShouldInvokeOnLoadingMap() + { + // Arrange + static void OnLoadingMap() => throw new Exception(nameof(OnLoadingMap)); + static void OnLoadedMap() { } + var loadTime = new LoadTime(OnLoadingMap, OnLoadedMap); + + // Act + // Invoke to OnLoadingMap + Action act = loadTime.Decrease; + + // Assert + act.Should() + .Throw() + .WithMessage(nameof(OnLoadingMap)); + } +} diff --git a/tests/Application.Tests/Maps/MapCollectionTests.cs b/tests/Application.Tests/Maps/MapCollectionTests.cs new file mode 100644 index 00000000..dc1b4e25 --- /dev/null +++ b/tests/Application.Tests/Maps/MapCollectionTests.cs @@ -0,0 +1,96 @@ +namespace CTF.Application.Tests.Maps; + +public class MapCollectionTests +{ + static readonly int[] InvalidMapCases = [-1, 1000, MapCollection.Count]; + + [TestCase("de")] + [TestCase("DE")] + [TestCase("dE")] + [TestCase("De")] + public void GetAll_WhenAllMapsAreObtainedWithFindBy_ShouldReturnsEnumerable(string findBy) + { + // Arrange + string[] expectedMaps = + [ + "de_aztec", + "de_dust2", + "de_dust2_small", + "de_dust2_x1", + "de_dust2_x2", + "de_dust2_x3", + "de_dust5", + "DesertGlory" + ]; + + // Act + IEnumerable maps = MapCollection.GetAll(findBy); + string[] actual = maps.Select(map => map.Name).ToArray(); + + // Assert + actual.Should().BeEquivalentTo(expectedMaps); + } + + [TestCaseSource(nameof(InvalidMapCases))] + public void GetById_WhenMapIdIsInvalid_ShouldReturnsFailureResult(int mapId) + { + // Arrange + string expectedMessage = Messages.InvalidMap; + + // Act + Result result = MapCollection.GetById(mapId); + + // Asserts + result.IsSuccess.Should().BeFalse(); + result.Message.Should().Be(expectedMessage); + } + + [TestCase(0)] + [TestCase(1)] + [TestCase(2)] + [TestCase(3)] + [TestCase(4)] + public void GetById_WhenMapIdIsValid_ShouldReturnsSuccessResult(int mapId) + { + // Arrange + + // Act + Result result = MapCollection.GetById(mapId); + + // Asserts + result.IsSuccess.Should().BeTrue(); + result.Value.Id.Should().Be(mapId); + result.Value.Name.Should().NotBeNullOrEmpty(); + } + + [Test] + public void GetByName_WhenMapNameIsNotFound_ShouldReturnsFailureResult() + { + // Arrange + string mapName = "NotFound"; + string expectedMessage = Messages.MapNotFound; + + // Act + Result result = MapCollection.GetByName(mapName); + + // Asserts + result.IsSuccess.Should().BeFalse(); + result.Message.Should().Be(expectedMessage); + } + + [TestCase("de_aztec")] + [TestCase("DE_AZTEC")] + [TestCase("De_Aztec")] + public void GetByName_WhenMapNameIsFound_ShouldReturnsSuccessResult(string mapName) + { + // Arrange + string expectedMapName = "de_aztec"; + + // Act + Result result = MapCollection.GetByName(mapName); + + // Asserts + result.IsSuccess.Should().BeTrue(); + result.Value.Name.Should().Be(expectedMapName); + } +} diff --git a/tests/Application.Tests/Maps/MapInfoServiceTests.cs b/tests/Application.Tests/Maps/MapInfoServiceTests.cs new file mode 100644 index 00000000..a0f5bcab --- /dev/null +++ b/tests/Application.Tests/Maps/MapInfoServiceTests.cs @@ -0,0 +1,163 @@ +namespace CTF.Application.Tests.Maps; + +public class MapInfoServiceTests +{ + [Test] + public void Constructor_WhenLoadMethodIsNotInvoked_CurrentMapShouldNotBeNull() + { + // Arrange + + // Act + var service = new MapInfoService(); + CurrentMap currentMap = service.Read(); + + // Assert + currentMap.Should().NotBeNull(); + } + + [TestCaseSource(typeof(MapInfoServiceTestCases))] + public void Load_WhenMapIsLoadedFromFileSystem_ShouldCreateInstanceOfTypeCurrentMap(CurrentMap expectedCurrentMap) + { + // Arrange + var service = new MapInfoService(); + IMap map = MapCollection.GetById(expectedCurrentMap.Id).Value; + + // Act + service.Load(map); + CurrentMap actual = service.Read(); + + // Assert + actual.Should().BeEquivalentTo(expectedCurrentMap); + } + + private class MapInfoServiceTestCases : IEnumerable + { + public IEnumerator GetEnumerator() + { + yield return new CurrentMap( + map: GetMap("Aim_Headshot"), + alphaTeamLocations: + [ + new SpawnLocation(-129.5612f,81.0056f,3.1172f,156.7189f), + new SpawnLocation(-127.6526f,87.7695f,3.1172f,156.7189f), + new SpawnLocation(-134.9525f,90.2646f,3.1172f,167.0590f), + new SpawnLocation(-138.4023f,83.5352f,3.1172f,163.6123f), + new SpawnLocation(-145.3216f,85.1476f,3.1172f,163.6123f), + new SpawnLocation(-152.4534f,80.4830f,3.1094f,163.6123f), + new SpawnLocation(-161.3326f,83.2152f,3.1094f,167.3724f), + new SpawnLocation(-159.6665f,98.1220f,3.1121f,165.8291f), + new SpawnLocation(-173.8980f,102.8791f,3.1668f,162.3824f), + new SpawnLocation(-186.4793f,93.0401f,3.1172f,162.3824f) + ], + betaTeamLocations: + [ + new SpawnLocation(-277.0338f,-85.0175f,2.8617f,345.0341f), + new SpawnLocation(-277.7510f,-90.4126f,2.7030f,345.0341f), + new SpawnLocation(-270.0297f,-92.0674f,3.0969f,345.0341f), + new SpawnLocation(-263.8904f,-93.2464f,3.1172f,345.0341f), + new SpawnLocation(-262.2849f,-87.2403f,3.1172f,345.0341f), + new SpawnLocation(-255.3565f,-84.1217f,3.1172f,345.0341f), + new SpawnLocation(-245.9794f,-86.1564f,3.1172f,345.0341f), + new SpawnLocation(-247.4499f,-99.9677f,3.1172f,345.0341f), + new SpawnLocation(-235.9863f,-102.5671f,3.1094f,345.3474f), + new SpawnLocation(-220.4884f,-110.9102f,3.1172f,352.5542f) + ]); + + yield return new CurrentMap( + map: GetMap("RC_Battlefield"), + alphaTeamLocations: + [ + new SpawnLocation(-1136.4539f,1098.1666f,1345.8258f,269.4457f), + new SpawnLocation(-1135.1912f,1093.8064f,1345.8119f,267.8791f), + new SpawnLocation(-1135.6179f,1088.5378f,1345.8096f,267.8791f), + new SpawnLocation(-1135.4375f,1082.0457f,1345.8021f,267.8791f), + new SpawnLocation(-1135.2130f,1075.4181f,1345.7941f,267.8791f), + new SpawnLocation(-1135.0983f,1066.7756f,1345.7872f,267.8791f), + new SpawnLocation(-1129.9963f,1067.1566f,1345.7528f,274.1458f), + new SpawnLocation(-1129.5995f,1074.0201f,1345.7581f,274.1458f), + new SpawnLocation(-1129.0844f,1081.9758f,1345.7615f,268.5057f), + new SpawnLocation(-1131.0197f,1092.0566f,1345.7826f,264.1190f) + ], + betaTeamLocations: + [ + new SpawnLocation(-969.8113f,1021.9630f,1345.0767f,89.9275f), + new SpawnLocation(-970.1436f,1028.6224f,1345.0679f,88.9874f), + new SpawnLocation(-970.4197f,1036.5406f,1345.0582f,88.9874f), + new SpawnLocation(-969.6072f,1046.1462f,1345.0544f,88.9874f), + new SpawnLocation(-970.4572f,1055.3048f,1345.0397f,88.9874f), + new SpawnLocation(-976.7345f,1054.0677f,1344.9979f,90.8674f), + new SpawnLocation(-976.9385f,1044.5823f,1345.0059f,88.6741f), + new SpawnLocation(-977.0988f,1035.4301f,1345.0137f,88.6741f), + new SpawnLocation(-976.4217f,1024.6754f,1345.0288f,92.1208f), + new SpawnLocation(-976.2883f,1020.3914f,1345.0339f,93.3741f) + ], + interior: 10); + + yield return new CurrentMap( + map: GetMap("TheBunker"), + alphaTeamLocations: + [ + new SpawnLocation(592.8154f,-2433.9148f,10.8944f,79.0350f), + new SpawnLocation(593.3266f,-2430.6772f,10.8968f,75.2750f), + new SpawnLocation(593.7708f,-2427.1843f,10.9065f,81.8550f), + new SpawnLocation(594.2177f,-2425.0789f,10.9081f,78.0950f), + new SpawnLocation(591.5002f,-2424.4595f,10.9011f,77.1550f), + new SpawnLocation(590.2183f,-2427.9417f,10.8983f,77.1550f), + new SpawnLocation(588.6526f,-2431.8225f,10.8952f,77.1550f), + new SpawnLocation(584.6981f,-2430.9185f,10.9023f,348.4808f), + new SpawnLocation(575.6008f,-2417.5117f,10.9036f,252.9133f), + new SpawnLocation(584.4872f,-2417.1072f,10.9053f,166.1425f) + ], + betaTeamLocations: + [ + new SpawnLocation(891.1278f,-2397.3025f,19.8204f,87.1585f), + new SpawnLocation(889.6392f,-2407.8728f,20.2593f,80.5784f), + new SpawnLocation(887.4858f,-2418.1658f,21.0038f,80.5784f), + new SpawnLocation(885.3065f,-2425.9482f,21.5207f,49.8714f), + new SpawnLocation(875.5358f,-2419.4922f,21.7868f,67.4183f), + new SpawnLocation(876.6066f,-2412.1060f,22.0539f,80.2651f), + new SpawnLocation(877.5095f,-2404.7627f,22.3557f,80.2651f), + new SpawnLocation(878.8505f,-2396.0938f,22.6503f,92.4852f), + new SpawnLocation(870.1289f,-2393.8157f,23.9384f,92.4852f), + new SpawnLocation(864.5809f,-2400.9045f,25.0956f,94.6786f) + ], + worldTime: 23); + + yield return new CurrentMap( + map: GetMap("CrackFactory"), + alphaTeamLocations: + [ + new SpawnLocation(2548.7009f,-1283.2224f,1060.9844f,230.3022f), + new SpawnLocation(2565.8301f,-1281.7773f,1065.3672f,238.1356f), + new SpawnLocation(2575.7759f,-1283.3206f,1065.3672f,177.9750f), + new SpawnLocation(2580.8525f,-1284.6443f,1065.3579f,88.0476f), + new SpawnLocation(2568.5518f,-1283.6564f,1060.9844f,181.0851f), + new SpawnLocation(2565.0220f,-1290.9614f,1060.9844f,224.6389f), + new SpawnLocation(2565.4963f,-1301.7297f,1060.9844f,275.0860f), + new SpawnLocation(2558.1384f,-1304.1283f,1060.9844f,272.2661f), + new SpawnLocation(2558.3372f,-1298.2233f,1060.9844f,272.2661f), + new SpawnLocation(2558.2466f,-1293.2781f,1062.0391f,260.6727f) + ], + betaTeamLocations: + [ + new SpawnLocation(2532.1660f,-1283.6971f,1031.4219f,270.0725f), + new SpawnLocation(2532.5823f,-1292.2178f,1031.4219f,275.7126f), + new SpawnLocation(2532.9485f,-1302.3477f,1031.4219f,269.4458f), + new SpawnLocation(2541.2852f,-1303.9135f,1031.4219f,269.4458f), + new SpawnLocation(2542.1389f,-1293.7726f,1031.4219f,262.8658f), + new SpawnLocation(2542.5986f,-1282.2380f,1031.4219f,264.1191f), + new SpawnLocation(2550.1204f,-1282.6653f,1031.4219f,263.8058f), + new SpawnLocation(2551.0386f,-1293.5071f,1031.4219f,277.2793f), + new SpawnLocation(2553.0278f,-1305.5601f,1031.4219f,277.2793f), + new SpawnLocation(2560.5957f,-1291.2533f,1031.4219f,265.3724f) + ], + interior: 2, + weather: 9, + worldTime: 22); + } + + private static IMap GetMap(string name) => MapCollection.GetByName(name).Value; + IEnumerator IEnumerable.GetEnumerator() + => this.GetEnumerator(); + } +} diff --git a/tests/Application.Tests/Maps/TimeLeftTests.cs b/tests/Application.Tests/Maps/TimeLeftTests.cs new file mode 100644 index 00000000..e405e07e --- /dev/null +++ b/tests/Application.Tests/Maps/TimeLeftTests.cs @@ -0,0 +1,194 @@ +namespace CTF.Application.Tests.Maps; + +public class TimeLeftTests +{ + private readonly TimeLeft _timeLeft; + public TimeLeftTests() + { + _timeLeft = new TimeLeft(); + var minutes = new Minutes(3); + _timeLeft.SetInterval(minutes); + } + + [Test] + public void IsCompleted_WhenTimeLeftIsCompleted_ShouldReturnsTrue() + { + // Arrange + var timeLeft = new TimeLeft(); + var seconds = new Seconds(0); + var expectedText = "00:00"; + timeLeft.SetInterval(seconds); + + // Act + bool actual = timeLeft.IsCompleted(); + + // Asserts + actual.Should().BeTrue(); + timeLeft.TextDraw.Should().Be(expectedText); + } + + [Test] + public void IsCompleted_WhenTimeLeftIsNotCompleted_ShouldReturnsFalse() + { + // Arrange + var timeLeft = new TimeLeft(); + var minutes = new Minutes(10); + var expectedText = "10:00"; + timeLeft.SetInterval(minutes); + + // Act + bool actual = timeLeft.IsCompleted(); + + // Asserts + actual.Should().BeFalse(); + timeLeft.TextDraw.Should().Be(expectedText); + } + + [TestCase(-1)] + [TestCase(-2)] + [TestCase(16)] + [TestCase(17)] + public void SetInterval_WhenMinutesIntervalIsOutOfRange_ShouldReturnsFailureResult(int value) + { + // Arrange + var timeLeft = new TimeLeft(); + var minutes = new Minutes(value); + var expectedText = "15:00"; + + // Act + Result result = timeLeft.SetInterval(minutes); + + // Asserts + result.IsSuccess.Should().BeFalse(); + timeLeft.TextDraw.Should().Be(expectedText); + } + + [TestCase(0, "00:00")] + [TestCase(1, "01:00")] + [TestCase(3, "03:00")] + [TestCase(5, "05:00")] + [TestCase(9, "09:00")] + [TestCase(10, "10:00")] + [TestCase(11, "11:00")] + [TestCase(12, "12:00")] + [TestCase(14, "14:00")] + [TestCase(15, "15:00")] + public void SetInterval_WhenMinutesIntervalIsNotOutOfRange_ShouldReturnsSuccessResult(int value, string expectedText) + { + // Arrange + var timeLeft = new TimeLeft(); + var minutes = new Minutes(value); + + // Act + Result result = timeLeft.SetInterval(minutes); + + // Asserts + result.IsSuccess.Should().BeTrue(); + timeLeft.TextDraw.Should().Be(expectedText); + } + + [TestCase(-1)] + [TestCase(-2)] + [TestCase(901)] + [TestCase(902)] + public void SetInterval_WhenSecondsIntervalIsOutOfRange_ShouldReturnsFailureResult(int value) + { + // Arrange + var timeLeft = new TimeLeft(); + var seconds = new Seconds(value); + var expectedText = "15:00"; + + // Act + Result result = timeLeft.SetInterval(seconds); + + // Asserts + result.IsSuccess.Should().BeFalse(); + timeLeft.TextDraw.Should().Be(expectedText); + } + + [TestCase(0, "00:00")] + [TestCase(1, "00:01")] + [TestCase(5, "00:05")] + [TestCase(60, "01:00")] + [TestCase(300, "05:00")] + [TestCase(428, "07:08")] + [TestCase(590, "09:50")] + [TestCase(608, "10:08")] + [TestCase(840, "14:00")] + [TestCase(900, "15:00")] + public void SetInterval_WhenSecondsIntervalIsNotOutOfRange_ShouldReturnsSuccessResult(int value, string expectedText) + { + // Arrange + var timeLeft = new TimeLeft(); + var seconds = new Seconds(value); + + // Act + Result result = timeLeft.SetInterval(seconds); + + // Asserts + result.IsSuccess.Should().BeTrue(); + timeLeft.TextDraw.Should().Be(expectedText); + } + + [Test] + public void Constructor_WhenObjectIsCreated_TextDrawShouldBeTheDefault() + { + // Arrange + var expectedText = "15:00"; + + // Act + var timeLeft = new TimeLeft(); + + // Assert + timeLeft.TextDraw.Should().Be(expectedText); + } + + [Test] + public void Reset() + { + // Arrange + var timeLeft = new TimeLeft(); + var minutes = new Minutes(5); + var expectedText = "15:00"; + timeLeft.SetInterval(minutes); + + // Act + timeLeft.Reset(); + + // Assert + timeLeft.TextDraw.Should().Be(expectedText); + } + + [TestCaseSource(typeof(DecreaseTimeLeftTestCases))] + public void Decrease_WhenTimeRemainingIsNotZero_ShouldContinueToDecrease(string expectedText) + { + // Arrange + + // Act + _timeLeft.Decrease(); + + // Assert + _timeLeft.TextDraw.Should().Be(expectedText); + } + + [Test] + public void Decrease_WhenTimeRemainingIsZero_ShouldNotContinueToDecrease() + { + // Arrange + var timeLeft = new TimeLeft(); + var minutes = new Seconds(4); + var expectedText = "00:00"; + timeLeft.SetInterval(minutes); + + // Act + timeLeft.Decrease(); // 00:03 + timeLeft.Decrease(); // 00:02 + timeLeft.Decrease(); // 00:01 + timeLeft.Decrease(); // 00:00 + timeLeft.Decrease(); // 00:00 + timeLeft.Decrease(); // 00:00 + + // Assert + timeLeft.TextDraw.Should().Be(expectedText); + } +} From 033f68a067661d2436e2a61cfbe9fd17160f1714 Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Sun, 25 Aug 2024 12:08:15 -0500 Subject: [PATCH 14/15] test: Check if the callback has been invoked without using exceptions --- tests/Application.Tests/Maps/LoadTimeTests.cs | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/tests/Application.Tests/Maps/LoadTimeTests.cs b/tests/Application.Tests/Maps/LoadTimeTests.cs index af63411a..c8e7eebe 100644 --- a/tests/Application.Tests/Maps/LoadTimeTests.cs +++ b/tests/Application.Tests/Maps/LoadTimeTests.cs @@ -19,7 +19,7 @@ public void Constructor_WhenOnLoadingMapIsNull_ShouldThrowArgumentNullException( static void OnLoadedMap() { } // Act - Action act = () => + Action act = () => { var loadTime = new LoadTime(onLoadingMap, OnLoadedMap); }; @@ -68,9 +68,11 @@ public void Decrease_WhenIntervalIsNotEqualsToZero_ShouldContinueToDecrease(int public void Decrease_WhenIntervalIsEqualsToZero_ShouldInvokeOnLoadedMap() { // Arrange + bool loadedMap = false; static void OnLoadingMap() { } - static void OnLoadedMap() => throw new Exception(nameof(OnLoadedMap)); + void OnLoadedMap() => loadedMap = true; var loadTime = new LoadTime(OnLoadingMap, OnLoadedMap); + int expectedInterval = LoadTime.MaxLoadTime; loadTime.Decrease(); // 5 loadTime.Decrease(); // 4 loadTime.Decrease(); // 3 @@ -80,14 +82,11 @@ static void OnLoadingMap() { } // Act // Invoke to OnLoadedMap - Action act = loadTime.Decrease; + loadTime.Decrease(); // Asserts - act.Should() - .Throw() - .WithMessage(nameof(OnLoadedMap)); - - loadTime.Interval.Should().Be(LoadTime.MaxLoadTime); + loadedMap.Should().BeTrue(); + loadTime.Interval.Should().Be(expectedInterval); loadTime.GameText.Should().BeEmpty(); } @@ -95,17 +94,19 @@ static void OnLoadingMap() { } public void Decrease_WhenIntervalIsEqualsToMaxLoadTime_ShouldInvokeOnLoadingMap() { // Arrange - static void OnLoadingMap() => throw new Exception(nameof(OnLoadingMap)); + bool loadingMap = false; + void OnLoadingMap() => loadingMap = true; static void OnLoadedMap() { } var loadTime = new LoadTime(OnLoadingMap, OnLoadedMap); + int expectedInterval = 5; // Act // Invoke to OnLoadingMap - Action act = loadTime.Decrease; + loadTime.Decrease(); - // Assert - act.Should() - .Throw() - .WithMessage(nameof(OnLoadingMap)); + // Asserts + loadingMap.Should().BeTrue(); + loadTime.Interval.Should().Be(expectedInterval); + loadTime.GameText.Should().NotBeEmpty(); } } From 49182fb8ab037823d5af53e7db93badf6b0b3a22 Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Sun, 25 Aug 2024 13:39:10 -0500 Subject: [PATCH 15/15] test: Rename test method --- tests/Application.Tests/Maps/LoadTimeTests.cs | 2 +- tests/Application.Tests/Maps/TimeLeftTests.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Application.Tests/Maps/LoadTimeTests.cs b/tests/Application.Tests/Maps/LoadTimeTests.cs index c8e7eebe..feaa017e 100644 --- a/tests/Application.Tests/Maps/LoadTimeTests.cs +++ b/tests/Application.Tests/Maps/LoadTimeTests.cs @@ -50,7 +50,7 @@ static void OnLoadingMap() { } } [TestCaseSource(nameof(ExpectedIntervalCases))] - public void Decrease_WhenIntervalIsNotEqualsToZero_ShouldContinueToDecrease(int expectedInterval) + public void Decrease_WhenLoadTimeIsNotCompleted_ShouldContinueToDecrease(int expectedInterval) { // Arrange var expectedText = $"Loading map... ({expectedInterval})"; diff --git a/tests/Application.Tests/Maps/TimeLeftTests.cs b/tests/Application.Tests/Maps/TimeLeftTests.cs index e405e07e..c846dcb4 100644 --- a/tests/Application.Tests/Maps/TimeLeftTests.cs +++ b/tests/Application.Tests/Maps/TimeLeftTests.cs @@ -160,7 +160,7 @@ public void Reset() } [TestCaseSource(typeof(DecreaseTimeLeftTestCases))] - public void Decrease_WhenTimeRemainingIsNotZero_ShouldContinueToDecrease(string expectedText) + public void Decrease_WhenTimeRemainingIsNotCompleted_ShouldContinueToDecrease(string expectedText) { // Arrange