Sfall funcX macros
Functions
- add_extra_msg_file
- critter_inven_obj2
- dialog_message
- get_current_inven_size
- get_metarule_table
- get_object_ai_data
- get_text_width
- item_weight
- metarule_exist
- npc_engine_level_up
- objects_in_radius
- set_drugs_data
- set_rest_heal_time
- set_rest_mode
- set_worldmap_heal_time
- sfall_func0(“hide_window”)
- sfall_func0(“show_window”)
- sfall_func1(“hide_window”, string winName)
- sfall_func1(“remove_timer_event”, int fixedParam)
- sfall_func1(“show_window”, string winName)
- sfall_func2(“string_compare”, string str1, string str2)
- sfall_func3(“string_compare”, string str1, string str2, int codePage)
- spatial_radius
- void sfall_func0(“remove_timer_event”)
add_extra_msg_file
sfall.h
int add_extra_msg_file(string fileName)
Loads the custom message file, and returns the file ID number assigned to it in range from 0x3000 to 0x3FFF for the message_str_game
function to get messages from the file.
fileName
: the name of the custom message file (including the .msg extension) intext\<language>\game\
directory.
Alternative form: int add_extra_msg_file(string fileName, int fileNumber)
fileNumber
: the file ID number for themessage_str_game
function. The available range is from 0x2000 to 0x2FFF (seeExtraGameMsgFileList
setting inddraw.ini
) UsefileNumber
only if you want to add a message file without editingddraw.ini
or existing scripts to support the old way.
critter_inven_obj2
sfall.h
ObjectPtr critter_inven_obj2(ObjectPtr obj, int type)
Works just like vanilla critter_inven_obj
, but correctly reports item in player’s inactive hand slot.
dialog_message
sfall.h
void dialog_message(string text)
Displays a message in the NPC response window in dialog or barter screen.
get_current_inven_size
sfall.h
get_current_inven_size(ObjectPtr object)
Returns the current inventory size of the container or the critter.
get_metarule_table
sfall.h
array get_metarule_table
Returns names of all currently available script functions.
get_object_ai_data
sfall.h
int get_object_ai_data(ObjectPtr object, int aiParam)
Returns the setting value from the AI packet of an object (critter). Use AI_CAP_*
constants from define_extra.h for the aiParam
argument to get AI value.
get_text_width
sfall.h
int get_text_width(string text)
Returns the text width in pixels for the currently set font.
item_weight
sfall.h
int item_weight(ObjectPtr obj)
Gets the current weight of an object.
metarule_exist
sfall.h
bool metarule_exist(string metaruleName)
Returns True if the specified name of metarule (sfall_funcX) function exists in the current version of sfall.
npc_engine_level_up
sfall.h
void npc_engine_level_up(bool toggle)
Enables/disables the engine function that increases the level of party members in the player leveling process. If the engine function is disabled, the process of leveling up party members should be performed by script functions.
objects_in_radius
sfall.h
array objects_in_radius(int tile, int radius, int elevation, int type)
- returns an array of objects of a type (see
OBJ_TYPE_*
constants in define_extra.h) within the specified radius from the given tile - passing -1 to the
type
argument or not specifying it will return all objects within the radius - the radius is limited to 50 hexes
set_drugs_data
sfall.h
void set_drugs_data(int type, int pid, int value)
Overrides the parameters of drugs set in the configuration file (DrugsFile
setting in ddraw.ini
). Type: 0 - changes the value of NumEffects
for the drug (see Drugs.ini
for the description of NumEffects
), 1 - changes the duration of the addiction effect for the drug (a value of 1 = one game minute).
set_rest_heal_time
sfall.h
void set_rest_heal_time(int time)
Sets the time interval in minutes for healing during resting. The default is 180
- the time interval will be reset each time the player reloads the game
set_rest_mode
sfall.h
void set_rest_mode(int flags)
Sets the bit flags for the rest mode (see RESTMODE_*
constants in sfall.h). Passing 0 will reset the rest mode. It will also be reset each time the player reloads the game.
set_worldmap_heal_time
sfall.h
void set_worldmap_heal_time(int time)
Sets the time interval in minutes for healing during world map travel. The default is 180
- passing 0 will revert to 1 second of real time (vanilla engine behavior)
- passing -1 will disable healing during travel
- the time interval will be reset each time the player reloads the game
sfall_func0(“hide_window”)
sfall.h
void sfall_func0("hide_window")
Hides currently active (selected) script window.
sfall_func0(“show_window”)
sfall.h
void sfall_func0("show_window")
Displays the script window previously hidden with the sfall_func0("hide_window")
function.
sfall_func1(“hide_window”, string winName)
sfall.h
void sfall_func0("hide_window")
Hides the specified script window.
- winName: the window name, assigned to the window by the
CreateWin/create_win
function
sfall_func1(“remove_timer_event”, int fixedParam)
sfall.h
void sfall_func1("remove_timer_event", int fixedParam)
Removes all timer events with the specified fixedParam
value for the current global script.
sfall_func1(“show_window”, string winName)
sfall.h
void sfall_func1("show_window", string winName)
Displays the specified hidden script window. winName
: the window name, assigned to the window by the CreateWin/create_win
function
sfall_func2(“string_compare”, string str1, string str2)
sfall.h
bool sfall_func2("string_compare", string str1, string str2)
Compares two strings case-insensitive, and returns True
if the two strings are matched.
sfall_func3(“string_compare”, string str1, string str2, int codePage)
sfall.h
bool sfall_func3("string_compare", string str1, string str2, int codePage)
Compares two strings case-insensitive, and returns True
if the two strings are matched
codePage
: code page number to properly compare national characters in the range 128-255 of the ASCII code table available encodings: 1250-1252, 866
spatial_radius
sfall.h
int spatial_radius(ObjectPtr obj)
Returns radius of spatial script, associated with given dummy-object (returned by create_spatial
).
void sfall_func0(“remove_timer_event”)
sfall.h
void sfall_func0("remove_timer_event")
Clears all set timer events for the current global script.