645 lines
24 KiB
Plaintext
645 lines
24 KiB
Plaintext
#include "fcb_inc_vars"
|
|
#include "fcb_inc_cvgen"
|
|
#include "fcb_inc_cvdisp"
|
|
#include "fcb_inc_general"
|
|
#include "fcb_inc_typespec"
|
|
|
|
//==========================================/
|
|
void main()
|
|
//==========================================/
|
|
{
|
|
int script_param = GetLocalInt(FCB_HOST, SCRIPT_PARAM);
|
|
int stack_index_sel = FILTER_F1 & script_param;
|
|
int stack_param = GetLocalInt(FCB_HOST, STACK_PARAM_ + IntToHexString(stack_index_sel));
|
|
object user = GetLocalObject(FCB_HOST, USER);
|
|
|
|
//--------------------------------------/
|
|
switch(FILTER_F100 & script_param)
|
|
{
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_IPRP_SEL_0:
|
|
{
|
|
int folder_index_iprp = MAIN_FOLDER_INDEX_IPRP;
|
|
|
|
int param0 = 0; //main
|
|
int param1 = 0; //subtype
|
|
int param2 = 0; //cost
|
|
int param3 = 0; //param1
|
|
|
|
string iprp_txt = "";
|
|
|
|
int file_dir_0 = FILTER_F11 & GetLocalInt(FCB_HOST, STACK_PARAM_ + IntToHexString(stack_index_sel));
|
|
|
|
//--------------------------------------/
|
|
if((FILTER_F10 & file_dir_0) == folder_index_iprp)
|
|
{
|
|
param0 = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(file_dir_0));
|
|
|
|
//--------------------------------------/
|
|
iprp_txt = GetStringByStrRef(StringToInt(Get2DAString("itempropdef", "GameStrRef", param0)));
|
|
//--------------------------------------/
|
|
}
|
|
else
|
|
{
|
|
int file_dir_1 = FILTER_F11 & GetLocalInt(FCB_HOST, STACK_PARAM_ + IntToHexString(stack_index_sel-1));
|
|
|
|
if((FILTER_F10 & file_dir_1) == folder_index_iprp)
|
|
{
|
|
param0 = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(file_dir_1));
|
|
param1 = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(file_dir_0));
|
|
|
|
//--------------------------------------/
|
|
iprp_txt = GetStringByStrRef(StringToInt(Get2DAString("itempropdef", "GameStrRef", param0)));
|
|
|
|
if(file_dir_0 > 0)
|
|
{
|
|
iprp_txt += UI_TXT_SPACE + GetLocalString(FCB_HOST, MAIN_FILE_NAME_ + IntToHexString(file_dir_0));
|
|
}
|
|
//--------------------------------------/
|
|
}
|
|
else
|
|
{
|
|
int file_dir_2 = FILTER_F11 & GetLocalInt(FCB_HOST, STACK_PARAM_ + IntToHexString(stack_index_sel-2));
|
|
|
|
if((FILTER_F10 & file_dir_2) == folder_index_iprp)
|
|
{
|
|
param0 = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(file_dir_2));
|
|
param1 = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(file_dir_1));
|
|
param2 = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(file_dir_0));
|
|
|
|
//--------------------------------------/
|
|
iprp_txt = GetStringByStrRef(StringToInt(Get2DAString("itempropdef", "GameStrRef", param0)));
|
|
|
|
if(file_dir_1 > 0)
|
|
{
|
|
iprp_txt += UI_TXT_SPACE + GetLocalString(FCB_HOST, MAIN_FILE_NAME_ + IntToHexString(file_dir_1));
|
|
}
|
|
if(file_dir_0 > 0)
|
|
{
|
|
iprp_txt += UI_TXT_SPACE + GetLocalString(FCB_HOST, MAIN_FILE_NAME_ + IntToHexString(file_dir_0));
|
|
}
|
|
//--------------------------------------/
|
|
}
|
|
else
|
|
{
|
|
int file_dir_3 = FILTER_F11 & GetLocalInt(FCB_HOST, STACK_PARAM_ + IntToHexString(stack_index_sel-3));
|
|
|
|
if((FILTER_F10 & file_dir_3) == folder_index_iprp)
|
|
{
|
|
param0 = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(file_dir_3));
|
|
param1 = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(file_dir_2));
|
|
param2 = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(file_dir_1));
|
|
param3 = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(file_dir_0));
|
|
|
|
//--------------------------------------/
|
|
iprp_txt = GetStringByStrRef(StringToInt(Get2DAString("itempropdef", "GameStrRef", param0)));
|
|
|
|
if(file_dir_2 > 0)
|
|
{
|
|
iprp_txt += UI_TXT_SPACE + GetLocalString(FCB_HOST, MAIN_FILE_NAME_ + IntToHexString(file_dir_2));
|
|
}
|
|
if(file_dir_1 > 0)
|
|
{
|
|
iprp_txt += UI_TXT_SPACE + GetLocalString(FCB_HOST, MAIN_FILE_NAME_ + IntToHexString(file_dir_1));
|
|
}
|
|
if(file_dir_0 > 0)
|
|
{
|
|
iprp_txt += UI_TXT_SPACE + GetLocalString(FCB_HOST, MAIN_FILE_NAME_ + IntToHexString(file_dir_0));
|
|
}
|
|
//--------------------------------------/
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
SetLocalString(FCB_HOST, IPRP_SEL_TXT, iprp_txt);
|
|
|
|
object item = get_working_item();
|
|
object item_copy = copy_item(item, FCB_INV);
|
|
|
|
itemproperty iprp = convert_iprp(param0, param1, param2, param3);
|
|
AddItemProperty(DURATION_TYPE_PERMANENT, iprp, item_copy);
|
|
|
|
//--------------------------------------/
|
|
//check cost and ILR restriction
|
|
int mod_enable = 1;
|
|
|
|
//--------------------------------------/
|
|
int cost = get_item_cost(item_copy) - get_item_cost(item);
|
|
int user_gold = GetGold(user);
|
|
|
|
string cost_disp = IntToString(cost) + UI_TXT_UNIT_GP;
|
|
if(cost > user_gold)
|
|
{
|
|
cost_disp = c_crs(cost_disp + UI_TXT_INDENT + UI_TXT_COST_OUTOFBOUND);
|
|
|
|
mod_enable = 0;
|
|
}
|
|
else
|
|
{
|
|
if(cost <= 0)
|
|
{
|
|
cost_disp = c_hlt2(cost_disp);
|
|
}
|
|
}
|
|
|
|
//--------------------------------------/
|
|
int item_level = get_item_level(item);
|
|
int item_copy_level = get_item_level(item_copy);
|
|
int user_level = get_character_level(user);
|
|
|
|
string item_copy_level_disp = IntToString(item_copy_level);
|
|
if(GetLocalInt(FCB_HOST, SW_ILR_ENABLE)
|
|
&& item_copy_level > user_level
|
|
&& cost > 0)
|
|
{
|
|
item_copy_level_disp = c_crs(item_copy_level_disp + UI_TXT_INDENT + UI_TXT_LEVEL_OUTOFBOUND);
|
|
|
|
mod_enable = 0;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
if(mod_enable)
|
|
{
|
|
SetLocalInt(FCB_HOST, ITEM_WORKING_SEL_MOD_COST, cost);
|
|
|
|
SetLocalInt(FCB_HOST, IPRP_PARAM_SEL_0_1, (param0 << BITLEN_FILE_1) | param1);
|
|
SetLocalInt(FCB_HOST, IPRP_PARAM_SEL_2_3, (param2 << BITLEN_FILE_1) | param3);
|
|
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_IPRP_MENU | 1, 0);
|
|
}
|
|
else
|
|
{
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_IPRP_MENU | 1, 1);
|
|
}
|
|
|
|
//--------------------------------------/
|
|
DestroyObject(item_copy);
|
|
|
|
//--------------------------------------/
|
|
iprp_txt += UI_TXT_INDENT + c_hdr1(UI_TXT_COST) + UI_TXT_SPACE + cost_disp + UI_TXT_INDENT + c_hdr1(UI_TXT_LEVEL) + UI_TXT_SPACE + item_copy_level_disp;
|
|
/////
|
|
|
|
//--------------------------------------/
|
|
ui_disp_set_txt(DISP_INDEX_LOCAL1, "", c_hdr1(UI_TXT_IPRP_SEL) + UI_TXT_SPACE + iprp_txt);
|
|
ui_disp_state_new(DISP_INDEX_LOCAL1, 1);
|
|
//--------------------------------------/
|
|
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_IPRP_SEL_1:
|
|
{
|
|
//charge player
|
|
//--------------------------------------/
|
|
int cost = GetLocalInt(FCB_HOST, ITEM_WORKING_SEL_MOD_COST);
|
|
DeleteLocalInt(FCB_HOST, ITEM_WORKING_SEL_MOD_COST);
|
|
|
|
if(give_gold(-cost, user))
|
|
{
|
|
//--------------------------------------/
|
|
int param0_1 = GetLocalInt(FCB_HOST, IPRP_PARAM_SEL_0_1);
|
|
int param2_3 = GetLocalInt(FCB_HOST, IPRP_PARAM_SEL_2_3);
|
|
itemproperty iprp = convert_iprp(param0_1 >>> BITLEN_FILE_1, FILTER_F1 & param0_1, param2_3 >>> BITLEN_FILE_1, FILTER_F1 & param2_3);
|
|
|
|
if(GetIsItemPropertyValid(iprp))
|
|
{
|
|
object item = get_working_item();
|
|
|
|
iprp_addto(item, iprp);
|
|
|
|
//--------------------------------------/
|
|
ui_disp_clear_local();
|
|
}
|
|
}
|
|
|
|
ui_stack_index(1);
|
|
visual_effect();
|
|
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_IPRPR_SEL_0:
|
|
{
|
|
int stack_index_sel = FILTER_F1 & GetLocalInt(FCB_HOST, STACK_STATE);
|
|
int file_dir_sel = FILTER_F11 & stack_param;
|
|
string file_name = GetLocalString(FCB_HOST, MAIN_FILE_NAME_ + IntToHexString(file_dir_sel));
|
|
|
|
object item = get_working_item();
|
|
object item_copy = copy_item(GetLocalObject(FCB_HOST, ITEM_WORKING_SEL_BLANK), FCB_INV);
|
|
|
|
int file_dir_max = GetLocalInt(FCB_HOST, MAIN_FILE_INDEX_ + IntToHexString(FILTER_F10 & file_dir_sel));
|
|
|
|
int file_dir = (FILTER_F10 & file_dir_sel) | UI_MAIN_DEFAULT_OFFSET;
|
|
while(file_dir <= file_dir_max)
|
|
{
|
|
if(file_dir != file_dir_sel)
|
|
{
|
|
int file_param = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(file_dir));
|
|
AddItemProperty(DURATION_TYPE_PERMANENT, param_to_iprp(file_param), item_copy);
|
|
}
|
|
|
|
file_dir++;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
//check cost and ILR restriction
|
|
int mod_enable = 1;
|
|
|
|
//--------------------------------------/
|
|
int cost = get_item_cost(item_copy) - get_item_cost(item);
|
|
int user_gold = GetGold(user);
|
|
|
|
string cost_disp = IntToString(cost) + UI_TXT_UNIT_GP;
|
|
if(cost > user_gold)
|
|
{
|
|
cost_disp = c_crs(cost_disp + UI_TXT_INDENT + UI_TXT_COST_OUTOFBOUND);
|
|
|
|
mod_enable = 0;
|
|
}
|
|
else
|
|
{
|
|
if(cost <= 0)
|
|
{
|
|
cost_disp = c_hlt2(cost_disp);
|
|
}
|
|
}
|
|
|
|
//--------------------------------------/
|
|
int item_level = get_item_level(item);
|
|
int item_copy_level = get_item_level(item_copy);
|
|
int user_level = get_character_level(user);
|
|
|
|
string item_copy_level_disp = IntToString(item_copy_level);
|
|
if(GetLocalInt(FCB_HOST, SW_ILR_ENABLE)
|
|
&& item_copy_level > user_level
|
|
&& cost > 0)
|
|
{
|
|
item_copy_level_disp = c_crs(item_copy_level_disp + UI_TXT_INDENT + UI_TXT_LEVEL_OUTOFBOUND);
|
|
|
|
mod_enable = 0;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
if(mod_enable)
|
|
{
|
|
SetLocalInt(FCB_HOST, ITEM_WORKING_SEL_MOD_COST, cost);
|
|
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_IPRPR_MENU | 1, 0);
|
|
}
|
|
else
|
|
{
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_IPRPR_MENU | 1, 1);
|
|
}
|
|
|
|
//--------------------------------------/
|
|
file_name += UI_TXT_INDENT + c_hdr1(UI_TXT_COST) + UI_TXT_SPACE + cost_disp + UI_TXT_INDENT + c_hdr1(UI_TXT_LEVEL) + UI_TXT_SPACE + item_copy_level_disp;
|
|
/////
|
|
|
|
//----------------------------------------//
|
|
ui_disp_set_txt(DISP_INDEX_LOCAL1, "", c_hdr1(UI_TXT_IPRPR_SEL) + UI_TXT_SPACE + file_name);
|
|
ui_disp_state_new(DISP_INDEX_LOCAL1, 1);
|
|
|
|
//--------------------------------------/
|
|
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_IPRPR_SEL_1:
|
|
{
|
|
//charge player
|
|
//--------------------------------------/
|
|
int cost = GetLocalInt(FCB_HOST, ITEM_WORKING_SEL_MOD_COST);
|
|
|
|
//stack: [...][offset: 10][folder_index: 10][selected: 10]
|
|
int stack_param_1 = GetLocalInt(FCB_HOST, STACK_PARAM_ + IntToHexString(stack_index_sel-1));
|
|
|
|
if(give_gold(-cost, user))
|
|
{
|
|
//--------------------------------------/
|
|
object item = get_working_item();
|
|
|
|
int item_value = cost + get_item_cost(item);
|
|
|
|
//--------------------------------------/
|
|
//set currently selected to 0
|
|
SetLocalInt(FCB_HOST, STACK_PARAM_ + IntToHexString(stack_index_sel-1), (FILTER_F110 & stack_param_1));
|
|
|
|
//--------------------------------------/
|
|
int file_dir_sel = FILTER_F11 & stack_param_1;
|
|
int file_index_sel = FILTER_F1 & stack_param_1;
|
|
int file_index_offset = stack_param_1 >>> BITLEN_FILE_2;
|
|
|
|
int folder_index = FILTER_F10 & stack_param_1;
|
|
|
|
int file_index_start = FILTER_F1 & stack_param_1;
|
|
int file_type_menu = create_main_file_type_link(SCRIPT_INDEX_IPRPR_SEL_0 | MAIN_FOLDER_INDEX_IPRPR_MENU);
|
|
|
|
//clear for new entry
|
|
//--------------------------------------/
|
|
clear_main_folder(file_dir_sel - 1);
|
|
|
|
int n = 1;
|
|
int m = 1;
|
|
|
|
string iprp_list = "";
|
|
|
|
itemproperty iprp = GetFirstItemProperty(item);
|
|
while(GetIsItemPropertyValid(iprp))
|
|
{
|
|
if(n != file_index_sel)
|
|
{
|
|
string iprp_txt = ui_iprp_display(iprp);
|
|
|
|
if(m > 1)
|
|
{
|
|
iprp_list += UI_TXT_INDENT + iprp_txt;
|
|
}
|
|
else
|
|
{
|
|
iprp_list = iprp_txt;
|
|
}
|
|
|
|
if(file_index_start <= m)
|
|
{
|
|
create_main_file_int(folder_index, iprp_txt, file_type_menu, iprp_to_param(iprp));
|
|
}
|
|
m++;
|
|
}
|
|
else
|
|
{
|
|
RemoveItemProperty(item, iprp);
|
|
}
|
|
|
|
n++;
|
|
iprp = GetNextItemProperty(item);
|
|
}
|
|
|
|
//--------------------------------------/
|
|
SetLocalString(FCB_HOST, ITEM_SEL_TXT, iprp_list);
|
|
|
|
//set disp text
|
|
//--------------------------------------/
|
|
string item_header = ui_item_header(item, item_value);
|
|
|
|
ui_disp_set_txt(DISP_INDEX_HEADER, UI_TXT_ITEM_WORKING_CURRENT, item_header);
|
|
ui_disp_set_txt(DISP_INDEX_IPRP, UI_TXT_IPRP_CURRENT, iprp_list);
|
|
|
|
ui_disp_clear_local();
|
|
}
|
|
|
|
ui_stack_index(1);
|
|
visual_effect();
|
|
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_SETNAME_SEL_1:
|
|
{
|
|
string name = GetLocalString(FCB_HOST, SETNAME_SEL);
|
|
|
|
object item = set_working_item_name(name);
|
|
|
|
string item_header = ui_item_header(item);
|
|
ui_disp_set_txt(DISP_INDEX_HEADER, UI_TXT_ITEM_WORKING_CURRENT, item_header);
|
|
ui_disp_clear_local();
|
|
|
|
ui_stack_index(0);
|
|
visual_effect();
|
|
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_SETNAME_DEFAULT:
|
|
{
|
|
string name = GetName(get_working_item(), 1);
|
|
|
|
SetLocalString(FCB_HOST, SETNAME_SEL, name);
|
|
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_SETNAME | 1, 0);
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_SETNAME | 2, 0);
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_SETNAME | 3, 1);
|
|
|
|
ui_disp_set_txt(DISP_INDEX_LOCAL1, UI_TXT_SETNAME_ENTERED, name);
|
|
ui_disp_state_new(DISP_INDEX_LOCAL1, 1);
|
|
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_CHARGE_SEL_0:
|
|
{
|
|
object item = get_working_item();
|
|
object item_copy = copy_item(item, FCB_INV);
|
|
|
|
int chcnt = GetLocalInt(FCB_HOST, MAIN_FILE_PARAM_ + IntToHexString(FILTER_F11 & stack_param));
|
|
|
|
SetItemCharges(item_copy, chcnt);
|
|
|
|
string charge_txt = IntToString(chcnt);
|
|
|
|
//--------------------------------------/
|
|
//check cost and ILR restriction
|
|
int mod_enable = 1;
|
|
|
|
//--------------------------------------/
|
|
int cost = get_item_cost(item_copy) - get_item_cost(item);
|
|
int user_gold = GetGold(user);
|
|
|
|
string cost_disp = IntToString(cost) + UI_TXT_UNIT_GP;
|
|
if(cost > user_gold)
|
|
{
|
|
cost_disp = c_crs(cost_disp + UI_TXT_INDENT + UI_TXT_COST_OUTOFBOUND);
|
|
|
|
mod_enable = 0;
|
|
}
|
|
else
|
|
{
|
|
if(cost <= 0)
|
|
{
|
|
cost_disp = c_hlt2(cost_disp);
|
|
}
|
|
}
|
|
|
|
//--------------------------------------/
|
|
int item_level = get_item_level(item);
|
|
int item_copy_level = get_item_level(item_copy);
|
|
int user_level = get_character_level(user);
|
|
|
|
string item_copy_level_disp = IntToString(item_copy_level);
|
|
if(GetLocalInt(FCB_HOST, SW_ILR_ENABLE)
|
|
&& item_copy_level > user_level
|
|
&& cost > 0)
|
|
{
|
|
item_copy_level_disp = c_crs(item_copy_level_disp + UI_TXT_INDENT + UI_TXT_LEVEL_OUTOFBOUND);
|
|
|
|
mod_enable = 0;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
if(mod_enable)
|
|
{
|
|
SetLocalInt(FCB_HOST, ITEM_WORKING_SEL_MOD_COST, cost);
|
|
SetLocalInt(FCB_HOST, CHARGE_SEL, FILTER_F11 & chcnt);
|
|
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_CHARGE_MENU | 1, 0);
|
|
}
|
|
else
|
|
{
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_CHARGE_MENU | 1, 1);
|
|
}
|
|
|
|
//--------------------------------------/
|
|
charge_txt += UI_TXT_INDENT + c_hdr1(UI_TXT_COST) + UI_TXT_SPACE + cost_disp + UI_TXT_INDENT + c_hdr1(UI_TXT_LEVEL) + UI_TXT_SPACE + item_copy_level_disp;
|
|
/////
|
|
|
|
//--------------------------------------/
|
|
DestroyObject(item_copy);
|
|
|
|
//--------------------------------------/
|
|
ui_disp_set_txt(DISP_INDEX_LOCAL1, "", c_hdr1(UI_TXT_CHARGE_SEL) + UI_TXT_SPACE + charge_txt);
|
|
ui_disp_state_new(DISP_INDEX_LOCAL1, 1);
|
|
//--------------------------------------/
|
|
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_CHARGE_SEL_1:
|
|
{
|
|
//charge player
|
|
//--------------------------------------/
|
|
int cost = GetLocalInt(FCB_HOST, ITEM_WORKING_SEL_MOD_COST);
|
|
DeleteLocalInt(FCB_HOST, ITEM_WORKING_SEL_MOD_COST);
|
|
|
|
if(give_gold(-cost, user))
|
|
{
|
|
//--------------------------------------/
|
|
int chcnt = GetLocalInt(FCB_HOST, CHARGE_SEL);
|
|
object item = get_working_item();
|
|
|
|
SetItemCharges(item, chcnt);
|
|
string item_header = ui_item_header(item);
|
|
|
|
//--------------------------------------/
|
|
ui_disp_set_txt(DISP_INDEX_HEADER, UI_TXT_ITEM_WORKING_CURRENT, item_header);
|
|
ui_disp_clear_local();
|
|
}
|
|
|
|
ui_stack_index(0);
|
|
visual_effect();
|
|
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_DUPE_SEL_0:
|
|
{
|
|
object item = get_working_item();
|
|
|
|
//--------------------------------------/
|
|
int cost = get_item_cost(item);
|
|
string cost_disp = IntToString(cost) + UI_TXT_UNIT_GP;
|
|
if(cost > GetGold(user))
|
|
{
|
|
cost_disp = c_crs(cost_disp + UI_TXT_INDENT + UI_TXT_COST_OUTOFBOUND);
|
|
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_DUPE | 1, 1);
|
|
}
|
|
else
|
|
{
|
|
if(cost <= 0)
|
|
{
|
|
cost_disp = c_hlt2(cost_disp);
|
|
}
|
|
SetLocalInt(FCB_HOST, ITEM_WORKING_SEL_MOD_COST, cost);
|
|
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_DUPE | 1, 0);
|
|
}
|
|
|
|
string disp_txt = c_hdr1(UI_TXT_DUPE_COST) + UI_TXT_SPACE + cost_disp;
|
|
|
|
//--------------------------------------/
|
|
ui_disp_set_txt(DISP_INDEX_LOCAL1, "", disp_txt);
|
|
ui_disp_state_new(DISP_INDEX_LOCAL1, 1);
|
|
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_DUPE_SEL_1:
|
|
{
|
|
//charge player
|
|
//--------------------------------------/
|
|
int cost = GetLocalInt(FCB_HOST, ITEM_WORKING_SEL_MOD_COST);
|
|
DeleteLocalInt(FCB_HOST, ITEM_WORKING_SEL_MOD_COST);
|
|
|
|
if(give_gold(-cost, user))
|
|
{
|
|
copy_item(get_working_item(), user);
|
|
|
|
//--------------------------------------/
|
|
ui_disp_clear_local();
|
|
}
|
|
|
|
ui_stack_index(0);
|
|
visual_effect();
|
|
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_COLORGUIDE:
|
|
{
|
|
ExecuteScript("fcb__colorguide", FCB_HOST);
|
|
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
//--------------------------------------/
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_DISP_IPRP:
|
|
{
|
|
ui_set_active_disp_index(DISP_INDEX_IPRP);
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_DISP_HEADER:
|
|
{
|
|
ui_set_active_disp_index(DISP_INDEX_HEADER);
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_DISP_BLANK:
|
|
{
|
|
ui_set_active_disp_index();
|
|
break;
|
|
}
|
|
|
|
//--------------------------------------/
|
|
//--------------------------------------/
|
|
//--------------------------------------/
|
|
case SCRIPT_INDEX_LISTEN_SETNAME:
|
|
{
|
|
ui_set_active_disp_index(DISP_INDEX_HEADER);
|
|
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_SETNAME | 1, 1);
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_SETNAME | 2, 1);
|
|
ui_main_set_hidden_refresh(MAIN_FOLDER_INDEX_SETNAME | 3, 0);
|
|
|
|
ui_disp_set_txt(DISP_INDEX_LOCAL1, UI_TXT_SETNAME_NONE);
|
|
ui_disp_state_new(DISP_INDEX_LOCAL1, 1);
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|