Exemplo n.º 1
0
bool GlobalDictionaryWord::operator<( const GlobalDictionaryWord& rhs ) const
{
    int value( wstricmp( text.c_str(), rhs.text.c_str() ) );
    if( value == 0 )
        value = std::wcscmp(  text.c_str(), rhs.text.c_str() );
    return value < 0;
}
Exemplo n.º 2
0
	// ----------------------------------------------------------------------
	BaseObject* CObjectManager::CreateObject(const wchar* objectName)
	{
		EngineObjectReg* optr=g_first_obj;
		while(optr)
		{
			if ( !wstricmp(objectName, optr->ObjName) )
			{
				optr->InstNum++;
				CON(MSG_INFO, _W("ObjectManager: Creating %s object (%d)."), objectName, optr->InstNum );
				return (BaseObject*)optr->CreateFn();
			}
			optr = optr->Next;
		}
		CON(MSG_ERR, _W("ObjectManager: Failed to create %s object! Object not found."), objectName );
		return NULL;
	}
Exemplo n.º 3
0
	CSoundBuffer* CSoundManager::CreateBuffer(const wchar* name)
	{
		int arrSize = m_buffers.size();

		for(int i = 0; i < arrSize; i++)
		{
			if(!wstricmp(m_buffers[i]->GetFilename(), name))
			{
				m_buffers[i]->AddReference();
				return m_buffers[i];
			}
		}

		COggLoader loader(name);
		const sOggInfo* info = loader.GetInfo();
		unsigned int size = 0;
		const void* data = loader.GetData(size);

		if(data == 0)
			return NULL;
		
		eSoundFormat fmt;
		bool stereo = false;

		switch(info->numChannels)
		{
		case 1:
			stereo = false;
			break;
		case 2:
			stereo = true;
			break;
		default:
			return 0;
		}

		switch(info->bitsPerSample)
		{
		case 8:
			fmt = stereo ? SOUNDFORMAT_STEREO8 : SOUNDFORMAT_MONO8;
			break;
		case 16:
			fmt = stereo ? SOUNDFORMAT_STEREO16 : SOUNDFORMAT_MONO16;
			break;
		default:
			return 0;
		}

		CSoundBuffer *buffer = new CSoundBuffer();
		if(!buffer)
			return NULL;

		if(!buffer->Create(fmt, info->freq, (void*)data, size))
		{
			delete buffer;
			return NULL;
		}

		buffer->AddReference();
		buffer->SetFilename(name);
		m_buffers.push_back(buffer);

		return buffer;
	}