I'd like a way to check if binary compatibility is broken between versions... I update the wiki with these changes from time to time.
Is there a magic app out there that when I drop DSB.EXE onto it will iterate over all of those dsb_* functions and produce a text file of function signatures?
Signatures of dsb_* functions
Moderator: Sophia
Forum rules
Please read the Forum rules and policies before posting. You may
to help finance the hosting costs of this forum.
Please read the Forum rules and policies before posting. You may

- Sophia
- Concise and Honest
- Posts: 4306
- Joined: Thu Sep 12, 2002 9:50 pm
- Location: Nowhere in particular
- Contact:
Re: DSB Version 0.37
You actually don't have to worry about this, because DSB checks automatically. For example, I broke binary compatibility between 0.36 and 0.37, and DSB 0.37 will refuse to load dungeon.dsb files from 0.36 or before. (A dungeon.lua will still compile, of course!)ian_scho wrote:I'd like a way to check if binary compatibility is broken between versions... I update the wiki with these changes from time to time.
Unfortunately, Lua doesn't have function signatures, as such. This can be both good and bad at times. I can certainly give you a list of the names of all dsb_* functions, most of which have their parameters already documented on the wiki.ian_scho wrote:there a magic app out there that when I drop DSB.EXE onto it will iterate over all of those dsb_* functions and produce a text file of function signatures?
Here it is ripped right out of the source files for DSB.exe and lua.dat:
Code: Select all
"dsb_insts",
"dsb_in_obj",
"dsb_add_msgtype",
"dsb_game_end",
"dsb_include_file",
"dsb_get_bitmap",
"dsb_clone_bitmap",
"dsb_get_mask_bitmap",
"dsb_get_sound",
"dsb_music",
"dsb_get_font",
"dsb_destroy_bitmap",
"dsb_new_bitmap",
"dsb_screen_bitmap",
"dsb_bitmap_blit",
"dsb_bitmap_width",
"dsb_bitmap_height",
"dsb_bitmap_textout",
"dsb_bitmap_draw",
"dsb_bitmap_rect",
"dsb_cache_invalidate",
"dsb_viewport",
"dsb_make_wallset",
"dsb_make_wallset_ext",
"dsb_image2map",
"dsb_text2map",
"dsb_party_place",
"dsb_level_wallset",
"dsb_level_tint",
"dsb_level_getinfo",
"dsb_spawn",
"dsb_move",
"dsb_move_moncol",
"dsb_reposition",
"dsb_tileptr_exch",
"dsb_collide",
"dsb_delete",
"dsb_enable",
"dsb_disable",
"dsb_toggle",
"dsb_get_cell",
"dsb_set_cell",
"dsb_visited",
"dsb_forward",
"dsb_get_condition",
"dsb_set_condition",
"dsb_add_condition",
"dsb_replace_condition",
"dsb_add_champion",
"dsb_fetch",
"dsb_qswap",
"dsb_swap",
"dsb_offer_champion",
"dsb_get_gfxflag",
"dsb_set_gfxflag",
"dsb_clear_gfxflag",
"dsb_toggle_gfxflag",
"dsb_get_mpartyflag",
"dsb_set_mpartyflag",
"dsb_clear_mpartyflag",
"dsb_toggle_mpartyflag",
"dsb_get_charge",
"dsb_set_charge",
"dsb_get_crop",
"dsb_set_crop",
"dsb_subrenderer_target",
"dsb_dungeon_view",
"dsb_bitmap_clear",
"dsb_objzone",
"dsb_msgzone",
"dsb_find_arch",
"dsb_party_coords",
"dsb_party_at",
"dsb_party_contains",
"dsb_party_viewing",
"dsb_party_affecting",
"dsb_party_apush",
"dsb_party_apop",
"dsb_hide_mouse",
"dsb_show_mouse",
"dsb_push_mouse",
"dsb_pop_mouse",
"dsb_shoot",
"dsb_animate",
"dsb_get_coords",
"dsb_sound",
"dsb_3dsound",
"dsb_stopsound",
"dsb_checksound",
"dsb_get_soundvol",
"dsb_set_soundvol",
"dsb_get_flystate",
"dsb_get_sleepstate",
"dsb_wakeup",
"dsb_set_openshot",
"dsb_set_flyrate",
"dsb_get_facedir",
"dsb_set_facedir",
"dsb_get_hp",
"dsb_set_hp",
"dsb_get_maxhp",
"dsb_set_maxhp",
"dsb_set_tint",
"dsb_get_pfacing",
"dsb_set_pfacing",
"dsb_get_charname",
"dsb_get_load",
"dsb_get_maxload",
"dsb_get_food",
"dsb_set_food",
"dsb_get_water",
"dsb_set_water",
"dsb_get_idle",
"dsb_set_idle",
"dsb_get_stat",
"dsb_set_stat",
"dsb_get_maxstat",
"dsb_set_maxstat",
"dsb_get_injury",
"dsb_set_injury",
"dsb_update_inventory_info",
"dsb_update_system",
"dsb_current_inventory",
"dsb_delay_func",
"dsb_write",
"dsb_get_bar",
"dsb_set_bar",
"dsb_get_maxbar",
"dsb_set_maxbar",
"dsb_damage_popup",
"dsb_ppos_char",
"dsb_char_ppos",
"dsb_ppos_tile",
"dsb_tile_ppos",
"dsb_get_xp_multiplier",
"dsb_set_xp_multiplier",
"dsb_give_xp",
"dsb_get_xp",
"dsb_set_xp",
"dsb_get_temp_xp",
"dsb_set_temp_xp",
"dsb_xp_level",
"dsb_xp_level_nobonus",
"dsb_get_bonus",
"dsb_set_bonus",
"dsb_msg",
"dsb_msg_chain",
"dsb_delay_msgs_to",
"dsb_lock_game",
"dsb_unlock_game",
"dsb_get_gamelocks",
"dsb_tileshift",
"dsb_rand",
"dsb_attack_text",
"dsb_attack_damage",
"dsb_export",
"dsb_replace_methods",
"dsb_linesplit",
"dsb_get_gameflag",
"dsb_set_gameflag",
"dsb_clear_gameflag",
"dsb_toggle_gameflag",
"dsb_ai",
"dsb_ai_boss",
"dsb_ai_subordinates",
"dsb_ai_promote",
"dsb_get_light",
"dsb_get_light_total",
"dsb_set_light",
"dsb_set_light_totalmax",
"dsb_replace_portrait",
"dsb_replace_charhand",
"dsb_replace_inventory",
"dsb_get_exviewinst",
"dsb_set_exviewinst",
"dsb_get_leader",
"dsb_lookup_global",
"dsb_textformat",
"dsb_champion_toparty",
"dsb_champion_fromparty",
"dsb_party_scanfor",
"dsb_spawnburst_begin",
"dsb_spawnburst_end",
"dsb_fullscreen",
"dsb_alt_wallset",
"dsb_override_floor",
"dsb_override_roof",
"dsb_wallset_flip_floor",
"dsb_wallset_flip_roof",
"dsb_lastmethod",
"dsb_import_arch",
"dsb_get_pendingspell",
"dsb_set_pendingspell"
Re: Signatures of dsb_* functions
Ohh thanks for the list - I'll pop some of the missing ones into the wiki when I have the time! I've used these functions as ideas for new dungeon mechanics... For there is an equivalent page for RTC users 

- Sophia
- Concise and Honest
- Posts: 4306
- Joined: Thu Sep 12, 2002 9:50 pm
- Location: Nowhere in particular
- Contact:
Re: Signatures of dsb_* functions
A lot of them are already there, or of the "if you don't know what this is for, you probably don't need it" mentality-- or both, sometimes. If you have questions and need clarifications beyond what is illustrated by browsing the base code, though, feel free to ask. I know my documentation of this stuff isn't the best, and I appreciate your efforts in keeping the wiki up to date. 
