//::::::::::::::::::::::::::::::::::::::::::/
//core functions
//::::::::::::::::::::::::::::::::::::::::::/

//==========================================/
//cvgen
//==========================================/
void set_main_folder_index_start(int folder_index);
int create_main_folder(string folder_index_link = "");
int create_main_file_type_link(int folder_target, int file_type_alternate = 0);
int create_main_file_int(int folder_index, string file_name, int file_type, int file_param = 0);
int create_main_file_str(int folder_index, string file_name, int file_type, string file_param = "");
int create_main_file_obj(int folder_index, string file_name, int file_type, object file_param = OBJECT_INVALID);

//==========================================/
//disp_general
//==========================================/
//main header color (light blue)
string c_hdr1(string s);
//header2
string c_hdr2(string s);
//highlight1 (light grey)
string c_hlt1(string s);
//highlight2
string c_hlt2(string s);
//hidden color (dark grey)
string c_hid(string s);
//selected color (white)
string c_sel(string s);
//link file color (very light purple)
string c_fld(string s);
//invalid/out of range (red)
string c_crs(string s);
//returns the color string
string get_color_string_val(int cval);
//set string color to rval, gval, bval (0-255)
string set_string_color(string s, int rval, int gval, int bval);
string set_gradation(string name, int r1, int g1, int b1, int r2, int g2, int b2);
//wrapper for displaying scroll up/down options
string ui_refresh_scroll_up(int condition);
string ui_refresh_scroll_down(int condition);

//==========================================/
//disp_main
//==========================================/
void ui_main_initialize(int folder_index);
void ui_main_refresh_index(int file_dir, int file_dir_sel, int token_index);
void ui_main_refresh(int file_dir_offset, int file_dir_sel);
void ui_main_select(int n);
void ui_main_scroll_down();
void ui_main_scroll_up();
void ui_main_set_hidden(int file_dir, int hidden);
void ui_main_set_hidden_refresh(int file_dir, int hidden);
void remove_main_file_dir(int file_dir, int token_index);
void clear_main_folder(int file_dir);
void set_main_file_name_color(int file_dir, int rval, int gval, int bval);
void clear_main_file_name_color(int file_dir);

//==========================================/
//disp_stack
//==========================================/
void ui_stack_back();
void ui_stack_index(int index);

//==========================================/
//cvresp
//==========================================/
void ui_disp_initialize();
void ui_disp_refresh_txt();
void ui_disp_state_new(int n, int disp);
void ui_disp_set_txt(int n, string hdr, string txt = "");
void ui_disp_clear_local();
void ui_set_active_disp_index(int disp_index1 = -1, int disp_index2 = -1);

//::::::::::::::::::::::::::::::::::::::::::/
//plugin functions
//::::::::::::::::::::::::::::::::::::::::::/

//==========================================/
//parser
//==========================================/
int get_char_valid_num(string s);
int get_char_valid_letter(string s);
int get_char_valid_name(string s);
int get_is_number(string num);
void store_arg(string function_arg, int exe_index);
string retrieve_arg(int args_index);
void set_function_result(string result);
string get_function_result(int exe_index);
void set_function_result_valid();
int get_function_result_valid(int exe_index);
string parse_init(string input);
string parse_var(string cmd, object user);
string parse_function_arg(string function_name, string cmd, object user);

//==========================================/
//general
//==========================================/
void switch_forge_enable(int enable);
void switch_ILR_enable(int enable);
void start_conversation(object user);
int get_character_level(object user);
int get_item_cost(object item);
int item_level_search(int cost, int begin, int end);
int get_item_level(object item);
int get_item_level_by_cost(int cost);
object copy_item(object item, object target_inventory);
int get_item_stack_size(object item);
int give_gold(int gp_amount, object user);
int iprp_to_param(itemproperty iprp);
itemproperty param_to_iprp(int param);
itemproperty convert_iprp(int param0, int param1, int param2, int param3);
int get_item_inventory_slot(object item, object user);
void equip_item(object item, int equip_slot, object user);
void disp_delayed_msg(object user, string msg);
void visual_effect();
void clear_script_param();

//==========================================/
//general type
//==========================================/
void select_working_item(object item);
object get_working_item();
object set_working_item_name(string name);

//==========================================/
//iprp related
//==========================================/
string ui_iprp_display(itemproperty iprp);
string ui_item_flags_disp(object item);
string ui_item_stack_disp(object item);
string ui_iprp_list(object item);
string ui_item_header(object item, int item_cost = -1);
string initialize_iprp_list(object item);
string iprp_addto(object item, itemproperty iprp_add);
void iprp_remove_all(object item);
string get_item_type_2da_column(object item);
void ui_iprp_list_filter(object item);

//==========================================/
//inv related
//==========================================/
string inv_list_index_name(object item);
void initialize_inv_list(object user);

//==========================================/
//array generation
//==========================================/
void array_main();
void menu_main();
void iprp_main(int iprp_main_row, int iprp_main_endrow);
int iprp_subtype_file(string subtype_resref, string costtable_resref, string paramtable_resref, int file_type_menu);
int iprp_cost_param1_file(string costtable_resref, string paramtable_resref, int file_type_menu);
void chcnt_main();
