EverWrath/src/server/game/Entities/Player
Hanabi a6a2ca8ef7
feat(Core/GameObjects): Instance gameobject save data implementation (#11113)
* fix(Core): Save gameobject state on instances

Currently, azerothcore doesn't save gameobject states on instances.
Whenever there's a re-start or crash, the instance's gameobjects and
their states aren't saved, producing un-wanted behaviours and blocking instances at times.

Implemented CRUD for new table `instance_saved_data` that holds the states of gameobjects.

- When worldserver launches and gameobjects are loaded, this will check
  if this object's state exists on the DB and sets the previous state.
- On instance deletion (reset) these states are also removed based on
  the instance ID.
- Whenever a gameobject state changes inside a dungeon or raid, we save
  on the database the set state.

* Select query to synchronous and used FindMap()

* loading gameobject states on create

* reseting instance saved data

* missing reset methods and on create state

* database structure

* Update src/server/game/Entities/GameObject/GameObject.cpp

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Update src/server/game/Entities/GameObject/GameObject.cpp

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Update src/server/game/Entities/GameObject/GameObject.cpp

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Update src/server/game/Entities/GameObject/GameObject.cpp

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Update src/server/game/Entities/Player/PlayerMisc.cpp

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Update src/server/game/Groups/Group.cpp

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* codestyle

* table changes

* table style

* codestyle

* table changes for columns

* data sanitization

* todo:

- Finish loading db data into the containers
- Using containers to find data
- How to get data from ObjectMGR inside Gameobject?

* loading on start up and db changes

* Removing unused data structure

* Uninitialised integer

* Whitespace

* clean-up and hooks to save states on memory

* Codestyle MySQL deprecated backticks

* i dont understand codefactor

* build

* Update data/sql/updates/pending_db_world/rev_1643395587559675400.sql

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Update src/server/game/Globals/ObjectMgr.h

Co-authored-by: Kargatum <dowlandtop@yandex.com>

* review changes

* unecessary removal

* pushback instead of emplace

* wrong database update

* Update ObjectMgr.cpp

* missing check

* removing entry from the PR

* missing removals

* last delete

* build

* aha! Found the culprit for the sudden assert errors

* type safety, save only important gameobjects

* static cast to unsigned short

* Update data/sql/updates/pending_db_characters/rev_1643629468629316100.sql

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* type changes

* queries fix

* fix build

* enabling which gameobjects to save on the database

* deadmines iron clad door

* Adjustment to gameobject onj create state and instances:

- Gnomeregan doors and Grubbis boss state
- Deadmines missing doors
- Stratholme gameobjects state saved

* forgot emi blastfuse change to despawn

* Leaving group logic

* codestyle

* fixing merge issues

* prevent bad behaviour

* brain meltdown

* Update data/sql/updates/pending_db_characters/rev_1643629468629316100.sql

* Update data/sql/updates/pending_db_world/rev_1649359139539727000.sql

Co-authored-by: Claudiodfc <54484196+claudiodfc@users.noreply.github.com>
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
Co-authored-by: Kargatum <dowlandtop@yandex.com>
Co-authored-by: Skjalf <47818697+Nyeriah@users.noreply.github.com>
2022-05-24 10:33:45 -03:00
..
CinematicMgr.cpp feat(Core/Maps): Improvements to Cinematic function (#10765) 2022-03-11 08:21:54 +01:00
CinematicMgr.h feat(Core/Maps): Improvements to Cinematic function (#10765) 2022-03-11 08:21:54 +01:00
KillRewarder.cpp refactor(Core/Misc): headers cleanup (#9259) 2021-11-22 17:24:39 +07:00
KillRewarder.h refactor(Core/Misc): headers cleanup (#9259) 2021-11-22 17:24:39 +07:00
Player.cpp fix(Scripts/Spells): Replenishment should proc off from Vampiric Touc… (#11772) 2022-05-23 05:45:01 -03:00
Player.h fix(Core/Items): Properly transfer enchantment durations from old to … (#11828) 2022-05-23 04:27:53 -03:00
PlayerGossip.cpp feat(Core/Unit): NPCFlags helpers (#11286) 2022-04-05 13:52:42 +02:00
PlayerMisc.cpp feat(Core/GameObjects): Instance gameobject save data implementation (#11113) 2022-05-24 10:33:45 -03:00
PlayerQuest.cpp fix(Core/Wintergrasp): Reimplement Wintergrasp quests and fix vendors (#11533) 2022-04-25 18:20:10 -03:00
PlayerSettings.cpp feat(Core/DBLayer): replace char const* to std::string_view (#10211) 2022-02-05 00:37:11 +01:00
PlayerSettings.h feat(Core/Player): Implement player specific settings (#9483) 2021-12-26 08:39:15 -03:00
PlayerStorage.cpp fix(Core/Items): Properly transfer enchantment durations from old to … (#11828) 2022-05-23 04:27:53 -03:00
PlayerTaxi.cpp feat(Core/Common): delete old Tokenizer (#10121) 2022-01-21 14:59:05 +07:00
PlayerTaxi.h feat(Core/Common): delete old Tokenizer (#10121) 2022-01-21 14:59:05 +07:00
PlayerUpdates.cpp fix (core): Prevent Forced UpdateObjectVisibility Before in World (#11730) 2022-05-13 13:02:43 -04:00
SocialMgr.cpp feat(Core/DBLayer): replace char const* to std::string_view (#10211) 2022-02-05 00:37:11 +01:00
SocialMgr.h refactor(Core/Misc): headers cleanup (#9259) 2021-11-22 17:24:39 +07:00
TradeData.cpp refactor(Core/Misc): headers cleanup (#9259) 2021-11-22 17:24:39 +07:00
TradeData.h refactor(Core/Misc): headers cleanup (#9259) 2021-11-22 17:24:39 +07:00