Guest User

ARES Irrlicht Keys Binding

a guest
Jun 30th, 2010
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.26 KB | None | 0 0
  1. /*************************************************
  2.            Pathogen Studios ARES Game Engine
  3.             Copyright 2010 by Pathogen Studios
  4.               http://www.pathogenstudios.com/
  5. **************************************************
  6. ARES_ScriptModule_Irrlicht.cpp
  7. Binds Irrlicht Stuff to the Scripting System.
  8. *************************************************/
  9.  
  10. #include "ARES_Engine.h"
  11. #include "ScriptModules/ARES_ScriptModule_Irrlicht.h"
  12. #include <angelscript.h>
  13.  
  14. #define _BIND_KEY(key) as->RegisterEnumValue("EKEY_CODE",#key,irr:: ## key)
  15.  
  16. namespace ARES
  17. {
  18.  namespace ScriptModules
  19.  {
  20.   IrrlichtKeys::IrrlichtKeys(ScriptManager* manager) : ScriptModule(manager) {name="IrrlichtKeys";}
  21.  
  22.   void IrrlichtKeys::unbind() {}
  23.  
  24.   bool IrrlichtKeys::bind()
  25.   {
  26.    manager->getEngine()->log("Binding IrrlichtKeys...");
  27.    asIScriptEngine* as = manager->getScriptEngine();
  28.    int result=0;
  29.    
  30.    if (as->RegisterEnum("EKEY_CODE")<0)
  31.    {manager->getEngine()->error("Could not bind EKEY_CODE");return 0;}
  32.    else
  33.    {
  34.     /*I generated this list using this regex:
  35.     FIND: \s+(KEY_.+?)\s+= 0x[a-zA-Z0-9]+,?\s+//.*
  36.     REPLACE: _BIND_KEY($1);\n*/
  37.     result =
  38.     _BIND_KEY(KEY_LBUTTON)+
  39.     _BIND_KEY(KEY_RBUTTON)+
  40.     _BIND_KEY(KEY_CANCEL)+
  41.     _BIND_KEY(KEY_MBUTTON)+
  42.     _BIND_KEY(KEY_XBUTTON1)+
  43.     _BIND_KEY(KEY_XBUTTON2)+
  44.     _BIND_KEY(KEY_BACK)+
  45.     _BIND_KEY(KEY_TAB)+
  46.     _BIND_KEY(KEY_CLEAR)+
  47.     _BIND_KEY(KEY_RETURN)+
  48.     _BIND_KEY(KEY_SHIFT)+
  49.     _BIND_KEY(KEY_CONTROL)+
  50.     _BIND_KEY(KEY_MENU)+
  51.     _BIND_KEY(KEY_PAUSE)+
  52.     _BIND_KEY(KEY_CAPITAL)+
  53.     _BIND_KEY(KEY_KANA)+
  54.     _BIND_KEY(KEY_HANGUEL)+
  55.     _BIND_KEY(KEY_HANGUL)+
  56.     _BIND_KEY(KEY_JUNJA)+
  57.     _BIND_KEY(KEY_FINAL)+
  58.     _BIND_KEY(KEY_HANJA)+
  59.     _BIND_KEY(KEY_KANJI)+
  60.     _BIND_KEY(KEY_ESCAPE)+
  61.     _BIND_KEY(KEY_CONVERT)+
  62.     _BIND_KEY(KEY_NONCONVERT)+
  63.     _BIND_KEY(KEY_ACCEPT)+
  64.     _BIND_KEY(KEY_MODECHANGE)+
  65.     _BIND_KEY(KEY_SPACE)+
  66.     _BIND_KEY(KEY_PRIOR)+
  67.     _BIND_KEY(KEY_NEXT)+
  68.     _BIND_KEY(KEY_END)+
  69.     _BIND_KEY(KEY_HOME)+
  70.     _BIND_KEY(KEY_LEFT)+
  71.     _BIND_KEY(KEY_UP)+
  72.     _BIND_KEY(KEY_RIGHT)+
  73.     _BIND_KEY(KEY_DOWN)+
  74.     _BIND_KEY(KEY_SELECT)+
  75.     _BIND_KEY(KEY_PRINT)+
  76.     _BIND_KEY(KEY_EXECUT)+
  77.     _BIND_KEY(KEY_SNAPSHOT)+
  78.     _BIND_KEY(KEY_INSERT)+
  79.     _BIND_KEY(KEY_DELETE)+
  80.     _BIND_KEY(KEY_HELP)+
  81.     _BIND_KEY(KEY_KEY_0)+
  82.     _BIND_KEY(KEY_KEY_1)+
  83.     _BIND_KEY(KEY_KEY_2)+
  84.     _BIND_KEY(KEY_KEY_3)+
  85.     _BIND_KEY(KEY_KEY_4)+
  86.     _BIND_KEY(KEY_KEY_5)+
  87.     _BIND_KEY(KEY_KEY_6)+
  88.     _BIND_KEY(KEY_KEY_7)+
  89.     _BIND_KEY(KEY_KEY_8)+
  90.     _BIND_KEY(KEY_KEY_9)+
  91.     _BIND_KEY(KEY_KEY_A)+
  92.     _BIND_KEY(KEY_KEY_B)+
  93.     _BIND_KEY(KEY_KEY_C)+
  94.     _BIND_KEY(KEY_KEY_D)+
  95.     _BIND_KEY(KEY_KEY_E)+
  96.     _BIND_KEY(KEY_KEY_F)+
  97.     _BIND_KEY(KEY_KEY_G)+
  98.     _BIND_KEY(KEY_KEY_H)+
  99.     _BIND_KEY(KEY_KEY_I)+
  100.     _BIND_KEY(KEY_KEY_J)+
  101.     _BIND_KEY(KEY_KEY_K)+
  102.     _BIND_KEY(KEY_KEY_L)+
  103.     _BIND_KEY(KEY_KEY_M)+
  104.     _BIND_KEY(KEY_KEY_N)+
  105.     _BIND_KEY(KEY_KEY_O)+
  106.     _BIND_KEY(KEY_KEY_P)+
  107.     _BIND_KEY(KEY_KEY_Q)+
  108.     _BIND_KEY(KEY_KEY_R)+
  109.     _BIND_KEY(KEY_KEY_S)+
  110.     _BIND_KEY(KEY_KEY_T)+
  111.     _BIND_KEY(KEY_KEY_U)+
  112.     _BIND_KEY(KEY_KEY_V)+
  113.     _BIND_KEY(KEY_KEY_W)+
  114.     _BIND_KEY(KEY_KEY_X)+
  115.     _BIND_KEY(KEY_KEY_Y)+
  116.     _BIND_KEY(KEY_KEY_Z)+
  117.     _BIND_KEY(KEY_LWIN)+
  118.     _BIND_KEY(KEY_RWIN)+
  119.     _BIND_KEY(KEY_APPS)+
  120.     _BIND_KEY(KEY_SLEEP)+
  121.     _BIND_KEY(KEY_NUMPAD0)+
  122.     _BIND_KEY(KEY_NUMPAD1)+
  123.     _BIND_KEY(KEY_NUMPAD2)+
  124.     _BIND_KEY(KEY_NUMPAD3)+
  125.     _BIND_KEY(KEY_NUMPAD4)+
  126.     _BIND_KEY(KEY_NUMPAD5)+
  127.     _BIND_KEY(KEY_NUMPAD6)+
  128.     _BIND_KEY(KEY_NUMPAD7)+
  129.     _BIND_KEY(KEY_NUMPAD8)+
  130.     _BIND_KEY(KEY_NUMPAD9)+
  131.     _BIND_KEY(KEY_MULTIPLY)+
  132.     _BIND_KEY(KEY_ADD)+
  133.     _BIND_KEY(KEY_SEPARATOR)+
  134.     _BIND_KEY(KEY_SUBTRACT)+
  135.     _BIND_KEY(KEY_DECIMAL)+
  136.     _BIND_KEY(KEY_DIVIDE)+
  137.     _BIND_KEY(KEY_F1)+
  138.     _BIND_KEY(KEY_F2)+
  139.     _BIND_KEY(KEY_F3)+
  140.     _BIND_KEY(KEY_F4)+
  141.     _BIND_KEY(KEY_F5)+
  142.     _BIND_KEY(KEY_F6)+
  143.     _BIND_KEY(KEY_F7)+
  144.     _BIND_KEY(KEY_F8)+
  145.     _BIND_KEY(KEY_F9)+
  146.     _BIND_KEY(KEY_F10)+
  147.     _BIND_KEY(KEY_F11)+
  148.     _BIND_KEY(KEY_F12)+
  149.     _BIND_KEY(KEY_F13)+
  150.     _BIND_KEY(KEY_F14)+
  151.     _BIND_KEY(KEY_F15)+
  152.     _BIND_KEY(KEY_F16)+
  153.     _BIND_KEY(KEY_F17)+
  154.     _BIND_KEY(KEY_F18)+
  155.     _BIND_KEY(KEY_F19)+
  156.     _BIND_KEY(KEY_F20)+
  157.     _BIND_KEY(KEY_F21)+
  158.     _BIND_KEY(KEY_F22)+
  159.     _BIND_KEY(KEY_F23)+
  160.     _BIND_KEY(KEY_F24)+
  161.     _BIND_KEY(KEY_NUMLOCK)+
  162.     _BIND_KEY(KEY_SCROLL)+
  163.     _BIND_KEY(KEY_LSHIFT)+
  164.     _BIND_KEY(KEY_RSHIFT)+
  165.     _BIND_KEY(KEY_LCONTROL)+
  166.     _BIND_KEY(KEY_RCONTROL)+
  167.     _BIND_KEY(KEY_LMENU)+
  168.     _BIND_KEY(KEY_RMENU)+
  169.     _BIND_KEY(KEY_PLUS)+
  170.     _BIND_KEY(KEY_COMMA)+
  171.     _BIND_KEY(KEY_MINUS)+
  172.     _BIND_KEY(KEY_PERIOD)+
  173.     _BIND_KEY(KEY_TILDE)+
  174.     _BIND_KEY(KEY_OPENBRACKET)+
  175.     _BIND_KEY(KEY_BACKSLASH)+
  176.     _BIND_KEY(KEY_CLOSEBRACKET)+
  177.     _BIND_KEY(KEY_ATTN)+
  178.     _BIND_KEY(KEY_CRSEL)+
  179.     _BIND_KEY(KEY_EXSEL)+
  180.     _BIND_KEY(KEY_EREOF)+
  181.     _BIND_KEY(KEY_PLAY)+
  182.     _BIND_KEY(KEY_ZOOM)+
  183.     _BIND_KEY(KEY_PA1)+
  184.     _BIND_KEY(KEY_OEM_CLEAR);
  185.    }
  186.    
  187.    if (result<0)
  188.    {manager->getEngine()->log("Issues occured when brinding the values.");return 0;}
  189.    else
  190.    {manager->getEngine()->log("Done binding.");return 1;}
  191.   }
  192.  }
  193. }
Advertisement
Add Comment
Please, Sign In to add comment