Commit Graph

269 Commits

Author SHA1 Message Date
Naios
800d5d8939 Core/Misc: Replace tc's optional with boost::optional.
* benefits from empty optimization (objects are only constructed if needed).
* supports r-value references (move semantics) (boost >= 1.56.0).
* preparation for c++14/17's std::optional and std::none_t.
* add move constructor to CompactArray.
2015-04-26 23:45:52 +02:00
DJScias
1c13154e0b Core/PacketIO: Updated and enabled CMSG_SET_FACTION_AT_WAR, CMSG_SET_FACTION_INACTIVE, CMSG_SET_FACTION_NOT_AT_WAR, CMSG_SET_WATCHED_FACTION, SMSG_SET_FACTION_NOT_VISIBLE and SMSG_SET_FACTION_VISIBLE
Documentation used:
- Thanks @Carbenium for all the help in regards to this (66a2baff13 & cfd48eb2ee)
- SetWatchedFaction is used for CMSG_SET_WATCHED_FACTION (returns uint32 FactionIndex), confirmed in-game and with http://wow.gamepedia.com/API_GetWatchedFactionInfo (See Patch History Patch 5.0.4)
- SetFactionVisible is used for SMSG_SET_FACTION_VISIBLE and SMSG_SET_FACTION_NOT_VISIBLE (uint32 FactionIndex, confirmed)
2015-04-23 00:56:35 +02:00
Shauren
7e5df6d504 Core/Logging: Removed a bunch of useless "received X" logs 2015-04-21 21:26:15 +02:00
Carbenium
bba6eb8d3d Core/Player: Added character templates
* Characters with predefined levels can be created
* Avaiable factions and classes can be configured
* Valid values for `factionGroup` in table `character_template_class` are 3 (Alliance) or 5 (Horde)
* Added new permission RBAC_PERM_USE_CHARACTER_TEMPLATES - has to be set, to allow the usage of the templates

Closes #13952
2015-04-21 00:52:21 +02:00
Shauren
4208c0d839 Core/Misc: Barbershop fixes
* Fixed selection validation
* Implemented new 6.0 feature allowing to change face
* Fixed cost calculation
2015-04-21 00:24:26 +02:00
MitchesD
ad945dc476 Core/Misc: fixed referencing to non-existing hair, facialHair and skinColor ID in CharSections
Closes https://github.com/TrinityCore/TrinityCore/issues/14580
2015-04-20 20:35:13 +02:00
Shauren
bfca8246d8 Core/Socket: Fixed race conditions with instance socket
Helgrind logs:
==41785== Possible data race during write of size 8 at 0x6D80D590 by thread #4
==41785== Locks held: none
==41785==    at 0x19603A2: void std::swap<std::__future_base::_State_baseV2*>(std::__future_base::_State_baseV2*&, std::__future_base::_State_baseV2*&) (move.h:177)
==41785==    by 0x195FD7C: std::__shared_ptr<std::__future_base::_State_baseV2, (__gnu_cxx::_Lock_policy)2>::swap(std::__shared_ptr<std::__future_base::_State_baseV2, (__gnu_cxx::_Lock_policy)2>&) (shared_ptr_base.h:1069)
==41785==    by 0x1FC5B84: std::__basic_future<SQLQueryHolder*>::_M_swap(std::__basic_future<SQLQueryHolder*>&) (future:629)
==41785==    by 0x1FC5155: std::future<SQLQueryHolder*>::operator=(std::future<SQLQueryHolder*>&&) (future:691)
==41785==    by 0x1FB94C6: WorldSession::HandleContinuePlayerLogin() (CharacterHandler.cpp:832)
==41785==    by 0x1ABD31A: WorldSocket::HandleAuthContinuedSession(WorldPackets::Auth::AuthContinuedSession&) (WorldSocket.cpp:742)
==41785==    by 0x1AB8322: WorldSocket::ReadDataHandler() (WorldSocket.cpp:261)
==41785==    by 0x1AB77D1: WorldSocket::ReadHandler() (WorldSocket.cpp:157)
==41785==    by 0x1AC068A: Socket<WorldSocket>::ReadHandlerInternal(boost::system::error_code, unsigned long) (Socket.h:201)
==41785==    by 0x1AC39ED: void std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)>::_M_call<std::shared_ptr<WorldSocket>&, boost::system::error_code const&, unsigned long const&>(std::shared_ptr<WorldSocket>&, void const volatile*, boost::system::error_code const&, unsigned long const&) const (in /usr/local/bin/worldserver)
==41785==    by 0x1AC393F: void std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)>::operator()<std::shared_ptr<WorldSocket>&, boost::system::error_code const&, unsigned long const&, void>(std::shared_ptr<WorldSocket>&, boost::system::error_code const&, unsigned long const&) const (functional:578)
==41785==    by 0x1AC370F: void std::_Bind<std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)> (std::shared_ptr<WorldSocket>, std::_Placeholder<1>, std::_Placeholder<2>)>::__call<void, boost::system::error_code const&, unsigned long const&, 0ul, 1ul, 2ul>(std::tuple<boost::system::error_code const&, unsigned long const&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1264)
==41785==
==41785== This conflicts with a previous read of size 8 by thread #1
==41785== Locks held: none
==41785==    at 0x144BF6A: std::__shared_ptr<std::__future_base::_State_baseV2, (__gnu_cxx::_Lock_policy)2>::operator bool() const (shared_ptr_base.h:1056)
==41785==    by 0x1AAF7BD: std::__basic_future<SQLQueryHolder*>::valid() const (future:590)
==41785==    by 0x1AAA04C: WorldSession::ProcessQueryCallbacks() (WorldSession.cpp:1006)
==41785==    by 0x1AA5167: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:452)
==41785==    by 0x1D2D667: World::UpdateSessions(unsigned int) (World.cpp:2793)
==41785==    by 0x1D2A8C6: World::Update(unsigned int) (World.cpp:2159)
==41785==    by 0x145B823: WorldUpdateLoop() (Main.cpp:397)
==41785==    by 0x145957F: main (Main.cpp:255)

