Skip to content

Commit b353354

Browse files
authored
Merge branch 'master' into dh_retaliation
2 parents d646509 + c85a061 commit b353354

File tree

316 files changed

+106404
-9713
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

316 files changed

+106404
-9713
lines changed

.circleci/config.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ jobs:
9191
docker build --file Dockerfile --force-rm --tag $image_prefix:$CIRCLE_SHA1 --tag $image_prefix:$(echo $CIRCLE_BRANCH | tr '/' '-' | tr '[:upper:]' '[:lower:]') .
9292
docker save $image_prefix | gzip > ../../docker.tar.gz
9393
if [ "$DOCKERHUB_PUSH_IMAGES" == "TRUE" ]; then
94-
if [ "$CIRCLE_BRANCH" == "3.3.5" ] || [ "$CIRCLE_BRANCH" == "master" ] || [ "$CIRCLE_BRANCH" == "wotlk_classic" ]; then
94+
if [ "$CIRCLE_BRANCH" == "3.3.5" ] || [ "$CIRCLE_BRANCH" == "master" ]; then
9595
docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
9696
echo "Pushing docker image to dockerhub"
9797
docker push --all-tags $image_prefix
@@ -135,7 +135,7 @@ jobs:
135135
ccache -s
136136
git config user.email "[email protected]" && git config user.name "Circle CI"
137137
$CXX --version
138-
cmake -S . -B ./bin -DWITH_WARNINGS=1 -DWITH_WARNINGS_AS_ERRORS=1 -DWITH_COREDEBUG=0 -DUSE_COREPCH=0 -DUSE_SCRIPTPCH=0 -DTOOLS=1 -DSCRIPTS=dynamic -DSERVERS=1 -DNOJEM=0 -DCMAKE_C_FLAGS_DEBUG="-DNDEBUG" -DCMAKE_CXX_FLAGS_DEBUG="-DNDEBUG" -DCMAKE_INSTALL_PREFIX=bin/check_install
138+
cmake -S . -B ./bin -DWITH_WARNINGS=1 -DWITH_WARNINGS_AS_ERRORS=1 -DWITH_COREDEBUG=0 -DUSE_COREPCH=0 -DUSE_SCRIPTPCH=0 -DTOOLS=1 -DSCRIPTS=dynamic -DSERVERS=1 -DNOJEM=0 -DCMAKE_C_FLAGS_DEBUG="-DNDEBUG -g0" -DCMAKE_CXX_FLAGS_DEBUG="-DNDEBUG -g0" -DCMAKE_INSTALL_PREFIX=bin/check_install
139139
- run:
140140
name: Build
141141
command: |
@@ -155,4 +155,3 @@ workflows:
155155
jobs:
156156
- codestyle_and_sql
157157
- pch
158-
- nopch

.github/workflows/gcc-build.yml

Lines changed: 0 additions & 41 deletions
This file was deleted.

