X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fguile-irrlicht.cpp;h=7ea6f7ac7ea3ec7bbdac787cdf6f4640af1f303e;hb=a7852a8af5c3dc6a58da64a908c4f00fcbe584d1;hp=4531715adcd5a385d4ce75ea85d9a59dfe3bc2ae;hpb=8876c6e31fddf00f9764d9fe73930d8dc8fc6c4a;p=guile-irrlicht.git diff --git a/src/guile-irrlicht.cpp b/src/guile-irrlicht.cpp index 4531715..7ea6f7a 100644 --- a/src/guile-irrlicht.cpp +++ b/src/guile-irrlicht.cpp @@ -28,16 +28,13 @@ #include "cursor-control.h" #include "device.h" #include "event-receiver.h" -#include "file-archive.h" -#include "file-system.h" +#include "file-list.h" #include "gsubr.h" #include "gui.h" -#include "gui-edit-box.h" #include "gui-element.h" #include "gui-environment.h" -#include "gui-image.h" -#include "gui-static-text.h" #include "guile-irrlicht.h" +#include "io.h" #include "keymap.h" #include "material.h" #include "mesh.h" @@ -65,14 +62,8 @@ extern "C" { init_cursor_control (); init_device (); init_event_receiver (); - init_file_archive (); - init_file_system (); init_gui (); - init_gui_edit_box (); - init_gui_element (); - init_gui_environment (); - init_gui_image (); - init_gui_static_text (); + init_io (); init_keymap (); init_material (); init_mesh (); @@ -88,8 +79,9 @@ extern "C" { // Shared procedures (used by two or more objects) DEFINE_GSUBR ("draw-all", 1, 0, 0, irr_drawAll); - DEFINE_GSUBR ("get-position", 1, 1, 0, irr_getPosition); + DEFINE_GSUBR ("get-id", 1, 1, 0, irr_getID); DEFINE_GSUBR ("get-name", 1, 0, 0, irr_getName); + DEFINE_GSUBR ("get-position", 1, 1, 0, irr_getPosition); DEFINE_GSUBR ("set-material!", 2, 0, 0, irr_setMaterial); DEFINE_GSUBR ("set-material-flag!", 3, 0, 0, irr_setMaterialFlag); DEFINE_GSUBR ("set-position!", 2, 0, 0, irr_setPosition); @@ -115,6 +107,29 @@ extern "C" { return SCM_UNSPECIFIED; } + SCM + irr_getID (SCM wrapped_obj, + SCM index) + { + if (file_list_p (wrapped_obj)) + { + return scm_from_uint32 (unwrap_file_list (wrapped_obj)->getID (scm_to_uint32 (index))); + } + else if (gui_element_p (wrapped_obj)) + { + return scm_from_int32 (unwrap_gui_element (wrapped_obj)->getID ()); + } + else if (scene_node_p (wrapped_obj)) + { + return scm_from_int32 (unwrap_scene_node (wrapped_obj)->getID ()); + } + else + { + scm_error (scm_arg_type_key, NULL, "Cannot get id from object: ~S", + scm_list_1 (wrapped_obj), scm_list_1 (wrapped_obj)); + } + } + SCM irr_getName (SCM wrapped_obj) {