void MemorizedRunesHud::draw() { if(!(CurrSpellSymbol || player.SpellToMemorize.bSpell)) { return; } Vec2f pos = m_rect.topLeft(); for(int i = 0; i < 6; i++) { bool bHalo = false; if(SpellSymbol[i] != RUNE_NONE) { if(SpellSymbol[i] == player.SpellToMemorize.iSpellSymbols[i]) { bHalo = true; } else { player.SpellToMemorize.iSpellSymbols[i] = SpellSymbol[i]; for(int j = i + 1; j < 6; j++) { player.SpellToMemorize.iSpellSymbols[j] = RUNE_NONE; } } } if(player.SpellToMemorize.iSpellSymbols[i] != RUNE_NONE) { Vec2f size = Vec2f(32.f, 32.f) * m_scale; Rectf rect = Rectf(pos, size.x, size.y); TextureContainer * tc = gui::necklace.pTexTab[player.SpellToMemorize.iSpellSymbols[i]]; if(bHalo) { ARX_INTERFACE_HALO_Render(Color3f(0.2f, 0.4f, 0.8f), HALO_ACTIVE, tc->getHalo(), pos, Vec2f(m_scale)); } EERIEDrawBitmap(rect, 0, tc, Color::white); if(!player.hasRune(player.SpellToMemorize.iSpellSymbols[i])) { UseRenderState state(render2D().blend(BlendInvDstColor, BlendOne).alphaCutout()); EERIEDrawBitmap(rect, 0, cursorMovable, Color3f::gray(.8f).to<u8>()); } pos.x += 32 * m_scale; } } if(g_gameTime.now() - player.SpellToMemorize.lTimeCreation > GameDurationMs(30000)) { player.SpellToMemorize.bSpell = false; } }