.github/workflows/linux-build.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: Ubuntu x64
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-24.04
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
include:
14+
- cc: gcc-13
15+
cxx: g++-13
16+
pch: 1
17+
launcher:
18+
- cc: clang-17
19+
cxx: clang++-17
20+
pch: 1
21+
launcher:
22+
- cc: clang-17
23+
cxx: clang++-17
24+
pch: 0
25+
launcher: ccache
26+
steps:
27+
- uses: actions/checkout@v5
28+
- name: Set reusable strings
29+
id: strings
30+
shell: bash
31+
run: |
32+
echo "build-start=$EPOCHSECONDS" >> "$GITHUB_OUTPUT"
33+
echo "build-output-dir=${{ github.workspace }}/bin" >> "$GITHUB_OUTPUT"
34+
echo "ccache-key-prefix=ubuntu-${{ matrix.cc }}-${{ github.base_ref || github.ref_name }}" >> "$GITHUB_OUTPUT"
35+
- name: Dependencies
36+
run: |
37+
sudo apt-get update && sudo apt-get install -yq ccache libboost-dev libboost-filesystem-dev libboost-locale-dev libboost-program-options-dev libboost-regex-dev libboost-thread-dev libssl-dev libreadline-dev zlib1g-dev libbz2-dev
38+
- name: Restore nopch cache
39+
id: ccache-restore
40+
if: ${{ matrix.pch == '0' }}
41+
uses: actions/cache@v4
42+
with:
43+
path: ${{ github.workspace }}/.ccache
44+
key: ${{ steps.strings.outputs.ccache-key-prefix }}-${{ github.ref_name }}-${{ github.sha }}
45+
restore-keys: |
46+
${{ steps.strings.outputs.ccache-key-prefix }}-${{ github.ref_name }}-
47+
${{ steps.strings.outputs.ccache-key-prefix }}-
48+
- name: Setup
49+
env:
50+
CMAKE_BUILD_TYPE: Debug
51+
CMAKE_C_COMPILER_LAUNCHER: ${{ matrix.launcher }}
52+
CMAKE_CXX_COMPILER_LAUNCHER: ${{ matrix.launcher }}
53+
CC: /usr/bin/${{ matrix.cc }}
54+
CXX: /usr/bin/${{ matrix.cxx }}
55+
run: >
56+
cmake -GNinja -S ${{ github.workspace }} -B ${{ steps.strings.outputs.build-output-dir }}
57+
-DWITH_WARNINGS=1 -DWITH_WARNINGS_AS_ERRORS=1 -DWITH_COREDEBUG=0 -DUSE_COREPCH=${{ matrix.pch }} -DUSE_SCRIPTPCH=${{ matrix.pch }} -DTOOLS=1 -DSCRIPTS=dynamic -DSERVERS=1 -DNOJEM=0
58+
-DCMAKE_C_FLAGS_DEBUG="-DNDEBUG -g0" -DCMAKE_CXX_FLAGS_DEBUG="-DNDEBUG -g0"
59+
-DCMAKE_INSTALL_PREFIX=check_install -DBUILD_TESTING=1
60+
- name: Build
61+
env:
62+
CCACHE_BASEDIR: ${{ github.workspace }}
63+
CCACHE_DIR: ${{ github.workspace }}/.ccache
64+
CCACHE_CPP2: 1
65+
run: |
66+
ccache -z
67+
cmake --build ${{ steps.strings.outputs.build-output-dir }}
68+
ccache -s
69+
ccache --evict-older-than $(($EPOCHSECONDS - ${{ steps.strings.outputs.build-start }}))s
70+
- name: Unit tests
71+
run: |
72+
cmake --build ${{ steps.strings.outputs.build-output-dir }} --target test
73+
- name: Check executables
74+
run: |
75+
cmake --install ${{ steps.strings.outputs.build-output-dir }}
76+
cd ${{ github.workspace }}/check_install/bin
77+
./bnetserver --version
78+
./worldserver --version

dep/CascLib/src/CascRootFile_TVFS.cpp

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,10 @@ typedef struct _TVFS_PATH_TABLE_ENTRY
113113

114114
typedef struct _TVFS_WOW_ENTRY
115115
{
116-
DWORD LocaleFlags;
117-
USHORT ContentFlags;
118-
DWORD FileDataId;
119-
BYTE ContentKey[MD5_HASH_SIZE];
116+
DWORD LocaleFlags;
117+
DWORD ContentFlags;
118+
DWORD FileDataId;
119+
BYTE ContentKey[MD5_HASH_SIZE];
120120
} TVFS_WOW_ENTRY, *PTVFS_WOW_ENTRY;
121121

