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.
Please read the Forum rules and policies before posting.
- Sophia
- Concise and Honest
- Posts: 4240
- 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 ![Smile :)](./images/smilies/icon_e_smile.gif)
![Smile :)](./images/smilies/icon_e_smile.gif)
- Sophia
- Concise and Honest
- Posts: 4240
- 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. ![Smile :)](./images/smilies/icon_e_smile.gif)
![Smile :)](./images/smilies/icon_e_smile.gif)