Compare commits
No commits in common. "6c5992f1c13abe4a01fbac44d74acf5262a03c26" and "39a12028a02864cd06742a4052f306779c086794" have entirely different histories.
6c5992f1c1
...
39a12028a0
3 changed files with 5 additions and 46 deletions
|
|
@ -1 +1 @@
|
||||||
Subproject commit d7f2e15e5227bb60a856e2ecb95a2e79f57b2df9
|
Subproject commit 3b4b65dc9aae7d21a98d3578e3e9433728b118bb
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
#include "McRFPy_API.h"
|
#include "McRFPy_API.h"
|
||||||
#include "GameEngine.h"
|
#include "GameEngine.h"
|
||||||
#include "PyVector.h"
|
#include "PyVector.h"
|
||||||
#include "PyMouseButton.h"
|
|
||||||
#include "PyInputState.h"
|
|
||||||
|
|
||||||
PyCallable::PyCallable(PyObject* _target)
|
PyCallable::PyCallable(PyObject* _target)
|
||||||
{
|
{
|
||||||
|
|
@ -68,45 +66,9 @@ void PyClickCallable::call(sf::Vector2f mousepos, std::string button, std::strin
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
PyObject* args = Py_BuildValue("(Oss)", pos, button.c_str(), action.c_str());
|
||||||
// Convert button string to MouseButton enum (#222)
|
Py_DECREF(pos); // Py_BuildValue increments the refcount
|
||||||
int button_val = 0; // Default to LEFT
|
|
||||||
if (button == "left") button_val = 0;
|
|
||||||
else if (button == "right") button_val = 1;
|
|
||||||
else if (button == "middle") button_val = 2;
|
|
||||||
else if (button == "x1") button_val = 3;
|
|
||||||
else if (button == "x2") button_val = 4;
|
|
||||||
|
|
||||||
PyObject* button_enum = nullptr;
|
|
||||||
if (PyMouseButton::mouse_button_enum_class) {
|
|
||||||
button_enum = PyObject_CallFunction(PyMouseButton::mouse_button_enum_class, "i", button_val);
|
|
||||||
}
|
|
||||||
if (!button_enum) {
|
|
||||||
// Fallback to string if enum creation fails
|
|
||||||
PyErr_Clear();
|
|
||||||
button_enum = PyUnicode_FromString(button.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Convert action string to InputState enum (#222)
|
|
||||||
int action_val = (action == "start") ? 0 : 1; // PRESSED=0, RELEASED=1
|
|
||||||
|
|
||||||
PyObject* action_enum = nullptr;
|
|
||||||
if (PyInputState::input_state_enum_class) {
|
|
||||||
action_enum = PyObject_CallFunction(PyInputState::input_state_enum_class, "i", action_val);
|
|
||||||
}
|
|
||||||
if (!action_enum) {
|
|
||||||
// Fallback to string if enum creation fails
|
|
||||||
PyErr_Clear();
|
|
||||||
action_enum = PyUnicode_FromString(action.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
PyObject* args = Py_BuildValue("(OOO)", pos, button_enum, action_enum);
|
|
||||||
Py_DECREF(pos);
|
|
||||||
Py_DECREF(button_enum);
|
|
||||||
Py_DECREF(action_enum);
|
|
||||||
|
|
||||||
PyObject* retval = PyCallable::call(args, NULL);
|
PyObject* retval = PyCallable::call(args, NULL);
|
||||||
Py_DECREF(args);
|
|
||||||
if (!retval)
|
if (!retval)
|
||||||
{
|
{
|
||||||
std::cerr << "Click callback raised an exception:" << std::endl;
|
std::cerr << "Click callback raised an exception:" << std::endl;
|
||||||
|
|
@ -121,9 +83,6 @@ void PyClickCallable::call(sf::Vector2f mousepos, std::string button, std::strin
|
||||||
{
|
{
|
||||||
std::cout << "ClickCallable returned a non-None value. It's not an error, it's just not being saved or used." << std::endl;
|
std::cout << "ClickCallable returned a non-None value. It's not an error, it's just not being saved or used." << std::endl;
|
||||||
std::cout << PyUnicode_AsUTF8(PyObject_Repr(retval)) << std::endl;
|
std::cout << PyUnicode_AsUTF8(PyObject_Repr(retval)) << std::endl;
|
||||||
Py_DECREF(retval);
|
|
||||||
} else {
|
|
||||||
Py_DECREF(retval);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1915,7 +1915,7 @@ PyObject* PyHeightMap::sparse_kernel_from(PyHeightMapObject* self, PyObject* arg
|
||||||
if (kernel_size < 0) return nullptr;
|
if (kernel_size < 0) return nullptr;
|
||||||
|
|
||||||
// Apply the kernel transform
|
// Apply the kernel transform
|
||||||
TCOD_heightmap_kernel_transform_out(source->heightmap, self->heightmap,
|
TCOD_heightmap_kernel_transform_hm(source->heightmap, self->heightmap,
|
||||||
static_cast<int>(kernel_size),
|
static_cast<int>(kernel_size),
|
||||||
dx.data(), dy.data(), weight.data(),
|
dx.data(), dy.data(), weight.data(),
|
||||||
min_level, max_level);
|
min_level, max_level);
|
||||||
|
|
@ -1956,7 +1956,7 @@ PyObject* PyHeightMap::sparse_kernel(PyHeightMapObject* self, PyObject* args, Py
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply the kernel transform
|
// Apply the kernel transform
|
||||||
TCOD_heightmap_kernel_transform_out(self->heightmap, result->heightmap,
|
TCOD_heightmap_kernel_transform_hm(self->heightmap, result->heightmap,
|
||||||
static_cast<int>(kernel_size),
|
static_cast<int>(kernel_size),
|
||||||
dx.data(), dy.data(), weight.data(),
|
dx.data(), dy.data(), weight.data(),
|
||||||
min_level, max_level);
|
min_level, max_level);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue