1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-02 08:57:44 +00:00

Started stripping actors - readding after rewrite

This commit is contained in:
Mordred 2018-02-20 23:42:09 +01:00
parent c664c5de90
commit 322dce393d
18 changed files with 69 additions and 405 deletions

View file

@ -3,7 +3,6 @@
#include "Player.h" #include "Player.h"
#include "Chara.h" #include "Chara.h"
#include "BattleNpc.h" #include "BattleNpc.h"
#include "EventNpc.h"
Core::Entity::Actor::Actor( ObjKind type ) : Core::Entity::Actor::Actor( ObjKind type ) :
m_objKind( type ) m_objKind( type )
@ -58,11 +57,6 @@ bool Core::Entity::Actor::isBattleNpc() const
return m_objKind == ObjKind::BattleNpc; return m_objKind == ObjKind::BattleNpc;
} }
bool Core::Entity::Actor::isEventNpc() const
{
return m_objKind == ObjKind::EventNpc;
}
/*! \return pointer to this instance as ActorPtr */ /*! \return pointer to this instance as ActorPtr */
Core::Entity::CharaPtr Core::Entity::Actor::getAsChara() Core::Entity::CharaPtr Core::Entity::Actor::getAsChara()
{ {
@ -83,12 +77,4 @@ Core::Entity::BattleNpcPtr Core::Entity::Actor::getAsBattleNpc()
if( !isBattleNpc() ) if( !isBattleNpc() )
return nullptr; return nullptr;
return boost::dynamic_pointer_cast< Entity::BattleNpc, Entity::Actor >( shared_from_this() ); return boost::dynamic_pointer_cast< Entity::BattleNpc, Entity::Actor >( shared_from_this() );
} }
/*! \return pointer to this instance as EventNpcPtr */
Core::Entity::EventNpcPtr Core::Entity::Actor::getAsEventNpc()
{
if( !isEventNpc() )
return nullptr;
return boost::dynamic_pointer_cast< Entity::EventNpc, Entity::Actor >( shared_from_this() );
}

View file

@ -69,12 +69,10 @@ namespace Entity {
bool isPlayer() const; bool isPlayer() const;
bool isBattleNpc() const; bool isBattleNpc() const;
bool isEventNpc() const;
CharaPtr getAsChara(); CharaPtr getAsChara();
PlayerPtr getAsPlayer(); PlayerPtr getAsPlayer();
BattleNpcPtr getAsBattleNpc(); BattleNpcPtr getAsBattleNpc();
EventNpcPtr getAsEventNpc();
}; };
} }

View file

@ -1,37 +0,0 @@
#include "BattleNpcTemplate.h"
Core::Entity::BattleNpcTemplate::BattleNpcTemplate()
{
}
Core::Entity::BattleNpcTemplate::BattleNpcTemplate( std::string templateName, uint32_t bnpcBaseId,
uint32_t bnpcNameId, uint32_t modelId, std::string aiName ) :
m_templateName( templateName ),
m_bnpcBaseId( bnpcBaseId ),
m_bnpcNameId( bnpcNameId ),
m_modelId( modelId ),
m_aiName( aiName )
{
}
Core::Entity::BattleNpcTemplate::~BattleNpcTemplate()
{
}
uint32_t Core::Entity::BattleNpcTemplate::getBnpcBaseId() const
{
return m_bnpcBaseId;
}
uint32_t Core::Entity::BattleNpcTemplate::getBnpcNameId() const
{
return m_bnpcNameId;
}
uint32_t Core::Entity::BattleNpcTemplate::getModelId() const
{
return m_modelId;
}

View file

@ -1,38 +0,0 @@
#ifndef _BATTLENPCTEMPLATE_H
#define _BATTLENPCTEMPLATE_H
#include <stdint.h>
#include <string>
namespace Core {
namespace Entity {
/**
* \brief BattleNpcTemplate - Class which defines a template specific BNpcs can be created from
*/
class BattleNpcTemplate
{
public:
BattleNpcTemplate();
BattleNpcTemplate( std::string templateName, uint32_t bnpcBaseId, uint32_t bnpcNameId, uint32_t modelId, std::string aiName );
~BattleNpcTemplate();
uint32_t getBnpcBaseId() const;
uint32_t getBnpcNameId() const;
uint32_t getModelId() const;
private:
std::string m_templateName;
std::string m_aiName;
uint32_t m_bnpcBaseId = 0;
uint32_t m_bnpcNameId = 0;
uint32_t m_modelId = 0;
};
}
}
#endif

