Exemplo n.º 1
0
void GUISystem::Init()
{	
	m_oAddGuiComponentEvent.Subscribe(this,&GUISystem::AddGUIComponent,ObjectId("Registered/GUIViewComponent"));
	m_oDeleteGuiComponentEvent.Subscribe(this,&GUISystem::DeleteGUIComponent,ObjectId("Unregistered/GUIViewComponent"));

	CreateGUIWindow();

	SDL_ShowCursor(SDL_DISABLE);

	MGD_LOG::LOGManager::GetSingleton().WriteLog(MGD_LOG::MGD_INFO, SYSTEMS_CONTEXT, "GUISystem initialized!");
}
Exemplo n.º 2
0
void SystemManager::RemoveAllComponents()
{
	ComponentTable::iterator cIt = m_vComponentTable.begin();
	while(cIt != m_vComponentTable.end())
	{
		EntityComponentTable& entityComponentMap= cIt->second;
		EntityComponentTable::iterator entityIt = entityComponentMap.begin();
		while(entityIt != entityComponentMap.end())
		{
			MGDVector<Component*>& oComponent = (*entityIt).second;
			for(uint32 uiIndex = 0; uiIndex < oComponent.size(); ++uiIndex)
			{
				if(!oComponent[uiIndex]->IsRemovable())
				{
					char pEventName[128];
					sprintf_s(pEventName, "Unregistered/%s", oComponent[uiIndex]->GetID().GetDebugName().c_str());
					m_oEventPublisher.SetPath(ObjectId(pEventName));
					m_oEventPublisher.Raise(oComponent[uiIndex]->GetTextName().c_str());
					
					oComponent[uiIndex]->Remove();
				}
			}

			++entityIt;
		}

		++cIt;
	}
}
Exemplo n.º 3
0
void SystemManager::RemoveComponent(Component* i_pComponent)
{
	MGD_ASSERT(i_pComponent);
	if(i_pComponent)
	{
		ComponentTable::iterator cIt= m_vComponentTable.find(i_pComponent->GetID());
		if(cIt != m_vComponentTable.end())
		{
			EntityComponentTable& entityComponentMap= cIt->second;
			EntityComponentTable::iterator entityIt = entityComponentMap.find(i_pComponent->GetOwnerID());
			if(entityIt != entityComponentMap.end())
			{
				MGDVector<Component*>& oComponent = (*entityIt).second;
				for(uint32 uiIndex = 0; uiIndex < oComponent.size(); ++uiIndex)
				{
					if(!oComponent[uiIndex]->IsRemovable())
					{
						if(oComponent[uiIndex]->GetName() == i_pComponent->GetName())
						{
							char pEventName[128];
							sprintf_s(pEventName, "Unregistered/%s", i_pComponent->GetID().GetDebugName().c_str());
							m_oEventPublisher.SetPath(ObjectId(pEventName));
							m_oEventPublisher.Raise(i_pComponent->GetTextName().c_str());
							i_pComponent->Remove();
						}
					}
				}				
			}
		}
	}
}
Exemplo n.º 4
0
void Component::CreateName()
{
	char szTextName[15];
	sprintf_s(szTextName, "Component_%d", DEFAULT_COMPONENT_COUNT);
	++DEFAULT_COMPONENT_COUNT;
	m_szTextName = szTextName;
	m_oName = ObjectId(szTextName);
}
Exemplo n.º 5
0
void RemoveFrameTagCommand::onLoadParams(const Params& params)
{
  m_tagName = params.get("name");

  std::string id = params.get("id");
  if (!id.empty())
    m_tagId = ObjectId(base::convert_to<ObjectId>(id));
  else
    m_tagId = NullId;
}
Exemplo n.º 6
0
void RemoveSliceCommand::onLoadParams(const Params& params)
{
  m_sliceName = params.get("name");

  std::string id = params.get("id");
  if (!id.empty())
    m_sliceId = ObjectId(base::convert_to<doc::ObjectId>(id));
  else
    m_sliceId = NullId;
}
Exemplo n.º 7
0
	void DestroyAllBlackboards()
	{
		IObjectFactorySystem* pFactory = PerModuleInterface::g_pSystemTable->pObjectFactorySystem;
		IObject* pObj = 0;

		delete m_pBlackboardGlobal;
		m_pBlackboardGlobal = 0;

		for (int i=0; i<EGT_COUNT; ++i)
		{
			pObj = pFactory->GetObject(m_BlackboardTeam[i]);
			delete pObj;
			m_BlackboardTeam[i] = ObjectId();
		}

		for (int i=0; i<EGO_COUNT; ++i)
		{	
			pObj = pFactory->GetObject(m_BlackboardGroup[i]);
			delete pObj;
			m_BlackboardGroup[i] = ObjectId();
		}

		TIndividualMap::iterator it = m_BlackboardIndividual.begin();
		TIndividualMap::iterator itEnd = m_BlackboardIndividual.end();
		while (it != itEnd)
		{
			pObj = pFactory->GetObject(it->second);
			delete pObj;
			++it;
		}
		m_BlackboardIndividual.clear();

		it = m_BlackboardIndividualCommon.begin();
		itEnd = m_BlackboardIndividualCommon.end();
		while (it != itEnd)
		{
			pObj = pFactory->GetObject(it->second);
			delete pObj;
			++it;
		}
		m_BlackboardIndividualCommon.clear();
	}
