I want to move keyboard input defs to the Python API. I laid the groundwork for it today. From the JANKFILE: - working on API endpoint `_registerInputAction`. it will add "_py" as a suffix to the action string and register it along with other scene actions. - Adding public Scene methods. These are on the base class with default of return `false`. `bool Scene::registerActionInjected(int code, std::string name)` and `unregisterActionInjected` the PythonScene (and other scenes that support injected user input) can override this method, check existing registrations, and return `true` when succeeding. Also, upgraded to C++20 (g++ `c++2a`), mostly because I want to use map::contains.
35 lines
No EOL
768 B
C++
35 lines
No EOL
768 B
C++
#include "Scene.h"
|
|
|
|
//Scene::Scene() { game = 0; std::cout << "WARN: default Scene constructor called. (game = " << game << ")" << std::endl;};
|
|
Scene::Scene(GameEngine* g) { game = g; }
|
|
void Scene::registerAction(int code, std::string name)
|
|
{
|
|
actions[code] = name;
|
|
actionState[name] = false;
|
|
}
|
|
bool Scene::hasAction(std::string name)
|
|
{
|
|
for (auto& item : actions)
|
|
if (item.second == name) return true;
|
|
return false;
|
|
}
|
|
|
|
bool Scene::hasAction(int code)
|
|
{
|
|
return (actions.find(code) != actions.end());
|
|
}
|
|
|
|
std::string Scene::action(int code)
|
|
{
|
|
return actions[code];
|
|
}
|
|
|
|
bool Scene::registerActionInjected(int code, std::string name)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
bool Scene::unregisterActionInjected(int code, std::string name)
|
|
{
|
|
return false;
|
|
} |