Example #1
0
void CIFXMetaData::SetStringValueX(const IFXString& rKey, const IFXString& rValue)
{
	IFXString key = rKey;
	IFXSubattributes sa;
	UnpackKey(key, sa);

	U32 index;
	IFXMetaDataContainer* ExistingMD = FindTheKey(key, &index);

	if (ExistingMD) {
		ExistingMD->Subattributes = sa;
		if (ExistingMD->Attribute & IFXMETADATAATTRIBUTE_BINARY)
			delete [] (U8*)ExistingMD->pBuffer;
		else 
			delete (IFXString*)ExistingMD->pBuffer;
		ExistingMD->pBuffer = new IFXString;
		(*(IFXString*)(ExistingMD->pBuffer)) = rValue;
		ExistingMD->Attribute = (IFXMetaDataAttribute)(ExistingMD->Attribute & ~IFXMETADATAATTRIBUTE_BINARY);
		ExistingMD->Persistence = IFX_TRUE;
	} else {
		m_pEmptyMetaData->Key = key;
		m_pEmptyMetaData->Subattributes = sa;
		m_pEmptyMetaData->pBuffer = new IFXString;
		(*(IFXString*)(m_pEmptyMetaData->pBuffer)) = rValue;
		m_pEmptyMetaData->Attribute = (IFXMetaDataAttribute)(m_pEmptyMetaData->Attribute & ~IFXMETADATAATTRIBUTE_BINARY);
		m_pEmptyMetaData->Persistence = IFX_TRUE;

		m_pEmptyMetaData->pNext = new(IFXMetaDataContainer);
		m_pEmptyMetaData->pNext->pPrev = m_pEmptyMetaData;
		m_pEmptyMetaData = m_pEmptyMetaData->pNext;

		m_uMDCount++;
	}
}
Example #2
0
IFXRESULT CIFXMetaData::GetIndex(const IFXString& rKey, U32& rIndex)
{
	U32 index;
	if (FindTheKey(rKey, &index)) {
		rIndex = index;
		return IFX_OK;
	}

	return IFX_E_NO_METADATA;
}
Example #3
0
BOOL CIFXMetaData::IsKeyExists(const IFXString& rValue)
{
	BOOL rc = IFX_FALSE;
	U32 index;
	
	if (FindTheKey(rValue, &index)) {
		rc = IFX_TRUE;
	}

	return rc;
}
Example #4
0
void CIFXMetaData::SetBinaryValueX(const IFXString& rKey, U32 size, const U8* pData)
{
	IFXString key = rKey;
	IFXSubattributes sa;
	UnpackKey(key, sa);

	U32 index;
	IFXMetaDataContainer* ExistingMD = FindTheKey(key, &index);

	if (ExistingMD) {
		ExistingMD->Subattributes = sa;
		if (ExistingMD->Attribute & IFXMETADATAATTRIBUTE_BINARY)
			delete [] (U8*)ExistingMD->pBuffer;
		else 
			delete (IFXString*)ExistingMD->pBuffer;
		ExistingMD->pBuffer = (U8*)new U8[size];
		memcpy(ExistingMD->pBuffer, pData, size);
		ExistingMD->Size = size;
		ExistingMD->Attribute = (IFXMetaDataAttribute)(ExistingMD->Attribute | IFXMETADATAATTRIBUTE_BINARY);
		ExistingMD->Persistence = IFX_TRUE;
	} else {
		m_pEmptyMetaData->Key = key;
		m_pEmptyMetaData->Subattributes = sa;
		m_pEmptyMetaData->pBuffer = (U8*)new U8[size];
		memcpy(m_pEmptyMetaData->pBuffer, pData, size);
		m_pEmptyMetaData->Size = size;
		m_pEmptyMetaData->Attribute = (IFXMetaDataAttribute)(m_pEmptyMetaData->Attribute | IFXMETADATAATTRIBUTE_BINARY);
		m_pEmptyMetaData->Persistence = IFX_TRUE;

		m_pEmptyMetaData->pNext = new(IFXMetaDataContainer);
		m_pEmptyMetaData->pNext->pPrev = m_pEmptyMetaData;
		m_pEmptyMetaData = m_pEmptyMetaData->pNext;

		m_uMDCount++;
	}
}
void GameEventManager::PlayEvent(Player * pPlayer,Cell*Room[20][20])
{
	if(*m_pEventPosition !=0 && Room[GetRow()][GetColumn()] !=NULL)
	{
		Room[GetRow()][GetColumn()]->Reset();	//Resets the Cell the event is in
	}
	switch(GetEvent())
	{
		//Floor 1
	case 0:
		GameStart(pPlayer);
		*m_pEventPosition=+1;
		break;
	case 1:
		FirstRadioContact(pPlayer);
		CreateNextEvent(Room);
		break;
	case 2:
		FindTheKey(pPlayer);
		CreateNextEvent(Room);
		break;
	case 3:
		GoToElevator(pPlayer);
		//There is no create here because this is the end of the room, the next room will deal with continuing it on
		*m_pEventPosition+=1;	//So the next event will be loaded
		*m_pRoom1Clear = true;
		break;
		//Floor 2
	case 4:
		YouFoundTheGenerator(pPlayer);
		CreateNextEvent(Room);
		break;
	case 5:
		FindGasoline(pPlayer);
		CreateNextEvent(Room);
		break;
	case 6:
		FindTools(pPlayer);
		CreateNextEvent(Room);
		break;
	case 7:
		FindKey(pPlayer);
		CreateNextEvent(Room);
		break;
	case 8:
		UnderAttack(pPlayer);
		*m_pEventPosition+=1;	//So the next event will be loaded (since the Create new isnt called)
		*m_pRoom2Clear = true;
		break;
	case 9:
		GetThroughTheDoor();
		*m_pEventPosition+=1;
		break;
		//Floor 3
	case 10:
		DarkRevelations(pPlayer);
		CreateNextEvent(Room);
		break;
	case 11:
		Choices(pPlayer);
		break;
	}
}