View file

@ -1,118 +0,0 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdint.h>
#include <cmath>
#include <common/Logging/Logger.h>
#include <common/Util/Util.h>
#include <common/Util/UtilMath.h>
#include "Player.h"
#include "EventNpc.h"
#include "Network/PacketWrappers/MoveActorPacket.h"
#include "Network/PacketWrappers/ActorControlPacket142.h"
#include "Network/PacketWrappers/ActorControlPacket143.h"
using namespace Core::Common;
using namespace Core::Network::Packets;
using namespace Core::Network::Packets::Server;
extern Core::Logger g_log;
uint32_t Core::Entity::EventNpc::m_nextID = 1249241694;
Core::Entity::EventNpc::EventNpc() :
Chara( ObjKind::EventNpc )
{
m_id = 0;
m_status = ActorStatus::Idle;
}
Core::Entity::EventNpc::~EventNpc()
{
}
Core::Entity::EventNpc::EventNpc( uint32_t enpcId, const Common::FFXIVARR_POSITION3& spawnPos, float rotation ) :
Chara( ObjKind::EventNpc )
{
EventNpc::m_nextID++;
m_id = EventNpc::m_nextID;
m_pos = spawnPos;
m_posOrigin = spawnPos;
m_targetId = static_cast< uint64_t >( INVALID_GAME_OBJECT_ID );
m_maxHp = 150;
m_maxMp = 100;
m_baseStats.max_hp = m_maxHp;
m_baseStats.max_mp = m_maxMp;
m_hp = m_maxHp;
m_mp = m_maxMp;
m_currentStance = Stance::Passive;
m_eNpcId = enpcId;
m_status = ActorStatus::Idle;
m_invincibilityType = InvincibilityType::InvincibilityNone;
m_rot = rotation;
}
// spawn this player for pTarget
/*! TODO: Retail additionally sends Look+Models for EventNpcs even though it is not needed,
add when the new exd reader is implemented(also counts for BNPCs) */
void Core::Entity::EventNpc::spawn( PlayerPtr pTarget )
{
ZoneChannelPacket< FFXIVIpcNpcSpawn > spawnPacket( getId(), pTarget->getId() );
spawnPacket.data().pos.x = m_pos.x;
spawnPacket.data().pos.y = m_pos.y;
spawnPacket.data().pos.z = m_pos.z;
spawnPacket.data().targetId = pTarget->getId();
spawnPacket.data().hPCurr = 1;
spawnPacket.data().hPMax = 1;
spawnPacket.data().bNPCBase = m_eNpcId;
spawnPacket.data().bNPCName = m_eNpcId;
spawnPacket.data().spawnIndex = pTarget->getSpawnIdForActorId( getId() );
spawnPacket.data().rotation = Math::Util::floatToUInt16Rot( getRotation() );
spawnPacket.data().type = static_cast< uint8_t >( m_objKind );
pTarget->queuePacket( spawnPacket );
}
// despawn
void Core::Entity::EventNpc::despawn( PlayerPtr pTarget )
{
pTarget->freePlayerSpawnId( getId() );
ActorControlPacket143 controlPacket( m_id, DespawnZoneScreenMsg, 0x04, getId(), 0x01 );
pTarget->queuePacket( controlPacket );
}
uint8_t Core::Entity::EventNpc::getLevel() const
{
return m_level;
}
void Core::Entity::EventNpc::resetPos()
{
m_pos = m_posOrigin;
}
uint32_t Core::Entity::EventNpc::getEnpcId() const
{
return m_eNpcId;
}

View file

