Add scripting functions to know current race gui type

This commit is contained in:
Benau 2019-10-28 01:51:16 +08:00
parent 1904e37ff1
commit 8cd095bf34
2 changed files with 33 additions and 3 deletions

@ -450,8 +450,8 @@ namespace Scripting
Scripting::Kart::registerScriptEnums(m_engine);
Scripting::Physics::registerScriptFunctions(m_engine);
Scripting::Utils::registerScriptFunctions(m_engine);
Scripting::GUI::registerScriptFunctions(m_engine);
Scripting::GUI::registerScriptEnums(m_engine);
Scripting::GUI::registerScriptFunctions(m_engine);
Scripting::Audio::registerScriptFunctions(m_engine);
// It is possible to register the functions, properties, and types in

@ -18,7 +18,7 @@
#include "script_track.hpp"
#include "animations/three_d_animation.hpp"
#include "config/user_config.hpp"
#include "input/device_manager.hpp"
#include "input/input_device.hpp"
#include "input/input_manager.hpp"
@ -44,6 +44,13 @@ namespace Scripting
namespace GUI
{
enum RaceGUIType
{
RGT_KEYBOARD_GAMEPAD = 0,
RGT_STEERING_WHEEL = 1,
RGT_ACCELEROMETER = 2,
RGT_GYROSCOPE = 3,
};
/** \addtogroup Scripting
* @{
*/
@ -161,6 +168,20 @@ namespace Scripting
{
return translate(formatString, arg1, arg2, arg3);
}
RaceGUIType getRaceGUIType()
{
if (UserConfigParams::m_multitouch_draw_gui)
{
if (UserConfigParams::m_multitouch_controls == 1)
return RGT_STEERING_WHEEL;
else if (UserConfigParams::m_multitouch_controls == 2)
return RGT_ACCELEROMETER;
else if (UserConfigParams::m_multitouch_controls == 3)
return RGT_GYROSCOPE;
}
return RGT_KEYBOARD_GAMEPAD;
}
/** \endcond */
void registerScriptFunctions(asIScriptEngine *engine)
@ -182,7 +203,11 @@ namespace Scripting
r = engine->RegisterGlobalFunction("void clearOverlayMessages()",
mp ? WRAP_FN(clearOverlayMessages) : asFUNCTION(clearOverlayMessages),
call_conv); assert(r >= 0);
r = engine->RegisterGlobalFunction("RaceGUIType getRaceGUIType()",
mp ? WRAP_FN(getRaceGUIType) : asFUNCTION(getRaceGUIType),
call_conv); assert(r >= 0);
r = engine->RegisterGlobalFunction("string getKeyBinding(int input)",
mp ? WRAP_FN(getKeyBinding) : asFUNCTION(getKeyBinding),
call_conv); assert(r >= 0);
@ -229,6 +254,11 @@ namespace Scripting
engine->RegisterEnumValue("PlayerAction", "MENU_RIGHT", PA_MENU_RIGHT);
engine->RegisterEnumValue("PlayerAction", "MENU_SELECT", PA_MENU_SELECT);
engine->RegisterEnumValue("PlayerAction", "MENU_CANCEL", PA_MENU_CANCEL);
engine->RegisterEnum("RaceGUIType");
engine->RegisterEnumValue("RaceGUIType", "KEYBOARD_GAMEPAD", RGT_KEYBOARD_GAMEPAD);
engine->RegisterEnumValue("RaceGUIType", "STEERING_WHEEL", RGT_STEERING_WHEEL);
engine->RegisterEnumValue("RaceGUIType", "ACCELEROMETER", RGT_ACCELEROMETER);
engine->RegisterEnumValue("RaceGUIType", "GYROSCOPE", RGT_GYROSCOPE);
}
}