Exemplo n.º 8
0
DirectoryEntry::DirectoryEntry(Type type,
                               Inode inode,
                               Permissions permissions,
                               UserId user_id,
                               GroupId group_id)
    : DirectoryEntry(ObjectId(yt::UUID().str()),
                     type,
                     inode,
                     permissions,
                     user_id,
                     group_id)
{}
Exemplo n.º 9
0
void ActorFactory::UnloadFile(const char* i_szFilename)
{
	if(!i_szFilename)
	{
		MGD_LOG::LOGManager::GetSingleton().WriteLog(MGD_LOG::MGD_ERROR, ACTOR_FACTORY_CONTEXT, "File name incorrect: %s", i_szFilename);
		return;
	}

	tinyxml2::XMLDocument oDocument;
	tinyxml2::XMLError oErr = oDocument.LoadFile(i_szFilename);
	if(oErr != tinyxml2::XML_NO_ERROR)
	{
		MGD_LOG::LOGManager::GetSingleton().WriteLog(MGD_LOG::MGD_ERROR, ACTOR_FACTORY_CONTEXT, "File name incorrect: %s", i_szFilename);
		return;
	}
	const tinyxml2::XMLElement* pRoot = oDocument.RootElement();
	if(pRoot)
	{
		for (const tinyxml2::XMLElement* pActor = pRoot->FirstChildElement("Actor"); pActor; pActor = pActor->NextSiblingElement("Actor"))
		{
			const char* pActorName = pActor->Attribute("Name");
			MGD_ASSERT(pActorName);
			if(pActorName)
			{
				SystemManager::GetSingleton().RemoveComponentsByOwnerId(ObjectId(pActorName));
			}
		}
		for (const tinyxml2::XMLElement* pTemplateActor = pRoot->FirstChildElement("TemplateActor"); pTemplateActor; pTemplateActor = pTemplateActor->NextSiblingElement("TemplateActor"))
		{
			const char* pTemplateActorName = pTemplateActor->Attribute("Name");
			MGD_ASSERT(pTemplateActorName);
			if(pTemplateActorName)
			{
				SystemManager::GetSingleton().RemoveTemplate(ObjectId(pTemplateActorName));
			}
		}

		SystemManager::GetSingleton().RemoveTemplateComponents();
	}
}
Exemplo n.º 10
0
void ActorFactory::InitComponents(MGDVector<Component*>& i_vNewComponents)
{
	MGDVector<Component*>::iterator it = i_vNewComponents.begin();
	for(; it != i_vNewComponents.end(); ++it)
	{
		(*it)->Init();

		char pEventName[128];
		sprintf_s(pEventName, "Registered/%s", (*it)->GetID().GetDebugName().c_str());
		ActorFactory::GetSingleton().m_oEventPublisher.SetPath(ObjectId(pEventName));
		ActorFactory::GetSingleton().m_oEventPublisher.Raise((*it)->GetTextName().c_str());
	}
}
Exemplo n.º 11
0
void ActorFactory::CreateActorFromTemplate(const char* i_pTemplateActorName, const char* i_pActorName)
{
	if (i_pTemplateActorName && strlen(i_pTemplateActorName) > 0 && i_pActorName && strlen(i_pActorName) > 0)
	{
		MGDVector<Component*> pTemplateComponents;
		SystemManager::GetSingleton().GetComponentsFromTemplate(ObjectId(i_pTemplateActorName), pTemplateComponents);

		MGDVector<Component*> pNewComponents;
		for (uint32 uiIndex = 0; uiIndex < pTemplateComponents.size(); ++uiIndex)
		{
			Component* pComponent = GetSingleton().m_Factory.Create(pTemplateComponents[uiIndex]->GetID(), i_pActorName, true);
			if (pComponent)
			{
				pComponent->CreateFromTemplate(pTemplateComponents[uiIndex], ObjectId(i_pActorName));
				SystemManager::GetSingleton().AddComponent(pComponent, ObjectId(i_pActorName));

				pNewComponents.push_back(pComponent);
			}
		}

		InitComponents(pNewComponents);
	}
}
Exemplo n.º 12
0
void DwString::PrintDebugInfo(std::ostream& aStrm) const
{
    aStrm <<
    "----------------- Debug info for DwString class ----------------\n";
    aStrm << "Id:               " << ClassName() << ", " << ObjectId() << "\n";
    aStrm << "Rep:              " << (void*) mRep << "\n";
    aStrm << "Buffer:           " << (void*) mRep->mBuffer << "\n";
    aStrm << "Buffer size:      " << mRep->mSize << "\n";
    aStrm << "Start:            " << mStart << "\n";
    aStrm << "Length:           " << mLength << "\n";
    aStrm << "Contents:         ";
    for (size_t i=0; i < mLength && i < 64; ++i) {
        aStrm << mRep->mBuffer[mStart+i];
    }
    aStrm << std::endl;
}
Exemplo n.º 13
0
void ActorFactory::CreateTemplateActor(const tinyxml2::XMLElement* i_pTemplateActor)
{
	if (i_pTemplateActor)
	{
		char szTemplateActorName[32]; 
		sprintf_s(szTemplateActorName,i_pTemplateActor->Attribute("Name"));

		for (const tinyxml2::XMLElement* pNode = i_pTemplateActor->FirstChildElement(); pNode; pNode = pNode->NextSiblingElement())
		{
			Component* pComponent = CreateComponent(pNode, szTemplateActorName);
			MGD_ASSERT(pComponent);
			if (pComponent)
			{
				SystemManager::GetSingleton().AddTemplate(ObjectId(szTemplateActorName), pComponent);
			}
		}
	}
}
Exemplo n.º 14
0
Component* ActorFactory::CreateComponent(const tinyxml2::XMLElement* i_pNode, const char* i_pActorName)
{
	if(i_pNode)
	{
		const char* pComponentID = i_pNode->Value();
		Component* pComponent = GetSingleton().m_Factory.Create(ObjectId(pComponentID), i_pActorName);
		if (pComponent)
		{
			if (pComponent->SetupFromXml(i_pNode))
			{
				return pComponent;
			}
		}

		delete(pComponent);
		MGD_LOG::LOGManager::GetSingleton().WriteLog(MGD_LOG::MGD_ERROR, ACTOR_FACTORY_CONTEXT, "Component failed to initialize: %s", pComponentID);
	}
	return NULL;
}
Exemplo n.º 15
0
void ActorFactory::CreateActor(const tinyxml2::XMLElement* i_pActor, MGDVector<Component*>& o_vNewComponents)
{
	if(i_pActor)
	{
		const char* pActorName = i_pActor->Attribute("Name");

		for (const tinyxml2::XMLElement* pNode = i_pActor->FirstChildElement(); pNode; pNode = pNode->NextSiblingElement())
		{
			Component* pComponent = CreateComponent(pNode, pActorName);
#if defined(_DEBUG)
			++NumComponents;
#endif
			MGD_ASSERT(pComponent);
			if (pComponent)
			{
				SystemManager::GetSingleton().AddComponent(pComponent, ObjectId(pActorName));
				o_vNewComponents.push_back(pComponent);
			}
		}
	}
}
Exemplo n.º 16
0
bool Component::SetupFromXml( const tinyxml2::XMLElement* pNode )
{
	if(pNode)
	{
		const char* pTextName = pNode->Attribute("Name");		
		if (pTextName && strlen(pTextName) > 0)
		{
			m_szTextName = pTextName;
			m_oName = ObjectId(pTextName);
			return true;
		}
		else
		{
			CreateName();
		}

		return true;
	}

	return false;
}
Exemplo n.º 17
0
ObjectId Value::getObjectId() const
{
    this->throwIfIncompatibleValue(Type::Map);
    return ObjectId(this->data->map["id"].asInteger());
}
Exemplo n.º 18
0
 Entity(Engine& engine, const AudioGroup& group, GroupId groupId, ObjectId oid = ObjectId())
 : m_engine(engine), m_audioGroup(group), m_groupId(groupId), m_objectId(oid) {}