@ -1,42 +0,0 @@
#ifndef _EVENTNPC_H
#define _EVENTNPC_H
#include "Chara.h"
namespace Core {
namespace Entity {
// class for Mobs inheriting from Chara
class EventNpc : public Chara
{
public:
EventNpc();
virtual ~EventNpc() override;
EventNpc( uint32_t enpcId, const Common::FFXIVARR_POSITION3& spawnPos, float rotation );
// send spawn packets to pTarget
void spawn( PlayerPtr pTarget ) override;
// send despawn packets to pTarget
void despawn( PlayerPtr pTarget ) override;
uint8_t getLevel() const override;
void resetPos();
uint32_t getEnpcId() const;
private:
static uint32_t m_nextID;
Common::FFXIVARR_POSITION3 m_posOrigin;
uint8_t m_level;
uint32_t m_eNpcId;
};
}
}
#endif

View file

@ -0,0 +1,48 @@
#include "EventObject.h"
#include "Zone/InstanceContent.h"
Core::Entity::EventObject::EventObject( uint32_t objectId, uint32_t mapLinkId ) :
Core::Entity::Actor( ObjKind::EventObj ),
m_mapLinkId( mapLinkId ),
m_state( 0 )
{
m_id = objectId;
}
Core::Entity::EventObject::EventObject( uint32_t objectId, uint32_t mapLinkId, Common::FFXIVARR_POSITION3 pos ) :
EventObject( objectId, mapLinkId )
{
}
uint32_t Core::Entity::EventObject::getHierachyId() const
{
return m_mapLinkId;
}
void Core::Entity::EventObject::setHierachyId( uint32_t hierachyId )
{
m_mapLinkId = hierachyId;
}
uint8_t Core::Entity::EventObject::getState() const
{
return m_state;
}
void Core::Entity::EventObject::setState( uint8_t state )
{
m_state = state;
//m_parentInstance->updateEObj( InstanceObjectPtr( this ) );
}
void Core::Entity::EventObject::setParentInstance( Core::InstanceContentPtr instance )
{
m_parentInstance = instance;
}
Core::InstanceContentPtr Core::Entity::EventObject::getParentInstance() const
{
return m_parentInstance;
}

View file

