Added .inspect and .to_s for debug help
This commit is contained in:
@@ -390,6 +390,24 @@ static mrb_value element_text_equal(mrb_state *mrb, mrb_value self) {
|
||||
return mrb_bool_value(id_self == id_other);
|
||||
}
|
||||
|
||||
static mrb_value element_text_inspect(mrb_state *mrb, mrb_value self) {
|
||||
uint64_t id = get_id_ElementText(mrb, self);
|
||||
app::EText *element = (app::EText *)app::element_pool[id];
|
||||
std::string str = "#<ElementText:0x"
|
||||
+ std::format("0x{:016x}", id)
|
||||
+ " key=:" + Localization::get_key_name(element->key)
|
||||
+ " font_id=" + std::format("0x{:016x}", element->font_id)
|
||||
+ ">";
|
||||
return mrb_str_new_cstr(mrb, str.c_str());
|
||||
}
|
||||
|
||||
static mrb_value element_text_to_s(mrb_state *mrb, mrb_value self) {
|
||||
uint64_t id = get_id_ElementText(mrb, self);
|
||||
app::EText *element = (app::EText *)app::element_pool[id];
|
||||
std::string localized_text = Localization::get(Ruby::mrb, element->key, element->params);
|
||||
return mrb_str_new_cstr(mrb, localized_text.c_str());
|
||||
}
|
||||
|
||||
static mrb_value element_text_hash(mrb_state *mrb, mrb_value self) {
|
||||
uint64_t id = get_id_ElementText(mrb, self);
|
||||
return mrb_fixnum_value(id);
|
||||
@@ -620,10 +638,10 @@ static mrb_value ElementRect_init(mrb_state *mrb, mrb_value self) {
|
||||
mrb_data_init(self, nullptr, &ElementRect_type);
|
||||
Wrapper *s = new Wrapper();
|
||||
|
||||
mrb_int w, h;
|
||||
mrb_float w, h;
|
||||
mrb_int color_i = 0xFFFFFF;
|
||||
mrb_value kwargs;
|
||||
mrb_get_args(mrb, "iii|H", &w, &h, &color_i, &kwargs);
|
||||
mrb_get_args(mrb, "ffi|H", &w, &h, &color_i, &kwargs);
|
||||
|
||||
float x = 0, y = 0, z = 0, rotation = 0, scale_x = 1, scale_y = 1, alpha = 1;
|
||||
bool click_through = false;
|
||||
@@ -756,6 +774,17 @@ static mrb_value element_rect_equal(mrb_state *mrb, mrb_value self) {
|
||||
return mrb_bool_value(id_self == id_other);
|
||||
}
|
||||
|
||||
static mrb_value element_rect_inspect(mrb_state *mrb, mrb_value self) {
|
||||
uint64_t id = get_id_ElementRect(mrb, self);
|
||||
app::ERect *element = (app::ERect *)app::element_pool[id];
|
||||
std::string str = "#<ElementRect:0x"
|
||||
+ std::format("0x{:016x}", id)
|
||||
+ " width=" + std::format("{}", element->shape.x)
|
||||
+ " height=" + std::format("{}", element->shape.y)
|
||||
+ ">";
|
||||
return mrb_str_new_cstr(mrb, str.c_str());
|
||||
}
|
||||
|
||||
static mrb_value element_rect_hash(mrb_state *mrb, mrb_value self) {
|
||||
uint64_t id = get_id_ElementRect(mrb, self);
|
||||
return mrb_fixnum_value(id);
|
||||
@@ -975,6 +1004,17 @@ static mrb_value element_image_equal(mrb_state *mrb, mrb_value self) {
|
||||
return mrb_bool_value(id_self == id_other);
|
||||
}
|
||||
|
||||
static mrb_value element_image_inspect(mrb_state *mrb, mrb_value self) {
|
||||
uint64_t id = get_id_ElementImage(mrb, self);
|
||||
app::EImage *element = (app::EImage *)app::element_pool[id];
|
||||
std::string str = "#<ElementImage:0x"
|
||||
+ std::format("0x{:016x}", id)
|
||||
+ " animation_id=0x"
|
||||
+ std::format("{:016x}", element->animation_id)
|
||||
+ ">";
|
||||
return mrb_str_new_cstr(mrb, str.c_str());
|
||||
}
|
||||
|
||||
static mrb_value element_image_hash(mrb_state *mrb, mrb_value self) {
|
||||
uint64_t id = get_id_ElementImage(mrb, self);
|
||||
return mrb_fixnum_value(id);
|
||||
@@ -1344,6 +1384,11 @@ static mrb_value scene_equal(mrb_state *mrb, mrb_value self) {
|
||||
return mrb_bool_value(id_self == id_other);
|
||||
}
|
||||
|
||||
static mrb_value scene_inspect(mrb_state *mrb, mrb_value self) {
|
||||
uint64_t id = get_id_Scene(mrb, self);
|
||||
return mrb_str_new_cstr(mrb, ("#<Scene:" + std::to_string(id) + ">").c_str());
|
||||
}
|
||||
|
||||
static mrb_value scene_hash(mrb_state *mrb, mrb_value self) {
|
||||
uint64_t id = get_id_Scene(mrb, self);
|
||||
return mrb_fixnum_value(id);
|
||||
@@ -1517,8 +1562,10 @@ inline void setup() {
|
||||
DEF_CLASS(ElementText, MRB_ARGS_REQ(3) | MRB_ARGS_OPT(2));
|
||||
ADD_METHOD(ElementText, "==", element_text_equal, MRB_ARGS_REQ(1));
|
||||
ADD_METHOD(ElementText, "eql?", element_text_equal, MRB_ARGS_REQ(1));
|
||||
ADD_METHOD(ElementText, "inspect", element_text_inspect, MRB_ARGS_NONE());
|
||||
ADD_METHOD(ElementText, "hash", element_text_hash, MRB_ARGS_NONE());
|
||||
ADD_METHOD(ElementText, "on_click", element_text_on_click, MRB_ARGS_BLOCK());
|
||||
ADD_METHOD(ElementText, "to_s", element_text_to_s, MRB_ARGS_NONE());
|
||||
ADD_METHOD(ElementText, "key=", element_text_key_set, MRB_ARGS_REQ(1));
|
||||
ADD_METHOD(ElementText, "key", element_text_key_get, MRB_ARGS_NONE());
|
||||
ADD_METHOD(ElementText, "color=", element_text_color_set, MRB_ARGS_REQ(1));
|
||||
@@ -1545,6 +1592,8 @@ inline void setup() {
|
||||
DEF_CLASS(ElementRect, MRB_ARGS_REQ(3) | MRB_ARGS_OPT(1));
|
||||
ADD_METHOD(ElementRect, "==", element_rect_equal, MRB_ARGS_REQ(1));
|
||||
ADD_METHOD(ElementRect, "eql?", element_rect_equal, MRB_ARGS_REQ(1));
|
||||
ADD_METHOD(ElementRect, "inspect", element_rect_inspect, MRB_ARGS_NONE());
|
||||
ADD_METHOD(ElementRect, "to_s", element_rect_inspect, MRB_ARGS_NONE());
|
||||
ADD_METHOD(ElementRect, "hash", element_rect_hash, MRB_ARGS_NONE());
|
||||
ADD_METHOD(ElementRect, "on_click", element_rect_on_click, MRB_ARGS_BLOCK());
|
||||
ADD_METHOD(ElementRect, "width=", element_rect_width_set, MRB_ARGS_REQ(1));
|
||||
@@ -1570,6 +1619,8 @@ inline void setup() {
|
||||
ADD_METHOD(ElementImage, "on_click", element_image_on_click, MRB_ARGS_BLOCK());
|
||||
ADD_METHOD(ElementImage, "==", element_image_equal, MRB_ARGS_REQ(1));
|
||||
ADD_METHOD(ElementImage, "eql?", element_image_equal, MRB_ARGS_REQ(1));
|
||||
ADD_METHOD(ElementImage, "inspect", element_image_inspect, MRB_ARGS_NONE());
|
||||
ADD_METHOD(ElementImage, "to_s", element_image_inspect, MRB_ARGS_NONE());
|
||||
ADD_METHOD(ElementImage, "hash", element_image_hash, MRB_ARGS_NONE());
|
||||
ADD_METHOD(ElementImage, "animation=", element_image_animation_set, MRB_ARGS_REQ(1));
|
||||
ADD_METHOD(ElementImage, "animation", element_image_animation_get, MRB_ARGS_NONE());
|
||||
@@ -1589,6 +1640,8 @@ inline void setup() {
|
||||
DEF_CLASS(Scene, MRB_ARGS_NONE());
|
||||
ADD_METHOD(Scene, "==", scene_equal, MRB_ARGS_REQ(1));
|
||||
ADD_METHOD(Scene, "eql?", scene_equal, MRB_ARGS_REQ(1));
|
||||
ADD_METHOD(Scene, "inspect", scene_inspect, MRB_ARGS_NONE());
|
||||
ADD_METHOD(Scene, "to_s", scene_inspect, MRB_ARGS_NONE());
|
||||
ADD_METHOD(Scene, "hash", scene_hash, MRB_ARGS_NONE());
|
||||
ADD_METHOD(Scene, "<<", scene_add_element, MRB_ARGS_REQ(1));
|
||||
ADD_METHOD(Scene, "delete", scene_delete_element, MRB_ARGS_REQ(1));
|
||||
|
||||
Reference in New Issue
Block a user