==41785== Possible data race during read of size 8 at 0x6D80D638 by thread #1
==41785== Locks held: none
==41785==    at 0x1A5E914: std::__shared_ptr<WorldSocket, (__gnu_cxx::_Lock_policy)2>::operator bool() const (shared_ptr_base.h:1056)
==41785==    by 0x1AA52A9: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:468)
==41785==    by 0x1D2D667: World::UpdateSessions(unsigned int) (World.cpp:2793)
==41785==    by 0x1D2A8C6: World::Update(unsigned int) (World.cpp:2159)
==41785==    by 0x145B823: WorldUpdateLoop() (Main.cpp:397)
==41785==    by 0x145957F: main (Main.cpp:255)
==41785==
==41785== This conflicts with a previous write of size 8 by thread #4
==41785== Locks held: none
==41785==    at 0x1AAD12D: std::__shared_ptr<WorldSocket, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<WorldSocket, (__gnu_cxx::_Lock_policy)2> const&) (shared_ptr_base.h:860)
==41785==    by 0x1AAD174: std::shared_ptr<WorldSocket>::operator=(std::shared_ptr<WorldSocket> const&) (shared_ptr.h:93)
==41785==    by 0x1ABF0B5: WorldSession::AddInstanceConnection(std::shared_ptr<WorldSocket>) (WorldSession.h:684)
==41785==    by 0x1ABD2F8: WorldSocket::HandleAuthContinuedSession(WorldPackets::Auth::AuthContinuedSession&) (WorldSocket.cpp:741)
==41785==    by 0x1AB8322: WorldSocket::ReadDataHandler() (WorldSocket.cpp:261)
==41785==    by 0x1AB77D1: WorldSocket::ReadHandler() (WorldSocket.cpp:157)
==41785==    by 0x1AC068A: Socket<WorldSocket>::ReadHandlerInternal(boost::system::error_code, unsigned long) (Socket.h:201)
==41785==    by 0x1AC39ED: void std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)>::_M_call<std::shared_ptr<WorldSocket>&, boost::system::error_code const&, unsigned long const&>(std::shared_ptr<WorldSocket>&, void const volatile*, boost::system::error_code const&, unsigned long const&) const (in /usr/local/bin/worldserver)
2015-04-19 15:30:24 +02:00
Carbenium
99ef803f1d Core/Player: Added possibility to deactivate the character creation for neutral races 2015-04-18 01:44:37 +02:00
Shauren
4703169116 Core/PacketIO: Updated and enabled more battleground packets 2015-04-18 00:04:56 +02:00
Vincent-Michael
a65007f55f Core/PacketIO: Fix typo in CharRaceOrFactionChange 2015-04-17 19:28:18 +02:00
Vincent-Michael
69b82c5e33 Core/PacketIO: Updated and Enabled CMSG_USE_EQUIPMENT_SET / SMSG_USE_EQUIPMENT_SET_RESULT for 6.1.2 2015-04-12 03:55:32 +02:00
Vincent-Michael
fcab914981 Core/PacketIO: Updated and Enabled CMSG_DELETE_EQUIPMENT_SET for 6.1.2 2015-04-12 03:18:03 +02:00
Vincent-Michael
0473b5371a Core/Token: Fix freeze at opening game time windows 2015-04-10 22:28:16 +02:00
Shauren
3e063be399 Core/PacketIO: Reimplemented SMSG_SET_FORCED_REACTIONS as a response to client request instead of sending it automatically during map change 2015-04-09 00:05:31 +02:00
Shauren
832c3d7a09 Core/Misc: Removed unused variables 2015-04-05 16:54:26 +02:00
Carbenium
d1902b4095 Core/Player: Implement CharSections.dbc and serverside checks
Ported from 6d4c672fb1
Original work by @ariel-
2015-04-05 01:48:45 +02:00
Shauren
5389180778 Core/PacketIO: Updated all client opcode values 2015-04-01 01:44:10 +02:00
Rat
132c06751a Core/Spells: Reset talent specialization when using reset talents command 2015-03-30 20:16:27 +02:00
MitchesD
580a50f7e7 Core/PacketIO: SMSG_BARBER_SHOP_RESULT, CMSG_ALTER_APPEARANCE, SMSG_ENABLE_BARBER_SHOP and enabled some opcodes 2015-03-28 18:12:26 +01:00
Shauren
8cfb542ee4 Core/PacketIO: Updated values of all known server opcodes 2015-03-27 22:21:24 +01:00
Carbenium
1262072949 Core/Misc: Update base stuff for V6.1.2 build 19802 2015-03-26 17:18:43 +01:00
Shauren
cc4d79495f Core/Misc: Warning fixes 2015-03-22 13:47:55 +01:00
Carbenium
37a14bc2d5 Core/Support: Update the support/ticket system to 6.x
Core/Mail: fix a logic error introduced in 829e11b662
2015-03-10 21:09:21 +01:00
DJScias
a47d57d1db Core/Packets: update & enabled CMSG_SHOWING_CLOAK, CMSG_SHOWING_HELM
Documentation Used:
- Thanks @rocverde for providing sniffs through TC IRC.
- Thank you very much @MitchesD, @DDuarte, @Carbenium and @Vincent-Michael (+ Trinity as a whole) for the help with my very first opcode structure update.
2015-03-09 22:57:49 +01:00
Shauren
e15ba34444 Core/Misc: Cleaned up data truncation warnings 2015-03-08 22:04:34 +01:00
Vincent-Michael
369b08b68d Core/Misc: Update base stuff for V6.1.0 build 19702 2015-03-01 02:24:59 +01:00
Shauren
3fcea2e9d4 Core/PacketIO: Handle ConnectToFailed and allow the client to reconnect up to 5 times before aborting login to world
Closes #14214
2015-02-23 22:35:26 +01:00
Shauren
56186319bd Core/Spells: Cooldown updates
* Refactored cooldown handling to separate class shared by creatures and players
* Updated and enabled cooldown packets
* Implemented creature school lockouts
* Implemented spell charges
* Fixed AuraUpdate structure
* Fixed aura flag AFLAG_NOCASTER handling
* Implemented spell charge related auras
2015-02-17 01:01:44 +01:00
Shauren
9db2e6dbbe Core/Players: Updated player byte field offsets 2015-02-05 20:52:51 +01:00
Nayd
74f577e444 Core/Packets: Typo fixes and cleanup of 0f84c7c7b1 2015-02-04 20:48:14 +00:00
Carbenium
6751ac2940 Core/Packets: Add structure for CMSG_GM_TICKET_GET_CASE_STATUS, SMSG_GM_TICKET_CASE_STATUS, CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY and SMSG_GM_TICKET_RESPONSE_ERROR
Implement CMSG_GM_TICKET_GET_TICKET and SMSG_GM_TICKET_GET_TICKET_RESPONSE
Update SMSG_FEATURE_SYSTEM_STATUS to support customizable ticket system and add config options
2015-02-04 20:48:12 +00:00
joschiwald
053d5f24ee Core/Packets:
- added inspect packets
- updated opcode values
2015-02-01 20:52:05 +01:00
Nayd
802725817b Core/Packets: Update and enable CMSG_STAND_STATE_CHANGE and SMSG_STAND_STATE_UPDATE 2015-01-28 19:29:31 +00:00
joschiwald
b8b3079917 Core/Packets: moved CMSG_AUTOSTORE_BAG_ITEM, CMSG_CANCEL_AURA, CMSG_CHAR_UNDELETE_ENUM, CMSG_GET_UNDELETE_COOLDOWN_STATUS, CMSG_UI_TIME_REQUEST to packet classes 2015-01-26 12:59:18 +01:00
joschiwald
c61bcf1206 Core/NetworkIO: sync opcodes with wpp 2015-01-25 21:08:54 +01:00
Shauren
469b836114 Core/Auras: Fixed saving all aura effect values to database 2015-01-16 23:32:41 +01:00
Shauren
faa583c784 Core/Maps: Updated map difficulties 2015-01-10 01:35:47 +01:00
Vincent-Michael
ab90f74486 Update copyright note for 2015
Happy new year
2015-01-01 00:28:09 +01:00
joschiwald
9ecc578cb1 Core/Scripts: multiple changes
- fixed non pch build
- fixed some warnings
- fixed some coverity issues
- some random things here and there
2014-12-29 01:00:16 +01:00
Intel
a782515246 Core/Quests: Updated Quest System to new Format
All quest requirements are now in quest_objectives table
quest_template table contains _ONLY_ WDB data and must not be modified
Currently supported objectives are MONSTER, GAMEOBJECT, ITEM, TALKTO, CURRENCY, REPUTATION, MONEY, PLAYERKILLS, AREATRIGGER
2014-12-28 22:55:53 +02:00
Shauren
3c3b42362f Core/DataStores: Added DB2Manager
* Moved DB2 helpers to new class
* Moved hotfix data to hotfixes database and core management functions to DB2Manager class
* Updated HotfixNotifyBlob packet
2014-12-26 01:38:40 +01:00
Nayd
a1d4c9f9dc Core: Use the correct function to convert strings to unsigned longs and unsigned long longs
Fixes wrong data being inserted into the database (i.e explored zones).
More info in #13493

