1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2024-12-25 14:15:46 +00:00
Aquaria/BBGE/Strings.cpp

160 lines
4.3 KiB
C++

/*
Copyright (C) 2007, 2010 - Bit-Blot
This file is part of Aquaria.
Aquaria is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "Core.h"
typedef std::map<std::string, int> InputCodeMap;
InputCodeMap inputCodeMap;
void initInputCodeMap()
{
inputCodeMap["0"] = 0;
inputCodeMap["KEY_A"] = KEY_A;
inputCodeMap["KEY_B"] = KEY_B;
inputCodeMap["KEY_C"] = KEY_C;
inputCodeMap["KEY_D"] = KEY_D;
inputCodeMap["KEY_E"] = KEY_E;
inputCodeMap["KEY_F"] = KEY_F;
inputCodeMap["KEY_G"] = KEY_G;
inputCodeMap["KEY_H"] = KEY_H;
inputCodeMap["KEY_I"] = KEY_I;
inputCodeMap["KEY_J"] = KEY_J;
inputCodeMap["KEY_K"] = KEY_K;
inputCodeMap["KEY_L"] = KEY_L;
inputCodeMap["KEY_M"] = KEY_M;
inputCodeMap["KEY_N"] = KEY_N;
inputCodeMap["KEY_O"] = KEY_O;
inputCodeMap["KEY_P"] = KEY_P;
inputCodeMap["KEY_Q"] = KEY_Q;
inputCodeMap["KEY_R"] = KEY_R;
inputCodeMap["KEY_S"] = KEY_S;
inputCodeMap["KEY_T"] = KEY_T;
inputCodeMap["KEY_U"] = KEY_U;
inputCodeMap["KEY_V"] = KEY_V;
inputCodeMap["KEY_W"] = KEY_W;
inputCodeMap["KEY_X"] = KEY_X;
inputCodeMap["KEY_Y"] = KEY_Y;
inputCodeMap["KEY_Z"] = KEY_Z;
inputCodeMap["KEY_1"] = KEY_1;
inputCodeMap["KEY_2"] = KEY_2;
inputCodeMap["KEY_3"] = KEY_3;
inputCodeMap["KEY_4"] = KEY_4;
inputCodeMap["KEY_5"] = KEY_5;
inputCodeMap["KEY_6"] = KEY_6;
inputCodeMap["KEY_7"] = KEY_7;
inputCodeMap["KEY_8"] = KEY_8;
inputCodeMap["KEY_9"] = KEY_9;
inputCodeMap["KEY_0"] = KEY_0;
inputCodeMap["KEY_F1"] = KEY_F1;
inputCodeMap["KEY_F2"] = KEY_F2;
inputCodeMap["KEY_F3"] = KEY_F3;
inputCodeMap["KEY_F4"] = KEY_F4;
inputCodeMap["KEY_F5"] = KEY_F5;
inputCodeMap["KEY_F6"] = KEY_F6;
inputCodeMap["KEY_F7"] = KEY_F7;
inputCodeMap["KEY_F8"] = KEY_F8;
inputCodeMap["KEY_F9"] = KEY_F9;
inputCodeMap["KEY_F10"] = KEY_F10;
inputCodeMap["KEY_F11"] = KEY_F11;
inputCodeMap["KEY_F12"] = KEY_F12;
inputCodeMap["KEY_LEFT"] = KEY_LEFT;
inputCodeMap["KEY_RIGHT"] = KEY_RIGHT;
inputCodeMap["KEY_UP"] = KEY_UP;
inputCodeMap["KEY_DOWN"] = KEY_DOWN;
inputCodeMap["KEY_SPACE"] = KEY_SPACE;
inputCodeMap["KEY_LCONTROL"] = KEY_LCONTROL;
inputCodeMap["KEY_RCONTROL"] = KEY_RCONTROL;
inputCodeMap["KEY_LSHIFT"] = KEY_LSHIFT;
inputCodeMap["KEY_RSHIFT"] = KEY_RSHIFT;
inputCodeMap["KEY_LMETA"] = KEY_LMETA;
inputCodeMap["KEY_RMETA"] = KEY_RMETA;
inputCodeMap["KEY_LALT"] = KEY_LALT;
inputCodeMap["KEY_RALT"] = KEY_RALT;
inputCodeMap["KEY_RETURN"] = KEY_RETURN;
inputCodeMap["KEY_TAB"] = KEY_TAB;
inputCodeMap["KEY_ESCAPE"] = KEY_ESCAPE;
inputCodeMap["MOUSE_BUTTON_LEFT"] = ActionMapper::MOUSE_BUTTON_LEFT;
inputCodeMap["MOUSE_BUTTON_RIGHT"] = ActionMapper::MOUSE_BUTTON_RIGHT;
inputCodeMap["MOUSE_BUTTON_MIDDLE"] = ActionMapper::MOUSE_BUTTON_MIDDLE;
for (int i = 0; i < 17; i++)
{
std::ostringstream os;
os << "JOY_BUTTON_" << i;
inputCodeMap[os.str()] = ActionMapper::JOY1_BUTTON_0+i;
}
}
void clearInputCodeMap()
{
inputCodeMap.clear();
}
std::string getInputCodeToString(int key)
{
for (InputCodeMap::iterator i = inputCodeMap.begin(); i != inputCodeMap.end(); i++)
{
if ((*i).second == key)
{
return (*i).first;
}
}
return "";
}
std::string getInputCodeToUserString(int key)
{
for (InputCodeMap::iterator i = inputCodeMap.begin(); i != inputCodeMap.end(); i++)
{
if ((*i).second == key)
{
std::string use = (*i).first;
int idx = 0;
idx = use.find("KEY_");
if (idx != std::string::npos)
{
use = use.substr(4, use.size());
}
if (use == "MOUSE_BUTTON_LEFT")
use = "Left Mouse Button";
if (use == "MOUSE_BUTTON_RIGHT")
use = "Right Mouse Button";
if (use == "MOUSE_BUTTON_MIDDLE")
use = "Middle Mouse Button";
return use;
//return (*i).first;
}
}
return "";
}
int getStringToInputCode(const std::string &string)
{
return inputCodeMap[string];
}