1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-10-17 11:59:28 +00:00

Preparations to get rid of DSQ::inputMode -- Pass device to action() methods.

This commit is contained in:
fgenesis 2017-01-14 22:53:20 +01:00
commit 9d80077754
28 changed files with 80 additions and 91 deletions

View file

@ -19,6 +19,15 @@ See the GNU General Public License for more details.
#include "Core.h"
InputDevice getDeviceForActionbutton(int k)
{
if(k <= KEY_MAXARRAY)
return INPUT_KEYBOARD;
if(k < MOUSE_BUTTON_EXTRA_END)
return INPUT_MOUSE;
return INPUT_JOYSTICK;
}
ActionMapper::ActionMapper()
{
cleared = false;
@ -167,9 +176,7 @@ void ActionMapper::onUpdate (float dt)
for (ActionDataSet::iterator i = actionData.begin(); i != actionData.end(); ++i)
{
ButtonList::iterator j;
j = i->buttonList.begin();
for (; j != i->buttonList.end(); j++)
for (ButtonList::iterator j = i->buttonList.begin(); j != i->buttonList.end(); j++)
{
const int k = (*j);
const ActionData *ad = &(*i);
@ -189,7 +196,7 @@ void ActionMapper::onUpdate (float dt)
}
else
{
action(ad->id, keyState, ad->source);
action(ad->id, keyState, ad->source, getDeviceForActionbutton(k));
}
if (core->loopDone) goto out;
}

View file

@ -23,6 +23,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "Base.h"
enum InputDevice
{
INPUT_NODEVICE = 0,
INPUT_MOUSE,
INPUT_JOYSTICK,
INPUT_KEYBOARD
};
InputDevice getDeviceForActionbutton(int k);
class Event;
class ActionMapper;
@ -57,7 +67,7 @@ public:
void addAction(int actionID, int k, int source);
bool isActing(int actionID, int source);
virtual void action(int actionID, int state, int source) = 0;
virtual void action(int actionID, int state, int source, InputDevice device) = 0;
void clearActions();

View file

@ -153,15 +153,9 @@ void ActionSet::importAction(ActionMapper *mapper, const std::string &name, int
const ActionInput *actionInput = &inputSet[i];
if (actionInput->name == name)
{
for (int i = 0; i < INP_MSESIZE; i++)
if (actionInput->mse[i])
mapper->addAction(actionID, actionInput->mse[i], sourceID);
for (int i = 0; i < INP_KEYSIZE; i++)
if (actionInput->key[i])
mapper->addAction(actionID, actionInput->key[i], sourceID);
for (int i = 0; i < INP_JOYSIZE; i++)
if (actionInput->joy[i])
mapper->addAction(actionID, actionInput->joy[i], sourceID);
for (int i = 0; i < INP_COMBINED_SIZE; i++)
if (actionInput->all[i])
mapper->addAction(actionID, actionInput->all[i], sourceID);
return;
}
}
@ -177,16 +171,9 @@ void ActionSet::importAction(ActionMapper *mapper, const std::string &name, Even
const ActionInput *actionInput = &inputSet[i];
if (actionInput->name == name)
{
for (int i = 0; i < INP_MSESIZE; i++)
if (actionInput->mse[i])
mapper->addAction(event, actionInput->mse[i], state);
for (int i = 0; i < INP_KEYSIZE; i++)
if (actionInput->key[i])
mapper->addAction(event, actionInput->key[i], state);
for (int i = 0; i < INP_JOYSIZE; i++)
if (actionInput->joy[i])
mapper->addAction(event, actionInput->joy[i], state);
for (int i = 0; i < INP_COMBINED_SIZE; i++)
if (actionInput->all[i])
mapper->addAction(event, actionInput->all[i], state);
return;
}
}

View file

@ -2,6 +2,7 @@
#include "Core.h"
#include "ActionSet.h"
ActionButtonStatus::ActionButtonStatus()
: joystickID(-1)
{

View file

@ -28,7 +28,6 @@ enum ActionButtonType
ACTION_BUTTON_ENUM_SIZE = JOY_AXIS_END_NEG
};
class ActionButtonStatus
{
public:

View file

@ -261,7 +261,7 @@ public:
void setMouseConstraint(bool on);
void setMouseConstraintCircle(const Vector& pos, float mouseCircle);
virtual void action(int id, int state, int source){}
virtual void action(int id, int state, int source, InputDevice device){}
bool exists(const std::string &file);

View file

@ -64,7 +64,7 @@ void EventPtr::call()
}
if (actionMapperCallback)
{
actionMapperCallback->action(actionValue, stateToCall, -1);
actionMapperCallback->action(actionValue, stateToCall, -1, INPUT_NODEVICE);
}
}

View file

@ -65,7 +65,7 @@ public:
void removeRenderObject(RenderObject *renderObject);
std::string name;
virtual void action(int actionID, int state, int source) {}
virtual void action(int actionID, int state, int source, InputDevice device) {}
protected:
void registerState(StateObject *sb, const std::string &name);