Fixes #13493

Thanks to @jackpoz for finding the code issue and @Vavehl for an expectional bug report.
2014-11-26 02:12:38 +00:00
joschiwald
7f96163c94 Core/Packets:
- updated/enabled CMSG_CHANNEL_DISPLAY_LIST, CMSG_CHANNEL_LIST, CMSG_JOIN_CHANNEL, CMSG_LEAVE_CHANNEL, SMSG_CHANNEL_LIST, SMSG_CHANNEL_NOTIFY_JOINED, SMSG_CHANNEL_NOTIFY_LEFT
- updated CMSG_SET_SELECTION
- updated CMSG_TUTORIAL_FLAG (removed CMSG_TUTORIAL_CLEAR, CMSG_TUTORIAL_RESET)
- fixed null guid in EquipmentSetList
- fixed struct of MonsterMove
2014-11-23 04:25:47 +01:00
Shauren
4764c3ea77 Core/Util: Fixed "value" name in Optional struct to follow code style 2014-11-20 01:17:45 +01:00
joschiwald
abff9de719 Core/Packets: updated EquipmentSet save packets 2014-11-19 21:09:30 +01:00
Shauren
4894991d55 Core/PacketIO: Renamed a few packet classes to match client names 2014-11-15 13:03:32 +01:00
joschiwald
231207970b Core/Packets: updated SMSG_FEATURE_SYSTEM_STATUS, SMSG_INITIAL_SPELLS and SMSG_SPELL_CATEGORY_COOLDOWN 2014-11-14 02:00:34 +01:00
Intel
da52c8d54e Core/Talents:
Fixed SMSG_TALENTS_INFO packet
Fixed talents saving to DB
Renamed 'talent spec' to 'talent group' since this name was shadowing character specializations (and new name is correct according to JAM)
Enabled loading of MinorTalent.dbc (will be used later)
Added additional specialization check in LearnTalent
2014-11-12 21:43:48 +02:00
joschiwald
620f23d9dc Core/World: hold deleted characters in character store 2014-11-12 19:16:14 +01:00
joschiwald
f4926e0a8c Core/Packets: updated char rename customize and factionchange packets 2014-11-12 16:36:05 +01:00