122122
//-----------------------------------------------------------------------------
@@ -733,36 +733,45 @@ struct TRootHandler_TVFS : public TFileTreeRoot
733733
DWORD CheckWoWGenericName(const CASC_PATH<char> & PathBuffer, TVFS_WOW_ENTRY & WowEntry)
734734
{
735735
size_t nPathLength = PathBuffer.Length();
736-
BYTE BinaryBuffer[4+2+4+16];
737736

738737
//
739738
// WoW Build 45779: 000000020000:000C472F02BA924C604A670B253AA02DBCD9441 (Bug: Missing last digit of the CKey)
740739
// WoW Build 46144: 000000020000:000C472F02BA924C604A670B253AA02DBCD9441C
741740
// LLLLLLLLCCCC IIIIIIIIKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
741+
//
742+
// WoW Build 63728: 0000000200000000:005096B78ECBF6630B7A282B01358857C6DDF2B2
743+
// LLLLLLLLCCCCCCCC IIIIIIIIKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
742744
//
743745
// L = Locale flags, C = Content flags, I = File Data ID, K = CKey
744746
//
745747

746-
if(nPathLength == 52 || nPathLength == 53)
748+
if(nPathLength == 52 || nPathLength == 53 || nPathLength == 57)
747749
{
748-
if(PathBuffer[12] == ':')
750+
const char * pColonPosition = strchr(PathBuffer, ':');
751+
const char * szFileName = PathBuffer;
752+
size_t nColonPos = pColonPosition - szFileName;
753+
BYTE NamePart1[4 + 4]; // Content flags, locale flags
754+
BYTE NamePart2[4 + 16]; // File data ID, CKey
755+
756+
// Is there colon (':') at position 12 or 16?
757+
if(nColonPos == 12 || nColonPos == 16)
749758
{
750-
// Check the first part of the TVFS name
751-
if(BinaryFromString(&PathBuffer[00], 12, (LPBYTE)(&BinaryBuffer[0])) != ERROR_SUCCESS)
759+
// Check the locale flags and content flags
760+
if(BinaryFromString(szFileName, nColonPos, NamePart1) != ERROR_SUCCESS)
752761
return ERROR_REPARSE_ROOT;
753762

754-
// Check the second part of the file name
755-
if(BinaryFromString(&PathBuffer[13], 40, (LPBYTE)(&BinaryBuffer[6])) != ERROR_SUCCESS)
763+
// Check the file data ID from the TVFS name
764+
if(BinaryFromString(pColonPosition + 1, 40, NamePart2) != ERROR_SUCCESS)
756765
return ERROR_REPARSE_ROOT;
757766

758767
#ifdef TVFS_PARSE_WOW_ROOT
759-
// We accept strings with length 53 chars
760-
if(nPathLength == 53)
768+
// We accept strings with length 53 or 57 chars
769+
if(nPathLength == 53 || nPathLength == 57)
761770
{
762-
WowEntry.LocaleFlags = ConvertBytesToInteger_4(BinaryBuffer + 0x00);
763-
WowEntry.ContentFlags = ConvertBytesToInteger_2(BinaryBuffer + 0x04);
764-
WowEntry.FileDataId = ConvertBytesToInteger_4(BinaryBuffer + 0x06);
765-
memcpy(WowEntry.ContentKey, BinaryBuffer + 0x0A, MD5_HASH_SIZE);
771+
WowEntry.LocaleFlags = ConvertBytesToInteger_4(&NamePart1[0]);
772+
WowEntry.ContentFlags = ConvertBytesToInteger_X(&NamePart1[4], (nColonPos - 8) / 2);
773+
WowEntry.FileDataId = ConvertBytesToInteger_4(&NamePart2[0]);
774+
memcpy(WowEntry.ContentKey, &NamePart2[4], MD5_HASH_SIZE);
766775
return ERROR_SUCCESS;
767776
}
768777
#endif // TVFS_PARSE_WOW_ROOT

dep/PackageList.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ catch2
5959

6060
CascLib (An open-source implementation of library for reading CASC storage from Blizzard games since 2014)
6161
https://github.com/ladislav-zezula/CascLib
62-
Version: 09dd46e59614ee468c290b9002850454990bf15d
62+
Version: 5dafc4c5a53faecfe269e525d37cf977cfa818b1
6363

6464
rapidjson (A fast JSON parser/generator for C++ with both SAX/DOM style API http://rapidjson.org/)
6565
https://github.com/Tencent/rapidjson

dep/boost/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ if(WIN32)
2222
string(SUBSTRING "${MSVC_TOOLSET_VERSION}" ${_BOOST_MSVC_TOOLSET_VERSION_LENGTH} -1 _BOOST_MSVC_TOOLSET_VERSION_MINOR)
2323

2424
file(TO_CMAKE_PATH "${BOOST_ROOT}" BOOST_ROOT)
25-
set(BOOST_SEARCH_HINTS "${BOOST_ROOT}/lib${PLATFORM}-msvc-${_BOOST_MSVC_TOOLSET_VERSION_MAJOR}.${_BOOST_MSVC_TOOLSET_VERSION_MINOR}/cmake")
25+
while(_BOOST_MSVC_TOOLSET_VERSION_MINOR GREATER_EQUAL 0)
26+
list(APPEND BOOST_SEARCH_HINTS "${BOOST_ROOT}/lib${PLATFORM}-msvc-${_BOOST_MSVC_TOOLSET_VERSION_MAJOR}.${_BOOST_MSVC_TOOLSET_VERSION_MINOR}/cmake")
27+
math(EXPR _BOOST_MSVC_TOOLSET_VERSION_MINOR "${_BOOST_MSVC_TOOLSET_VERSION_MINOR} - 1" OUTPUT_FORMAT DECIMAL)
28+
endwhile()
2629

2730
unset(_BOOST_MSVC_TOOLSET_VERSION_LENGTH)
2831
unset(_BOOST_MSVC_TOOLSET_VERSION_MAJOR)

dep/recastnavigation/CMakeLists.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,4 @@
1717
#
1818

1919
add_subdirectory(Detour)
20-
if(TOOLS)
21-
add_subdirectory(Recast)
22-
endif()
20+
add_subdirectory(Recast)

sql/base/auth_database.sql

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1355,7 +1355,21 @@ INSERT INTO `build_auth_key` VALUES
13551355
(64502,'Mac','x64','WoWC',0x6DCE3BA9C0ACF638AE599680200483AE),
13561356
(64502,'Win','A64','WoW',0x51DF09ABE30D38142EB5942ED774301B),
13571357
(64502,'Win','x64','WoW',0x54D307CF2BC84E50E94C2D3A95CD6D7B),
1358-
(64502,'Win','x64','WoWC',0xA968CFA8B0558F433B3E483E844FBFC3);
1358+
(64502,'Win','x64','WoWC',0xA968CFA8B0558F433B3E483E844FBFC3),
1359+
(64877,'Mac','A64','WoW',0xB903471C43EBDC5BABF6FB604A3A5E69),
1360+
(64877,'Mac','A64','WoWC',0x3DFEDC25E9BDF2C8C30E0E3F0F6EB6D4),
1361+
(64877,'Mac','x64','WoW',0x98464DDFFC9A5786DA1F053EA520BA32),
1362+
(64877,'Mac','x64','WoWC',0x01003F46907A168B2BDF036575802098),
1363+
(64877,'Win','A64','WoW',0x026ED07009997B857BB37DCBB5B11477),
1364+
(64877,'Win','x64','WoW',0x6AB7C89863A9D6CDA9C0FAE710FEB126),
1365+
(64877,'Win','x64','WoWC',0xBD52F0D3F7C92642185E963CEA424BD3),
1366+
(64978,'Mac','A64','WoW',0x2D3D9A591D1750ACBFA38450225218E0),
1367+
(64978,'Mac','A64','WoWC',0x0FA46AA62D9E1DEC723F01B16CE26442),
1368+
(64978,'Mac','x64','WoW',0x8C4D1BA36574C6E68716DB455C3B73FD),
1369+
(64978,'Mac','x64','WoWC',0xD1EE6F8E00507CC771F4AAD86B91F7AA),
1370+
(64978,'Win','A64','WoW',0x04FB74A28B1A31D7A2A3126DD2B71AB7),
1371+
(64978,'Win','x64','WoW',0x706BA57AEDD9816B5A58209FA6A3B728),
1372+
(64978,'Win','x64','WoWC',0x96B417D4D1F12CF8B0C855A23C674C2C);
13591373
/*!40000 ALTER TABLE `build_auth_key` ENABLE KEYS */;
13601374
UNLOCK TABLES;
13611375

@@ -1772,7 +1786,9 @@ INSERT INTO `build_info` VALUES
17721786
(64270,11,2,5,NULL),
17731787
(64395,11,2,5,NULL),
17741788
(64484,11,2,5,NULL),
1775-
(64502,11,2,5,NULL);
1789+
(64502,11,2,5,NULL),
1790+
(64877,11,2,7,NULL),
1791+
(64978,11,2,7,NULL);
17761792
/*!40000 ALTER TABLE `build_info` ENABLE KEYS */;
17771793
UNLOCK TABLES;
17781794

@@ -3385,7 +3401,7 @@ CREATE TABLE `realmlist` (
33853401
`timezone` tinyint unsigned NOT NULL DEFAULT '0',
33863402
`allowedSecurityLevel` tinyint unsigned NOT NULL DEFAULT '0',
33873403
`population` float NOT NULL DEFAULT '0',
3388-
`gamebuild` int unsigned NOT NULL DEFAULT '64502',
3404+
`gamebuild` int unsigned NOT NULL DEFAULT '64978',
33893405
`Region` tinyint unsigned NOT NULL DEFAULT '1',
33903406
`Battlegroup` tinyint unsigned NOT NULL DEFAULT '1',
33913407
PRIMARY KEY (`id`),
@@ -3400,7 +3416,7 @@ CREATE TABLE `realmlist` (
34003416
LOCK TABLES `realmlist` WRITE;
34013417
/*!40000 ALTER TABLE `realmlist` DISABLE KEYS */;
34023418
INSERT INTO `realmlist` VALUES
3403-
(1,'Trinity','127.0.0.1','127.0.0.1',NULL,NULL,'255.255.255.0',8085,0,0,1,0,0,64502,1,1);
3419+
(1,'Trinity','127.0.0.1','127.0.0.1',NULL,NULL,'255.255.255.0',8085,0,0,1,0,0,64978,1,1);
34043420
/*!40000 ALTER TABLE `realmlist` ENABLE KEYS */;
34053421
UNLOCK TABLES;
34063422

@@ -3930,7 +3946,9 @@ INSERT INTO `updates` VALUES
39303946
('2025_11_07_00_auth.sql','496BAF87666950FDBA459CC72472AAB4CBD71D40','RELEASED','2025-11-07 09:46:17',0),
39313947
('2025_11_15_00_auth.sql','744E145E7EFBADDAF0BAC00F6FC84A1FE79EDFCA','RELEASED','2025-11-15 12:09:00',0),
39323948
('2025_11_18_00_auth.sql','AAE3FEB4363A16253C7ADF8CF5973E3694C5BC52','RELEASED','2025-11-18 20:09:47',0),
3933-
('2025_11_19_00_auth.sql','2E89C66714539C9713B9ADD3F7697730A426C795','RELEASED','2025-11-19 08:20:00',0);
3949+
('2025_11_19_00_auth.sql','2E89C66714539C9713B9ADD3F7697730A426C795','RELEASED','2025-11-19 08:20:00',0),
3950+
('2025_12_15_00_auth.sql','CA8ADF39030282B3D2627C15E751CC1D81618BAE','RELEASED','2025-12-15 15:39:58',0),
3951+
('2025_12_19_00_auth.sql','4011518915C83A60C50009949D687080019FA999','RELEASED','2025-12-19 00:48:17',0);
39343952
/*!40000 ALTER TABLE `updates` ENABLE KEYS */;
39353953
UNLOCK TABLES;
39363954

sql/base/characters_database.sql

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3827,7 +3827,8 @@ INSERT INTO `updates` VALUES
38273827
('2025_08_19_00_characters.sql','EC197D88883CDA2B885675FE096DD56CCB143608','ARCHIVED','2025-08-19 01:03:26',0),
38283828
('2025_09_09_00_characters.sql','CF3F0738623248620204175B049AAF0833262222','ARCHIVED','2025-09-09 14:11:21',0),
38293829
('2025_10_10_00_characters.sql','F1EF875805AF1E87A413387F5449FE37D5205E94','ARCHIVED','2025-10-09 23:58:44',0),
3830-
('2025_10_29_00_characters.sql','DC6A5D66E866352AC243869B627D282EE6A8B4F2','ARCHIVED','2025-10-29 06:57:00',0);
3830+
('2025_10_29_00_characters.sql','DC6A5D66E866352AC243869B627D282EE6A8B4F2','ARCHIVED','2025-10-29 06:57:00',0),
3831+
('2025_11_25_00_characters.sql','A0C04B2404B1832421402F78436DDC4AA18EBAD8','RELEASED','2025-11-25 22:28:32',0);
38313832
/*!40000 ALTER TABLE `updates` ENABLE KEYS */;
38323833
UNLOCK TABLES;
38333834

@@ -3863,29 +3864,6 @@ INSERT INTO `updates_include` VALUES
38633864
/*!40000 ALTER TABLE `updates_include` ENABLE KEYS */;
38643865
UNLOCK TABLES;
38653866

3866-
--
3867-
-- Table structure for table `warden_action`
3868-
--
3869-
3870-
DROP TABLE IF EXISTS `warden_action`;
3871-
/*!40101 SET @saved_cs_client = @@character_set_client */;
3872-
/*!50503 SET character_set_client = utf8mb4 */;
3873-
CREATE TABLE `warden_action` (
3874-
`wardenId` smallint unsigned NOT NULL,
3875-
`action` tinyint unsigned DEFAULT NULL,
3876-
PRIMARY KEY (`wardenId`)
3877-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
3878-
/*!40101 SET character_set_client = @saved_cs_client */;
3879-
3880-
--
3881-
-- Dumping data for table `warden_action`
3882-
--
3883-
3884-
LOCK TABLES `warden_action` WRITE;
3885-
/*!40000 ALTER TABLE `warden_action` DISABLE KEYS */;
3886-
/*!40000 ALTER TABLE `warden_action` ENABLE KEYS */;
3887-
UNLOCK TABLES;
3888-
38893867
--
38903868
-- Table structure for table `world_state_value`
38913869
--
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
DELETE FROM `build_info` WHERE `build` IN (64877);
2+
INSERT INTO `build_info` (`build`,`majorVersion`,`minorVersion`,`bugfixVersion`,`hotfixVersion`) VALUES
3+
(64877,11,2,7,NULL);
4+
5+
DELETE FROM `build_auth_key` WHERE `build`=64877 AND `platform`='Mac' AND `arch`='A64' AND `type`='WoW';
6+
DELETE FROM `build_auth_key` WHERE `build`=64877 AND `platform`='Mac' AND `arch`='A64' AND `type`='WoWC';
7+
DELETE FROM `build_auth_key` WHERE `build`=64877 AND `platform`='Mac' AND `arch`='x64' AND `type`='WoW';
8+
DELETE FROM `build_auth_key` WHERE `build`=64877 AND `platform`='Mac' AND `arch`='x64' AND `type`='WoWC';
9+
DELETE FROM `build_auth_key` WHERE `build`=64877 AND `platform`='Win' AND `arch`='A64' AND `type`='WoW';
10+
DELETE FROM `build_auth_key` WHERE `build`=64877 AND `platform`='Win' AND `arch`='x64' AND `type`='WoW';
11+
DELETE FROM `build_auth_key` WHERE `build`=64877 AND `platform`='Win' AND `arch`='x64' AND `type`='WoWC';
12+
INSERT INTO `build_auth_key` (`build`,`platform`,`arch`,`type`,`key`) VALUES
13+
(64877,'Mac','A64','WoW',0xB903471C43EBDC5BABF6FB604A3A5E69),
14+
(64877,'Mac','A64','WoWC',0x3DFEDC25E9BDF2C8C30E0E3F0F6EB6D4),
15+
(64877,'Mac','x64','WoW',0x98464DDFFC9A5786DA1F053EA520BA32),
16+
(64877,'Mac','x64','WoWC',0x01003F46907A168B2BDF036575802098),
17+
(64877,'Win','A64','WoW',0x026ED07009997B857BB37DCBB5B11477),
18+
(64877,'Win','x64','WoW',0x6AB7C89863A9D6CDA9C0FAE710FEB126),
19+
(64877,'Win','x64','WoWC',0xBD52F0D3F7C92642185E963CEA424BD3);
20+
21+
UPDATE `realmlist` SET `gamebuild`=64877 WHERE `gamebuild`=64502;
22+
23+
ALTER TABLE `realmlist` CHANGE `gamebuild` `gamebuild` int unsigned NOT NULL DEFAULT '64877';

0 commit comments

Comments
 (0)