#include"AbstractAppState.h" #include"DefConfigs.h" #include"util.h" #include #include #include #include #include using namespace irr::core; using namespace game::util; using namespace game::core; using namespace std; namespace game{ namespace core{ void AbstractAppState::onAttachment() { const int stateId=(int)type,numBinds=core::numBinds[stateId]; int firstLine=0,lastLine; for(int i=0;i lines=readFile(PATH_STR+"../options.cfg",firstLine,lastLine); for(int i=0;i>std::hex>>trigger; } Bind bind=binds[stateId][i]; bool isKey=stateId>0?trigger>4:core::triggers[stateId][i],isAnalog=core::isAnalog[stateId][i]; attachedKeys.push_back(new Key(bind,trigger,isKey,isAnalog)); } attached = true; } void AbstractAppState::onDetachment() { attached = false; } void AbstractAppState::detachKey(Key *key) { for (int i = 0; i < attachedKeys.size(); i++) if (key == attachedKeys[i]) { delete key; attachedKeys.erase(attachedKeys.begin() + i); } } void AbstractAppState::detachAllKeys() { while (attachedKeys.size() > 0) { delete attachedKeys[attachedKeys.size() - 1]; attachedKeys.pop_back(); } } } }