@ -7,11 +7,11 @@ namespace Core
{ {
namespace Entity namespace Entity
{ {
class InstanceObject : public Actor class EventObject : public Actor
{ {
public: public:
InstanceObject( uint32_t objectId, uint32_t mapLinkId ); EventObject( uint32_t objectId, uint32_t mapLinkId );
InstanceObject( uint32_t objectId, uint32_t mapLinkId, Common::FFXIVARR_POSITION3 pos ); EventObject( uint32_t objectId, uint32_t mapLinkId, Common::FFXIVARR_POSITION3 pos );
uint32_t getHierachyId() const; uint32_t getHierachyId() const;
void setHierachyId( uint32_t hierachyId ); void setHierachyId( uint32_t hierachyId );

View file

@ -1,48 +0,0 @@
#include "InstanceObject.h"
#include "Zone/InstanceContent.h"
Core::Entity::InstanceObject::InstanceObject( uint32_t objectId, uint32_t mapLinkId ) :
Core::Entity::Actor( ObjKind::EventObj ),
m_mapLinkId( mapLinkId ),
m_state( 0 )
{
m_id = objectId;
}
Core::Entity::InstanceObject::InstanceObject( uint32_t objectId, uint32_t mapLinkId, Common::FFXIVARR_POSITION3 pos ) :
InstanceObject( objectId, mapLinkId )
{
}
uint32_t Core::Entity::InstanceObject::getHierachyId() const
{
return m_mapLinkId;
}
void Core::Entity::InstanceObject::setHierachyId( uint32_t hierachyId )
{
m_mapLinkId = hierachyId;
}
uint8_t Core::Entity::InstanceObject::getState() const
{
return m_state;
}
void Core::Entity::InstanceObject::setState( uint8_t state )
{
m_state = state;
//m_parentInstance->updateInstanceObj( InstanceObjectPtr( this ) );
}
void Core::Entity::InstanceObject::setParentInstance( Core::InstanceContentPtr instance )
{
m_parentInstance = instance;
}
Core::InstanceContentPtr Core::Entity::InstanceObject::getParentInstance() const
{
return m_parentInstance;
}

View file

@ -23,7 +23,6 @@
#include "Actor/Player.h" #include "Actor/Player.h"
#include "Actor/BattleNpc.h" #include "Actor/BattleNpc.h"
#include "Actor/EventNpc.h"
#include "Zone/Zone.h" #include "Zone/Zone.h"
#include "Zone/InstanceContent.h" #include "Zone/InstanceContent.h"
@ -379,33 +378,6 @@ void Core::DebugCommandHandler::add( char * data, Entity::Player& player, boost:
auto pPe = Network::Packets::make_GamePacket( opcode, 0x30, player.getId(), player.getId() ); auto pPe = Network::Packets::make_GamePacket( opcode, 0x30, player.getId(), player.getId() );
player.queuePacket( pPe ); player.queuePacket( pPe );
} }
else if( subCommand == "eventnpc-self" )
{
int32_t id;
sscanf( params.c_str(), "%d", &id );
Network::Packets::ZoneChannelPacket< Network::Packets::Server::FFXIVIpcNpcSpawn > spawnPacket( player.getId() );
spawnPacket.data().type = 3;
spawnPacket.data().pos = player.getPos();
spawnPacket.data().rotation = player.getRotation();
spawnPacket.data().bNPCBase = id;
spawnPacket.data().bNPCName = id;
spawnPacket.data().targetId = player.getId();
player.queuePacket( spawnPacket );
}
else if( subCommand == "eventnpc" )
{
int32_t id;
sscanf( params.c_str(), "%d", &id );
auto pENpc = Entity::make_EventNpc( id, player.getPos(), player.getRotation() );
auto pZone = player.getCurrentZone();
pENpc->setCurrentZone( pZone );
pZone->pushActor( pENpc );
}
else if( subCommand == "actrl" ) else if( subCommand == "actrl" )
{ {
@ -778,11 +750,11 @@ void Core::DebugCommandHandler::instance( char* data, Entity::Player &player, bo
if( !instance ) if( !instance )
return; return;
auto obj = instance->getInstanceObject( objId ); auto obj = instance->getEObj(objId);
if( !obj ) if( !obj )
return; return;
instance->updateInstanceObj( obj ); instance->updateEObj(obj);
} }
else if( subCommand == "objstate" ) else if( subCommand == "objstate" )
{ {
@ -795,7 +767,7 @@ void Core::DebugCommandHandler::instance( char* data, Entity::Player &player, bo
if( !instance ) if( !instance )
return; return;
auto obj = instance->getInstanceObject( objId ); auto obj = instance->getEObj(objId);
if( !obj ) if( !obj )
return; return;

View file

@ -38,9 +38,7 @@ namespace Core
TYPE_FORWARD( Chara ); TYPE_FORWARD( Chara );
TYPE_FORWARD( Player ); TYPE_FORWARD( Player );
TYPE_FORWARD( BattleNpc ); TYPE_FORWARD( BattleNpc );
TYPE_FORWARD( EventNpc ); TYPE_FORWARD( EventObject );
TYPE_FORWARD( BattleNpcTemplate );
TYPE_FORWARD( InstanceObject );
} }
namespace Event namespace Event

View file

@ -139,12 +139,6 @@ void Core::Scripting::ScriptManager::onPlayerFirstEnterWorld( Entity::Player& pl
// } // }
} }
bool Core::Scripting::ScriptManager::registerBnpcTemplate( std::string templateName, uint32_t bnpcBaseId,
uint32_t bnpcNameId, uint32_t modelId, std::string aiName )
{
return g_serverZone.registerBnpcTemplate( templateName, bnpcBaseId, bnpcNameId, modelId, aiName );
}
bool Core::Scripting::ScriptManager::onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId ) bool Core::Scripting::ScriptManager::onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId )
{ {

View file

@ -37,8 +37,6 @@ namespace Core
void onPlayerFirstEnterWorld( Entity::Player& player ); void onPlayerFirstEnterWorld( Entity::Player& player );
static bool registerBnpcTemplate( std::string templateName, uint32_t bnpcBaseId, uint32_t bnpcNameId, uint32_t modelId, std::string aiName );
bool onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId ); bool onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId );
bool onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ); bool onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 );
bool onWithinRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ); bool onWithinRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z );

View file

