123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #include "client/engine/MouseManager.h"
- MouseManager::MouseManager()
- {
- for(int i = 0; i < NUMBER_OF_BUTTONS; i++)
- {
- mappingArray[i] = 0;
- }
- }
- bool MouseManager::isDown(int mapping)
- {
- return isInRange(mapping) && mouseArray[mappingArray[mapping]].down;
- }
- bool MouseManager::isReleased(int mapping)
- {
- return isInRange(mapping) && mouseArray[mappingArray[mapping]].shouldRelease;
- }
- unsigned int MouseManager::getDownTime(int mapping)
- {
- bool m = isInRange(mapping);
- return m * mouseArray[mappingArray[mapping * m]].downTime;
- }
- void MouseManager::resetDownTime(int mapping)
- {
- mouseArray[mappingArray[mapping * isInRange(mapping)]].downTime = 0;
- }
- bool MouseManager::map(int mapping, int mouse)
- {
- bool b = isInRange(mapping) && isInRange(mouse);
- mappingArray[mapping * b] = b * mouse;
- return b;
- }
- bool MouseManager::isInRange(int i)
- {
- return i >= 0 && i < NUMBER_OF_BUTTONS;
- }
- void MouseManager::tick()
- {
- for(int i = 0; i < NUMBER_OF_BUTTONS; i++)
- {
- mouseArray[i].downTime += mouseArray[i].down;
-
- mouseArray[i].down = mouseArray[i].down && !mouseArray[i].shouldRelease;
- mouseArray[i].downTime *= !mouseArray[i].shouldRelease;
- mouseArray[i].shouldRelease = false;
- }
- }
- void MouseManager::press(int mouse)
- {
- int index = isInRange(mouse) * mouse;
- mouseArray[index].down = true;
- mouseArray[index].shouldRelease = false;
- }
- void MouseManager::release(int mouse)
- {
- int index = isInRange(mouse) * mouse;
- mouseArray[index].shouldRelease = true;
- }
|