aboutsummaryrefslogtreecommitdiff
path: root/games/minimal/mods/default/textures/default_iron_lump.png
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2012-05-31 20:22:37 +0300
committerPerttu Ahola <celeron55@gmail.com>2012-05-31 20:22:37 +0300
commit74aa598769b7d6b34af8a3c022ff9b3b79a293eb (patch)
tree2b2a66ca0274b6711951be6692c7e06d1377038f /games/minimal/mods/default/textures/default_iron_lump.png
parent747ff7daf875652be1063fa49316125977b0ba79 (diff)
downloadminetest-74aa598769b7d6b34af8a3c022ff9b3b79a293eb.tar.gz
minetest-74aa598769b7d6b34af8a3c022ff9b3b79a293eb.tar.bz2
minetest-74aa598769b7d6b34af8a3c022ff9b3b79a293eb.zip
Fix MSVC build (pow type overload stuff)
Diffstat (limited to 'games/minimal/mods/default/textures/default_iron_lump.png')
0 files changed, 0 insertions, 0 deletions
ss="hl opt">, void *data) { MtEventReceiver *r = (MtEventReceiver *)data; r->onEvent(e); } struct FuncSpec { event_receive_func f; void *d; FuncSpec(event_receive_func f, void *d) : f(f), d(d) {} }; struct Dest { std::list<FuncSpec> funcs{}; }; std::map<MtEvent::Type, Dest> m_dest{}; public: ~EventManager() override = default; void put(MtEvent *e) override { std::map<MtEvent::Type, Dest>::iterator i = m_dest.find(e->getType()); if (i != m_dest.end()) { std::list<FuncSpec> &funcs = i->second.funcs; for (FuncSpec &func : funcs) { (*(func.f))(e, func.d); } } delete e; } void reg(MtEvent::Type type, event_receive_func f, void *data) override { std::map<MtEvent::Type, Dest>::iterator i = m_dest.find(type); if (i != m_dest.end()) { i->second.funcs.emplace_back(f, data); } else { Dest dest; dest.funcs.emplace_back(f, data); m_dest[type] = dest; } } void dereg(MtEvent::Type type, event_receive_func f, void *data) override { std::map<MtEvent::Type, Dest>::iterator i = m_dest.find(type); if (i != m_dest.end()) { std::list<FuncSpec> &funcs = i->second.funcs; auto j = funcs.begin(); while (j != funcs.end()) { bool remove = (j->f == f && (!data || j->d == data)); if (remove) funcs.erase(j++); else ++j; } } } };