diff options
-rw-r--r-- | cmake/compiler/msvc/settings.cmake | 3 | ||||
-rw-r--r-- | sql/updates/world/2014_09_28_00_world.sql | 24 | ||||
-rw-r--r-- | sql/updates/world/2014_09_28_01_world.sql | 7 | ||||
-rw-r--r-- | sql/updates/world/2014_09_29_00_world.sql | 2 | ||||
-rw-r--r-- | sql/updates/world/2014_09_29_01_world.sql | 1 | ||||
-rw-r--r-- | sql/updates/world/2014_09_29_02_world_335.sql | 9 | ||||
-rw-r--r-- | sql/updates/world/2014_09_29_03_world.sql | 16 | ||||
-rw-r--r-- | src/server/game/AuctionHouse/AuctionHouseMgr.cpp | 19 | ||||
-rw-r--r-- | src/server/game/AuctionHouse/AuctionHouseMgr.h | 2 | ||||
-rw-r--r-- | src/server/game/Maps/TransportMgr.h | 2 | ||||
-rw-r--r-- | src/server/worldserver/Main.cpp | 15 |
11 files changed, 97 insertions, 3 deletions
diff --git a/cmake/compiler/msvc/settings.cmake b/cmake/compiler/msvc/settings.cmake index b68a0de1ace..a455e97cc21 100644 --- a/cmake/compiler/msvc/settings.cmake +++ b/cmake/compiler/msvc/settings.cmake @@ -28,6 +28,9 @@ else() add_definitions(/arch:SSE2) message(STATUS "MSVC: Enabled SSE2 support") + + set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /SAFESEH:NO") + message(STATUS "MSVC: Disabled Safe Exception Handlers for debug builds") endif() # Set build-directive (used in core to tell which buildtype we used) diff --git a/sql/updates/world/2014_09_28_00_world.sql b/sql/updates/world/2014_09_28_00_world.sql new file mode 100644 index 00000000000..5f145f903f2 --- /dev/null +++ b/sql/updates/world/2014_09_28_00_world.sql @@ -0,0 +1,24 @@ +UPDATE `creature_text` SET `BroadcastTextId`=28844 WHERE `entry`=29 AND `groupid`=1; +UPDATE `creature_text` SET `BroadcastTextId`=12223 WHERE `entry`=16329 AND `groupid`=0; +UPDATE `creature_text` SET `BroadcastTextId`=29304 WHERE `entry`=22515 AND `groupid`=6; +UPDATE `creature_text` SET `BroadcastTextId`=29305 WHERE `entry`=22515 AND `groupid`=7; +UPDATE `creature_text` SET `BroadcastTextId`=29306 WHERE `entry`=22515 AND `groupid`=8; +UPDATE `creature_text` SET `BroadcastTextId`=29307 WHERE `entry`=22515 AND `groupid`=9; +UPDATE `creature_text` SET `BroadcastTextId`=29308 WHERE `entry`=22515 AND `groupid`=10; +UPDATE `creature_text` SET `BroadcastTextId`=24747 WHERE `entry`=25504 AND `groupid`=0; +UPDATE `creature_text` SET `BroadcastTextId`=27243 WHERE `entry`=25504 AND `groupid`=1; +UPDATE `creature_text` SET `BroadcastTextId`=27245 WHERE `entry`=25504 AND `groupid`=2; +UPDATE `creature_text` SET `BroadcastTextId`=24748 WHERE `entry`=25504 AND `groupid`=3; +UPDATE `creature_text` SET `BroadcastTextId`=24749 WHERE `entry`=25504 AND `groupid`=4; +UPDATE `creature_text` SET `BroadcastTextId`=28396 WHERE `entry`=28122 AND `groupid`=3; +UPDATE `creature_text` SET `BroadcastTextId`=28382 WHERE `entry`=28122 AND `groupid`=4; +UPDATE `creature_text` SET `BroadcastTextId`=28507 WHERE `entry`=28511 AND `groupid`=0; +UPDATE `creature_text` SET `BroadcastTextId`=28465 WHERE `entry`=28511 AND `groupid`=1; +UPDATE `creature_text` SET `BroadcastTextId`=28899 WHERE `entry`=28841 AND `groupid`=1; + +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=12663 WHERE `menu_id`=6341 AND `id`=0; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=12674 WHERE `menu_id`=21265 AND `id`=1; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=12657 WHERE `menu_id`=21270 AND `id`=1; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=12659 WHERE `menu_id`=21271 AND `id`=0; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=12660 WHERE `menu_id`=21271 AND `id`=1; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=12658 WHERE `menu_id`=21271 AND `id`=2; diff --git a/sql/updates/world/2014_09_28_01_world.sql b/sql/updates/world/2014_09_28_01_world.sql new file mode 100644 index 00000000000..4be9507af2d --- /dev/null +++ b/sql/updates/world/2014_09_28_01_world.sql @@ -0,0 +1,7 @@ +-- +UPDATE `creature_text` SET `BroadcastTextId`=0 WHERE `entry`=29 AND `groupid`=1; +UPDATE `creature_text` SET `BroadcastTextId`=0 WHERE `entry`=22515 AND `groupid`=6; +UPDATE `creature_text` SET `BroadcastTextId`=0 WHERE `entry`=22515 AND `groupid`=7; +UPDATE `creature_text` SET `BroadcastTextId`=0 WHERE `entry`=22515 AND `groupid`=8; +UPDATE `creature_text` SET `BroadcastTextId`=0 WHERE `entry`=22515 AND `groupid`=9; +UPDATE `creature_text` SET `BroadcastTextId`=0 WHERE `entry`=22515 AND `groupid`=10; diff --git a/sql/updates/world/2014_09_29_00_world.sql b/sql/updates/world/2014_09_29_00_world.sql new file mode 100644 index 00000000000..d7f01676123 --- /dev/null +++ b/sql/updates/world/2014_09_29_00_world.sql @@ -0,0 +1,2 @@ +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=33765 WHERE `menu_id`=10371; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=33762 WHERE `option_text` LIKE 'I wish to know about Dual Talent Specialization.'; diff --git a/sql/updates/world/2014_09_29_01_world.sql b/sql/updates/world/2014_09_29_01_world.sql new file mode 100644 index 00000000000..922ee231461 --- /dev/null +++ b/sql/updates/world/2014_09_29_01_world.sql @@ -0,0 +1 @@ +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=33762 WHERE `option_text` LIKE 'Learn about Dual Talent Specialization.'; diff --git a/sql/updates/world/2014_09_29_02_world_335.sql b/sql/updates/world/2014_09_29_02_world_335.sql new file mode 100644 index 00000000000..f2bc535b8b7 --- /dev/null +++ b/sql/updates/world/2014_09_29_02_world_335.sql @@ -0,0 +1,9 @@ +-- +UPDATE `locales_quest` SET `Title_loc2` = REPLACE(`Title_loc2`, "[PÉRIMÉ] ", ""); +UPDATE `locales_quest` SET `Title_loc2` = REPLACE(`Title_loc2`, "[PÉRIMÉ]", ""); +UPDATE `locales_quest` SET `Title_loc6` = REPLACE(`Title_loc6`, "[DEPRECATED] ", ""); +UPDATE `locales_quest` SET `Title_loc6` = REPLACE(`Title_loc6`, "[DEPRECATED]", ""); +UPDATE `locales_quest` SET `Title_loc7` = REPLACE(`Title_loc7`, "[DEPRECATED] ", ""); +UPDATE `locales_quest` SET `Title_loc7` = REPLACE(`Title_loc7`, "[DEPRECATED]", ""); +UPDATE `locales_quest` SET `Title_loc8` = REPLACE(`Title_loc8`, "[DEPRECATED] ", ""); +UPDATE `locales_quest` SET `Title_loc8` = REPLACE(`Title_loc8`, "[DEPRECATED]", ""); diff --git a/sql/updates/world/2014_09_29_03_world.sql b/sql/updates/world/2014_09_29_03_world.sql new file mode 100644 index 00000000000..a52a5f9cc76 --- /dev/null +++ b/sql/updates/world/2014_09_29_03_world.sql @@ -0,0 +1,16 @@ +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=11325 WHERE `option_text` LIKE 'May I have your report?'; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=3370 WHERE `option_text` LIKE 'I want to browse your goods.'; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=33765 WHERE `menu_id`=0 AND `id`=16; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=4384 WHERE `menu_id`=21 AND `id`=1; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=4261 WHERE `menu_id`=1186 AND `id`=1; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=9672 WHERE `menu_id`=5848 AND `id`=1; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=9672 WHERE `menu_id`=5849 AND `id`=1; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=33765 WHERE `menu_id`=6647 AND `id`=2; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=20452 WHERE `menu_id`=8568 AND `id`=1; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=20453 WHERE `menu_id`=8568 AND `id`=2; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=34567 WHERE `menu_id`=10502 AND `id`=1; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=35446 WHERE `menu_id`=10502 AND `id`=2; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=51468 WHERE `menu_id`=10502 AND `id`=3; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=36760 WHERE `menu_id`=10854 AND `id`=0; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=37552 WHERE `menu_id`=10854 AND `id`=1; +UPDATE `gossip_menu_option` SET `OptionBroadcastTextID`=21522 WHERE `menu_id`=21335 AND `id`=0; diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp index 2479c8fa2f0..46ac5b8f511 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp @@ -147,6 +147,11 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, SQLTransaction& .AddItem(pItem) .SendMailTo(trans, MailReceiver(bidder, auction->bidder), auction, MAIL_CHECK_MASK_COPIED); } + else + { + // bidder doesn't exist, delete the item + sAuctionMgr->RemoveAItem(auction->itemGUIDLow, true); + } } void AuctionHouseMgr::SendAuctionSalePendingMail(AuctionEntry* auction, SQLTransaction& trans) @@ -207,6 +212,11 @@ void AuctionHouseMgr::SendAuctionExpiredMail(AuctionEntry* auction, SQLTransacti .AddItem(pItem) .SendMailTo(trans, MailReceiver(owner, auction->owner), auction, MAIL_CHECK_MASK_COPIED, 0); } + else + { + // owner doesn't exist, delete the item + sAuctionMgr->RemoveAItem(auction->itemGUIDLow, true); + } } //this function sends mail to old bidder @@ -353,12 +363,19 @@ void AuctionHouseMgr::AddAItem(Item* it) mAitems[it->GetGUIDLow()] = it; } -bool AuctionHouseMgr::RemoveAItem(uint32 id) +bool AuctionHouseMgr::RemoveAItem(uint32 id, bool deleteItem) { ItemMap::iterator i = mAitems.find(id); if (i == mAitems.end()) return false; + if (deleteItem) + { + SQLTransaction trans = SQLTransaction(nullptr); + i->second->FSetState(ITEM_REMOVED); + i->second->SaveToDB(trans); + } + mAitems.erase(i); return true; } diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.h b/src/server/game/AuctionHouse/AuctionHouseMgr.h index 8e74b4c53a6..7d0b7bb9b27 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.h +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.h @@ -181,7 +181,7 @@ class AuctionHouseMgr void LoadAuctions(); void AddAItem(Item* it); - bool RemoveAItem(uint32 id); + bool RemoveAItem(uint32 id, bool deleteItem = false); void Update(); diff --git a/src/server/game/Maps/TransportMgr.h b/src/server/game/Maps/TransportMgr.h index 94a4ba335b1..f9d44234844 100644 --- a/src/server/game/Maps/TransportMgr.h +++ b/src/server/game/Maps/TransportMgr.h @@ -83,6 +83,8 @@ typedef std::map<uint32, TransportRotationEntry const*> TransportPathRotationCon struct TransportAnimation { + TransportAnimation() : TotalTime(0) { } + TransportPathContainer Path; TransportPathRotationContainer Rotations; uint32 TotalTime; diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp index 07101e61eb6..bd028069c62 100644 --- a/src/server/worldserver/Main.cpp +++ b/src/server/worldserver/Main.cpp @@ -280,7 +280,20 @@ extern int main(int argc, char** argv) if (cliThread != nullptr) { #ifdef _WIN32 - CancelSynchronousIo(cliThread->native_handle()); + if (!CancelSynchronousIo(cliThread->native_handle())) + { + DWORD errorCode = GetLastError(); + LPSTR errorBuffer; + + DWORD formatReturnCode = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS, + nullptr, errorCode, 0, (LPTSTR)&errorBuffer, 0, nullptr); + if (!formatReturnCode) + errorBuffer = "Unknown error"; + + TC_LOG_ERROR("server.worldserver", "Error cancelling I/O of CliThread, error code %u, detail: %s", + errorCode, errorBuffer); + LocalFree(errorBuffer); + } #endif cliThread->join(); delete cliThread; |