// close down flak stuff void flak_level_close() { // zero out the ani (bitmap manager will take care of releasing it I think) //WMC - Check to make sure if (Flak_muzzle_flash_ani != -1) { if (bm_is_valid(Flak_muzzle_flash_ani)) bm_unload(Flak_muzzle_flash_ani); else Flak_muzzle_flash_ani = -1; } }
SingleParticleEffect* SingleParticleEffect::createInstance(int effectID, float minSize, float maxSize, float lifetime) { Assertion(bm_is_valid(effectID), "Invalid effect id %d passed!", effectID); Assertion(minSize <= maxSize, "Maximum size %f is more than minimum size %f!", maxSize, minSize); Assertion(minSize >= 0.0f, "Minimum size may not be less than zero, got %f!", minSize); auto effectPtr = new SingleParticleEffect(""); effectPtr->m_particleProperties.m_bitmap = effectID; effectPtr->m_particleProperties.m_radius = ::util::UniformFloatRange(minSize, maxSize); if (lifetime > 0.0f) { effectPtr->m_particleProperties.m_hasLifetime = true; effectPtr->m_particleProperties.m_lifetime = ::util::UniformFloatRange(lifetime); } return effectPtr; }
Cursor* CursorManager::loadFromBitmap(int bitmapHandle) { Assertion(bm_is_valid(bitmapHandle), "%d is no valid bitmap handle!", bitmapHandle); int nframes; int fps; bm_get_info(bitmapHandle, nullptr, nullptr, nullptr, &nframes, &fps); std::unique_ptr<Cursor> cursor(new Cursor(bitmapHandle)); for (int i = 0; i < nframes; ++i) { cursor->addFrame(bitmapToCursor(bitmapHandle + i)); } mLoadedCursors.push_back(std::move(cursor)); return mLoadedCursors.back().get(); }