Advertisement
Rochet2

Vote Edition ~ Portal Master convert to C++ for Trinitycore

Jan 4th, 2012
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.71 KB | None | 0 0
  1. /*
  2. Portal Master convert to C++ for Trinitycore
  3. By Rochet2
  4.  
  5. Main credits:
  6. Rochet2
  7. Eric
  8. People who helped
  9.  
  10. ScriptName: TeLe_gossip_codebox
  11. */
  12.  
  13. #include "ScriptPCH.h"
  14.  
  15. // Voting settings
  16. std::string TABLE   =   "voteDB.votes";     // Table or database.table
  17. std::string COLUMN  =   "voted";            // 1 or 0, bool value.
  18.  
  19. // Teleport data
  20.  
  21. struct Eric
  22. {
  23.     uint32 menu_id, next_menu_id;
  24.     uint8 icon;
  25.     std::string name;
  26.     uint32 cost;
  27.     uint8 level, faction; // 0 Both, 1 Horde, 2 Ally
  28.     uint32 map;
  29.     float x, y, z, o;
  30.     bool CheckVote;
  31. };
  32. typedef struct Eric Rochet2;
  33.  
  34. //  {menu_id, next_menu_id, icon, name, cost, level, faction, map, x, y, z, o, CheckVote}
  35. Rochet2 TeLe [] = // key = i & Key
  36. {
  37.     {1, 02"Stormwind",    1020-8842.09f626.358f,   94.0867f,   3.61363f, false},
  38.     {1, 02"Orgrimmar",    00111601.08f,   -4378.69f9.9846f,    2.14362f, false},
  39.     {1, 02"Darnassus",    00219869.91f,   2493.58f,   1315.88f,   2.78897f, false},
  40.     {1, 02"Ironforge",    0020-4900.47f-962.585f501.455f,   5.40538f, false},
  41.     {1, 02"Exodar",   002530,    -3864.92f-11643.7f-137.644f5.50862f, false},
  42.     {1, 02"Thunder bluff",    0011-1274.45f71.8601f,   128.159f,   2.80623f, false},
  43.     {1, 02"Undercity",    00101633.75f,   240.167f,   -43.1034f6.26128f, false},
  44.     {1, 02"Silvermoon city"001530,    9738.28f,   -7454.19f13.5605f,   0.043914f, false},
  45.     {1, 02"Dalaran"067, 0571,    5809.55f,   503.975f,   657.526f,   2.38338f, false},
  46.     {1, 02"Shattrath",    057, 0530,    -1887.62f5359.09f,   -12.4279f4.40435f, false},
  47.     {1, 02"Booty bay",    030, 00-14281.9f552.564f,   8.90422f,   0.860144f, false},
  48.     {1, 02"Gurubashi arena"030, 00-13181.8f339.356f,   42.9805f,   1.18013f, false},
  49.     {1, 63"Eastern Kingdoms", 00000000, false},
  50.     {1, 73"Kalimdor", 00000000, false},
  51.     {1, 83"Outland"058, 000000, false},
  52.     {1, 93"Northrend",    068, 000000, false},
  53.     {1, 29"Classic Dungeons", 015, 000000, true},
  54.     {1, 39"BC Dungeons"059, 000000, true},
  55.     {1, 49"Wrath Dungeons",   069, 000000, true},
  56.     {1, 59"Raid Teleports",   057, 000000, true},
  57.  
  58.     {2, 02"Gnomeregan",   025, 20-5163.54f925.423f,   257.181f,   1.57423f, false},
  59.     {2, 02"The Deadmines",    017, 20-11209.6f1666.54f,   24.6974f,   1.42053f, false},
  60.     {2, 02"The Stockade", 022, 20-8799.15f832.718f,   97.6348f,   6.04085f, false},
  61.     {2, 02"Ragefire Chasm",   015, 111811.78f,   -4410.5f,   -18.4704f5.20165f, false},
  62.     {2, 02"Razorfen Downs",   034, 11-4657.3f,   -2519.35f81.0529f,   4.54808f, false},
  63.     {2, 02"Razorfen Kraul",   024, 11-4470.28f-1677.77f81.3925f,   1.16302f, false},
  64.     {2, 02"Scarlet Monastery",    032, 102873.15f,   -764.523f160.332f,   5.10447f, false},
  65.     {2, 02"Shadowfang Keep"018, 10-234.675f1561.63f,   76.8921f,   1.24031f, false},
  66.     {2, 02"Wailing Caverns"017, 11-731.607f-2218.39f17.0281f,   2.78486f, false},
  67.     {2, 02"Blackfathom Deeps",    021, 014249.99f,   740.102f,   -25.671f,   1.34062f, false},
  68.     {2, 02"Blackrock Depths", 053, 00-7179.34f-921.212f165.821f,   5.09599f, false},
  69.     {2, 02"Blackrock Spire"057, 00-7527.05f-1226.77f285.732f,   5.29626f, false},
  70.     {2, 02"Dire Maul",    055, 01-3520.14f1119.38f,   161.025f,   4.70454f, false},
  71.     {2, 02"Maraudon", 045, 01-1421.42f2907.83f,   137.415f,   1.70718f, false},
  72.     {2, 02"Scholomance"055, 001269.64f,   -2556.21f93.6088f,   0.620623f, false},
  73.     {2, 02"Stratholme",   055, 003352.92f,   -3379.03f144.782f,   6.25978f, false},
  74.     {2, 02"Sunken Temple",    047, 00-10177.9f-3994.9f,   -111.239f6.01885f, false},
  75.     {2, 02"Uldaman"037, 00-6071.37f-2955.16f209.782f,   0.015708f, false},
  76.     {2, 02"Zul'Farrak",   035, 01-6801.19f-2893.02f9.00388f,   0.158639f, false},
  77.     {2, 17"Back..",   00000000, false},
  78.  
  79.     {3, 02"Auchindoun",   064, 0530,    -3324.49f4943.45f,   -101.239f4.63901f, false},
  80.     {3, 02"Caverns of Time"066, 01-8369.65f-4253.11f-204.272f-2.70526f, false},
  81.     {3, 02"Coilfang Reservoir",   062, 0530,    738.865f,   6865.77f,   -69.4659f6.27655f, false},
  82.     {3, 02"Hellfire Citadel", 059, 0530,    -347.29f,   3089.82f,   21.394f,    5.68114f, false},
  83.     {3, 02"Magisters' Terrace",   070, 0530,    12884.6f,   -7317.69f65.5023f,   4.799f, false},
  84.     {3, 02"Tempest Keep", 070, 0530,    3100.48f,   1536.49f,   190.3f, 4.62226f, false},
  85.     {3, 17"Back..",   00000000, false},
  86.  
  87.     {4, 02"Azjol-Nerub"073, 0571,    3707.86f,   2150.23f,   36.76f, 3.22f, false},
  88.     {4, 02"The Culling of Stratholme",    079, 01-8756.39f-4440.68f-199.489f4.66289f, false},
  89.     {4, 02"Trial of the Champion",    079, 0571,    8590.95f,   791.792f,   558.235f,   3.13127f, false},
  90.     {4, 02"Drak'Tharon Keep", 074, 0571,    4765.59f,   -2038.24f229.363f,   0.887627f, false},
  91.     {4, 02"Gundrak"071, 0571,    6722.44f,   -4640.67f450.632f,   3.91123f, false},
  92.     {4, 02"Icecrown Citadel Dungeons",    079, 0571,    5643.16f,   2028.81f,   798.274f,   4.60242f, false},
  93.     {4, 02"The Nexus Dungeons",   071, 0571,    3782.89f,   6965.23f,   105.088f,   6.14194f, false},
  94.     {4, 02"The Violet Hold"075, 0571,    5693.08f,   502.588f,   652.672f,   4.0229f, false},
  95.     {4, 02"Halls of Lightning",   079, 0571,    9136.52f,   -1311.81f1066.29f,   5.19113f, false},
  96.     {4, 02"Halls of Stone",   077, 0571,    8922.12f,   -1009.16f1039.56f,   1.57044f, false},
  97.     {4, 02"Utgarde Keep", 069, 0571,    1203.41f,   -4868.59f41.2486f,   0.283237f, false},
  98.     {4, 02"Utgarde Pinnacle", 075, 0571,    1267.24f,   -4857.3f,   215.764f,   3.22768f, false},
  99.     {4, 17"Back..",   00000000, false},
  100.  
  101.     {5, 02"Black Temple", 070, 0530,    -3649.92f317.469f,   35.2827f,   2.94285f, false},
  102.     {5, 02"Blackwing Lair",   060, 0229,    152.451f,   -474.881f116.84f,    0.001073f, false},
  103.     {5, 02"Hyjal Summit", 070, 01-8177.89f-4181.23f-167.552f0.913338f, false},
  104.     {5, 02"Serpentshrine Cavern", 070, 0530,    797.855f,   6865.77f,   -65.4165f0.005938f, false},
  105.     {5, 02"Trial of the Crusader",    080, 0571,    8515.61f,   714.153f,   558.248f,   1.57753f, false},
  106.     {5, 02"Gruul's Lair", 070, 0530,    3530.06f,   5104.08f,   3.50861f,   5.51117f, false},
  107.     {5, 02"Magtheridon's Lair",   070, 0530,    -336.411f3130.46f,   -102.928f5.20322f, false},
  108.     {5, 02"Icecrown Citadel", 080, 0571,    5855.22f,   2102.03f,   635.991f,   3.57899f, false},
  109.     {5, 02"Karazhan", 070, 00-11118.9f-2010.33f47.0819f,   0.649895f, false},
  110.     {5, 02"Molten Core"060, 0230,    1126.64f,   -459.94f,   -102.535f3.46095f, false},
  111.     {5, 02"Naxxramas",    080, 0571,    3668.72f,   -1262.46f243.622f,   4.785f, false},
  112.     {5, 02"Onyxia's Lair",    080, 01-4708.27f-3727.64f54.5589f,   3.72786f, false},
  113.     {5, 02"Ruins of Ahn'Qiraj",   060, 01-8409.82f1499.06f,   27.7179f,   2.51868f, false},
  114.     {5, 02"Sunwell Plateau"070, 0530,    12574.1f,   -6774.81f15.0904f,   3.13788f, false},
  115.     {5, 02"The Eye"067, 0530,    3088.49f,   1381.57f,   184.863f,   4.61973f, false},
  116.     {5, 02"Temple of Ahn'Qiraj"060, 01-8240.09f1991.32f,   129.072f,   0.941603f, false},
  117.     {5, 02"The Eye of Eternity"080, 0571,    3784.17f,   7028.84f,   161.258f,   5.79993f, false},
  118.     {5, 02"The Obsidian Sanctum", 080, 0571,    3472.43f,   264.923f,   -120.146f3.27923f, false},
  119.     {5, 02"Ulduar",   080, 0571,    9222.88f,   -1113.59f1216.12f,   6.27549f, false},
  120.     {5, 02"Vault of Archavon",    080, 0571,    5453.72f,   2840.79f,   421.28f,    0.0f, false},
  121.     {5, 02"Zul'Gurub",    057, 00-11916.7f-1215.72f92.289f,    4.72454f, false},
  122.     {5, 02"Zul'Aman", 070, 1530,    6851.78f,   -7972.57f179.242f,   4.64691f, false},
  123.     {5, 17"Back..",   00000000, false},
  124.  
  125.     {6, 02"Elwynn Forest",    0020-9449.06f64.8392f,   56.3581f,   3.07047f, false},
  126.     {6, 02"Eversong Woods",   001530,    9024.37f,   -6682.55f16.8973f,   3.14131f, false},
  127.     {6, 02"Dun Morogh",   0020-5603.76f-482.704f396.98f,    5.23499f, false},
  128.     {6, 02"Tirisfal Glades"00102274.95f,   323.918f,   34.1137f,   4.24367f, false},
  129.     {6, 02"Ghostlands",   010, 1530,    7595.73f,   -6819.6f,   84.3718f,   2.56561f, false},
  130.     {6, 02"Loch modan",   010, 20-5405.85f-2894.15f341.972f,   5.48238f, false},
  131.     {6, 02"Silverpine Forest",    010, 10505.126f,   1504.63f,   124.808f,   1.77987f, false},
  132.     {6, 02"Westfall", 010, 20-10684.9f1033.63f,   32.5389f,   6.07384f, false},
  133.     {6, 02"Redridge mountains",   015, 20-9447.8f,   -2270.85f71.8224f,   0.283853f, false},
  134.     {6, 02"Duskwood", 018, 20-10531.7f-1281.91f38.8647f,   1.56959f, false},
  135.     {6, 02"Hillsbrad Foothills"020, 00-385.805f-787.954f54.6655f,   1.03926f, false},
  136.     {6, 02"Wetlands", 020, 20-3517.75f-913.401f8.86625f,   2.60705f, false},
  137.     {6, 02"Alterac Mountains",    030, 00275.049f,   -652.044f130.296f,   0.502032f, false},
  138.     {6, 02"Arathi Highlands", 030, 00-1581.45f-2704.06f35.4168f,   0.490373f, false},
  139.     {6, 02"Stranglethorn Vale",   030, 00-11921.7f-59.544f,   39.7262f,   3.73574f, false},
  140.     {6, 02"Badlands", 035, 00-6782.56f-3128.14f240.48f,    5.65912f, false},
  141.     {6, 02"Swamp of Sorrows", 035, 00-10368.6f-2731.3f,   21.6537f,   5.29238f, false},
  142.     {6, 02"The Hinterlands"040, 00112.406f,   -3929.74f136.358f,   0.981903f, false},
  143.     {6, 02"Searing Gorge",    043, 00-6686.33f-1198.55f240.027f,   0.916887f, false},
  144.     {6, 02"The Blasted Lands",    045, 00-11184.7f-3019.31f7.29238f,   3.20542f, false},
  145.     {6, 02"Burning Steppes"050, 00-7979.78f-2105.72f127.919f,   5.10148f, false},
  146.     {6, 02"Western Plaguelands"051, 001743.69f,   -1723.86f59.6648f,   5.23722f, false},
  147.     {6, 02"Eastern Plaguelands"053, 002280.64f,   -5275.05f82.0166f,   4.7479f, false},
  148.     {6, 02"Isle of Quel'Danas",   070, 0530,    12806.5f,   -6911.11f41.1156f,   2.22935f, false},
  149.     {6, 17"Back..",   00000000, false},
  150.  
  151.     {7, 02"Azuremyst Isle",   002530,    -4192.62f-12576.7f36.7598f,   1.62813f, false},
  152.     {7, 02"Teldrassil",   00219889.03f,   915.869f,   1307.43f,   1.9336f, false},
  153.     {7, 02"Durotar"0011228.978f,   -4741.87f10.1027f,   0.416883f, false},
  154.     {7, 02"Mulgore"0011-2473.87f-501.225f-9.42465f0.6525f, false},
  155.     {7, 02"Bloodmyst Isle",   015, 2530,    -2095.7f,   -11841.1f51.1557f,   6.19288f, false},
  156.     {7, 02"Darkshore",    010, 216463.25f,   683.986f,   8.92792f,   4.33534f, false},
  157.     {7, 02"The Barrens"010, 11-575.772f-2652.45f95.6384f,   0.006469f, false},
  158.     {7, 02"Stonetalon Mountains", 015, 011574.89f,   1031.57f,   137.442f,   3.8013f, false},
  159.     {7, 02"Ashenvale Forest", 018, 011919.77f,   -2169.68f94.6729f,   6.14177f, false},
  160.     {7, 02"Thousand Needles", 025, 11-5375.53f-2509.2f,   -40.432f,   2.41885f, false},
  161.     {7, 02"Desolace", 030, 01-656.056f1510.12f,   88.3746f,   3.29553f, false},
  162.     {7, 02"Dustwallow Marsh", 035, 01-3350.12f-3064.85f33.0364f,   5.12666f, false},
  163.     {7, 02"Feralas"040, 01-4808.31f1040.51f,   103.769f,   2.90655f, false},
  164.     {7, 02"Tanaris Desert",   040, 01-6940.91f-3725.7f,   48.9381f,   3.11174f, false},
  165.     {7, 02"Azshara"045, 013117.12f,   -4387.97f91.9059f,   5.49897f, false},
  166.     {7, 02"Felwood"048, 013898.8f,    -1283.33f220.519f,   6.24307f, false},
  167.     {7, 02"Un'Goro Crater",   048, 01-6291.55f-1158.62f-258.138f0.457099f, false},
  168.     {7, 02"Silithus", 055, 01-6815.25f730.015f,   40.9483f,   2.39066f, false},
  169.     {7, 02"Winterspring", 055, 016658.57f,   -4553.48f718.019f,   5.18088f, false},
  170.     {7, 17"Back..",   00000000, false},
  171.  
  172.     {8, 02"Hellfire Peninsula",   058, 0530,    -207.335f2035.92f,   96.464f,    1.59676f, false},
  173.     {8, 02"Zangarmarsh"060, 0530,    -220.297f5378.58f,   23.3223f,   1.61718f, false},
  174.     {8, 02"Terokkar Forest"062, 0530,    -2266.23f4244.73f,   1.47728f,   3.68426f, false},
  175.     {8, 02"Nagrand"064, 0530,    -1610.85f7733.62f,   -17.2773f1.33522f, false},
  176.     {8, 02"Blade's Edge Mountains",   065, 0530,    2029.75f,   6232.07f,   133.495f,   1.30395f, false},
  177.     {8, 02"Netherstorm"067, 0530,    3271.2f,    3811.61f,   143.153f,   3.44101f, false},
  178.     {8, 02"Shadowmoon Valley",    067, 0530,    -3681.01f2350.76f,   76.587f,    4.25995f, false},
  179.     {8, 17"Back..",   00000000, false},
  180.  
  181.     {9, 02"Borean Tundra",    068, 0571,    2954.24f,   5379.13f,   60.4538f,   2.55544f, false},
  182.     {9, 02"Howling Fjord",    068, 0571,    682.848f,   -3978.3f,   230.161f,   1.54207f, false},
  183.     {9, 02"Dragonblight", 071, 0571,    2678.17f,   891.826f,   4.37494f,   0.101121f, false},
  184.     {9, 02"Grizzly Hills",    073, 0571,    4017.35f,   -3403.85f290.0f, 5.35431f, false},
  185.     {9, 02"Zul'Drak", 074, 0571,    5560.23f,   -3211.66f371.709f,   5.55055f, false},
  186.     {9, 02"Sholazar Basin",   076, 0571,    5614.67f,   5818.86f,   -69.722f,   3.60807f, false},
  187.     {9, 02"Crystalsong Forest",   077, 0571,    5411.17f,   -966.37f,   167.082f,   1.57167f, false},
  188.     {9, 02"Storm Peaks"077, 0571,    6120.46f,   -1013.89f408.39f,    5.12322f, false},
  189.     {9, 02"Icecrown", 077, 0571,    8323.28f,   2763.5f,    655.093f,   2.87223f, false},
  190.     {9, 02"Wintergrasp"077, 0571,    4522.23f,   2828.01f,   389.975f,   0.215009f, false},
  191.     {9, 17"Back..",   00000000, false},
  192.  
  193. //  {10,    0,  2,  "Teleport", 0,  0,  0,  map,    xf, yf, zf, of, false},
  194. //  {10,    1,  7,  "Back..",   0,  0,  0,  0,  0,  0,  0,  0, false},
  195. };
  196.  
  197. // TextIDs from npc_text
  198. enum eEnums
  199. {
  200.     TEXT_MAIN_H     =   300000,         //Horde main menu text
  201.     TEXT_MAIN_A     =   300001,         //Alliance main menu text
  202.     TEXT_DUNGEON    =   300002,         //Dungeon teleport menu texts
  203.     TEXT_RAID       =   300003,         //Raid teleport menu text
  204.     TEXT_AREA       =   300004,         //Area teleport location menu texts
  205.    
  206.     TELEPORT_COUNT  =   sizeof TeLe/sizeof(*TeLe),
  207. };
  208.  
  209. #define ARE_YOU_SURE    "Are you sure, that you want to go to "
  210. #define ERROR_COMBAT    "|cffff0000You are in combat|r"
  211.  
  212. bool Custom_FactCheck (uint32 Fact, unsigned char Key)
  213. {
  214.     bool Show = false;
  215.     switch (TeLe[Key].faction)
  216.     {
  217.     case 0:
  218.         Show = true;
  219.         break;
  220.     case 1:
  221.         if (Fact == HORDE)
  222.             Show = true;
  223.         break;
  224.     case 2:
  225.         if (Fact == ALLIANCE)
  226.             Show = true;
  227.         break;
  228.     }
  229.     return (Show);
  230. }
  231.  
  232. uint32 Custom_GetText (unsigned int menu, Player* pPlayer)
  233. {
  234.     uint32 TEXT = TEXT_AREA;
  235.     switch (menu)
  236.     {
  237.     case 0:
  238.         switch (pPlayer->GetTeam())
  239.         {
  240.         case ALLIANCE:
  241.             TEXT = TEXT_MAIN_A;
  242.             break;
  243.         case HORDE:
  244.             TEXT = TEXT_MAIN_H;
  245.             break;
  246.         }
  247.     case 1:
  248.     case 2:
  249.     case 3:
  250.         TEXT = TEXT_DUNGEON;
  251.         break;
  252.     case 4:
  253.         TEXT = TEXT_RAID;
  254.         break;
  255.     }
  256.     return (TEXT);
  257. }
  258.  
  259. void Custom_GetMenu (Player* pPlayer, Creature* pCreature, uint32 Key)
  260. {
  261.     bool Voted = false;
  262.     QueryResult result = WorldDatabase.PQuery("SELECT %s FROM %s WHERE GUID = %u", COLUMN, TABLE, pPlayer->GetGUID());
  263.     if(result)
  264.     {
  265.         Field* field = result->Fetch();
  266.         if(field[0].GetUInt8() != 0)
  267.             Voted = true;
  268.     }
  269.  
  270.     bool ENDMENU = false;
  271.     for(uint32 i = 0; i < TELEPORT_COUNT; i++)
  272.     {
  273.         if (ENDMENU && TeLe[i].menu_id != Key)
  274.             break;
  275.         if ((!TeLe[i].CheckVote || (TeLe[i].CheckVote && Voted)) && TeLe[i].menu_id == Key && pPlayer->getLevel() >= TeLe[i].level && Custom_FactCheck(pPlayer->GetTeam(), i))
  276.         {
  277.             if (TeLe[i].next_menu_id != 0)
  278.                 pPlayer->ADD_GOSSIP_ITEM_EXTENDED(TeLe[i].icon, TeLe[i].name, GOSSIP_SENDER_MAIN, i, "", TeLe[i].cost, false);
  279.             else
  280.                 pPlayer->ADD_GOSSIP_ITEM_EXTENDED(TeLe[i].icon, TeLe[i].name, GOSSIP_SENDER_MAIN, i, ARE_YOU_SURE+TeLe[i].name, TeLe[i].cost, false);
  281.             ENDMENU = true;
  282.         }
  283.     }
  284.     pPlayer->PlayerTalkClass->SendGossipMenu(Custom_GetText(Key, pPlayer), pCreature->GetGUID());
  285. }
  286.  
  287. class TeLe_gossip_codebox : public CreatureScript
  288. {
  289.     public:
  290.     TeLe_gossip_codebox()
  291.     : CreatureScript("TeLe_gossip_codebox")
  292.     {
  293.     }
  294.  
  295.     bool OnGossipHello(Player* pPlayer, Creature* pCreature)
  296.     {
  297.         Custom_GetMenu(pPlayer, pCreature, 1);
  298.         return true;
  299.     }
  300.  
  301.     bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
  302.     {
  303.         pPlayer->PlayerTalkClass->ClearMenus(); // clear the menu
  304.  
  305.         pPlayer->ModifyMoney(-1 * TeLe[uiAction].cost); // take cash
  306.         uint32 Key = TeLe[uiAction].next_menu_id;
  307.         if (Key == 0) // if no next_menu_id, then teleport to coords
  308.         {
  309.             if (!pPlayer->isInCombat())
  310.             {
  311.                 pPlayer->CLOSE_GOSSIP_MENU();
  312.                 pPlayer->TeleportTo(TeLe[uiAction].map, TeLe[uiAction].x, TeLe[uiAction].y, TeLe[uiAction].z, TeLe[uiAction].o);
  313.                 return true;
  314.             }
  315.             pPlayer->GetSession()->SendAreaTriggerMessage(ERROR_COMBAT);
  316.             Key = TeLe[uiAction].menu_id;
  317.         }
  318.  
  319.         Custom_GetMenu(pPlayer, pCreature, Key);
  320.         return true;
  321.     }
  322. };
  323.  
  324. void AddSC_TeLe_gossip_codebox()
  325. {
  326.     new TeLe_gossip_codebox();
  327. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement