mirror of
https://github.com/sfall-team/sfall.git
synced 2026-07-27 16:52:34 -07:00
* Added new HOOK_RESTTIMER (#89) * Added "set_rest_mode" and "set_rest_heal_time" script functions.
251 lines
11 KiB
C
251 lines
11 KiB
C
//Recognised modes for set_shader_mode and get_game_mode
|
|
#define WORLDMAP (0x1)
|
|
#define LOCALMAP (0x2) //No point hooking this: would always be 1 at any point at which scripts are running
|
|
#define DIALOG (0x4)
|
|
#define ESCMENU (0x8)
|
|
#define SAVEGAME (0x10)
|
|
#define LOADGAME (0x20)
|
|
#define COMBAT (0x40)
|
|
#define OPTIONS (0x80)
|
|
#define HELP (0x100)
|
|
#define CHARSCREEN (0x200)
|
|
#define PIPBOY (0x400)
|
|
#define PCOMBAT (0x800)
|
|
#define INVENTORY (0x1000)
|
|
#define AUTOMAP (0x2000)
|
|
#define SKILLDEX (0x4000)
|
|
#define INTFACEUSE (0x8000)
|
|
#define INTFACELOOT (0x10000)
|
|
#define BARTER (0x20000)
|
|
#define HEROWIN (0x40000)
|
|
|
|
//Valid arguments to register_hook
|
|
#define HOOK_TOHIT (0)
|
|
#define HOOK_AFTERHITROLL (1)
|
|
#define HOOK_CALCAPCOST (2)
|
|
#define HOOK_DEATHANIM1 (3)
|
|
#define HOOK_DEATHANIM2 (4)
|
|
#define HOOK_COMBATDAMAGE (5)
|
|
#define HOOK_ONDEATH (6)
|
|
#define HOOK_FINDTARGET (7)
|
|
#define HOOK_USEOBJON (8)
|
|
#define HOOK_REMOVEINVENOBJ (9)
|
|
#define HOOK_BARTERPRICE (10)
|
|
#define HOOK_MOVECOST (11)
|
|
#define HOOK_HEXMOVEBLOCKING (12)
|
|
#define HOOK_HEXAIBLOCKING (13)
|
|
#define HOOK_HEXSHOOTBLOCKING (14)
|
|
#define HOOK_HEXSIGHTBLOCKING (15)
|
|
#define HOOK_ITEMDAMAGE (16)
|
|
#define HOOK_AMMOCOST (17)
|
|
#define HOOK_USEOBJ (18)
|
|
#define HOOK_KEYPRESS (19)
|
|
#define HOOK_MOUSECLICK (20)
|
|
#define HOOK_USESKILL (21)
|
|
#define HOOK_STEAL (22)
|
|
#define HOOK_WITHINPERCEPTION (23)
|
|
#define HOOK_INVENTORYMOVE (24)
|
|
#define HOOK_INVENWIELD (25)
|
|
#define HOOK_ADJUSTFID (26)
|
|
#define HOOK_COMBATTURN (27)
|
|
#define HOOK_CARTRAVEL (28)
|
|
#define HOOK_SETGLOBALVAR (29)
|
|
#define HOOK_RESTTIMER (30)
|
|
|
|
//Valid arguments to list_begin
|
|
#define LIST_CRITTERS (0)
|
|
#define LIST_GROUNDITEMS (1)
|
|
#define LIST_SCENERY (2)
|
|
#define LIST_WALLS (3)
|
|
//#define LIST_TILES (4) //Not listable via sfall list functions
|
|
#define LIST_MISC (5)
|
|
#define LIST_SPATIAL (6)
|
|
#define LIST_ALL (9)
|
|
|
|
//Valid flags for force_encounter_with_flags
|
|
#define ENCOUNTER_FLAG_NO_CAR (1)
|
|
|
|
//The attack types returned by get_attack_type
|
|
#define ATKTYPE_LWEP1 (0)
|
|
#define ATKTYPE_LWEP2 (1)
|
|
#define ATKTYPE_RWEP1 (2)
|
|
#define ATKTYPE_RWEP2 (3)
|
|
#define ATKTYPE_PUNCH (4)
|
|
#define ATKTYPE_KICK (5)
|
|
#define ATKTYPE_LWEP_RELOAD (6)
|
|
#define ATKTYPE_RWEP_RELOAD (7)
|
|
#define ATKTYPE_STRONGPUNCH (8)
|
|
#define ATKTYPE_HAMMERPUNCH (9)
|
|
#define ATKTYPE_HAYMAKER (10)
|
|
#define ATKTYPE_JAB (11)
|
|
#define ATKTYPE_PALMSTRIKE (12)
|
|
#define ATKTYPE_PIERCINGSTRIKE (13)
|
|
#define ATKTYPE_STRONGKICK (14)
|
|
#define ATKTYPE_SNAPKICK (15)
|
|
#define ATKTYPE_POWERKICK (16)
|
|
#define ATKTYPE_HIPKICK (17)
|
|
#define ATKTYPE_HOOKKICK (18)
|
|
#define ATKTYPE_PIERCINGKICK (19)
|
|
|
|
//Some possible values for the 4th argument to hs_removeinvobj
|
|
#define RMOBJ_DROP (0x49B875) //If the object is dropped manually by the player from the inventory screen
|
|
#define RMOBJ_TRADE (0x47761D) //If the object is offered up as a trade
|
|
#define RMOBJ_DROPMULTI (0x45C1CF) //When dropping a part of a stack (RMOBJ_DROP occures first)
|
|
|
|
//Return values for "typeof"
|
|
#define VALTYPE_NONE (0) // not used yet
|
|
#define VALTYPE_INT (1)
|
|
#define VALTYPE_FLOAT (2)
|
|
#define VALTYPE_STR (3)
|
|
|
|
//Arrays defines
|
|
|
|
// create persistent list
|
|
#define create_array_list(size) (create_array(size, 0))
|
|
// create temporary list
|
|
#define temp_array_list(size) (temp_array(size, 0))
|
|
// create persistent map
|
|
#define create_array_map (create_array(-1, 0))
|
|
// create temporary map
|
|
#define temp_array_map (temp_array(-1, 0))
|
|
// true if array is map, false otherwise
|
|
#define array_is_map(x) (array_key(x, -1) == 1)
|
|
// returns temp list with names of all arrays saved with save_array() in alphabetical order
|
|
#define list_saved_arrays (load_array("...all_arrays..."))
|
|
// removes array from savegame
|
|
#define unsave_array(x) save_array(0, x)
|
|
// true if given item exists in given array, false otherwise
|
|
#define is_in_array(item, array) (scan_array(array, item) != -1)
|
|
// true if given array exists, false otherwise
|
|
#define array_exists(array) (len_array(array) != -1)
|
|
// remove all elements from array
|
|
#define clear_array(array) resize_array(array, 0)
|
|
// sort array in ascending order
|
|
#define sort_array(array) resize_array(array, -2)
|
|
// sort array in descending order
|
|
#define sort_array_reverse(array) resize_array(array, -3)
|
|
// reverse elements in list
|
|
#define reverse_array(array) resize_array(array, -4)
|
|
// randomly shuffle elements in list
|
|
#define shuffle_array(array) resize_array(array, -5)
|
|
// remove element from map or just replace value with 0 for list
|
|
#define unset_array(array, item) set_array(array, item, 0)
|
|
// same as "key_pressed" but checks VK codes instead of DX codes
|
|
#define key_pressed_vk(key) (key_pressed(key bwor 0x80000000))
|
|
|
|
#define set_attack_explosion_pattern(x, y) metarule2_explosions(1, x, y)
|
|
#define set_attack_explosion_art(x, y) metarule2_explosions(2, x, y)
|
|
#define set_attack_explosion_radius(x) metarule2_explosions(3, x, 0)
|
|
#define set_attack_is_explosion(x) metarule2_explosions(4, x, 0)
|
|
#define set_attack_is_explosion_fire set_attack_is_explosion(DMG_fire)
|
|
|
|
|
|
#define GAME_MSG_COMBAT (0)
|
|
#define GAME_MSG_AI (1)
|
|
#define GAME_MSG_SCRNAME (2)
|
|
#define GAME_MSG_MISC (3)
|
|
#define GAME_MSG_CUSTOM (4)
|
|
#define GAME_MSG_INVENTRY (5)
|
|
#define GAME_MSG_ITEM (6)
|
|
#define GAME_MSG_LSGAME (7)
|
|
#define GAME_MSG_MAP (8)
|
|
#define GAME_MSG_OPTIONS (9)
|
|
#define GAME_MSG_PERK (10)
|
|
#define GAME_MSG_PIPBOY (11)
|
|
#define GAME_MSG_QUESTS (12)
|
|
#define GAME_MSG_PROTO (13)
|
|
#define GAME_MSG_SCRIPT (14)
|
|
#define GAME_MSG_SKILL (15)
|
|
#define GAME_MSG_SKILLDEX (16)
|
|
#define GAME_MSG_STAT (17)
|
|
#define GAME_MSG_TRAIT (18)
|
|
#define GAME_MSG_WORLDMAP (19)
|
|
#define GAME_MSG_PRO_ITEM (0x1000)
|
|
#define GAME_MSG_PRO_CRIT (0x1001)
|
|
#define GAME_MSG_PRO_SCEN (0x1002)
|
|
#define GAME_MSG_PRO_WALL (0x1003)
|
|
#define GAME_MSG_PRO_TILE (0x1004)
|
|
#define GAME_MSG_PRO_MISC (0x1005)
|
|
|
|
#define OUTLINE_NONE (0)
|
|
#define OUTLINE_RED_GLOW (0x01)
|
|
#define OUTLINE_RED (0x02)
|
|
#define OUTLINE_GREY (0x04)
|
|
#define OUTLINE_GREEN_GLOW (0x08)
|
|
#define OUTLINE_YELLOW (0x10)
|
|
#define OUTLINE_DARK_YELLOW (0x20)
|
|
#define OUTLINE_PURPLE (0x40)
|
|
|
|
#define CURSOR_MOVEMENT (0)
|
|
#define CURSOR_COMMAND (1)
|
|
#define CURSOR_TARGETING (2)
|
|
|
|
#define mstr_combat(x) (message_str_game(GAME_MSG_COMBAT, x))
|
|
#define mstr_ai(x) (message_str_game(GAME_MSG_AI, x))
|
|
#define mstr_scrname(x) (message_str_game(GAME_MSG_SCRNAME, x))
|
|
#define mstr_misc(x) (message_str_game(GAME_MSG_MISC, x))
|
|
#define mstr_custom(x) (message_str_game(GAME_MSG_CUSTOM, x))
|
|
#define mstr_inventry(x) (message_str_game(GAME_MSG_INVENTRY, x))
|
|
#define mstr_item(x) (message_str_game(GAME_MSG_ITEM, x))
|
|
#define mstr_lsgame(x) (message_str_game(GAME_MSG_LSGAME, x))
|
|
#define mstr_map(x) (message_str_game(GAME_MSG_MAP, x))
|
|
#define mstr_options(x) (message_str_game(GAME_MSG_OPTIONS, x))
|
|
#define mstr_perk(x) (message_str_game(GAME_MSG_PERK, x))
|
|
#define mstr_pipboy(x) (message_str_game(GAME_MSG_PIPBOY, x))
|
|
#define mstr_quests(x) (message_str_game(GAME_MSG_QUESTS, x))
|
|
#define mstr_proto(x) (message_str_game(GAME_MSG_PROTO, x))
|
|
#define mstr_script(x) (message_str_game(GAME_MSG_SCRIPT, x))
|
|
#define mstr_skill(x) (message_str_game(GAME_MSG_SKILL, x))
|
|
#define mstr_skilldex(x) (message_str_game(GAME_MSG_SKILLDEX, x))
|
|
#define mstr_stat(x) (message_str_game(GAME_MSG_STAT, x))
|
|
#define mstr_trait(x) (message_str_game(GAME_MSG_TRAIT, x))
|
|
#define mstr_worldmap(x) (message_str_game(GAME_MSG_WORLDMAP, x))
|
|
|
|
|
|
#define BLOCKING_TYPE_BLOCK (0)
|
|
#define BLOCKING_TYPE_SHOOT (1) // use this for more realistic line-of-sight checks
|
|
#define BLOCKING_TYPE_AI (2)
|
|
#define BLOCKING_TYPE_SIGHT (3) // not really useful (works not as you would expect), game uses this only when checking if you can talk to a person
|
|
|
|
//Rest mode flags
|
|
#define DISABLE_REST (1)
|
|
#define DISABLE_REST_FIX (2)
|
|
#define DISABLE_REST_HEAL (4)
|
|
|
|
#define party_member_list_critters party_member_list(0)
|
|
#define party_member_list_all party_member_list(1)
|
|
|
|
|
|
#define car_gas_amount sfall_func0("car_gas_amount")
|
|
#define critter_inven_obj2(obj, type) sfall_func2("critter_inven_obj2", obj, type)
|
|
#define display_stats sfall_func0("display_stats")
|
|
#define exec_map_update_scripts sfall_func0("exec_map_update_scripts")
|
|
#define floor2(value) sfall_func1("floor2", value)
|
|
#define get_cursor_mode sfall_func0("get_cursor_mode")
|
|
#define get_flags(obj) sfall_func1("get_flags", obj)
|
|
#define get_ini_section(file, sect) sfall_func2("get_ini_section", file, sect)
|
|
#define get_ini_sections(file) sfall_func1("get_ini_sections", file)
|
|
#define get_map_enter_position sfall_func0("get_map_enter_position")
|
|
#define get_outline(obj) sfall_func1("get_outline", obj)
|
|
#define intface_hide sfall_func0("intface_hide")
|
|
#define intface_is_hidden sfall_func0("intface_is_hidden")
|
|
#define intface_redraw sfall_func0("intface_redraw")
|
|
#define intface_show sfall_func0("intface_show")
|
|
#define item_weight(obj) sfall_func1("item_weight", obj)
|
|
#define lock_is_jammed(obj) sfall_func1("lock_is_jammed", obj)
|
|
#define outlined_object sfall_func0("outlined_object")
|
|
#define real_dude_obj sfall_func0("real_dude_obj")
|
|
#define set_car_intface_art(artIndex) sfall_func1("set_car_intface_art", artIndex)
|
|
#define set_cursor_mode(mode) sfall_func1("set_cursor_mode", mode)
|
|
#define set_dude_obj(critter) sfall_func1("set_dude_obj", critter)
|
|
#define set_flags(obj, flags) sfall_func2("set_flags", obj, flags)
|
|
#define set_ini_setting(setting, value) sfall_func2("set_ini_setting", setting, value)
|
|
#define set_map_enter_position(tile, elev, rot) sfall_func3("set_map_enter_position", tile, elev, rot)
|
|
#define set_outline(obj, color) sfall_func2("set_outline", obj, color)
|
|
#define set_rest_heal_time(time) sfall_func1("set_rest_heal_time", time)
|
|
#define set_rest_mode(mode) sfall_func1("set_rest_mode", mode)
|
|
#define set_unjam_locks_time(time) sfall_func1("set_unjam_locks_time", time)
|
|
#define spatial_radius(obj) sfall_func1("spatial_radius", obj)
|
|
#define tile_refresh_display sfall_func0("tile_refresh_display")
|
|
#define unjam_lock(obj) sfall_func1("unjam_lock", obj)
|