Core/WorldStates: Migrate OutdoorPvP worldstates to new system

This commit is contained in:
Shauren authored and Ovahlord committed 2022-12-21 21:55:27 +01:00
1 parent c63312cc06
commit e748845e78
14 files changed
+320 -578

No files matched your search

-175
View File
@@ -8757,7 +8757,6 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
{
// data depends on zoneid/mapid...
uint32 mapid = GetMapId();
OutdoorPvP* pvp = sOutdoorPvPMgr->GetOutdoorPvPToZoneId(zoneId);
TC_LOG_DEBUG("network", "Sending SMSG_INIT_WORLD_STATES to Map: %u, Zone: %u", mapid, zoneId);
@@ -8779,180 +8778,6 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
// 0 - End of season
packet.Worldstates.emplace_back(3901, int32(sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID) - sWorld->getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS))); // 8 PreviousSeason
if (mapid == 530) // Outland
{
packet.Worldstates.emplace_back(2495, 0); // 7
packet.Worldstates.emplace_back(2493, 0xF); // 8
packet.Worldstates.emplace_back(2491, 0xF); // 9
}
// insert <field> <value>
switch (zoneId)
{
case 1: // Dun Morogh
case 11: // Wetlands
case 12: // Elwynn Forest
case 38: // Loch Modan
case 40: // Westfall
case 51: // Searing Gorge
case 1519: // Stormwind City
case 1537: // Ironforge
case 2257: // Deeprun Tram
case 3703: // Shattrath City});
break;
case 1377: // Silithus
if (pvp && pvp->GetTypeId() == OUTDOOR_PVP_SI)
pvp->FillInitialWorldStates(packet);
else
{
// states are always shown
packet.Worldstates.emplace_back(2313, 0x0); // 7 ally silityst gathered
packet.Worldstates.emplace_back(2314, 0x0); // 8 horde silityst gathered
packet.Worldstates.emplace_back(2317, 0x0); // 9 max silithyst
}
// dunno about these... aq opening event maybe?
packet.Worldstates.emplace_back(2322, 0x0); // 10 sandworm N
packet.Worldstates.emplace_back(2323, 0x0); // 11 sandworm S
packet.Worldstates.emplace_back(2324, 0x0); // 12 sandworm SW
packet.Worldstates.emplace_back(2325, 0x0); // 13 sandworm E
break;
// any of these needs change! the client remembers the prev setting!
// ON EVERY ZONE LEAVE, RESET THE OLD ZONE'S WORLD STATE, BUT AT LEAST THE UI STUFF!
case 3483: // Hellfire Peninsula
if (pvp && pvp->GetTypeId() == OUTDOOR_PVP_HP)
pvp->FillInitialWorldStates(packet);
else
{
packet.Worldstates.emplace_back(0x9ba, 0x1); // 10 // add ally tower main gui icon // maybe should be sent only on login?
packet.Worldstates.emplace_back(0x9b9, 0x1); // 11 // add horde tower main gui icon // maybe should be sent only on login?
packet.Worldstates.emplace_back(0x9b5, 0x0); // 12 // show neutral broken hill icon // 2485
packet.Worldstates.emplace_back(0x9b4, 0x1); // 13 // show icon above broken hill // 2484
packet.Worldstates.emplace_back(0x9b3, 0x0); // 14 // show ally broken hill icon // 2483
packet.Worldstates.emplace_back(0x9b2, 0x0); // 15 // show neutral overlook icon // 2482
packet.Worldstates.emplace_back(0x9b1, 0x1); // 16 // show the overlook arrow // 2481
packet.Worldstates.emplace_back(0x9b0, 0x0); // 17 // show ally overlook icon // 2480
packet.Worldstates.emplace_back(0x9ae, 0x0); // 18 // horde pvp objectives captured // 2478
packet.Worldstates.emplace_back(0x9ac, 0x0); // 19 // ally pvp objectives captured // 2476
packet.Worldstates.emplace_back(2475, 100); //: ally / horde slider grey area // show only in direct vicinity!
packet.Worldstates.emplace_back(2474, 50); //: ally / horde slider percentage, 100 for ally, 0 for horde // show only in direct vicinity!
packet.Worldstates.emplace_back(2473, 0); //: ally / horde slider display // show only in direct vicinity!
packet.Worldstates.emplace_back(0x9a8, 0x0); // 20 // show the neutral stadium icon // 2472
packet.Worldstates.emplace_back(0x9a7, 0x0); // 21 // show the ally stadium icon // 2471
packet.Worldstates.emplace_back(0x9a6, 0x1); // 22 // show the horde stadium icon // 2470
}
break;
case 3518: // Nagrand
if (pvp && pvp->GetTypeId() == OUTDOOR_PVP_NA)
pvp->FillInitialWorldStates(packet);
else
{
packet.Worldstates.emplace_back(2503, 0x0); // 10
packet.Worldstates.emplace_back(2502, 0x0); // 11
packet.Worldstates.emplace_back(2493, 0x0); // 12
packet.Worldstates.emplace_back(2491, 0x0); // 13
packet.Worldstates.emplace_back(2495, 0x0); // 14
packet.Worldstates.emplace_back(2494, 0x0); // 15
packet.Worldstates.emplace_back(2497, 0x0); // 16
packet.Worldstates.emplace_back(2762, 0x0); // 17
packet.Worldstates.emplace_back(2662, 0x0); // 18
packet.Worldstates.emplace_back(2663, 0x0); // 19
packet.Worldstates.emplace_back(2664, 0x0); // 20
packet.Worldstates.emplace_back(2760, 0x0); // 21
packet.Worldstates.emplace_back(2670, 0x0); // 22
packet.Worldstates.emplace_back(2668, 0x0); // 23
packet.Worldstates.emplace_back(2669, 0x0); // 24
packet.Worldstates.emplace_back(2761, 0x0); // 25
packet.Worldstates.emplace_back(2667, 0x0); // 26
packet.Worldstates.emplace_back(2665, 0x0); // 27
packet.Worldstates.emplace_back(2666, 0x0); // 28
packet.Worldstates.emplace_back(2763, 0x0); // 29
packet.Worldstates.emplace_back(2659, 0x0); // 30
packet.Worldstates.emplace_back(2660, 0x0); // 31
packet.Worldstates.emplace_back(2661, 0x0); // 32
packet.Worldstates.emplace_back(2671, 0x0); // 33
packet.Worldstates.emplace_back(2676, 0x0); // 34
packet.Worldstates.emplace_back(2677, 0x0); // 35
packet.Worldstates.emplace_back(2672, 0x0); // 36
packet.Worldstates.emplace_back(2673, 0x0); // 37
}
break;
case 3519: // Terokkar Forest
if (pvp && pvp->GetTypeId() == OUTDOOR_PVP_TF)
pvp->FillInitialWorldStates(packet);
else
{
packet.Worldstates.emplace_back(0xa41, 0x0); // 10 // 2625 capture bar pos
packet.Worldstates.emplace_back(0xa40, 0x14); // 11 // 2624 capture bar neutral
packet.Worldstates.emplace_back(0xa3f, 0x0); // 12 // 2623 show capture bar
packet.Worldstates.emplace_back(0xa3e, 0x0); // 13 // 2622 horde towers controlled
packet.Worldstates.emplace_back(0xa3d, 0x5); // 14 // 2621 ally towers controlled
packet.Worldstates.emplace_back(0xa3c, 0x0); // 15 // 2620 show towers controlled
packet.Worldstates.emplace_back(0xa88, 0x0); // 16 // 2696 SE Neu
packet.Worldstates.emplace_back(0xa87, 0x0); // 17 // SE Horde
packet.Worldstates.emplace_back(0xa86, 0x0); // 18 // SE Ally
packet.Worldstates.emplace_back(0xa85, 0x0); // 19 //S Neu
packet.Worldstates.emplace_back(0xa84, 0x0); // 20 S Horde
packet.Worldstates.emplace_back(0xa83, 0x0); // 21 S Ally
packet.Worldstates.emplace_back(0xa82, 0x0); // 22 NE Neu
packet.Worldstates.emplace_back(0xa81, 0x0); // 23 NE Horde
packet.Worldstates.emplace_back(0xa80, 0x0); // 24 NE Ally
packet.Worldstates.emplace_back(0xa7e, 0x0); // 25 // 2686 N Neu
packet.Worldstates.emplace_back(0xa7d, 0x0); // 26 N Horde
packet.Worldstates.emplace_back(0xa7c, 0x0); // 27 N Ally
packet.Worldstates.emplace_back(0xa7b, 0x0); // 28 NW Ally
packet.Worldstates.emplace_back(0xa7a, 0x0); // 29 NW Horde
packet.Worldstates.emplace_back(0xa79, 0x0); // 30 NW Neutral
packet.Worldstates.emplace_back(0x9d0, 0x5); // 31 // 2512 locked time remaining seconds first digit
packet.Worldstates.emplace_back(0x9ce, 0x0); // 32 // 2510 locked time remaining seconds second digit
packet.Worldstates.emplace_back(0x9cd, 0x0); // 33 // 2509 locked time remaining minutes
packet.Worldstates.emplace_back(0x9cc, 0x0); // 34 // 2508 neutral locked time show
packet.Worldstates.emplace_back(0xad0, 0x0); // 35 // 2768 horde locked time show
packet.Worldstates.emplace_back(0xacf, 0x1); // 36 // 2767 ally locked time show
}
break;
case 3521: // Zangarmarsh
if (pvp && pvp->GetTypeId() == OUTDOOR_PVP_ZM)
pvp->FillInitialWorldStates(packet);
else
{
packet.Worldstates.emplace_back(0x9e1, 0x0); // 10 //2529
packet.Worldstates.emplace_back(0x9e0, 0x0); // 11
packet.Worldstates.emplace_back(0x9df, 0x0); // 12
packet.Worldstates.emplace_back(0xa5d, 0x1); // 13 //2653
packet.Worldstates.emplace_back(0xa5c, 0x0); // 14 //2652 east beacon neutral
packet.Worldstates.emplace_back(0xa5b, 0x1); // 15 horde
packet.Worldstates.emplace_back(0xa5a, 0x0); // 16 ally
packet.Worldstates.emplace_back(0xa59, 0x1); // 17 // 2649 Twin spire graveyard horde 12???
packet.Worldstates.emplace_back(0xa58, 0x0); // 18 ally 14 ???
packet.Worldstates.emplace_back(0xa57, 0x0); // 19 neutral 7???
packet.Worldstates.emplace_back(0xa56, 0x0); // 20 // 2646 west beacon neutral
packet.Worldstates.emplace_back(0xa55, 0x1); // 21 horde
packet.Worldstates.emplace_back(0xa54, 0x0); // 22 ally
packet.Worldstates.emplace_back(0x9e7, 0x0); // 23 // 2535
packet.Worldstates.emplace_back(0x9e6, 0x0); // 24
packet.Worldstates.emplace_back(0x9e5, 0x0); // 25
packet.Worldstates.emplace_back(0xa00, 0x0); // 26 // 2560
packet.Worldstates.emplace_back(0x9ff, 0x1); // 27
packet.Worldstates.emplace_back(0x9fe, 0x0); // 28
packet.Worldstates.emplace_back(0x9fd, 0x0); // 29
packet.Worldstates.emplace_back(0x9fc, 0x1); // 30
packet.Worldstates.emplace_back(0x9fb, 0x0); // 31
packet.Worldstates.emplace_back(0xa62, 0x0); // 32 // 2658
packet.Worldstates.emplace_back(0xa61, 0x1); // 33
packet.Worldstates.emplace_back(0xa60, 0x1); // 34
packet.Worldstates.emplace_back(0xa5f, 0x0); // 35
}
break;
default:
break;
}
SendDirectMessage(packet.Write());
SendBGWeekendWorldStates();
}