From a70f381e68d7e62adc5072996968b5ee6400a171 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sat, 11 Jan 2020 18:20:06 +1100 Subject: [PATCH] fix some warnings & world shouldn't crash when warming up object cache --- .../instances/questbattles/ChasingShadows.cpp | 2 +- src/scripts/quest/subquest/gridania/SubFst034.cpp | 2 +- src/world/Territory/InstanceObjectCache.cpp | 12 ++++++------ src/world/Territory/InstanceObjectCache.h | 9 ++++----- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/scripts/instances/questbattles/ChasingShadows.cpp b/src/scripts/instances/questbattles/ChasingShadows.cpp index 336cd0d6..8963ff11 100644 --- a/src/scripts/instances/questbattles/ChasingShadows.cpp +++ b/src/scripts/instances/questbattles/ChasingShadows.cpp @@ -38,7 +38,7 @@ private: public: ChasingShadows() : Sapphire::ScriptAPI::QuestBattleScript( 11 ) {} - void onPlayerSetup( Sapphire::QuestBattle& instance, Entity::Player& player ) + void onPlayerSetup( Sapphire::QuestBattle& instance, Entity::Player& player ) override { player.setRot( 3.f ); player.setPos( { 323.f, -1.28f, -320.f } ); diff --git a/src/scripts/quest/subquest/gridania/SubFst034.cpp b/src/scripts/quest/subquest/gridania/SubFst034.cpp index bde01858..a2604bf4 100644 --- a/src/scripts/quest/subquest/gridania/SubFst034.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst034.cpp @@ -72,7 +72,7 @@ class SubFst034 : public Sapphire::ScriptAPI::EventScript } - void onBNpcKill( uint32_t npcId, Entity::Player& player ) + void onBNpcKill( uint32_t npcId, Entity::Player& player ) override { switch( npcId ) { diff --git a/src/world/Territory/InstanceObjectCache.cpp b/src/world/Territory/InstanceObjectCache.cpp index 92b16aa4..e4e18815 100644 --- a/src/world/Territory/InstanceObjectCache.cpp +++ b/src/world/Territory/InstanceObjectCache.cpp @@ -80,18 +80,18 @@ Sapphire::InstanceObjectCache::InstanceObjectCache( std::shared_ptr< Framework > { if( pEntry->getType() == LgbEntryType::MapRange ) { - auto pMapRange = reinterpret_cast< LGB_MAP_RANGE_ENTRY* >( pEntry.get() ); - m_mapRangeCache.insert( id, *pMapRange ); + auto pMapRange = std::reinterpret_pointer_cast< LGB_MAP_RANGE_ENTRY >( pEntry ); + m_mapRangeCache.insert( id, pMapRange ); } else if( pEntry->getType() == LgbEntryType::ExitRange ) { - auto pExitRange = reinterpret_cast< LGB_EXIT_RANGE_ENTRY* >( pEntry.get() ); - m_exitRangeCache.insert( id, *pExitRange); + auto pExitRange = std::reinterpret_pointer_cast< LGB_EXIT_RANGE_ENTRY >( pEntry ); + m_exitRangeCache.insert( id, pExitRange ); } else if( pEntry->getType() == LgbEntryType::PopRange ) { - auto pPopRange = reinterpret_cast< LGB_POP_RANGE_ENTRY* >( pEntry.get() ); - m_popRangeCache.insert( id, *pPopRange ); + auto pPopRange = std::reinterpret_pointer_cast< LGB_POP_RANGE_ENTRY >( pEntry ); + m_popRangeCache.insert( id, pPopRange ); } } } diff --git a/src/world/Territory/InstanceObjectCache.h b/src/world/Territory/InstanceObjectCache.h index 74171d7f..0476adb6 100644 --- a/src/world/Territory/InstanceObjectCache.h +++ b/src/world/Territory/InstanceObjectCache.h @@ -38,19 +38,18 @@ namespace Sapphire return nullptr; } - void insert( uint16_t zoneId, T& entry ) + void insert( uint16_t zoneId, std::shared_ptr< T > entry ) { - auto pShared = std::make_shared< T >( entry ); if( m_objectCache.find( zoneId ) == m_objectCache.end() ) { ObjectMap cache; - cache[ entry.header.instanceId ] = pShared; + cache[ entry->header.instanceId ] = std::move( entry ); m_objectCache[ zoneId ] = cache; } else { auto it = m_objectCache.find( zoneId ); - it->second[ entry.header.instanceId ] = pShared; + it->second[ entry->header.instanceId ] = std::move( entry ); } } @@ -67,7 +66,7 @@ namespace Sapphire using ExitRangePtr = std::shared_ptr< LGB_EXIT_RANGE_ENTRY >; using PopRangePtr = std::shared_ptr< LGB_POP_RANGE_ENTRY >; - InstanceObjectCache( std::shared_ptr< Framework > pFramework ); + explicit InstanceObjectCache( std::shared_ptr< Framework > pFramework ); ~InstanceObjectCache() = default; MapRangePtr getMapRange( uint16_t zoneId, uint32_t mapRangeId );