@ -9,11 +9,11 @@ public:
void onInit( InstanceContent& instance ) override void onInit( InstanceContent& instance ) override
{ {
auto exit = new Entity::InstanceObject( EXIT_OBJECT, 0, { 0, 0, -10 } ); auto exit = new Entity::EventObject( EXIT_OBJECT, 0, { 0, 0, -10 } );
instance.registerInstanceObj( Entity::InstanceObjectPtr( exit ) ); instance.registerEObj(Entity::InstanceObjectPtr(exit));
auto start = new Entity::InstanceObject( START_CIRCLE, 4236868, { 0, 0, 24 } ); auto start = new Entity::EventObject( START_CIRCLE, 4236868, { 0, 0, 24 } );
instance.registerInstanceObj( Entity::InstanceObjectPtr( start ) ); instance.registerEObj(Entity::InstanceObjectPtr(start));
} }
void onUpdate( InstanceContent& instance, uint32_t currTime ) override void onUpdate( InstanceContent& instance, uint32_t currTime ) override

View file

@ -65,34 +65,6 @@ size_t Core::ServerZone::getSessionCount() const
return m_sessionMapById.size(); return m_sessionMapById.size();
} }
bool Core::ServerZone::registerBnpcTemplate( std::string templateName, uint32_t bnpcBaseId,
uint32_t bnpcNameId, uint32_t modelId, std::string aiName )
{
auto it = m_bnpcTemplates.find( templateName );
if( it != m_bnpcTemplates.end() )
{
g_log.error( templateName + " already registered, skipping..." );
return false;
}
Entity::BattleNpcTemplatePtr pNpcTemplate( new Entity::BattleNpcTemplate( templateName, bnpcBaseId, bnpcNameId, modelId, aiName ) );
m_bnpcTemplates[templateName] = pNpcTemplate;
return true;
}
Core::Entity::BattleNpcTemplatePtr Core::ServerZone::getBnpcTemplate( std::string templateName )
{
auto it = m_bnpcTemplates.find( templateName );
if (it != m_bnpcTemplates.end())
return nullptr;
return it->second;
}
bool Core::ServerZone::loadSettings( int32_t argc, char* argv[] ) bool Core::ServerZone::loadSettings( int32_t argc, char* argv[] )
{ {
g_log.info( "Loading config " + m_configPath ); g_log.info( "Loading config " + m_configPath );
@ -250,7 +222,6 @@ void Core::ServerZone::mainLoop()
{ {
this_thread::sleep_for( chrono::milliseconds( 50 ) ); this_thread::sleep_for( chrono::milliseconds( 50 ) );
auto currTime = Util::getTimeSeconds(); auto currTime = Util::getTimeSeconds();
g_territoryMgr.updateTerritoryInstances( currTime ); g_territoryMgr.updateTerritoryInstances( currTime );

View file

@ -8,7 +8,6 @@
#include <map> #include <map>
#include "Forwards.h" #include "Forwards.h"
#include "Actor/BattleNpcTemplate.h"
namespace Core { namespace Core {
@ -35,11 +34,6 @@ namespace Core {
size_t getSessionCount() const; size_t getSessionCount() const;
bool registerBnpcTemplate( std::string templateName, uint32_t bnpcBaseId,
uint32_t bnpcNameId, uint32_t modelId, std::string aiName );
Entity::BattleNpcTemplatePtr getBnpcTemplate( std::string templateName );
void mainLoop(); void mainLoop();
bool isRunning() const; bool isRunning() const;
@ -66,8 +60,6 @@ namespace Core {
std::map< uint32_t, uint32_t > m_zones; std::map< uint32_t, uint32_t > m_zones;
std::map< std::string, Entity::BattleNpcTemplatePtr > m_bnpcTemplates;
}; };
} }

View file

@ -19,7 +19,6 @@
#include "Actor/Chara.h" #include "Actor/Chara.h"
#include "Actor/Player.h" #include "Actor/Player.h"
#include "Actor/BattleNpc.h" #include "Actor/BattleNpc.h"
#include "Actor/EventNpc.h"
#include "Forwards.h" #include "Forwards.h"
@ -323,14 +322,6 @@ void Core::Zone::pushActor( Entity::CharaPtr pChara )
pBNpc->setPosition( pBNpc->getPos() ); pBNpc->setPosition( pBNpc->getPos() );
} }
else if( pChara->isEventNpc() )
{
Entity::EventNpcPtr pENpc = pChara->getAsEventNpc();
m_EventNpcMap[pENpc->getId()] = pENpc;
pENpc->setPosition( pENpc->getPos() );
}
} }
void Core::Zone::removeActor( Entity::CharaPtr pChara ) void Core::Zone::removeActor( Entity::CharaPtr pChara )
@ -752,7 +743,7 @@ void Core::Zone::updateInRangeSet( Entity::CharaPtr pChara, Cell* pCell )
} }
} }
else if( ( pChara->isBattleNpc() || pChara->isEventNpc() ) && pCurAct->isPlayer() && pChara->isAlive() ) else if( ( pChara->isBattleNpc() ) && pCurAct->isPlayer() && pChara->isAlive() )
{ {
auto pPlayer = pCurAct->getAsPlayer(); auto pPlayer = pCurAct->getAsPlayer();
if( pPlayer->isLoadingComplete() ) if( pPlayer->isLoadingComplete() )
@ -807,7 +798,7 @@ void Core::Zone::onInitDirector( Entity::Player& player )
} }
void Core::Zone::registerInstanceObj( Entity::InstanceObjectPtr object ) void Core::Zone::registerEObj( Entity::EventObjectPtr object )
{ {
if( !object ) if( !object )
return; return;
@ -819,7 +810,7 @@ void Core::Zone::registerInstanceObj( Entity::InstanceObjectPtr object )
g_log.debug( "Registered instance eobj: " + std::to_string( object->getId() ) ); g_log.debug( "Registered instance eobj: " + std::to_string( object->getId() ) );
} }
Core::Entity::InstanceObjectPtr Core::Zone::getInstanceObject( uint32_t objId ) Core::Entity::EventObjectPtr Core::Zone::getEObj( uint32_t objId )
{ {
auto obj = m_instanceObjects.find( objId ); auto obj = m_instanceObjects.find( objId );
if( obj == m_instanceObjects.end() ) if( obj == m_instanceObjects.end() )
@ -828,7 +819,7 @@ Core::Entity::InstanceObjectPtr Core::Zone::getInstanceObject( uint32_t objId )
return obj->second; return obj->second;
} }
void Core::Zone::updateInstanceObj( Core::Entity::InstanceObjectPtr object ) void Core::Zone::updateEObj( Entity::EventObjectPtr object )
{ {
if( !object ) if( !object )
return; return;

View file

@ -6,7 +6,7 @@
#include "Cell.h" #include "Cell.h"
#include "CellHandler.h" #include "CellHandler.h"
#include "Actor/InstanceObject.h" #include "Actor/EventObject.h"
#include "Forwards.h" #include "Forwards.h"
@ -35,8 +35,7 @@ protected:
std::unordered_map< int32_t, Entity::PlayerPtr > m_playerMap; std::unordered_map< int32_t, Entity::PlayerPtr > m_playerMap;
std::unordered_map< int32_t, Entity::BattleNpcPtr > m_BattleNpcMap; std::unordered_map< int32_t, Entity::BattleNpcPtr > m_BattleNpcMap;
std::unordered_map< int32_t, Entity::EventNpcPtr > m_EventNpcMap; std::unordered_map< int32_t, Entity::EventObjectPtr > m_instanceObjects;
std::unordered_map< int32_t, Entity::InstanceObjectPtr > m_instanceObjects;
std::set< Entity::BattleNpcPtr > m_BattleNpcDeadMap; std::set< Entity::BattleNpcPtr > m_BattleNpcDeadMap;
@ -114,9 +113,9 @@ public:
void updateSessions( bool changedWeather ); void updateSessions( bool changedWeather );
void registerInstanceObj( Entity::InstanceObjectPtr object ); void registerEObj( Entity::EventObjectPtr object );
Entity::InstanceObjectPtr getInstanceObject( uint32_t objId ); Entity::EventObjectPtr getEObj( uint32_t objId );
void updateInstanceObj( Entity::InstanceObjectPtr object ); void updateEObj( Entity::EventObjectPtr object );
InstanceContentPtr getAsInstanceContent(); InstanceContentPtr getAsInstanceContent();