Beispiel #1
0
	story::ConversationPtr Conversation::Get( std::string id ) 
	{
		CategoryPtr ctg = FactoryManager::GetSingleton()->GetMasterFile()->GetCategory("Conversations");
		if (ctg)
		{
			for (int i = 0; i < ctg->GetSize(); ++i)
			{
				EntryPtr entry = ctg->GetEntry(i);
				boost::shared_ptr<ConversationEntry> ce = boost::shared_dynamic_cast<ConversationEntry>(entry);
				if (ce)
				{
					if (ce->data->GetID() == id)
						return ce->data;
				}
			}
		}
		return ConversationPtr();
	}
void ConversationSystem::Restore( idRestoreGame *savefile ) {
	_conversations.Clear();
	int num;
	savefile->ReadInt( num );
	_conversations.SetNum( num );
	for( int i = 0; i < num; i++ ) {
		// Allocate a new conversation and restore it
		_conversations[i] = ConversationPtr( new Conversation );
		_conversations[i]->Restore( savefile );
	}
	_activeConversations.Clear();
	savefile->ReadInt( num );
	_activeConversations.SetNum( num );
	for( int i = 0; i < num; i++ ) {
		savefile->ReadInt( _activeConversations[i] );
	}
	_dyingConversations.Clear();
	savefile->ReadInt( num );
	_dyingConversations.SetNum( num );
	for( int i = 0; i < num; i++ ) {
		savefile->ReadInt( _dyingConversations[i] );
	}
}
ConversationPtr ConversationSystem::GetConversation( int index ) {
	return ( index >= 0 && index < _conversations.Num() ) ? _conversations[index] : ConversationPtr();
}