Exemplo n.º 19
0
void DwMessageComponent::_PrintDebugInfo(std::ostream& aStrm) const
{
    aStrm << "ObjectId:         " << ObjectId() << '\n';
    aStrm << "ClassId:          ";
	switch (ClassId()) {
	case kCidError:
		aStrm << "kCidError";
		break;
	case kCidUnknown:
        aStrm << "kCidUnknown";
		break;
	case kCidAddress:
        aStrm << "kCidAddress";
		break;
	case kCidAddressList:
        aStrm << "kCidAddressList";
		break;
	case kCidBody:
        aStrm << "kCidBody";
		break;
	case kCidBodyPart:
        aStrm << "kCidBodyPart";
		break;
	case kCidDispositionType:
        aStrm << "kCidDispositionType";
		break;
	case kCidMechanism:
        aStrm << "kCidMechanism";
		break;
	case kCidMediaType:
        aStrm << "kCidMediaType";
		break;
	case kCidParameter:
        aStrm << "kCidParameter";
		break;
	case kCidDateTime:
        aStrm << "kCidDateTime";
		break;
	case kCidEntity:
        aStrm << "kCidEntity";
		break;
	case kCidField:
        aStrm << "kCidField";
		break;
	case kCidFieldBody:
        aStrm << "kCidFieldBody";
		break;
	case kCidGroup:
        aStrm << "kCidGroup";
		break;
	case kCidHeaders:
        aStrm << "kCidHeaders";
		break;
	case kCidMailbox:
        aStrm << "kCidMailbox";
		break;
	case kCidMailboxList:
        aStrm << "kCidMailboxList";
		break;
	case kCidMessage:
        aStrm << "kCidMessage";
		break;
	case kCidMessageComponent:
        aStrm << "kCidMessageComponent";
		break;
	case kCidMsgId:
        aStrm << "kCidMsgId";
		break;
	case kCidText:
        aStrm << "kCidText";
		break;
	}
    aStrm << '\n';
    aStrm << "ClassName:        " << ClassName() << '\n';
    aStrm << "String:           " << mString << '\n';
    aStrm << "IsModified:       " << (IsModified() ? "True" : "False") << '\n';
    aStrm << "Parent ObjectId:  ";
    if (mParent) {
        aStrm << mParent->ObjectId() << '\n';
    }
    else {
        aStrm << "(none)\n";
    }
}
Exemplo n.º 20
0
 static constexpr ObjectId InvalidObjectId()
 {
   return ObjectId(numeric_limits<typename ObjectId::RepType>::max());
 }
void TransformationComponent::Init()
{
	char szEventName[128];
	sprintf_s(szEventName,"%s/POSITION_CHANGED",GetOwnerID().GetDebugName().c_str());
	m_oEvent.SetPath(ObjectId(szEventName));	
}
Exemplo n.º 22
0
void ActorFactory::RemoveActor(const char* i_szActor)
{
	SystemManager::GetSingleton().RemoveComponentsByOwnerId(ObjectId(i_szActor));
}