Signatures of dsb_* functions

This forum is for the Lua scriptable clone of DM/CSB called Dungeon Strikes Back by Sophia. Use DSB to build your own highly customised games.

Moderator: Sophia

Forum rules
Please read the Forum rules and policies before posting.
Post Reply
User avatar
ian_scho
High Lord
Posts: 2806
Joined: Fri Apr 07, 2006 8:30 am
Location: Zaragoza, Spain

Signatures of dsb_* functions

Post by ian_scho »

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?
User avatar
Sophia
Concise and Honest
Posts: 4240
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Re: DSB Version 0.37

Post by Sophia »

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.
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: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?
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.

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"
User avatar
ian_scho
High Lord
Posts: 2806
Joined: Fri Apr 07, 2006 8:30 am
Location: Zaragoza, Spain

Re: Signatures of dsb_* functions

Post by ian_scho »

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 :)
User avatar
Sophia
Concise and Honest
Posts: 4240
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Re: Signatures of dsb_* functions

Post by Sophia »

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. :)
Post Reply