lib/libtcod/bindings.rb in libtcod-0.0.2 vs lib/libtcod/bindings.rb in libtcod-0.0.3

- old
+ new

@@ -1,640 +1,642 @@ -APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')) - -module TCOD - extend FFI::Library - - if RUBY_PLATFORM.include?('x86_64') - ffi_lib ['libtcod', File.join(APP_ROOT, "clib/amd64/libtcod.so")] - else - ffi_lib ['libtcod', File.join(APP_ROOT, "clib/i686/libtcod.so")] - end - - # Remove redundant namespacing - def self.tcod_function(sym, *args) - attach_function(sym[5..-1].to_sym, sym, *args) - end - - ### Color module - class Color < FFI::Struct - layout :r, :uchar, - :g, :uchar, - :b, :uchar - - def self.rgb(r,g,b) - TCOD.color_RGB(r,g,b) - end - - def self.hsv(h,s,v) - TCOD.color_HSV(h,s,v) - end - - def ==(col) - TCOD.color_equals(self, col) - end - - def *(col_or_float) - if col_or_float.is_a? Color - TCOD.color_multiply(self, col_or_float) - else - TCOD.color_multiply_scalar(self, col_or_float) - end - end - - def to_s - "<Color #{self[:r]}, #{self[:g]}, #{self[:b]}>" - end - end - - tcod_function :TCOD_color_RGB, [ :uchar, :uchar, :uchar ], Color.val - tcod_function :TCOD_color_HSV, [ :float, :float, :float ], Color.val - tcod_function :TCOD_color_equals, [ Color.val, Color.val ], :bool - tcod_function :TCOD_color_add, [ Color.val, Color.val ], Color.val - tcod_function :TCOD_color_subtract, [ Color.val, Color.val ], Color.val - tcod_function :TCOD_color_multiply, [ Color.val, Color.val ], Color.val - tcod_function :TCOD_color_multiply_scalar, [ Color.val, :float ], Color.val - tcod_function :TCOD_color_lerp, [ Color.val, Color.val, :float ], Color.val - tcod_function :TCOD_color_set_HSV, [ :pointer, :float, :float, :float ], :void - tcod_function :TCOD_color_get_HSV, [ Color.val, :pointer, :pointer, :pointer ], :void - tcod_function :TCOD_color_get_hue, [ Color.val ], :float - tcod_function :TCOD_color_set_hue, [ :pointer, :float ], :void - tcod_function :TCOD_color_get_saturation, [ Color.val ], :float - tcod_function :TCOD_color_set_saturation, [ :pointer, :float ], :void - tcod_function :TCOD_color_get_value, [ Color.val ], :float - tcod_function :TCOD_color_set_value, [ :pointer, :float ], :void - tcod_function :TCOD_color_shift_hue, [ :pointer, :float ], :void - tcod_function :TCOD_color_scale_HSV, [ :pointer, :float, :float ], :void - tcod_function :TCOD_color_gen_map, [ :pointer, :int, :pointer, :pointer ], :void - - ### Console module - class Key < MethodStruct - layout :vk, :int, - :c, :uchar, - :pressed, :bool, - :lalt, :bool, - :lctrl, :bool, - :ralt, :bool, - :rctrl, :bool, - :shift, :bool - end - - TCOD_renderer_t = :int - TCOD_bkgnd_flag_t = :int - TCOD_alignment_t = :int - TCOD_keycode_t = :int - TCOD_colctrl_t = :int - TCOD_console_t = :pointer - - tcod_function :TCOD_console_init_root, [ :int, :int, :string, :bool, TCOD_renderer_t ], :void - tcod_function :TCOD_console_set_window_title, [ :string ], :void - tcod_function :TCOD_console_set_fullscreen, [ :bool ], :void - tcod_function :TCOD_console_is_fullscreen, [ ], :bool - tcod_function :TCOD_console_is_window_closed, [ ], :bool - tcod_function :TCOD_console_set_custom_font, [ :string, :int, :int, :int ], :void - tcod_function :TCOD_console_map_ascii_code_to_font, [ :int, :int, :int ], :void - tcod_function :TCOD_console_map_ascii_codes_to_font, [ :int, :int, :int, :int ], :void - tcod_function :TCOD_console_map_string_to_font, [ :string, :int, :int ], :void - tcod_function :TCOD_console_set_dirty, [ :int, :int, :int, :int ], :void - tcod_function :TCOD_console_set_default_background, [ :pointer, Color.val ], :void - tcod_function :TCOD_console_set_default_foreground, [ :pointer, Color.val ], :void - tcod_function :TCOD_console_clear, [ :pointer ], :void - tcod_function :TCOD_console_set_char_background, [ :pointer, :int, :int, Color.val, TCOD_bkgnd_flag_t ], :void - tcod_function :TCOD_console_set_char_foreground, [ :pointer, :int, :int, Color.val ], :void - tcod_function :TCOD_console_set_char, [ :pointer, :int, :int, :int ], :void - tcod_function :TCOD_console_put_char, [ :pointer, :int, :int, :int, TCOD_bkgnd_flag_t ], :void - tcod_function :TCOD_console_put_char_ex, [ :pointer, :int, :int, :int, Color.val, Color.val ], :void - tcod_function :TCOD_console_set_background_flag, [ :pointer, TCOD_bkgnd_flag_t ], :void - tcod_function :TCOD_console_get_background_flag, [ :pointer ], TCOD_bkgnd_flag_t - tcod_function :TCOD_console_set_alignment, [ :pointer, TCOD_alignment_t ], :void - tcod_function :TCOD_console_get_alignment, [ :pointer ], TCOD_alignment_t - tcod_function :TCOD_console_print, [ :pointer, :int, :int, :string, :varargs ], :void - tcod_function :TCOD_console_print_ex, [ :pointer, :int, :int, TCOD_bkgnd_flag_t, TCOD_alignment_t, :string, :varargs ], :void - tcod_function :TCOD_console_print_rect, [ :pointer, :int, :int, :int, :int, :string, :varargs ], :int - tcod_function :TCOD_console_print_rect_ex, [ :pointer, :int, :int, :int, :int, TCOD_bkgnd_flag_t, TCOD_alignment_t, :string, :varargs ], :int - tcod_function :TCOD_console_get_height_rect, [ :pointer, :int, :int, :int, :int, :string, :varargs ], :int - tcod_function :TCOD_console_rect, [ :pointer, :int, :int, :int, :int, :bool, TCOD_bkgnd_flag_t ], :void - tcod_function :TCOD_console_hline, [ :pointer, :int, :int, :int, TCOD_bkgnd_flag_t ], :void - tcod_function :TCOD_console_vline, [ :pointer, :int, :int, :int, TCOD_bkgnd_flag_t ], :void - tcod_function :TCOD_console_print_frame, [ :pointer, :int, :int, :int, :int, :bool, TCOD_bkgnd_flag_t, :string, :varargs ], :void - tcod_function :TCOD_console_map_string_to_font_utf, [ :pointer, :int, :int ], :void - tcod_function :TCOD_console_print_utf, [ :pointer, :int, :int, :pointer, :varargs ], :void - tcod_function :TCOD_console_print_ex_utf, [ :pointer, :int, :int, TCOD_bkgnd_flag_t, TCOD_alignment_t, :pointer, :varargs ], :void - tcod_function :TCOD_console_print_rect_utf, [ :pointer, :int, :int, :int, :int, :pointer, :varargs ], :int - tcod_function :TCOD_console_print_rect_ex_utf, [ :pointer, :int, :int, :int, :int, TCOD_bkgnd_flag_t, TCOD_alignment_t, :pointer, :varargs ], :int - tcod_function :TCOD_console_get_height_rect_utf, [ :pointer, :int, :int, :int, :int, :pointer, :varargs ], :int - tcod_function :TCOD_console_get_default_background, [ :pointer ], Color.val - tcod_function :TCOD_console_get_default_foreground, [ :pointer ], Color.val - tcod_function :TCOD_console_get_char_background, [ :pointer, :int, :int ], Color.val - tcod_function :TCOD_console_get_char_foreground, [ :pointer, :int, :int ], Color.val - tcod_function :TCOD_console_get_char, [ :pointer, :int, :int ], :int - tcod_function :TCOD_console_set_fade, [ :uchar, Color.val ], :void - tcod_function :TCOD_console_get_fade, [ ], :uchar - tcod_function :TCOD_console_get_fading_color, [ ], Color.val - tcod_function :TCOD_console_flush, [ ], :void - tcod_function :TCOD_console_set_color_control, [ TCOD_colctrl_t, Color.val, Color.val ], :void - tcod_function :TCOD_console_check_for_keypress, [ :int ], Key.val - tcod_function :TCOD_console_wait_for_keypress, [ :bool ], Key.val - tcod_function :TCOD_console_set_keyboard_repeat, [ :int, :int ], :void - tcod_function :TCOD_console_disable_keyboard_repeat, [ ], :void - tcod_function :TCOD_console_is_key_pressed, [ TCOD_keycode_t ], :bool - tcod_function :TCOD_console_from_file, [ :string ], :pointer - tcod_function :TCOD_console_load_asc, [ :pointer, :string ], :bool - tcod_function :TCOD_console_load_apf, [ :pointer, :string ], :bool - tcod_function :TCOD_console_save_asc, [ :pointer, :string ], :bool - tcod_function :TCOD_console_save_apf, [ :pointer, :string ], :bool - tcod_function :TCOD_console_new, [ :int, :int ], :pointer - tcod_function :TCOD_console_get_width, [ :pointer ], :int - tcod_function :TCOD_console_get_height, [ :pointer ], :int - tcod_function :TCOD_console_set_key_color, [ :pointer, Color.val ], :void - tcod_function :TCOD_console_blit, [ :pointer, :int, :int, :int, :int, :pointer, :int, :int, :float, :float ], :void - tcod_function :TCOD_console_delete, [ :pointer ], :void - tcod_function :TCOD_console_credits, [ ], :void - tcod_function :TCOD_console_credits_reset, [ ], :void - tcod_function :TCOD_console_credits_render, [ :int, :int, :bool ], :bool - - ### System module - EVENT_KEY_PRESS = 1 - EVENT_MOUSE_RELEASE = 16 - EVENT_KEY_RELEASE = 2 - EVENT_MOUSE_MOVE = 4 - EVENT_MOUSE_PRESS = 8 - EVENT_MOUSE = EVENT_MOUSE_MOVE|EVENT_MOUSE_PRESS|EVENT_MOUSE_RELEASE - EVENT_KEY = EVENT_KEY_PRESS|EVENT_KEY_RELEASE - EVENT_ANY = EVENT_KEY|EVENT_MOUSE - - TCOD_image_t = :pointer - TCOD_list_t = :pointer - - tcod_function :TCOD_sys_elapsed_milli, [ ], :uint32 - tcod_function :TCOD_sys_elapsed_seconds, [ ], :float - tcod_function :TCOD_sys_sleep_milli, [ :uint32 ], :void - tcod_function :TCOD_sys_save_screenshot, [ :string ], :void - tcod_function :TCOD_sys_force_fullscreen_resolution, [ :int, :int ], :void - tcod_function :TCOD_sys_set_renderer, [ TCOD_renderer_t ], :void - tcod_function :TCOD_sys_get_renderer, [ ], TCOD_renderer_t - tcod_function :TCOD_sys_set_fps, [ :int ], :void - tcod_function :TCOD_sys_get_fps, [ ], :int - tcod_function :TCOD_sys_get_last_frame_length, [ ], :float - tcod_function :TCOD_sys_get_current_resolution, [ :pointer, :pointer ], :void - tcod_function :TCOD_sys_get_fullscreen_offsets, [ :pointer, :pointer ], :void - tcod_function :TCOD_sys_update_char, [ :int, :int, :int, TCOD_image_t, :int, :int ], :void - tcod_function :TCOD_sys_get_char_size, [ :pointer, :pointer ], :void - #tcod_function :TCOD_sys_get_sdl_window, [ ], :pointer - - tcod_function :TCOD_sys_wait_for_event, [ :int, :pointer, :pointer, :bool ], :int - tcod_function :TCOD_sys_check_for_event, [ :int, :pointer, :pointer ], :int - tcod_function :TCOD_sys_create_directory, [ :string ], :bool - tcod_function :TCOD_sys_delete_file, [ :string ], :bool - tcod_function :TCOD_sys_delete_directory, [ :string ], :bool - tcod_function :TCOD_sys_is_directory, [ :string ], :bool - tcod_function :TCOD_sys_get_directory_content, [ :string, :string ], TCOD_list_t - tcod_function :TCOD_sys_file_exists, [ :string, :varargs ], :bool - tcod_function :TCOD_sys_read_file, [ :string, :pointer, :pointer ], :bool - tcod_function :TCOD_sys_write_file, [ :string, :pointer, :uint32 ], :bool - tcod_function :TCOD_sys_clipboard_set, [ :string ], :void - tcod_function :TCOD_sys_clipboard_get, [ ], :string - tcod_function :TCOD_thread_new, [ callback([ :pointer ], :int), :pointer ], :pointer - tcod_function :TCOD_thread_delete, [ :pointer ], :void - tcod_function :TCOD_sys_get_num_cores, [ ], :int - tcod_function :TCOD_thread_wait, [ :pointer ], :void - tcod_function :TCOD_mutex_new, [ ], :pointer - tcod_function :TCOD_mutex_in, [ :pointer ], :void - tcod_function :TCOD_mutex_out, [ :pointer ], :void - tcod_function :TCOD_mutex_delete, [ :pointer ], :void - tcod_function :TCOD_semaphore_new, [ :int ], :pointer - tcod_function :TCOD_semaphore_lock, [ :pointer ], :void - tcod_function :TCOD_semaphore_unlock, [ :pointer ], :void - tcod_function :TCOD_semaphore_delete, [ :pointer ], :void - tcod_function :TCOD_condition_new, [ ], :pointer - tcod_function :TCOD_condition_signal, [ :pointer ], :void - tcod_function :TCOD_condition_broadcast, [ :pointer ], :void - tcod_function :TCOD_condition_wait, [ :pointer, :pointer ], :void - tcod_function :TCOD_condition_delete, [ :pointer ], :void - tcod_function :TCOD_load_library, [ :string ], :pointer - tcod_function :TCOD_get_function_address, [ :pointer, :string ], :pointer - tcod_function :TCOD_close_library, [ :pointer ], :void - callback(:SDL_renderer_t, [ :pointer ], :void) - tcod_function :TCOD_sys_register_SDL_renderer, [ :SDL_renderer_t ], :void - - ### Line module - class BresenhamData < MethodStruct - layout( - :stepx, :int, - :stepy, :int, - :e, :int, - :deltax, :int, - :deltay, :int, - :origx, :int, - :origy, :int, - :destx, :int, - :desty, :int - ) - end - callback(:TCOD_line_listener_t, [ :int, :int ], :bool) - tcod_function :TCOD_line_init, [ :int, :int, :int, :int ], :void - tcod_function :TCOD_line_step, [ :pointer, :pointer ], :bool - tcod_function :TCOD_line, [ :int, :int, :int, :int, :TCOD_line_listener_t ], :bool - tcod_function :TCOD_line_init_mt, [ :int, :int, :int, :int, :pointer ], :void - tcod_function :TCOD_line_step_mt, [ :pointer, :pointer, :pointer ], :bool - tcod_function :TCOD_line_mt, [ :int, :int, :int, :int, :TCOD_line_listener_t, :pointer ], :bool - - ### Image module - tcod_function :TCOD_image_new, [ :int, :int ], :pointer - tcod_function :TCOD_image_from_console, [ TCOD_console_t ], :pointer - tcod_function :TCOD_image_refresh_console, [ :pointer, TCOD_console_t ], :void - tcod_function :TCOD_image_load, [ :string ], :pointer - tcod_function :TCOD_image_clear, [ :pointer, Color.val ], :void - tcod_function :TCOD_image_invert, [ :pointer ], :void - tcod_function :TCOD_image_hflip, [ :pointer ], :void - tcod_function :TCOD_image_rotate90, [ :pointer, :int ], :void - tcod_function :TCOD_image_vflip, [ :pointer ], :void - tcod_function :TCOD_image_scale, [ :pointer, :int, :int ], :void - tcod_function :TCOD_image_save, [ :pointer, :string ], :void - tcod_function :TCOD_image_get_size, [ :pointer, :pointer, :pointer ], :void - tcod_function :TCOD_image_get_pixel, [ :pointer, :int, :int ], Color.val - tcod_function :TCOD_image_get_alpha, [ :pointer, :int, :int ], :int - tcod_function :TCOD_image_get_mipmap_pixel, [ :pointer, :float, :float, :float, :float ], Color.val - tcod_function :TCOD_image_put_pixel, [ :pointer, :int, :int, Color.val ], :void - tcod_function :TCOD_image_blit, [ :pointer, TCOD_console_t, :float, :float, TCOD_bkgnd_flag_t, :float, :float, :float ], :void - tcod_function :TCOD_image_blit_rect, [ :pointer, TCOD_console_t, :int, :int, :int, :int, TCOD_bkgnd_flag_t ], :void - tcod_function :TCOD_image_blit_2x, [ :pointer, TCOD_console_t, :int, :int, :int, :int, :int, :int ], :void - tcod_function :TCOD_image_delete, [ :pointer ], :void - tcod_function :TCOD_image_set_key_color, [ :pointer, Color.val ], :void - tcod_function :TCOD_image_is_pixel_transparent, [ :pointer, :int, :int ], :bool - - ### Mouse module - class MouseStatus < MethodStruct - layout( - :x, :int, - :y, :int, - :dx, :int, - :dy, :int, - :cx, :int, - :cy, :int, - :dcx, :int, - :dcy, :int, - :lbutton, :bool, - :rbutton, :bool, - :mbutton, :bool, - :lbutton_pressed, :bool, - :rbutton_pressed, :bool, - :mbutton_pressed, :bool, - :wheel_up, :bool, - :wheel_down, :bool - ) - end - attach_function :TCOD_mouse_show_cursor, [ :bool ], :void - attach_function :TCOD_mouse_get_status, [ ], MouseStatus - attach_function :TCOD_mouse_is_cursor_visible, [ ], :bool - attach_function :TCOD_mouse_move, [ :int, :int ], :void - #attach_function :TCOD_mouse_includes_touch, [ :bool ], :void - - ### Parser module - TYPE_NONE = 0 - TYPE_BOOL = 1 - TYPE_VALUELIST02 = 10 - TYPE_LIST = 1024 - TYPE_VALUELIST03 = 11 - TYPE_VALUELIST04 = 12 - TYPE_VALUELIST05 = 13 - TYPE_VALUELIST06 = 14 - TYPE_VALUELIST07 = 15 - TYPE_VALUELIST08 = 16 - TYPE_VALUELIST09 = 17 - TYPE_VALUELIST10 = 18 - TYPE_VALUELIST11 = 19 - TYPE_CHAR = 2 - TYPE_VALUELIST12 = 20 - TYPE_VALUELIST13 = 21 - TYPE_VALUELIST14 = 22 - TYPE_VALUELIST15 = 23 - TYPE_CUSTOM00 = 24 - TYPE_CUSTOM01 = 25 - TYPE_CUSTOM02 = 26 - TYPE_CUSTOM03 = 27 - TYPE_CUSTOM04 = 28 - TYPE_CUSTOM05 = 29 - TYPE_INT = 3 - TYPE_CUSTOM06 = 30 - TYPE_CUSTOM07 = 31 - TYPE_CUSTOM08 = 32 - TYPE_CUSTOM09 = 33 - TYPE_CUSTOM10 = 34 - TYPE_CUSTOM11 = 35 - TYPE_CUSTOM12 = 36 - TYPE_CUSTOM13 = 37 - TYPE_CUSTOM14 = 38 - TYPE_CUSTOM15 = 39 - TYPE_FLOAT = 4 - TYPE_STRING = 5 - TYPE_COLOR = 6 - TYPE_DICE = 7 - TYPE_VALUELIST00 = 8 - TYPE_VALUELIST01 = 9 - - class Dice < MethodStruct - layout( - :nb_rolls, :int, - :nb_faces, :int, - :multiplier, :float, - :addsub, :float - ) - end - - class TCODValueT < MethodUnion - layout( - :b, :bool, - :c, :char, - :i, :int32, - :f, :float, - :s, :pointer, - :col, Color, - :dice, Dice, - :list, TCOD_list_t, - :custom, :pointer - ) - def s=(str) - @s = FFI::MemoryPointer.from_string(str) - self[:s] = @s - end - def s - @s.get_string(0) - end - end - - class TCODStructIntT < MethodStruct - layout( - :name, :pointer, - :flags, TCOD_list_t, - :props, TCOD_list_t, - :lists, TCOD_list_t, - :structs, TCOD_list_t - ) - def name=(str) - @name = FFI::MemoryPointer.from_string(str) - self[:name] = @name - end - def name - @name.get_string(0) - end - end - - callback(:TCOD_parser_custom_t, [ :pointer, :pointer, :pointer, :string ], TCODValueT.val) - class TCODParserIntT < MethodStruct - layout( - :structs, TCOD_list_t, - :customs, [:TCOD_parser_custom_t, 16], - :fatal, :bool, - :props, TCOD_list_t - ) - end - - class TCODParserListenerT < MethodStruct - layout( - :new_struct, callback([ :pointer, :string ], :bool), - :new_flag, callback([ :string ], :bool), - :new_property, callback([ :string, :int, TCODValueT ], :bool), - :end_struct, callback([ :pointer, :string ], :bool), - :error, callback([ :string ], :void) - ) - end - - tcod_function :TCOD_struct_get_name, [ :pointer ], :string - tcod_function :TCOD_struct_add_property, [ :pointer, :string, :int, :bool ], :void - tcod_function :TCOD_struct_add_list_property, [ :pointer, :string, :int, :bool ], :void - tcod_function :TCOD_struct_add_value_list, [ :pointer, :string, :pointer, :bool ], :void - tcod_function :TCOD_struct_add_value_list_sized, [ :pointer, :string, :pointer, :int, :bool ], :void - tcod_function :TCOD_struct_add_flag, [ :pointer, :string ], :void - tcod_function :TCOD_struct_add_structure, [ :pointer, :pointer ], :void - tcod_function :TCOD_struct_is_mandatory, [ :pointer, :string ], :bool - tcod_function :TCOD_struct_get_type, [ :pointer, :string ], :int - - tcod_function :TCOD_parser_new, [ ], :pointer - tcod_function :TCOD_parser_new_struct, [ :pointer, :string ], :pointer - tcod_function :TCOD_parser_new_custom_type, [ :pointer, :TCOD_parser_custom_t ], :int - tcod_function :TCOD_parser_run, [ :pointer, :string, :pointer ], :void - tcod_function :TCOD_parser_delete, [ :pointer ], :void - tcod_function :TCOD_parser_error, [ :string, :varargs ], :void - tcod_function :TCOD_parser_get_bool_property, [ :pointer, :string ], :bool - tcod_function :TCOD_parser_get_char_property, [ :pointer, :string ], :int - tcod_function :TCOD_parser_get_int_property, [ :pointer, :string ], :int - tcod_function :TCOD_parser_get_float_property, [ :pointer, :string ], :float - tcod_function :TCOD_parser_get_string_property, [ :pointer, :string ], :string - tcod_function :TCOD_parser_get_color_property, [ :pointer, :string ], Color.val - tcod_function :TCOD_parser_get_dice_property, [ :pointer, :string ], Dice.val - tcod_function :TCOD_parser_get_dice_property_py, [ :pointer, :string, :pointer ], :void - tcod_function :TCOD_parser_get_custom_property, [ :pointer, :string ], :pointer - tcod_function :TCOD_parser_get_list_property, [ :pointer, :string, :int ], TCOD_list_t - - tcod_function :TCOD_parse_bool_value, [ ], TCODValueT - tcod_function :TCOD_parse_char_value, [ ], TCODValueT - tcod_function :TCOD_parse_integer_value, [ ], TCODValueT - tcod_function :TCOD_parse_float_value, [ ], TCODValueT - tcod_function :TCOD_parse_string_value, [ ], TCODValueT - tcod_function :TCOD_parse_color_value, [ ], TCODValueT - tcod_function :TCOD_parse_dice_value, [ ], TCODValueT - tcod_function :TCOD_parse_value_list_value, [ :pointer, :int ], TCODValueT - tcod_function :TCOD_parse_property_value, [ :pointer, :pointer, :string, :bool ], TCODValueT - - ### Random module - RNG_MT = 0 - RNG_CMWC = 1 - - DISTRIBUTION_LINEAR = 0 - DISTRIBUTION_GAUSSIAN = 1 - DISTRIBUTION_GAUSSIAN_RANGE = 2 - DISTRIBUTION_GAUSSIAN_INVERSE = 3 - DISTRIBUTION_GAUSSIAN_RANGE_INVERSE = 4 - - TCOD_random_algo_t = :int - TCOD_distribution_t = :int - TCOD_random_t = :pointer - - tcod_function :TCOD_random_get_instance, [ ], :pointer - tcod_function :TCOD_random_new, [ TCOD_random_algo_t ], :pointer - tcod_function :TCOD_random_save, [ :pointer ], :pointer - tcod_function :TCOD_random_restore, [ :pointer, :pointer ], :void - tcod_function :TCOD_random_new_from_seed, [ TCOD_random_algo_t, :uint32 ], :pointer - tcod_function :TCOD_random_delete, [ :pointer ], :void - tcod_function :TCOD_random_set_distribution, [ :pointer, TCOD_distribution_t ], :void - tcod_function :TCOD_random_get_int, [ :pointer, :int, :int ], :int - tcod_function :TCOD_random_get_float, [ :pointer, :float, :float ], :float - tcod_function :TCOD_random_get_double, [ :pointer, :double, :double ], :double - tcod_function :TCOD_random_get_int_mean, [ :pointer, :int, :int, :int ], :int - tcod_function :TCOD_random_get_float_mean, [ :pointer, :float, :float, :float ], :float - tcod_function :TCOD_random_get_double_mean, [ :pointer, :double, :double, :double ], :double - tcod_function :TCOD_random_dice_new, [ :string ], Dice.val - tcod_function :TCOD_random_dice_roll, [ :pointer, Dice.val ], :int - tcod_function :TCOD_random_dice_roll_s, [ :pointer, :string ], :int - - ### Noise module - NOISE_DEFAULT_HURST = 0.5 - NOISE_DEFAULT_LACUNARITY = 2.0 - - NOISE_DEFAULT = 0 - NOISE_PERLIN = 1 - NOISE_SIMPLEX = 2 - NOISE_WAVELET = 4 - - tcod_function :TCOD_noise_new, [ :int, :float, :float, TCOD_random_t ], :pointer - tcod_function :TCOD_noise_set_type, [ :pointer, :int ], :void - tcod_function :TCOD_noise_get_ex, [ :pointer, :pointer, :int ], :float - tcod_function :TCOD_noise_get_fbm_ex, [ :pointer, :pointer, :float, :int ], :float - tcod_function :TCOD_noise_get_turbulence_ex, [ :pointer, :pointer, :float, :int ], :float - tcod_function :TCOD_noise_get, [ :pointer, :pointer ], :float - tcod_function :TCOD_noise_get_fbm, [ :pointer, :pointer, :float ], :float - tcod_function :TCOD_noise_get_turbulence, [ :pointer, :pointer, :float ], :float - tcod_function :TCOD_noise_delete, [ :pointer ], :void - - ### FOV module - FOV_BASIC = 0 - FOV_DIAMOND = 1 - FOV_SHADOW = 2 - FOV_PERMISSIVE_0 = 3 - FOV_PERMISSIVE_1 = 4 - FOV_PERMISSIVE_2 = 5 - FOV_PERMISSIVE_3 = 6 - FOV_PERMISSIVE_4 = 7 - FOV_PERMISSIVE_5 = 8 - FOV_PERMISSIVE_6 = 9 - FOV_PERMISSIVE_7 = 10 - FOV_PERMISSIVE_8 = 11 - FOV_RESTRICTIVE = 12 - NB_FOV_ALGORITHMS = 13 - - TCOD_fov_algorithm_t = :int - - tcod_function :TCOD_map_new, [ :int, :int ], :pointer - tcod_function :TCOD_map_clear, [ :pointer, :bool, :bool ], :void - tcod_function :TCOD_map_copy, [ :pointer, :pointer ], :void - tcod_function :TCOD_map_set_properties, [ :pointer, :int, :int, :bool, :bool ], :void - tcod_function :TCOD_map_delete, [ :pointer ], :void - tcod_function :TCOD_map_compute_fov, [ :pointer, :int, :int, :int, :bool, TCOD_fov_algorithm_t ], :void - tcod_function :TCOD_map_is_in_fov, [ :pointer, :int, :int ], :bool - tcod_function :TCOD_map_set_in_fov, [ :pointer, :int, :int, :bool ], :void - tcod_function :TCOD_map_is_transparent, [ :pointer, :int, :int ], :bool - tcod_function :TCOD_map_is_walkable, [ :pointer, :int, :int ], :bool - tcod_function :TCOD_map_get_width, [ :pointer ], :int - tcod_function :TCOD_map_get_height, [ :pointer ], :int - tcod_function :TCOD_map_get_nb_cells, [ :pointer ], :int - - ### Pathfinding module - TCOD_map_t = :pointer - - callback(:TCOD_path_func_t, [ :int, :int, :int, :int, :pointer ], :float) - tcod_function :TCOD_path_new_using_map, [ TCOD_map_t, :float ], :pointer - tcod_function :TCOD_path_new_using_function, [ :int, :int, :TCOD_path_func_t, :pointer, :float ], :pointer - tcod_function :TCOD_path_compute, [ :pointer, :int, :int, :int, :int ], :bool - tcod_function :TCOD_path_walk, [ :pointer, :pointer, :pointer, :bool ], :bool - tcod_function :TCOD_path_is_empty, [ :pointer ], :bool - tcod_function :TCOD_path_size, [ :pointer ], :int - tcod_function :TCOD_path_reverse, [ :pointer ], :void - tcod_function :TCOD_path_get, [ :pointer, :int, :pointer, :pointer ], :void - tcod_function :TCOD_path_get_origin, [ :pointer, :pointer, :pointer ], :void - tcod_function :TCOD_path_get_destination, [ :pointer, :pointer, :pointer ], :void - tcod_function :TCOD_path_delete, [ :pointer ], :void - tcod_function :TCOD_dijkstra_new, [ TCOD_map_t, :float ], :pointer - tcod_function :TCOD_dijkstra_new_using_function, [ :int, :int, :TCOD_path_func_t, :pointer, :float ], :pointer - tcod_function :TCOD_dijkstra_compute, [ :pointer, :int, :int ], :void - tcod_function :TCOD_dijkstra_get_distance, [ :pointer, :int, :int ], :float - tcod_function :TCOD_dijkstra_path_set, [ :pointer, :int, :int ], :bool - tcod_function :TCOD_dijkstra_is_empty, [ :pointer ], :bool - tcod_function :TCOD_dijkstra_size, [ :pointer ], :int - tcod_function :TCOD_dijkstra_reverse, [ :pointer ], :void - tcod_function :TCOD_dijkstra_get, [ :pointer, :int, :pointer, :pointer ], :void - tcod_function :TCOD_dijkstra_path_walk, [ :pointer, :pointer, :pointer ], :bool - tcod_function :TCOD_dijkstra_delete, [ :pointer ], :void - - ### BSP module - class TCODTreeT < FFI::Struct - layout( - :next, :pointer, - :father, :pointer, - :sons, :pointer - ) - end - tcod_function :TCOD_tree_new, [ ], :pointer - tcod_function :TCOD_tree_add_son, [ :pointer, :pointer ], :void - - - class TCODBspT < MethodStruct - layout( - :tree, TCODTreeT, - :x, :int, - :y, :int, - :w, :int, - :h, :int, - :position, :int, - :level, :uint8, - :horizontal, :bool - ) - end - callback(:TCOD_bsp_callback_t, [ :pointer, :pointer ], :bool) - tcod_function :TCOD_bsp_new, [ ], :pointer - tcod_function :TCOD_bsp_new_with_size, [ :int, :int, :int, :int ], :pointer - tcod_function :TCOD_bsp_delete, [ :pointer ], :void - tcod_function :TCOD_bsp_left, [ :pointer ], :pointer - tcod_function :TCOD_bsp_right, [ :pointer ], :pointer - tcod_function :TCOD_bsp_father, [ :pointer ], :pointer - tcod_function :TCOD_bsp_is_leaf, [ :pointer ], :bool - tcod_function :TCOD_bsp_traverse_pre_order, [ :pointer, :TCOD_bsp_callback_t, :pointer ], :bool - tcod_function :TCOD_bsp_traverse_in_order, [ :pointer, :TCOD_bsp_callback_t, :pointer ], :bool - tcod_function :TCOD_bsp_traverse_post_order, [ :pointer, :TCOD_bsp_callback_t, :pointer ], :bool - tcod_function :TCOD_bsp_traverse_level_order, [ :pointer, :TCOD_bsp_callback_t, :pointer ], :bool - tcod_function :TCOD_bsp_traverse_inverted_level_order, [ :pointer, :TCOD_bsp_callback_t, :pointer ], :bool - tcod_function :TCOD_bsp_contains, [ :pointer, :int, :int ], :bool - tcod_function :TCOD_bsp_find_node, [ :pointer, :int, :int ], :pointer - tcod_function :TCOD_bsp_resize, [ :pointer, :int, :int, :int, :int ], :void - tcod_function :TCOD_bsp_split_once, [ :pointer, :bool, :int ], :void - tcod_function :TCOD_bsp_split_recursive, [ :pointer, TCOD_random_t, :int, :int, :int, :float, :float ], :void - tcod_function :TCOD_bsp_remove_sons, [ :pointer ], :void - - ### Heightmap module - class TCODHeightmapT < MethodStruct - layout( - :w, :int, - :h, :int, - :values, :pointer - ) - end - - TCOD_noise_t = :pointer - float_3 = :pointer # float n[3] - int_4 = :pointer - - tcod_function :TCOD_heightmap_new, [ :int, :int ], :pointer - tcod_function :TCOD_heightmap_delete, [ :pointer ], :void - tcod_function :TCOD_heightmap_get_value, [ :pointer, :int, :int ], :float - tcod_function :TCOD_heightmap_get_interpolated_value, [ :pointer, :float, :float ], :float - tcod_function :TCOD_heightmap_set_value, [ :pointer, :int, :int, :float ], :void - tcod_function :TCOD_heightmap_get_slope, [ :pointer, :int, :int ], :float - tcod_function :TCOD_heightmap_get_normal, [ :pointer, :float, :float, float_3, :float ], :void - tcod_function :TCOD_heightmap_count_cells, [ :pointer, :float, :float ], :int - tcod_function :TCOD_heightmap_has_land_on_border, [ :pointer, :float ], :bool - tcod_function :TCOD_heightmap_get_minmax, [ :pointer, :pointer, :pointer ], :void - tcod_function :TCOD_heightmap_copy, [ :pointer, :pointer ], :void - tcod_function :TCOD_heightmap_add, [ :pointer, :float ], :void - tcod_function :TCOD_heightmap_scale, [ :pointer, :float ], :void - tcod_function :TCOD_heightmap_clamp, [ :pointer, :float, :float ], :void - tcod_function :TCOD_heightmap_normalize, [ :pointer, :float, :float ], :void - tcod_function :TCOD_heightmap_clear, [ :pointer ], :void - tcod_function :TCOD_heightmap_lerp_hm, [ :pointer, :pointer, :pointer, :float ], :void - tcod_function :TCOD_heightmap_add_hm, [ :pointer, :pointer, :pointer ], :void - tcod_function :TCOD_heightmap_multiply_hm, [ :pointer, :pointer, :pointer ], :void - tcod_function :TCOD_heightmap_add_hill, [ :pointer, :float, :float, :float, :float ], :void - tcod_function :TCOD_heightmap_dig_hill, [ :pointer, :float, :float, :float, :float ], :void - tcod_function :TCOD_heightmap_dig_bezier, [ :pointer, int_4, int_4, :float, :float, :float, :float ], :void - tcod_function :TCOD_heightmap_rain_erosion, [ :pointer, :int, :float, :float, TCOD_random_t ], :void - tcod_function :TCOD_heightmap_kernel_transform, [ :pointer, :int, :pointer, :pointer, :pointer, :float, :float ], :void - tcod_function :TCOD_heightmap_add_voronoi, [ :pointer, :int, :int, :pointer, TCOD_random_t ], :void - tcod_function :TCOD_heightmap_add_fbm, [ :pointer, TCOD_noise_t, :float, :float, :float, :float, :float, :float, :float ], :void - tcod_function :TCOD_heightmap_scale_fbm, [ :pointer, TCOD_noise_t, :float, :float, :float, :float, :float, :float, :float ], :void - tcod_function :TCOD_heightmap_islandify, [ :pointer, :float, TCOD_random_t ], :void - - - ### Name Generator module - tcod_function :TCOD_namegen_parse, [ :string, TCOD_random_t ], :void - tcod_function :TCOD_namegen_generate, [ :string, :bool ], :string - tcod_function :TCOD_namegen_generate_custom, [ :string, :string, :bool ], :string - tcod_function :TCOD_namegen_get_sets, [ ], TCOD_list_t - tcod_function :TCOD_namegen_destroy, [ ], :void -end +APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')) + +module TCOD + extend FFI::Library + + if RUBY_PLATFORM.include?('mingw32') + ffi_lib ['libtcod-mingw', File.join(APP_ROOT, "clib/i686/libtcod-mingw.dll").gsub('/', '\\')] + elsif RUBY_PLATFORM.include?('x86_64') + ffi_lib ['libtcod', File.join(APP_ROOT, "clib/amd64/libtcod.so")] + else + ffi_lib ['libtcod', File.join(APP_ROOT, "clib/i686/libtcod.so")] + end + + # Remove redundant namespacing + def self.tcod_function(sym, *args) + attach_function(sym[5..-1].to_sym, sym, *args) + end + + ### Color module + class Color < FFI::Struct + layout :r, :uchar, + :g, :uchar, + :b, :uchar + + def self.rgb(r,g,b) + TCOD.color_RGB(r,g,b) + end + + def self.hsv(h,s,v) + TCOD.color_HSV(h,s,v) + end + + def ==(col) + TCOD.color_equals(self, col) + end + + def *(col_or_float) + if col_or_float.is_a? Color + TCOD.color_multiply(self, col_or_float) + else + TCOD.color_multiply_scalar(self, col_or_float) + end + end + + def to_s + "<Color #{self[:r]}, #{self[:g]}, #{self[:b]}>" + end + end + + tcod_function :TCOD_color_RGB, [ :uchar, :uchar, :uchar ], Color.val + tcod_function :TCOD_color_HSV, [ :float, :float, :float ], Color.val + tcod_function :TCOD_color_equals, [ Color.val, Color.val ], :bool + tcod_function :TCOD_color_add, [ Color.val, Color.val ], Color.val + tcod_function :TCOD_color_subtract, [ Color.val, Color.val ], Color.val + tcod_function :TCOD_color_multiply, [ Color.val, Color.val ], Color.val + tcod_function :TCOD_color_multiply_scalar, [ Color.val, :float ], Color.val + tcod_function :TCOD_color_lerp, [ Color.val, Color.val, :float ], Color.val + tcod_function :TCOD_color_set_HSV, [ :pointer, :float, :float, :float ], :void + tcod_function :TCOD_color_get_HSV, [ Color.val, :pointer, :pointer, :pointer ], :void + tcod_function :TCOD_color_get_hue, [ Color.val ], :float + tcod_function :TCOD_color_set_hue, [ :pointer, :float ], :void + tcod_function :TCOD_color_get_saturation, [ Color.val ], :float + tcod_function :TCOD_color_set_saturation, [ :pointer, :float ], :void + tcod_function :TCOD_color_get_value, [ Color.val ], :float + tcod_function :TCOD_color_set_value, [ :pointer, :float ], :void + tcod_function :TCOD_color_shift_hue, [ :pointer, :float ], :void + tcod_function :TCOD_color_scale_HSV, [ :pointer, :float, :float ], :void + tcod_function :TCOD_color_gen_map, [ :pointer, :int, :pointer, :pointer ], :void + + ### Console module + class Key < MethodStruct + layout :vk, :int, + :c, :uchar, + :pressed, :bool, + :lalt, :bool, + :lctrl, :bool, + :ralt, :bool, + :rctrl, :bool, + :shift, :bool + end + + TCOD_renderer_t = :int + TCOD_bkgnd_flag_t = :int + TCOD_alignment_t = :int + TCOD_keycode_t = :int + TCOD_colctrl_t = :int + TCOD_console_t = :pointer + + tcod_function :TCOD_console_init_root, [ :int, :int, :string, :bool, TCOD_renderer_t ], :void + tcod_function :TCOD_console_set_window_title, [ :string ], :void + tcod_function :TCOD_console_set_fullscreen, [ :bool ], :void + tcod_function :TCOD_console_is_fullscreen, [ ], :bool + tcod_function :TCOD_console_is_window_closed, [ ], :bool + tcod_function :TCOD_console_set_custom_font, [ :string, :int, :int, :int ], :void + tcod_function :TCOD_console_map_ascii_code_to_font, [ :int, :int, :int ], :void + tcod_function :TCOD_console_map_ascii_codes_to_font, [ :int, :int, :int, :int ], :void + tcod_function :TCOD_console_map_string_to_font, [ :string, :int, :int ], :void + tcod_function :TCOD_console_set_dirty, [ :int, :int, :int, :int ], :void + tcod_function :TCOD_console_set_default_background, [ :pointer, Color.val ], :void + tcod_function :TCOD_console_set_default_foreground, [ :pointer, Color.val ], :void + tcod_function :TCOD_console_clear, [ :pointer ], :void + tcod_function :TCOD_console_set_char_background, [ :pointer, :int, :int, Color.val, TCOD_bkgnd_flag_t ], :void + tcod_function :TCOD_console_set_char_foreground, [ :pointer, :int, :int, Color.val ], :void + tcod_function :TCOD_console_set_char, [ :pointer, :int, :int, :int ], :void + tcod_function :TCOD_console_put_char, [ :pointer, :int, :int, :int, TCOD_bkgnd_flag_t ], :void + tcod_function :TCOD_console_put_char_ex, [ :pointer, :int, :int, :int, Color.val, Color.val ], :void + tcod_function :TCOD_console_set_background_flag, [ :pointer, TCOD_bkgnd_flag_t ], :void + tcod_function :TCOD_console_get_background_flag, [ :pointer ], TCOD_bkgnd_flag_t + tcod_function :TCOD_console_set_alignment, [ :pointer, TCOD_alignment_t ], :void + tcod_function :TCOD_console_get_alignment, [ :pointer ], TCOD_alignment_t + tcod_function :TCOD_console_print, [ :pointer, :int, :int, :string, :varargs ], :void + tcod_function :TCOD_console_print_ex, [ :pointer, :int, :int, TCOD_bkgnd_flag_t, TCOD_alignment_t, :string, :varargs ], :void + tcod_function :TCOD_console_print_rect, [ :pointer, :int, :int, :int, :int, :string, :varargs ], :int + tcod_function :TCOD_console_print_rect_ex, [ :pointer, :int, :int, :int, :int, TCOD_bkgnd_flag_t, TCOD_alignment_t, :string, :varargs ], :int + tcod_function :TCOD_console_get_height_rect, [ :pointer, :int, :int, :int, :int, :string, :varargs ], :int + tcod_function :TCOD_console_rect, [ :pointer, :int, :int, :int, :int, :bool, TCOD_bkgnd_flag_t ], :void + tcod_function :TCOD_console_hline, [ :pointer, :int, :int, :int, TCOD_bkgnd_flag_t ], :void + tcod_function :TCOD_console_vline, [ :pointer, :int, :int, :int, TCOD_bkgnd_flag_t ], :void + tcod_function :TCOD_console_print_frame, [ :pointer, :int, :int, :int, :int, :bool, TCOD_bkgnd_flag_t, :string, :varargs ], :void + tcod_function :TCOD_console_map_string_to_font_utf, [ :pointer, :int, :int ], :void + tcod_function :TCOD_console_print_utf, [ :pointer, :int, :int, :pointer, :varargs ], :void + tcod_function :TCOD_console_print_ex_utf, [ :pointer, :int, :int, TCOD_bkgnd_flag_t, TCOD_alignment_t, :pointer, :varargs ], :void + tcod_function :TCOD_console_print_rect_utf, [ :pointer, :int, :int, :int, :int, :pointer, :varargs ], :int + tcod_function :TCOD_console_print_rect_ex_utf, [ :pointer, :int, :int, :int, :int, TCOD_bkgnd_flag_t, TCOD_alignment_t, :pointer, :varargs ], :int + tcod_function :TCOD_console_get_height_rect_utf, [ :pointer, :int, :int, :int, :int, :pointer, :varargs ], :int + tcod_function :TCOD_console_get_default_background, [ :pointer ], Color.val + tcod_function :TCOD_console_get_default_foreground, [ :pointer ], Color.val + tcod_function :TCOD_console_get_char_background, [ :pointer, :int, :int ], Color.val + tcod_function :TCOD_console_get_char_foreground, [ :pointer, :int, :int ], Color.val + tcod_function :TCOD_console_get_char, [ :pointer, :int, :int ], :int + tcod_function :TCOD_console_set_fade, [ :uchar, Color.val ], :void + tcod_function :TCOD_console_get_fade, [ ], :uchar + tcod_function :TCOD_console_get_fading_color, [ ], Color.val + tcod_function :TCOD_console_flush, [ ], :void + tcod_function :TCOD_console_set_color_control, [ TCOD_colctrl_t, Color.val, Color.val ], :void + tcod_function :TCOD_console_check_for_keypress, [ :int ], Key.val + tcod_function :TCOD_console_wait_for_keypress, [ :bool ], Key.val + tcod_function :TCOD_console_set_keyboard_repeat, [ :int, :int ], :void + tcod_function :TCOD_console_disable_keyboard_repeat, [ ], :void + tcod_function :TCOD_console_is_key_pressed, [ TCOD_keycode_t ], :bool + tcod_function :TCOD_console_from_file, [ :string ], :pointer + tcod_function :TCOD_console_load_asc, [ :pointer, :string ], :bool + tcod_function :TCOD_console_load_apf, [ :pointer, :string ], :bool + tcod_function :TCOD_console_save_asc, [ :pointer, :string ], :bool + tcod_function :TCOD_console_save_apf, [ :pointer, :string ], :bool + tcod_function :TCOD_console_new, [ :int, :int ], :pointer + tcod_function :TCOD_console_get_width, [ :pointer ], :int + tcod_function :TCOD_console_get_height, [ :pointer ], :int + tcod_function :TCOD_console_set_key_color, [ :pointer, Color.val ], :void + tcod_function :TCOD_console_blit, [ :pointer, :int, :int, :int, :int, :pointer, :int, :int, :float, :float ], :void + tcod_function :TCOD_console_delete, [ :pointer ], :void + tcod_function :TCOD_console_credits, [ ], :void + tcod_function :TCOD_console_credits_reset, [ ], :void + tcod_function :TCOD_console_credits_render, [ :int, :int, :bool ], :bool + + ### System module + EVENT_KEY_PRESS = 1 + EVENT_MOUSE_RELEASE = 16 + EVENT_KEY_RELEASE = 2 + EVENT_MOUSE_MOVE = 4 + EVENT_MOUSE_PRESS = 8 + EVENT_MOUSE = EVENT_MOUSE_MOVE|EVENT_MOUSE_PRESS|EVENT_MOUSE_RELEASE + EVENT_KEY = EVENT_KEY_PRESS|EVENT_KEY_RELEASE + EVENT_ANY = EVENT_KEY|EVENT_MOUSE + + TCOD_image_t = :pointer + TCOD_list_t = :pointer + + tcod_function :TCOD_sys_elapsed_milli, [ ], :uint32 + tcod_function :TCOD_sys_elapsed_seconds, [ ], :float + tcod_function :TCOD_sys_sleep_milli, [ :uint32 ], :void + tcod_function :TCOD_sys_save_screenshot, [ :string ], :void + tcod_function :TCOD_sys_force_fullscreen_resolution, [ :int, :int ], :void + tcod_function :TCOD_sys_set_renderer, [ TCOD_renderer_t ], :void + tcod_function :TCOD_sys_get_renderer, [ ], TCOD_renderer_t + tcod_function :TCOD_sys_set_fps, [ :int ], :void + tcod_function :TCOD_sys_get_fps, [ ], :int + tcod_function :TCOD_sys_get_last_frame_length, [ ], :float + tcod_function :TCOD_sys_get_current_resolution, [ :pointer, :pointer ], :void + tcod_function :TCOD_sys_get_fullscreen_offsets, [ :pointer, :pointer ], :void + tcod_function :TCOD_sys_update_char, [ :int, :int, :int, TCOD_image_t, :int, :int ], :void + tcod_function :TCOD_sys_get_char_size, [ :pointer, :pointer ], :void + #tcod_function :TCOD_sys_get_sdl_window, [ ], :pointer + + tcod_function :TCOD_sys_wait_for_event, [ :int, :pointer, :pointer, :bool ], :int + tcod_function :TCOD_sys_check_for_event, [ :int, :pointer, :pointer ], :int + tcod_function :TCOD_sys_create_directory, [ :string ], :bool + tcod_function :TCOD_sys_delete_file, [ :string ], :bool + tcod_function :TCOD_sys_delete_directory, [ :string ], :bool + tcod_function :TCOD_sys_is_directory, [ :string ], :bool + tcod_function :TCOD_sys_get_directory_content, [ :string, :string ], TCOD_list_t + tcod_function :TCOD_sys_file_exists, [ :string, :varargs ], :bool + tcod_function :TCOD_sys_read_file, [ :string, :pointer, :pointer ], :bool + tcod_function :TCOD_sys_write_file, [ :string, :pointer, :uint32 ], :bool + tcod_function :TCOD_sys_clipboard_set, [ :string ], :void + tcod_function :TCOD_sys_clipboard_get, [ ], :string + tcod_function :TCOD_thread_new, [ callback([ :pointer ], :int), :pointer ], :pointer + tcod_function :TCOD_thread_delete, [ :pointer ], :void + tcod_function :TCOD_sys_get_num_cores, [ ], :int + tcod_function :TCOD_thread_wait, [ :pointer ], :void + tcod_function :TCOD_mutex_new, [ ], :pointer + tcod_function :TCOD_mutex_in, [ :pointer ], :void + tcod_function :TCOD_mutex_out, [ :pointer ], :void + tcod_function :TCOD_mutex_delete, [ :pointer ], :void + tcod_function :TCOD_semaphore_new, [ :int ], :pointer + tcod_function :TCOD_semaphore_lock, [ :pointer ], :void + tcod_function :TCOD_semaphore_unlock, [ :pointer ], :void + tcod_function :TCOD_semaphore_delete, [ :pointer ], :void + tcod_function :TCOD_condition_new, [ ], :pointer + tcod_function :TCOD_condition_signal, [ :pointer ], :void + tcod_function :TCOD_condition_broadcast, [ :pointer ], :void + tcod_function :TCOD_condition_wait, [ :pointer, :pointer ], :void + tcod_function :TCOD_condition_delete, [ :pointer ], :void + tcod_function :TCOD_load_library, [ :string ], :pointer + tcod_function :TCOD_get_function_address, [ :pointer, :string ], :pointer + tcod_function :TCOD_close_library, [ :pointer ], :void + callback(:SDL_renderer_t, [ :pointer ], :void) + tcod_function :TCOD_sys_register_SDL_renderer, [ :SDL_renderer_t ], :void + + ### Line module + class BresenhamData < MethodStruct + layout( + :stepx, :int, + :stepy, :int, + :e, :int, + :deltax, :int, + :deltay, :int, + :origx, :int, + :origy, :int, + :destx, :int, + :desty, :int + ) + end + callback(:TCOD_line_listener_t, [ :int, :int ], :bool) + tcod_function :TCOD_line_init, [ :int, :int, :int, :int ], :void + tcod_function :TCOD_line_step, [ :pointer, :pointer ], :bool + tcod_function :TCOD_line, [ :int, :int, :int, :int, :TCOD_line_listener_t ], :bool + tcod_function :TCOD_line_init_mt, [ :int, :int, :int, :int, :pointer ], :void + tcod_function :TCOD_line_step_mt, [ :pointer, :pointer, :pointer ], :bool + tcod_function :TCOD_line_mt, [ :int, :int, :int, :int, :TCOD_line_listener_t, :pointer ], :bool + + ### Image module + tcod_function :TCOD_image_new, [ :int, :int ], :pointer + tcod_function :TCOD_image_from_console, [ TCOD_console_t ], :pointer + tcod_function :TCOD_image_refresh_console, [ :pointer, TCOD_console_t ], :void + tcod_function :TCOD_image_load, [ :string ], :pointer + tcod_function :TCOD_image_clear, [ :pointer, Color.val ], :void + tcod_function :TCOD_image_invert, [ :pointer ], :void + tcod_function :TCOD_image_hflip, [ :pointer ], :void + tcod_function :TCOD_image_rotate90, [ :pointer, :int ], :void + tcod_function :TCOD_image_vflip, [ :pointer ], :void + tcod_function :TCOD_image_scale, [ :pointer, :int, :int ], :void + tcod_function :TCOD_image_save, [ :pointer, :string ], :void + tcod_function :TCOD_image_get_size, [ :pointer, :pointer, :pointer ], :void + tcod_function :TCOD_image_get_pixel, [ :pointer, :int, :int ], Color.val + tcod_function :TCOD_image_get_alpha, [ :pointer, :int, :int ], :int + tcod_function :TCOD_image_get_mipmap_pixel, [ :pointer, :float, :float, :float, :float ], Color.val + tcod_function :TCOD_image_put_pixel, [ :pointer, :int, :int, Color.val ], :void + tcod_function :TCOD_image_blit, [ :pointer, TCOD_console_t, :float, :float, TCOD_bkgnd_flag_t, :float, :float, :float ], :void + tcod_function :TCOD_image_blit_rect, [ :pointer, TCOD_console_t, :int, :int, :int, :int, TCOD_bkgnd_flag_t ], :void + tcod_function :TCOD_image_blit_2x, [ :pointer, TCOD_console_t, :int, :int, :int, :int, :int, :int ], :void + tcod_function :TCOD_image_delete, [ :pointer ], :void + tcod_function :TCOD_image_set_key_color, [ :pointer, Color.val ], :void + tcod_function :TCOD_image_is_pixel_transparent, [ :pointer, :int, :int ], :bool + + ### Mouse module + class MouseStatus < MethodStruct + layout( + :x, :int, + :y, :int, + :dx, :int, + :dy, :int, + :cx, :int, + :cy, :int, + :dcx, :int, + :dcy, :int, + :lbutton, :bool, + :rbutton, :bool, + :mbutton, :bool, + :lbutton_pressed, :bool, + :rbutton_pressed, :bool, + :mbutton_pressed, :bool, + :wheel_up, :bool, + :wheel_down, :bool + ) + end + attach_function :TCOD_mouse_show_cursor, [ :bool ], :void + attach_function :TCOD_mouse_get_status, [ ], MouseStatus + attach_function :TCOD_mouse_is_cursor_visible, [ ], :bool + attach_function :TCOD_mouse_move, [ :int, :int ], :void + #attach_function :TCOD_mouse_includes_touch, [ :bool ], :void + + ### Parser module + TYPE_NONE = 0 + TYPE_BOOL = 1 + TYPE_VALUELIST02 = 10 + TYPE_LIST = 1024 + TYPE_VALUELIST03 = 11 + TYPE_VALUELIST04 = 12 + TYPE_VALUELIST05 = 13 + TYPE_VALUELIST06 = 14 + TYPE_VALUELIST07 = 15 + TYPE_VALUELIST08 = 16 + TYPE_VALUELIST09 = 17 + TYPE_VALUELIST10 = 18 + TYPE_VALUELIST11 = 19 + TYPE_CHAR = 2 + TYPE_VALUELIST12 = 20 + TYPE_VALUELIST13 = 21 + TYPE_VALUELIST14 = 22 + TYPE_VALUELIST15 = 23 + TYPE_CUSTOM00 = 24 + TYPE_CUSTOM01 = 25 + TYPE_CUSTOM02 = 26 + TYPE_CUSTOM03 = 27 + TYPE_CUSTOM04 = 28 + TYPE_CUSTOM05 = 29 + TYPE_INT = 3 + TYPE_CUSTOM06 = 30 + TYPE_CUSTOM07 = 31 + TYPE_CUSTOM08 = 32 + TYPE_CUSTOM09 = 33 + TYPE_CUSTOM10 = 34 + TYPE_CUSTOM11 = 35 + TYPE_CUSTOM12 = 36 + TYPE_CUSTOM13 = 37 + TYPE_CUSTOM14 = 38 + TYPE_CUSTOM15 = 39 + TYPE_FLOAT = 4 + TYPE_STRING = 5 + TYPE_COLOR = 6 + TYPE_DICE = 7 + TYPE_VALUELIST00 = 8 + TYPE_VALUELIST01 = 9 + + class Dice < MethodStruct + layout( + :nb_rolls, :int, + :nb_faces, :int, + :multiplier, :float, + :addsub, :float + ) + end + + class TCODValueT < MethodUnion + layout( + :b, :bool, + :c, :char, + :i, :int32, + :f, :float, + :s, :pointer, + :col, Color, + :dice, Dice, + :list, TCOD_list_t, + :custom, :pointer + ) + def s=(str) + @s = FFI::MemoryPointer.from_string(str) + self[:s] = @s + end + def s + @s.get_string(0) + end + end + + class TCODStructIntT < MethodStruct + layout( + :name, :pointer, + :flags, TCOD_list_t, + :props, TCOD_list_t, + :lists, TCOD_list_t, + :structs, TCOD_list_t + ) + def name=(str) + @name = FFI::MemoryPointer.from_string(str) + self[:name] = @name + end + def name + @name.get_string(0) + end + end + + callback(:TCOD_parser_custom_t, [ :pointer, :pointer, :pointer, :string ], TCODValueT.val) + class TCODParserIntT < MethodStruct + layout( + :structs, TCOD_list_t, + :customs, [:TCOD_parser_custom_t, 16], + :fatal, :bool, + :props, TCOD_list_t + ) + end + + class TCODParserListenerT < MethodStruct + layout( + :new_struct, callback([ :pointer, :string ], :bool), + :new_flag, callback([ :string ], :bool), + :new_property, callback([ :string, :int, TCODValueT ], :bool), + :end_struct, callback([ :pointer, :string ], :bool), + :error, callback([ :string ], :void) + ) + end + + tcod_function :TCOD_struct_get_name, [ :pointer ], :string + tcod_function :TCOD_struct_add_property, [ :pointer, :string, :int, :bool ], :void + tcod_function :TCOD_struct_add_list_property, [ :pointer, :string, :int, :bool ], :void + tcod_function :TCOD_struct_add_value_list, [ :pointer, :string, :pointer, :bool ], :void + tcod_function :TCOD_struct_add_value_list_sized, [ :pointer, :string, :pointer, :int, :bool ], :void + tcod_function :TCOD_struct_add_flag, [ :pointer, :string ], :void + tcod_function :TCOD_struct_add_structure, [ :pointer, :pointer ], :void + tcod_function :TCOD_struct_is_mandatory, [ :pointer, :string ], :bool + tcod_function :TCOD_struct_get_type, [ :pointer, :string ], :int + + tcod_function :TCOD_parser_new, [ ], :pointer + tcod_function :TCOD_parser_new_struct, [ :pointer, :string ], :pointer + tcod_function :TCOD_parser_new_custom_type, [ :pointer, :TCOD_parser_custom_t ], :int + tcod_function :TCOD_parser_run, [ :pointer, :string, :pointer ], :void + tcod_function :TCOD_parser_delete, [ :pointer ], :void + tcod_function :TCOD_parser_error, [ :string, :varargs ], :void + tcod_function :TCOD_parser_get_bool_property, [ :pointer, :string ], :bool + tcod_function :TCOD_parser_get_char_property, [ :pointer, :string ], :int + tcod_function :TCOD_parser_get_int_property, [ :pointer, :string ], :int + tcod_function :TCOD_parser_get_float_property, [ :pointer, :string ], :float + tcod_function :TCOD_parser_get_string_property, [ :pointer, :string ], :string + tcod_function :TCOD_parser_get_color_property, [ :pointer, :string ], Color.val + tcod_function :TCOD_parser_get_dice_property, [ :pointer, :string ], Dice.val + tcod_function :TCOD_parser_get_dice_property_py, [ :pointer, :string, :pointer ], :void + tcod_function :TCOD_parser_get_custom_property, [ :pointer, :string ], :pointer + tcod_function :TCOD_parser_get_list_property, [ :pointer, :string, :int ], TCOD_list_t + + tcod_function :TCOD_parse_bool_value, [ ], TCODValueT + tcod_function :TCOD_parse_char_value, [ ], TCODValueT + tcod_function :TCOD_parse_integer_value, [ ], TCODValueT + tcod_function :TCOD_parse_float_value, [ ], TCODValueT + tcod_function :TCOD_parse_string_value, [ ], TCODValueT + tcod_function :TCOD_parse_color_value, [ ], TCODValueT + tcod_function :TCOD_parse_dice_value, [ ], TCODValueT + tcod_function :TCOD_parse_value_list_value, [ :pointer, :int ], TCODValueT + tcod_function :TCOD_parse_property_value, [ :pointer, :pointer, :string, :bool ], TCODValueT + + ### Random module + RNG_MT = 0 + RNG_CMWC = 1 + + DISTRIBUTION_LINEAR = 0 + DISTRIBUTION_GAUSSIAN = 1 + DISTRIBUTION_GAUSSIAN_RANGE = 2 + DISTRIBUTION_GAUSSIAN_INVERSE = 3 + DISTRIBUTION_GAUSSIAN_RANGE_INVERSE = 4 + + TCOD_random_algo_t = :int + TCOD_distribution_t = :int + TCOD_random_t = :pointer + + tcod_function :TCOD_random_get_instance, [ ], :pointer + tcod_function :TCOD_random_new, [ TCOD_random_algo_t ], :pointer + tcod_function :TCOD_random_save, [ :pointer ], :pointer + tcod_function :TCOD_random_restore, [ :pointer, :pointer ], :void + tcod_function :TCOD_random_new_from_seed, [ TCOD_random_algo_t, :uint32 ], :pointer + tcod_function :TCOD_random_delete, [ :pointer ], :void + tcod_function :TCOD_random_set_distribution, [ :pointer, TCOD_distribution_t ], :void + tcod_function :TCOD_random_get_int, [ :pointer, :int, :int ], :int + tcod_function :TCOD_random_get_float, [ :pointer, :float, :float ], :float + tcod_function :TCOD_random_get_double, [ :pointer, :double, :double ], :double + tcod_function :TCOD_random_get_int_mean, [ :pointer, :int, :int, :int ], :int + tcod_function :TCOD_random_get_float_mean, [ :pointer, :float, :float, :float ], :float + tcod_function :TCOD_random_get_double_mean, [ :pointer, :double, :double, :double ], :double + tcod_function :TCOD_random_dice_new, [ :string ], Dice.val + tcod_function :TCOD_random_dice_roll, [ :pointer, Dice.val ], :int + tcod_function :TCOD_random_dice_roll_s, [ :pointer, :string ], :int + + ### Noise module + NOISE_DEFAULT_HURST = 0.5 + NOISE_DEFAULT_LACUNARITY = 2.0 + + NOISE_DEFAULT = 0 + NOISE_PERLIN = 1 + NOISE_SIMPLEX = 2 + NOISE_WAVELET = 4 + + tcod_function :TCOD_noise_new, [ :int, :float, :float, TCOD_random_t ], :pointer + tcod_function :TCOD_noise_set_type, [ :pointer, :int ], :void + tcod_function :TCOD_noise_get_ex, [ :pointer, :pointer, :int ], :float + tcod_function :TCOD_noise_get_fbm_ex, [ :pointer, :pointer, :float, :int ], :float + tcod_function :TCOD_noise_get_turbulence_ex, [ :pointer, :pointer, :float, :int ], :float + tcod_function :TCOD_noise_get, [ :pointer, :pointer ], :float + tcod_function :TCOD_noise_get_fbm, [ :pointer, :pointer, :float ], :float + tcod_function :TCOD_noise_get_turbulence, [ :pointer, :pointer, :float ], :float + tcod_function :TCOD_noise_delete, [ :pointer ], :void + + ### FOV module + FOV_BASIC = 0 + FOV_DIAMOND = 1 + FOV_SHADOW = 2 + FOV_PERMISSIVE_0 = 3 + FOV_PERMISSIVE_1 = 4 + FOV_PERMISSIVE_2 = 5 + FOV_PERMISSIVE_3 = 6 + FOV_PERMISSIVE_4 = 7 + FOV_PERMISSIVE_5 = 8 + FOV_PERMISSIVE_6 = 9 + FOV_PERMISSIVE_7 = 10 + FOV_PERMISSIVE_8 = 11 + FOV_RESTRICTIVE = 12 + NB_FOV_ALGORITHMS = 13 + + TCOD_fov_algorithm_t = :int + + tcod_function :TCOD_map_new, [ :int, :int ], :pointer + tcod_function :TCOD_map_clear, [ :pointer, :bool, :bool ], :void + tcod_function :TCOD_map_copy, [ :pointer, :pointer ], :void + tcod_function :TCOD_map_set_properties, [ :pointer, :int, :int, :bool, :bool ], :void + tcod_function :TCOD_map_delete, [ :pointer ], :void + tcod_function :TCOD_map_compute_fov, [ :pointer, :int, :int, :int, :bool, TCOD_fov_algorithm_t ], :void + tcod_function :TCOD_map_is_in_fov, [ :pointer, :int, :int ], :bool + tcod_function :TCOD_map_set_in_fov, [ :pointer, :int, :int, :bool ], :void + tcod_function :TCOD_map_is_transparent, [ :pointer, :int, :int ], :bool + tcod_function :TCOD_map_is_walkable, [ :pointer, :int, :int ], :bool + tcod_function :TCOD_map_get_width, [ :pointer ], :int + tcod_function :TCOD_map_get_height, [ :pointer ], :int + tcod_function :TCOD_map_get_nb_cells, [ :pointer ], :int + + ### Pathfinding module + TCOD_map_t = :pointer + + callback(:TCOD_path_func_t, [ :int, :int, :int, :int, :pointer ], :float) + tcod_function :TCOD_path_new_using_map, [ TCOD_map_t, :float ], :pointer + tcod_function :TCOD_path_new_using_function, [ :int, :int, :TCOD_path_func_t, :pointer, :float ], :pointer + tcod_function :TCOD_path_compute, [ :pointer, :int, :int, :int, :int ], :bool + tcod_function :TCOD_path_walk, [ :pointer, :pointer, :pointer, :bool ], :bool + tcod_function :TCOD_path_is_empty, [ :pointer ], :bool + tcod_function :TCOD_path_size, [ :pointer ], :int + tcod_function :TCOD_path_reverse, [ :pointer ], :void + tcod_function :TCOD_path_get, [ :pointer, :int, :pointer, :pointer ], :void + tcod_function :TCOD_path_get_origin, [ :pointer, :pointer, :pointer ], :void + tcod_function :TCOD_path_get_destination, [ :pointer, :pointer, :pointer ], :void + tcod_function :TCOD_path_delete, [ :pointer ], :void + tcod_function :TCOD_dijkstra_new, [ TCOD_map_t, :float ], :pointer + tcod_function :TCOD_dijkstra_new_using_function, [ :int, :int, :TCOD_path_func_t, :pointer, :float ], :pointer + tcod_function :TCOD_dijkstra_compute, [ :pointer, :int, :int ], :void + tcod_function :TCOD_dijkstra_get_distance, [ :pointer, :int, :int ], :float + tcod_function :TCOD_dijkstra_path_set, [ :pointer, :int, :int ], :bool + tcod_function :TCOD_dijkstra_is_empty, [ :pointer ], :bool + tcod_function :TCOD_dijkstra_size, [ :pointer ], :int + tcod_function :TCOD_dijkstra_reverse, [ :pointer ], :void + tcod_function :TCOD_dijkstra_get, [ :pointer, :int, :pointer, :pointer ], :void + tcod_function :TCOD_dijkstra_path_walk, [ :pointer, :pointer, :pointer ], :bool + tcod_function :TCOD_dijkstra_delete, [ :pointer ], :void + + ### BSP module + class TCODTreeT < FFI::Struct + layout( + :next, :pointer, + :father, :pointer, + :sons, :pointer + ) + end + tcod_function :TCOD_tree_new, [ ], :pointer + tcod_function :TCOD_tree_add_son, [ :pointer, :pointer ], :void + + + class TCODBspT < MethodStruct + layout( + :tree, TCODTreeT, + :x, :int, + :y, :int, + :w, :int, + :h, :int, + :position, :int, + :level, :uint8, + :horizontal, :bool + ) + end + callback(:TCOD_bsp_callback_t, [ :pointer, :pointer ], :bool) + tcod_function :TCOD_bsp_new, [ ], :pointer + tcod_function :TCOD_bsp_new_with_size, [ :int, :int, :int, :int ], :pointer + tcod_function :TCOD_bsp_delete, [ :pointer ], :void + tcod_function :TCOD_bsp_left, [ :pointer ], :pointer + tcod_function :TCOD_bsp_right, [ :pointer ], :pointer + tcod_function :TCOD_bsp_father, [ :pointer ], :pointer + tcod_function :TCOD_bsp_is_leaf, [ :pointer ], :bool + tcod_function :TCOD_bsp_traverse_pre_order, [ :pointer, :TCOD_bsp_callback_t, :pointer ], :bool + tcod_function :TCOD_bsp_traverse_in_order, [ :pointer, :TCOD_bsp_callback_t, :pointer ], :bool + tcod_function :TCOD_bsp_traverse_post_order, [ :pointer, :TCOD_bsp_callback_t, :pointer ], :bool + tcod_function :TCOD_bsp_traverse_level_order, [ :pointer, :TCOD_bsp_callback_t, :pointer ], :bool + tcod_function :TCOD_bsp_traverse_inverted_level_order, [ :pointer, :TCOD_bsp_callback_t, :pointer ], :bool + tcod_function :TCOD_bsp_contains, [ :pointer, :int, :int ], :bool + tcod_function :TCOD_bsp_find_node, [ :pointer, :int, :int ], :pointer + tcod_function :TCOD_bsp_resize, [ :pointer, :int, :int, :int, :int ], :void + tcod_function :TCOD_bsp_split_once, [ :pointer, :bool, :int ], :void + tcod_function :TCOD_bsp_split_recursive, [ :pointer, TCOD_random_t, :int, :int, :int, :float, :float ], :void + tcod_function :TCOD_bsp_remove_sons, [ :pointer ], :void + + ### Heightmap module + class TCODHeightmapT < MethodStruct + layout( + :w, :int, + :h, :int, + :values, :pointer + ) + end + + TCOD_noise_t = :pointer + float_3 = :pointer # float n[3] + int_4 = :pointer + + tcod_function :TCOD_heightmap_new, [ :int, :int ], :pointer + tcod_function :TCOD_heightmap_delete, [ :pointer ], :void + tcod_function :TCOD_heightmap_get_value, [ :pointer, :int, :int ], :float + tcod_function :TCOD_heightmap_get_interpolated_value, [ :pointer, :float, :float ], :float + tcod_function :TCOD_heightmap_set_value, [ :pointer, :int, :int, :float ], :void + tcod_function :TCOD_heightmap_get_slope, [ :pointer, :int, :int ], :float + tcod_function :TCOD_heightmap_get_normal, [ :pointer, :float, :float, float_3, :float ], :void + tcod_function :TCOD_heightmap_count_cells, [ :pointer, :float, :float ], :int + tcod_function :TCOD_heightmap_has_land_on_border, [ :pointer, :float ], :bool + tcod_function :TCOD_heightmap_get_minmax, [ :pointer, :pointer, :pointer ], :void + tcod_function :TCOD_heightmap_copy, [ :pointer, :pointer ], :void + tcod_function :TCOD_heightmap_add, [ :pointer, :float ], :void + tcod_function :TCOD_heightmap_scale, [ :pointer, :float ], :void + tcod_function :TCOD_heightmap_clamp, [ :pointer, :float, :float ], :void + tcod_function :TCOD_heightmap_normalize, [ :pointer, :float, :float ], :void + tcod_function :TCOD_heightmap_clear, [ :pointer ], :void + tcod_function :TCOD_heightmap_lerp_hm, [ :pointer, :pointer, :pointer, :float ], :void + tcod_function :TCOD_heightmap_add_hm, [ :pointer, :pointer, :pointer ], :void + tcod_function :TCOD_heightmap_multiply_hm, [ :pointer, :pointer, :pointer ], :void + tcod_function :TCOD_heightmap_add_hill, [ :pointer, :float, :float, :float, :float ], :void + tcod_function :TCOD_heightmap_dig_hill, [ :pointer, :float, :float, :float, :float ], :void + tcod_function :TCOD_heightmap_dig_bezier, [ :pointer, int_4, int_4, :float, :float, :float, :float ], :void + tcod_function :TCOD_heightmap_rain_erosion, [ :pointer, :int, :float, :float, TCOD_random_t ], :void + tcod_function :TCOD_heightmap_kernel_transform, [ :pointer, :int, :pointer, :pointer, :pointer, :float, :float ], :void + tcod_function :TCOD_heightmap_add_voronoi, [ :pointer, :int, :int, :pointer, TCOD_random_t ], :void + tcod_function :TCOD_heightmap_add_fbm, [ :pointer, TCOD_noise_t, :float, :float, :float, :float, :float, :float, :float ], :void + tcod_function :TCOD_heightmap_scale_fbm, [ :pointer, TCOD_noise_t, :float, :float, :float, :float, :float, :float, :float ], :void + tcod_function :TCOD_heightmap_islandify, [ :pointer, :float, TCOD_random_t ], :void + + + ### Name Generator module + tcod_function :TCOD_namegen_parse, [ :string, TCOD_random_t ], :void + tcod_function :TCOD_namegen_generate, [ :string, :bool ], :string + tcod_function :TCOD_namegen_generate_custom, [ :string, :string, :bool ], :string + tcod_function :TCOD_namegen_get_sets, [ ], TCOD_list_t + tcod_function :TCOD_namegen_destroy, [ ], :void +end