fix(Core/DBC): award classic-tier XP in the starter isle ocean zones (#26749)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Øyvind Bertelsen 2026-08-03 06:17:55 +02:00 committed by GitHub
parent eb68560b71
commit 5af99dc391
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 0 deletions

View file

@ -0,0 +1,14 @@
--
-- The ocean zones around the TBC starting isles live on map 530 (Outland) but have no
-- WorldMapArea entry, so GetVirtualMapForMapAndZone() falls back to map 530 and
-- GetContentLevelsForMapAndZone() classifies them as CONTENT_61_70 (base XP 235 instead
-- of 45). Killing a mob swimming in The Veiled Sea off Azuremyst Isle rewards nearly
-- 4x the XP of the same mob standing on shore.
-- Add server-side WorldMapArea entries mapping these zones to their virtual continents,
-- like the isles themselves (Azuremyst/Bloodmyst -> Kalimdor, Eversong/Ghostlands -> EK).
-- Coordinate extents are the bounding box of the surrounded isles (only used by GM
-- commands .gps / .go zonexy).
DELETE FROM `worldmaparea_dbc` WHERE `ID` IN (1000, 1001);
INSERT INTO `worldmaparea_dbc` (`ID`, `MapID`, `AreaID`, `AreaName`, `LocLeft`, `LocRight`, `LocTop`, `LocBottom`, `DisplayMapID`, `DefaultDungeonFloor`, `ParentWorldMapID`) VALUES
(1000, 530, 3479, 'TheVeiledSea', -10075, -14570.833, -758.3333, -5508.333, 1, 0, 0),
(1001, 530, 3455, 'TheNorthSea', -4487.5, -9412.5, 13568.75, 6066.6665, 0, 0, 0);

View file

@ -31,6 +31,8 @@ DBCDatabaseLoader::DBCDatabaseLoader(char const* tableName, char const* dbcForma
// Get sql index position
int32 indexPos = -1;
_recordSize = DBCFileLoader::GetFormatRecordSize(_dbcFormat, &indexPos);
if (indexPos >= 0)
_sqlIndexPos = indexPos;
ASSERT(_recordSize);
}