Changed: Synchronization with SVN

This commit is contained in:
kervala 2012-09-11 20:26:36 +02:00
parent 4134da5f79
commit 78fe1850f1
51 changed files with 634 additions and 390 deletions

View file

@ -476,7 +476,7 @@ XMLR2EDInterfaceFiles =
{ {
"r2ed.xml", "r2ed.xml",
"r2_triggers.xml", "r2_triggers.xml",
"r2_logic_entities.xml", "r2_logic_entities.xml",
"r2ed_acts.xml", "r2ed_acts.xml",
"r2ed_scenario.xml", "r2ed_scenario.xml",
"r2ed_connect.xml" "r2ed_connect.xml"
@ -560,11 +560,11 @@ HelpPages =
"de=http://forums.ryzom.com/forum/showthread.php?t=29131" "de=http://forums.ryzom.com/forum/showthread.php?t=29131"
}; };
WebIgMainDomain = "atys.ryzom.com"; WebIgMainDomain = "app.ryzom.com";
WebIgTrustedDomains = { WebIgTrustedDomains = {
"atys.ryzom.com" "api.ryzom.com", "app.ryzom.com"
}; };
PatchletUrl = "http://atys.ryzom.com/start/app_patchlet.php?patch=preload"; PatchletUrl = "http://app.ryzom.com/app_patchlet/index.php?patch=preload";
SelectedSlot = 0; SelectedSlot = 0;

View file

@ -39,7 +39,8 @@
<value value="map" hardtext="uiMap" contexts="game, r2ed_anim_test, r2ed_anim_dm, r2ed"/> <value value="map" hardtext="uiMap" contexts="game, r2ed_anim_test, r2ed_anim_dm, r2ed"/>
<value value="gestion_windows" hardtext="uiTaskbar" contexts="game"/> <value value="gestion_windows" hardtext="uiWindows" contexts="game"/>
<value value="milko_pad" hardtext="uiTaskbar" contexts="game"/>
<value value="guild" hardtext="uiGuild" contexts="game"/> <value value="guild" hardtext="uiGuild" contexts="game"/>
<value value="guild_forum" hardtext="uiGuildForum" contexts="game, r2ed_anim_test, r2ed_anim_dm, r2ed"/> <value value="guild_forum" hardtext="uiGuildForum" contexts="game, r2ed_anim_test, r2ed_anim_dm, r2ed"/>

View file

@ -63,6 +63,9 @@
<command name="target" action="target" params="entity=$" /> <command name="target" action="target" params="entity=$" />
<command name="tar" action="target" params="entity=$" /> <command name="tar" action="target" params="entity=$" />
<command name="target" action="target" params="entity=$|prefer_complete_match=$" />
<command name="tar" action="target" params="entity=$|prefer_complete_match=$" />
<command name="target" action="no_target" params="" /> <command name="target" action="no_target" params="" />
<command name="tar" action="no_target" params="" /> <command name="tar" action="no_target" params="" />
@ -88,6 +91,11 @@
<command name="resetname" action="command" params="a resetName"/> <command name="resetname" action="command" params="a resetName"/>
<command name="chatlog" action="command" params="chatLog"/>
<command name="showonline" action="command" params="a showOnline $"/>
<command name="showOnline" action="command" params="a showOnline $"/>
<!-- WebIG --> <!-- WebIG -->
<command name="go" action="browse" params="name=ui:interface:webig:content:html|url=home"/> <command name="go" action="browse" params="name=ui:interface:webig:content:html|url=home"/>
<command name="webdev" action="browse" params="name=ui:interface:webig:content:html|url=http://localhost/index.html"/> <command name="webdev" action="browse" params="name=ui:interface:webig:content:html|url=http://localhost/index.html"/>

View file

@ -318,6 +318,12 @@
<variable entry="UI:SAVE:INSCENE:FRIEND:PVP_LOGO" <variable entry="UI:SAVE:INSCENE:FRIEND:PVP_LOGO"
type="bool" type="bool"
value="true" /> value="true" />
<variable entry="UI:SAVE:INSCENE:FRIEND:NPCNAME"
type="bool"
value="true" />
<variable entry="UI:SAVE:INSCENE:FRIEND:NPCTITLE"
type="bool"
value="true" />
<variable entry="UI:SAVE:INSCENE:FRIEND:MISSION_ICON" <variable entry="UI:SAVE:INSCENE:FRIEND:MISSION_ICON"
type="bool" type="bool"
value="true" /> value="true" />
@ -3389,6 +3395,10 @@ This MUST follow the Enum MISSION_DESC::TIconId
<variable entry="UI:VARIABLES:ISACTIVE:COSMETICS" <variable entry="UI:VARIABLES:ISACTIVE:COSMETICS"
type="sint32" type="sint32"
value="0" /> value="0" />
<variable entry="UI:VARIABLES:ISACTIVE:MILKO_PAD"
type="sint32"
value="0" />
<!-- ***************************** --> <!-- ***************************** -->
<!-- * BOTCHAT VARIABLES * --> <!-- * BOTCHAT VARIABLES * -->
<!-- ***************************** --> <!-- ***************************** -->

View file

@ -18,7 +18,7 @@
color="255 255 255 255" color="255 255 255 255"
fontsize="14" fontsize="14"
shadow="true" shadow="true"
case_mode="%case_first_string_letter_up" /> case_mode="%case_normal" />
<style style="sgc_title2" <style style="sgc_title2"
type="text" type="text"
color="255 255 255 192" color="255 255 255 192"
@ -2083,7 +2083,7 @@
posref="BL TL" posref="BL TL"
posparent="is_friend_title" posparent="is_friend_title"
x="0" x="0"
y="-4" /> y="-4" />
<instance template="tgcw_checkbox" <instance template="tgcw_checkbox"
id="is_friend_guild_name" id="is_friend_guild_name"
text="uigcGuildName" text="uigcGuildName"
@ -2132,12 +2132,28 @@
posparent="is_friend_focus" posparent="is_friend_focus"
x="0" x="0"
y="-4" /> y="-4" />
<instance template="tgcw_checkbox"
id="is_friend_npcname"
text="uiWindowNpcName"
tooltip="uittNpcName"
posref="BL TL"
posparent="is_friend_pvp_logo"
x="0"
y="-8" />
<instance template="tgcw_checkbox"
id="is_friend_npctitle"
text="uiNpcTitle"
tooltip="uittNpcTitle"
posref="BL TL"
posparent="is_friend_npcname"
x="0"
y="-4" />
<instance template="tgcw_checkbox" <instance template="tgcw_checkbox"
id="is_friend_mission_icon" id="is_friend_mission_icon"
text="uiMissionIcon" text="uiMissionIcon"
tooltip="uittMissionIcon" tooltip="uittMissionIcon"
posref="BL TL" posref="BL TL"
posparent="is_friend_pvp_logo" posparent="is_friend_npctitle"
x="0" x="0"
y="-4" /> y="-4" />
<instance template="tgcw_checkbox" <instance template="tgcw_checkbox"
@ -3449,6 +3465,16 @@
widget="boolbut" widget="boolbut"
link="UI:SAVE:INSCENE:FRIEND:PVP_LOGO" link="UI:SAVE:INSCENE:FRIEND:PVP_LOGO"
realtime="true" /> realtime="true" />
<param ui="in_scene_friend:is_friend_npcname:c"
type="db"
widget="boolbut"
link="UI:SAVE:INSCENE:FRIEND:NPCNAME"
realtime="true" />
<param ui="in_scene_friend:is_friend_npctitle:c"
type="db"
widget="boolbut"
link="UI:SAVE:INSCENE:FRIEND:NPCTITLE"
realtime="true" />
<param ui="in_scene_friend:is_friend_mission_icon:c" <param ui="in_scene_friend:is_friend_mission_icon:c"
type="db" type="db"
widget="boolbut" widget="boolbut"

View file

@ -1050,7 +1050,7 @@
id="html" id="html"
posref="TL TL" posref="TL TL"
url="" url=""
home="http://atys.ryzom.com/start/index.php" home="http://app.ryzom.com/index.php"
sizeref="wh" sizeref="wh"
x="0" x="0"
y="0" y="0"
@ -1216,7 +1216,7 @@
id="html" id="html"
posref="TL TL" posref="TL TL"
url="" url=""
home="http://atys.ryzom.com/start/init_ig.php" home="http://app.ryzom.com/init_ig.php"
sizeref="wh" sizeref="wh"
x="0" x="0"
y="0" y="0"

View file

@ -1468,7 +1468,7 @@
<group type="webig_html" <group type="webig_html"
id="html" id="html"
posref="TL TL" posref="TL TL"
url="http://atys.ryzom.com/start/app_rpjobs.php" url="http://app.ryzom.com/app_rpjobs/index.php"
title_prefix="" title_prefix=""
sizeref="wh" sizeref="wh"
x="0" x="0"
@ -1503,7 +1503,7 @@
checkbox_bitmap_pushed="w_opacity_on.tga" checkbox_bitmap_pushed="w_opacity_on.tga"
checkbox_bitmap_over="" checkbox_bitmap_over=""
background_bitmap_view="black2" background_bitmap_view="black2"
home="http://atys.ryzom.com/start/app_rpjobs.php" home="http://app.ryzom.com/app_rpjobs/index.php"
browse_next_time="true" browse_next_time="true"
form_text_area_group="edit_box_widget_multiline"> form_text_area_group="edit_box_widget_multiline">
<group id="black" <group id="black"
@ -1604,7 +1604,7 @@
id="html" id="html"
posref="TL TL" posref="TL TL"
posparent="parent" posparent="parent"
url="http://atys.ryzom.com/start/app_profile.php" url="http://app.ryzom.com/app_profile/index.php"
title_prefix="" title_prefix=""
sizeref="wh" sizeref="wh"
x="0" x="0"
@ -1639,7 +1639,7 @@
checkbox_bitmap_pushed="w_opacity_on.tga" checkbox_bitmap_pushed="w_opacity_on.tga"
checkbox_bitmap_over="" checkbox_bitmap_over=""
background_bitmap_view="black2" background_bitmap_view="black2"
home="http://atys.ryzom.com/start/app_profile.php" home="http://app.ryzom.com/app_profile/index.php"
browse_next_time="true" browse_next_time="true"
form_text_area_group="edit_box_widget_multiline"> form_text_area_group="edit_box_widget_multiline">
<group id="black" <group id="black"
@ -1874,8 +1874,8 @@
fontsize="10" fontsize="10"
value="xxx tribe name" value="xxx tribe name"
shadow="true" /> shadow="true" />
<link expr="or(ne(@#path:VALUE,0),ne(@#path:TREND,0))" <!-- <link expr="or(ne(@#path:VALUE,0),ne(@#path:TREND,0))"
target="active" /> target="active" />-->
</group> </group>
</template> </template>
<!-- **************** --> <!-- **************** -->

View file

@ -1317,7 +1317,7 @@
<group type="container" <group type="container"
id="gestionsets2" id="gestionsets2"
w="68" w="68"
h="280" h="300"
resizer="false" resizer="false"
header_active="false" header_active="false"
right_button="false" right_button="false"
@ -1339,12 +1339,12 @@
x="0" x="0"
y="0" y="0"
w="68" w="68"
h="280" h="300"
posref="TL TL"> posref="TL TL">
<group id="shortcuts" <group id="shortcuts"
y="-1" y="-1"
w="68" w="68"
h="278" h="300"
posref="TL TL"> posref="TL TL">
<!-- The Shortcuts. Don't modify ids --> <!-- The Shortcuts. Don't modify ids -->
<instance template="ctrl_alt_memory" <instance template="ctrl_alt_memory"
@ -1449,6 +1449,61 @@
tx_noitem="W_slot_shortcut_shift_id9.tga" /> tx_noitem="W_slot_shortcut_shift_id9.tga" />
</group> </group>
</group> </group>
<!-- Mofications Cyrillas for bar1 related selection -->
<group type="select_number"
id="select_memory"
value="UI:PHRASE:SELECT_MEMORY_2"
loop="true"
min="1"
max="10"
x="0"
y="0"
w="68"
h="300"
posparent="shortcuts"
posref="MM MM"
delta="1">
<view type="bitmap"
id="slot_number"
posref="BM BM"
texture="W_slot_number.tga" />
<view type="text"
id="number"
posparent="slot_number"
posref="MM MM"
x="0"
y="0"
color="255 255 255 255"
fontsize="12"
shadow="true"
hardtext="0"
global_color="false" />
<ctrl type="button"
id="arrow_down"
button_type="push_button"
posref="BL BL"
x="10"
y="0"
tx_normal="W_arrow_left_0.tga"
tx_pushed="W_arrow_left_0.tga"
tx_over="W_button_12_over.tga"
tooltip="uittHandSet"
tooltip_parent="win" />
<ctrl type="button"
id="arrow_up"
button_type="push_button"
posref="BR BR"
x="-9"
y="0"
tx_normal="W_arrow_right_0.tga"
tx_pushed="W_arrow_right_0.tga"
tx_over="W_button_12_over.tga"
tooltip="uittHandSet"
tooltip_parent="win" />
</group>
<link expr="@UI:PHRASE:SELECT_MEMORY_2"
action="phrase_select_memory_2"
params="value=add(@UI:PHRASE:SELECT_MEMORY_2,-1)" />
</group> </group>
<tree node="gestionsets2" /> <tree node="gestionsets2" />
<!-- hands --> <!-- hands -->

View file

@ -645,34 +645,34 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<group id="submit_gr" x="30" y="-20" posparent="window" sizeref="wh" w="-30" h="-15" posref="TL TL" > <group id="submit_gr" x="30" y="-20" posparent="window" sizeref="wh" w="-30" h="-15" posref="TL TL" >
<!-- login --> <!-- login -->
<view type="text" id="txt_log" posref="TL TL" hardtext="uiUsername" fontsize="12" x="0" y="-60" color="255 255 255 255" /> <view type="text" id="txt_log" posref="TL TL" hardtext="uiUsername" fontsize="10" x="0" y="-60" color="255 255 255 255" />
<instance template="edit_box_log" id="eb_login" posparent="txt_log" posref="BL BL" w="260" h="24" fontsize="12" x="190" y="0" <instance template="edit_box_log" id="eb_login" posparent="txt_log" posref="BL BL" w="260" h="24" fontsize="12" x="190" y="-4"
text_ref="BM BM" text_y="-2" text_ref="BM BM" text_y="-2"
on_focus="create_account_rules" on_focus_params="rules_login" reset_focus_on_hide="false" max_historic="0" on_focus="create_account_rules" on_focus_params="rules_login" reset_focus_on_hide="false" max_historic="0"
onenter="set_keyboard_focus" params="target=ui:login:create_account:content:submit_gr:eb_password:eb|select_all=false" onenter="set_keyboard_focus" params="target=ui:login:create_account:content:submit_gr:eb_password:eb|select_all=false"
prompt="" enter_loose_focus="true" multi_line="false" max_num_chars="12" color="135 243 28 255" /> prompt="" enter_loose_focus="true" multi_line="false" max_num_chars="12" color="135 243 28 255" />
<!-- password --> <!-- password -->
<view type="text" id="txt_pas" posparent="txt_log" posref="BL TL" hardtext="uiPassword" fontsize="12" x="0" y="-30" color="255 255 255 255" /> <view type="text" id="txt_pas" posparent="txt_log" posref="BL TL" hardtext="uiPassword" fontsize="10" x="0" y="-30" color="255 255 255 255" />
<instance template="edit_box_log" id="eb_password" posparent="txt_pas" posref="BL BL" w="260" h="24" fontsize="16" x="190" y="0" <instance template="edit_box_log" id="eb_password" posparent="txt_pas" posref="BL BL" w="260" h="24" fontsize="14" x="190" y="-4"
text_ref="BM BM" text_y="-2" text_ref="BM BM" text_y="-2"
on_focus="create_account_rules" on_focus_params="rules_password" reset_focus_on_hide="false" max_historic="0" entry_type="password" on_focus="create_account_rules" on_focus_params="rules_password" reset_focus_on_hide="false" max_historic="0" entry_type="password"
onenter="set_keyboard_focus" params="target=ui:login:create_account:content:submit_gr:eb_confirm_password:eb|select_all=false" onenter="set_keyboard_focus" params="target=ui:login:create_account:content:submit_gr:eb_confirm_password:eb|select_all=false"
prompt="" enter_loose_focus="true" multi_line="false" max_num_chars="8" color="135 243 28 255" /> prompt="" enter_loose_focus="true" multi_line="false" max_num_chars="8" color="135 243 28 255" />
<!-- confirm password --> <!-- confirm password -->
<view type="text" id="txt_confirm_pas" posparent="txt_pas" posref="BL TL" hardtext="uiConfirmPassword" fontsize="12" x="0" y="-30" color="255 255 255 255" /> <view type="text" id="txt_confirm_pas" posparent="txt_pas" posref="BL TL" hardtext="uiConfirmPassword" fontsize="10" x="0" y="-30" color="255 255 255 255" />
<instance template="edit_box_log" id="eb_confirm_password" posparent="txt_confirm_pas" posref="BL BL" w="260" h="24" fontsize="16" x="190" y="0" <instance template="edit_box_log" id="eb_confirm_password" posparent="txt_confirm_pas" posref="BL BL" w="260" h="24" fontsize="14" x="190" y="-4"
text_ref="BM BM" text_y="-2" text_ref="BM BM" text_y="-2"
on_focus="create_account_rules" on_focus_params="rules_password_conf" reset_focus_on_hide="false" max_historic="0" entry_type="password" on_focus="create_account_rules" on_focus_params="rules_password_conf" reset_focus_on_hide="false" max_historic="0" entry_type="password"
onenter="set_keyboard_focus" params="target=ui:login:create_account:content:submit_gr:eb_email:eb|select_all=false" onenter="set_keyboard_focus" params="target=ui:login:create_account:content:submit_gr:eb_email:eb|select_all=false"
prompt="" enter_loose_focus="true" multi_line="false" max_num_chars="8" color="135 243 28 255" /> prompt="" enter_loose_focus="true" multi_line="false" max_num_chars="8" color="135 243 28 255" />
<!-- email --> <!-- email -->
<view type="text" id="txt_email" posparent="txt_confirm_pas" posref="BL TL" hardtext="uiEmail" fontsize="12" x="0" y="-30" color="255 255 255 255" /> <view type="text" id="txt_email" posparent="txt_confirm_pas" posref="BL TL" hardtext="uiEmail" fontsize="10" x="0" y="-30" color="255 255 255 255" />
<instance template="edit_box_log" id="eb_email" posparent="txt_email" posref="BL BL" w="260" h="24" fontsize="12" x="190" y="0" <instance template="edit_box_log" id="eb_email" posparent="txt_email" posref="BL BL" w="260" h="24" fontsize="12" x="190" y="0"
text_ref="BM BM" text_y="-2" text_ref="BM BM" text_y="-2"
@ -687,9 +687,9 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
col_over="255 255 255 0" onclick_l="create_account_rules" params_l="" tooltip="" col_over="255 255 255 0" onclick_l="create_account_rules" params_l="" tooltip=""
/> />
<view type="text" id="txt_accept_cond" posref="BR BL" posparent="accept_cond" hardtext="uiAcceptTermsOfUse1" fontsize="10" x="20" y="-2" color="255 255 255 255" /> <view type="text" id="txt_accept_cond" posref="BR BL" posparent="accept_cond" hardtext="uiAcceptTermsOfUse1" fontsize="10" x="10" y="-2" color="255 255 255 255" />
<ctrl type="text_button" id="terms_launch_url" style="log_url" posref="BR BL" posparent="txt_accept_cond" x="2" y="0" hardtext="uiAcceptTermsOfUse2" <ctrl type="text_button" id="terms_launch_url" style="log_url" posref="BR BL" posparent="txt_accept_cond" x="-2" y="0" hardtext="uiAcceptTermsOfUse2"
onclick_l="open_url" params_l="cfg_ConditionsTermsURL"/> onclick_l="open_url" params_l="cfg_ConditionsTermsURL"/>
<!-- ********************** --> <!-- ********************** -->
@ -701,8 +701,8 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<group id="erros_txt" posparent="welcome_errors_gr" posref="TL TL" x="8" y="-8" sizeref="w" child_resize_h="true" <group id="erros_txt" posparent="welcome_errors_gr" posref="TL TL" x="8" y="-8" sizeref="w" child_resize_h="true"
max_sizeparent="welcome_errors_gr" max_sizeref="h" max_h="-16"> max_sizeparent="welcome_errors_gr" max_sizeref="h" max_h="-16">
<view type="text" id="errors_list" posref="TL TL" x="15" y="-15" fontsize="12" color="255 255 255 255" line_maxw="584" <view type="text" id="errors_list" posref="TL TL" x="15" y="-15" fontsize="10" color="255 255 255 255" line_maxw="584"
shadow="true" multi_line="true" multi_line_space="20" multi_max_line="100" hardtext="uiCreateAccountWelcome" /> shadow="true" multi_line="true" multi_line_space="10" multi_max_line="100" hardtext="uiCreateAccountWelcome" />
</group> </group>
<instance template="bk_scroll" id="err_back_scrollbar" active="true" posparent="welcome_errors_gr" posref="TR TL" x="4" w="24" sizeref="h" h="0" /> <instance template="bk_scroll" id="err_back_scrollbar" active="true" posparent="welcome_errors_gr" posref="TR TL" x="4" w="24" sizeref="h" h="0" />

View file

@ -580,14 +580,10 @@
onclick_l="proc" params_l="proc_charsel_play"/> onclick_l="proc" params_l="proc_charsel_play"/>
--> -->
<ctrl style="valid_txt_button" id="play_but" posref="BR BM" x="-112" y="76" hardtext="uiCharSel_Play" <ctrl style="valid_txt_button" id="play_but" posref="BR BM" x="-112" y="56" hardtext="uiCharSel_Play"
onover="play_sound" params_over="name=specie_but_over" onover="play_sound" params_over="name=specie_but_over"
onclick_l="lua" params_l="outgame:launchGame()"/> onclick_l="lua" params_l="outgame:launchGame()"/>
<ctrl style="valid_txt_button" id="edit_session_but" posref="BR BM" x="-112" y="36" hardtext="uiLaunchEditor"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_charsel_edit_menu"/>
<ctrl style="valid_txt_button" id="del_but" posref="BR BL" x="-794" y="56" hardtext="uiCharSel_Del" <ctrl style="valid_txt_button" id="del_but" posref="BR BL" x="-794" y="56" hardtext="uiCharSel_Del"
onover="play_sound" params_over="name=specie_but_over" onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_charsel_del"/> onclick_l="proc" params_l="proc_charsel_del"/>

View file

@ -175,6 +175,8 @@
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:FOCUS|value=0" /> <action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:FOCUS|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MESSAGES|value=1" /> <action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MESSAGES|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:PVP_LOGO|value=1" /> <action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:PVP_LOGO|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:NPCNAME|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:NPCTITLE|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MISSION_ICON|value=1" /> <action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MISSION_ICON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MINI_MISSION_ICON|value=0" /> <action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MINI_MISSION_ICON|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:GUILD_SYMBOL|value=1" /> <action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:GUILD_SYMBOL|value=1" />

View file

@ -87,12 +87,6 @@
<action handler="leave_modal" /> <action handler="leave_modal" />
</proc> </proc>
<proc id="quit_dialog_launch_editor" >
<action handler="leave_modal" /> <!-- must leave modal first because 'launch game' may pop a message box in some cases if patching was uncomplete -->
<action handler="launch_game" params="slot=ingame_auto|edit_mode=1" />
</proc>
<!-- the modal (formerly: h="60") --> <!-- the modal (formerly: h="60") -->
<define id="quit_button_delta_y" value="-4" /> <define id="quit_button_delta_y" value="-4" />
<group type="modal" id="quit_dialog" exit_click_out="false" mouse_pos="false" posref="MM MM" child_resize_w="true" child_resize_wmargin="16" child_resize_h="true" child_resize_hmargin="16" win_priority="%win_priority_highest" <group type="modal" id="quit_dialog" exit_click_out="false" mouse_pos="false" posref="MM MM" child_resize_w="true" child_resize_wmargin="16" child_resize_h="true" child_resize_hmargin="16" win_priority="%win_priority_highest"
@ -112,10 +106,7 @@
color="180 250 180 255" col_over="180 250 180 255" col_pushed="180 250 180 255" text_color_normal="180 250 180 160" /> color="180 250 180 255" col_over="180 250 180 255" col_pushed="180 250 180 255" text_color_normal="180 250 180 160" />
<ctrl style="quit_button" id="return_mainland" posparent="cancel" posref="BL TL" y="%quit_button_delta_y" hardtext="uittReturnToMainland" onclick_l="proc" params_l="quit_dialog_mainland" <ctrl style="quit_button" id="return_mainland" posparent="cancel" posref="BL TL" y="%quit_button_delta_y" hardtext="uittReturnToMainland" onclick_l="proc" params_l="quit_dialog_mainland"
color="180 250 180 255" col_over="110 250 125 255" col_pushed="110 250 125 255" text_color_normal="110 250 125 160" /> color="180 250 180 255" col_over="110 250 125 255" col_pushed="110 250 125 255" text_color_normal="110 250 125 160" />
<ctrl style="quit_button" id="launch_editor" posparent="return_mainland" posref="BL TL" y="%quit_button_delta_y" hardtext="uittLaunchEditor" onclick_l="proc" params_l="quit_dialog_launch_editor" <ctrl style="quit_button" id="reselect_char" posparent="return_mainland" posref="BL TL" y="%quit_button_delta_y" hardtext="uittQuitGame" onclick_l="proc" params_l="quit_dialog_reselect_char"
color="180 250 180 255" col_over="110 250 125 255" col_pushed="110 250 125 255" text_color_normal="110 250 125 160" />
<ctrl style="quit_button" id="reselect_char" posparent="launch_editor" posref="BL TL" y="%quit_button_delta_y" hardtext="uittQuitGame" onclick_l="proc" params_l="quit_dialog_reselect_char"
color="240 212 110 255" col_over="240 212 110 255" col_pushed="240 212 110 255" text_color_normal="240 212 110 160" /> color="240 212 110 255" col_over="240 212 110 255" col_pushed="240 212 110 255" text_color_normal="240 212 110 160" />
<!--<ctrl style="quit_button" id="game" posparent="reselect_char" posref="BL TL" y="%quit_button_delta_y" hardtext="uittQuitGame" onclick_l="proc" params_l="quit_dialog_game" <!--<ctrl style="quit_button" id="game" posparent="reselect_char" posref="BL TL" y="%quit_button_delta_y" hardtext="uittQuitGame" onclick_l="proc" params_l="quit_dialog_game"
color="240 212 110 255" col_over="240 212 110 255" col_pushed="240 212 110 255" text_color_normal="240 212 110 160" />--> color="240 212 110 255" col_over="240 212 110 255" col_pushed="240 212 110 255" text_color_normal="240 212 110 160" />-->
@ -313,6 +304,11 @@
</template> </template>
<proc id="mk_proc_active">
<action handler="set" params="dblink=UI:VARIABLES:ISACTIVE:MILKO_PAD|value=1"/>
<action handler="proc" params="mk_proc_mode" />
</proc>
<proc id="mk_proc_mode"> <proc id="mk_proc_mode">
<action handler="set" params="target='ui:interface:milko_pad:content:mode1:active'|value=0"/> <action handler="set" params="target='ui:interface:milko_pad:content:mode1:active'|value=0"/>
<action handler="set" params="target='ui:interface:milko_pad:content:mode2:active'|value=0"/> <action handler="set" params="target='ui:interface:milko_pad:content:mode2:active'|value=0"/>
@ -355,12 +351,29 @@
</template> </template>
<!-- milko_pad --> <!-- milko_pad -->
<group type="container" id="milko_pad" header_active="false" right_button="false" options="layer0_pad" <group type="container"
global_color="false" opened="true" openable="false" resizer="false" locked="false" id="milko_pad"
movable="true" active="true" header_color="UI:SAVE:WIN:COLORS:HELP" savable="true" header_active="false"
group_onclick_r="active_menu" group_params_r="menu=ui:interface:milko_menu" right_button="false"
w="142" h="200" pop_max_h="400" options="layer0_pad"
on_active="proc" on_active_params="mk_proc_mode" > global_color="false"
opened="true"
openable="false"
resizer="false"
locked="false"
movable="true"
active="true"
header_color="UI:SAVE:WIN:COLORS:HELP"
savable="true"
group_onclick_r="active_menu"
group_params_r="menu=ui:interface:milko_menu"
w="142"
h="200"
pop_max_h="400"
on_active="proc"
on_active_params="mk_proc_active"
on_deactive="set"
on_deactive_params="dblink=UI:VARIABLES:ISACTIVE:MILKO_PAD|value=0" >
<group id="header_closed" x="0" y="0" h="0" posref="TL TL" > <group id="header_closed" x="0" y="0" h="0" posref="TL TL" >
</group> </group>
@ -1143,6 +1156,9 @@
<instance template="win_button" id="mp3" color="UI:SAVE:WIN:COLORS:OPT" text="uimwMP3Player" posparent="connection" posref="BL TL" x="0" y="-4" <instance template="win_button" id="mp3" color="UI:SAVE:WIN:COLORS:OPT" text="uimwMP3Player" posparent="connection" posref="BL TL" x="0" y="-4"
pushflag="UI:VARIABLES:ISACTIVE:MP3PLAYER" win_name="mp3_player" /> pushflag="UI:VARIABLES:ISACTIVE:MP3PLAYER" win_name="mp3_player" />
<instance template="win_button" id="mp" color="UI:SAVE:WIN:COLORS:OPT" text="uimwTaskBar" posparent="mp3" posref="BL TL" x="0" y="-4"
pushflag="UI:VARIABLES:ISACTIVE:MILKO_PAD" win_name="milko_pad" />
<!-- <instance template="win_button" id="bg_downloader" color="UI:SAVE:WIN:COLORS:OPT" text="uimwBGDownloader" posparent="mp3" posref="BL TL" x="0" y="-4" <!-- <instance template="win_button" id="bg_downloader" color="UI:SAVE:WIN:COLORS:OPT" text="uimwBGDownloader" posparent="mp3" posref="BL TL" x="0" y="-4"
pushflag="UI:VARIABLES:ISACTIVE:BG_DOWNLOADER" win_name="bg_downloader" /> --> pushflag="UI:VARIABLES:ISACTIVE:BG_DOWNLOADER" win_name="bg_downloader" /> -->
@ -1218,6 +1234,7 @@
<param value="options:macros|macros" /> <param value="options:macros|macros" />
<param value="options:connection|connection" /> <param value="options:connection|connection" />
<param value="options:mp3|mp3_player" /> <param value="options:mp3|mp3_player" />
<param value="options:mp|milko_pad" />
</options> </options>

View file

@ -98,8 +98,6 @@
value="4" /> value="4" />
<define id="in_scene_user_info_bar_space" <define id="in_scene_user_info_bar_space"
value="2" /> value="2" />
<define id="in_scene_user_info_text_h"
value="14" />
<define id="in_scene_user_bar_length" <define id="in_scene_user_bar_length"
value="120" /> value="120" />
<!-- * In scene Target Selected * --> <!-- * In scene Target Selected * -->
@ -226,69 +224,25 @@
right_button="false" right_button="false"
opened="true" opened="true"
child_resize_w="true" child_resize_w="true"
child_resize_h="true" child_resize_h="true"
child_resize_hmargin="20"
w="0" w="0"
h="86" h="0"
win_priority="%win_priority_world_space" win_priority="%win_priority_world_space"
posref="BL BM" posref="BL BM"
use_cursor="false"> use_cursor="false">
<group id="right" <group id="right"
x="42"
y="-20"
child_resize_w="true" child_resize_w="true"
child_resize_h="true"
w="0" w="0"
h="86" x="38"
posref="TL TL"> h="158"
<view type="bitmap" posref="TL TL" >
id="win_top"
posref="TL TL"
y="-15"
texture="Infos_top.tga"
global_color="true" />
<view type="bitmap"
id="win_mid"
posref="BL TL"
posparent="win_top"
scale="true"
w="7"
h="50"
texture="Infos_mid.tga"
global_color="true" />
<view type="bitmap"
id="win_bot"
posref="BL TL"
posparent="win_mid"
texture="Infos_bot.tga"
global_color="true" />
<view type="bitmap"
id="win_jauge_mid"
posref="TL ML"
x="0"
y="-2"
posparent="win_bot"
scale="true"
w="128"
h="24"
texture="Bg_jauge_mid.tga"
global_color="true" />
<view type="bitmap"
id="win_jauge_top"
posref="TL BL"
posparent="win_jauge_mid"
texture="Bg_jauge_top.tga"
global_color="true" />
<view type="bitmap"
id="win_jauge_bot"
posref="BL TL"
posparent="win_jauge_mid"
texture="Bg_jauge_bot.tga"
global_color="true" />
<view type="text" <view type="text"
id="info0" id="info0"
posref="TL TL" posref="TL TL"
x="0" x="0"
y="-10" y="-7"
fontsize="14" fontsize="14"
shadow="true" shadow="true"
hardtext="" hardtext=""
@ -296,9 +250,9 @@
global_color="true" /> global_color="true" />
<view type="text" <view type="text"
id="info1" id="info1"
posref="TL TL" posref="BL TL"
posparent="info0"
x="0" x="0"
y="-28"
fontsize="12" fontsize="12"
shadow="true" shadow="true"
hardtext="" hardtext=""
@ -306,9 +260,9 @@
global_color="true" /> global_color="true" />
<view type="text" <view type="text"
id="info2" id="info2"
posref="TL TL" posref="BL TL"
posparent="info1"
x="0" x="0"
y="-40"
fontsize="10" fontsize="10"
shadow="true" shadow="true"
hardtext="" hardtext=""
@ -327,7 +281,6 @@
posref="TR TL" posref="TR TL"
posparent="info0" posparent="info0"
x="4" x="4"
y=""
texture="target.tga" texture="target.tga"
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
@ -335,7 +288,7 @@
posref="TR TL" posref="TR TL"
posparent="target" posparent="target"
x="2" x="2"
y="6" y="3"
scale="true" scale="true"
w="20" w="20"
h="20" h="20"
@ -345,67 +298,106 @@
<view type="bitmap" <view type="bitmap"
id="mission_target" id="mission_target"
posref="TR TL" posref="TR TL"
posparent="info0" posparent="invisible_logo"
x="25" x="2"
y="" y="4"
texture="target_mission.tga" texture="target_mission.tga"
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
id="rp_logo_1" id="rp_logo_1"
posref="BR BL" posref="TR TL"
x="4" x="2"
y="0" y="0"
slot="false" slot="false"
posparent="info0" posparent="mission_target"
color="255 255 255 255" color="255 255 255 255"
render_layer="1" render_layer="1"
texture="" texture=""
w="24"
h="24"
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
id="rp_logo_2" id="rp_logo_2"
posref="BR BL" posref="TR TL"
x="32" x="2"
y="0" y="0"
slot="false" slot="false"
posparent="info0" posparent="rp_logo_1"
color="255 255 255 255" color="255 255 255 255"
render_layer="1" render_layer="1"
texture="" texture=""
w="24"
h="24"
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
id="rp_logo_3" id="rp_logo_3"
posref="TR TL" posref="TR TL"
x="60" x="2"
y="0" y="0"
slot="false" slot="false"
posparent="info0" posparent="rp_logo_2"
color="255 255 255 255" color="255 255 255 255"
render_layer="1" render_layer="1"
texture="" texture=""
w="24"
h="24"
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
id="rp_logo_4" id="rp_logo_4"
posref="TR TL" posref="TR TL"
x="88" x="2"
y="0" y="0"
slot="false" slot="false"
posparent="info0" posparent="rp_logo_3"
color="255 255 255 255" color="255 255 255 255"
render_layer="1" render_layer="1"
texture="" texture=""
w="24"
h="24"
global_color="false" /> global_color="false" />
<view type="bitmap"
id="win_top"
posparent="info2"
posref="BL TL"
y="-8"
texture="Infos_top.tga"
global_color="true" />
<view type="bitmap"
id="win_mid"
posparent="win_top"
posref="BL TL"
scale="true"
w="70"
h="1"
texture="Infos_mid.tga"
global_color="true" />
<view type="bitmap"
id="win_bot"
posparent="win_mid"
posref="BL TL"
texture="Infos_bot.tga"
global_color="true" />
<view type="bitmap"
id="win_jauge_mid"
posparent="win_bot"
posref="TL ML"
x="0"
y="-2"
scale="true"
w="128"
h="24"
texture="Bg_jauge_mid.tga"
global_color="true" />
<view type="bitmap"
id="win_jauge_top"
posparent="win_jauge_mid"
posref="TL BL"
texture="Bg_jauge_top.tga"
global_color="true" />
<view type="bitmap"
id="win_jauge_bot"
posparent="win_jauge_mid"
posref="BL TL"
texture="Bg_jauge_bot.tga"
global_color="true" />
<view type="bitmap" <view type="bitmap"
id="bar0" id="bar0"
posref="TL TL"
posparent="win_jauge_top" posparent="win_jauge_top"
posref="TL TL"
x="3" x="3"
y="-3" y="-3"
scale="true" scale="true"
@ -416,8 +408,8 @@
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
id="bar1" id="bar1"
posref="BL TL"
posparent="bar0" posparent="bar0"
posref="BL TL"
x="0" x="0"
y="-2" y="-2"
scale="true" scale="true"
@ -428,8 +420,8 @@
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
id="bar2" id="bar2"
posref="BL TL"
posparent="bar1" posparent="bar1"
posref="BL TL"
x="0" x="0"
y="-2" y="-2"
scale="true" scale="true"
@ -440,8 +432,8 @@
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
id="bar3" id="bar3"
posref="BL TL"
posparent="bar2" posparent="bar2"
posref="BL TL"
x="0" x="0"
y="-2" y="-2"
scale="true" scale="true"
@ -452,8 +444,8 @@
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
id="bar4" id="bar4"
posref="BL TL"
posparent="bar3" posparent="bar3"
posref="BL TL"
x="0" x="0"
y="-2" y="-2"
scale="true" scale="true"
@ -464,94 +456,78 @@
global_color="false" /> global_color="false" />
</group> </group>
<ctrl type="sheet" <ctrl type="sheet"
id="guild_logo" id="guild_logo"
posref="ML MR" posref="TL TR"
x="-4" posparent="right"
x="-4"
slot="false" slot="false"
posparent="right"
nature="guild_flag" nature="guild_flag"
value="UI:TEMP:GUILD_SHEET" value="UI:TEMP:GUILD_SHEET"
dragable="false" dragable="false"
color="255 255 255 255" /> color="255 255 255 255" />
<view type="bitmap" <view type="bitmap"
id="npc_mission_logo" id="npc_mission_logo"
posref="TL TR" posref="TL TL"
x="-8"
slot="false" slot="false"
posparent="right" x="0"
color="255 255 255 255" color="255 255 255 255"
render_layer="1" render_layer="1"
texture="" texture=""
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
id="npc_mission_logo_over" id="npc_mission_logo_over"
posref="TL TR" posref="TL TL"
x="-8"
slot="false" slot="false"
posparent="right" x="0"
color="255 255 255 255" color="255 255 255 255"
render_layer="2" render_layer="2"
texture="" texture=""
global_color="false" /> global_color="false" />
<group id="right_pvp" <group id="right_pvp"
posref="TR TL" posref="TR TL"
posparent="right" posparent="right"
x="4"
y="-4"
h="0"
child_resize_w="true" child_resize_w="true"
child_resize_h="true" child_resize_h="true" >
child_resize_wmargin="4" >
<group id="top_pvp" <group id="top_pvp"
posref="TL TL" posref="TL TL"
w="0"
h="0" h="0"
child_resize_w="true" child_resize_w="true"
child_resize_h="true" child_resize_h="true" >
child_resize_wmargin="4" >
<view type="bitmap" <view type="bitmap"
id="pvp_faction_logo" id="pvp_faction_logo"
posref="TL TL" posref="TL TL"
active="false"
texture="mp_pearl.tga" texture="mp_pearl.tga"
x="2"
w="24"
h="24"
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
id="pvp_safe_logo" id="pvp_safe_logo"
active="false"
posref="TR TL" posref="TR TL"
active="false"
posparent="pvp_faction_logo" posparent="pvp_faction_logo"
texture="mp_pearl.tga" texture="mp_pearl.tga"
x="2" x="2"
w="24"
h="24"
global_color="false" /> global_color="false" />
</group> </group>
<group id="bottom_pvp" <group id="bottom_pvp"
posref="BL TL" posref="BL TL"
posparent="top_pvp" posparent="top_pvp"
h="0"
child_resize_w="true" child_resize_w="true"
child_resize_h="true" child_resize_h="true" >
child_resize_wmargin="4" >
<view type="bitmap" <view type="bitmap"
id="pvp_outpost_logo" id="pvp_outpost_logo"
active="true"
posref="TL TL" posref="TL TL"
w="24" active="false"
h="24"
texture="building_state_24x24.tga" texture="building_state_24x24.tga"
global_color="false" /> global_color="false" />
<view type="bitmap" <view type="bitmap"
id="pvp_duel_logo" id="pvp_duel_logo"
posref="TR TL" posref="TR TL"
posparent="pvp_outpost_logo" posparent="pvp_outpost_logo"
active="true" active="false"
x="2" x="2"
w="24"
h="24"
texture="pvp_duel.tga" texture="pvp_duel.tga"
global_color="false" /> global_color="false" />
</group> </group>
@ -770,26 +746,34 @@
opened="true" opened="true"
child_resize_w="true" child_resize_w="true"
child_resize_h="true" child_resize_h="true"
child_resize_hmargin="42"
w="0"
h="86"
win_priority="%win_priority_world_space" win_priority="%win_priority_world_space"
posref="BL BM" posref="BL BM"
use_cursor="true"> use_cursor="true">
<!--<group id="right" x="240" y="320" child_resize_w="true" w="0" h="126" posref="TL TL" >--> <!--<group id="right" x="240" y="320" child_resize_w="true" w="0" h="126" posref="TL TL" >-->
<group id="right" <group id="right"
x="42"
y="-20"
child_resize_w="true" child_resize_w="true"
w="0" w="0"
h="158" h="158"
posref="TL TL" x="42"
child_resize_wmargin="4"> y="-20"
<view type="bitmap" posref="TL TL" >
id="win_jauge_mid" <view type="text"
id="info0"
posref="TL TL" posref="TL TL"
x="0" x="0"
y="-22" y="0"
fontsize="14"
shadow="true"
hardtext="Forage_Source"
color="255 255 255 255"
global_color="true" />
<view type="bitmap"
id="win_jauge_mid"
posref="BL TL"
posparent="info0"
x="0"
y="-6"
scale="true" scale="true"
w="152" w="152"
h="100" h="100"
@ -807,16 +791,6 @@
posparent="win_jauge_mid" posparent="win_jauge_mid"
texture="Bg_source_bot.tga" texture="Bg_source_bot.tga"
global_color="true" /> global_color="true" />
<view type="text"
id="info0"
posref="TL TL"
x="4"
y="0"
fontsize="14"
shadow="true"
hardtext="Forage_Source"
color="255 255 255 255"
global_color="true" />
<view type="bitmap" <view type="bitmap"
id="bar0" id="bar0"
posref="TL TL" posref="TL TL"
@ -5892,7 +5866,8 @@
posparent="creator" posparent="creator"
posref="ML MR" posref="ML MR"
fontsize="12" fontsize="12"
hardtext="uiCreatorHeader" /> hardtext="uiCreatorHeader"
active="false" />
<!-- the scroll text (with only one text) --> <!-- the scroll text (with only one text) -->
<group id="scroll_text" <group id="scroll_text"
sizeref="w" sizeref="w"
@ -6040,7 +6015,6 @@
<group id="item_preview" <group id="item_preview"
posref="TL TL" posref="TL TL"
sizeref="w" sizeref="w"
posparent="text_list"
w="200" w="200"
h="300" h="300"
x="0" x="0"

View file

@ -6183,8 +6183,7 @@ void CCharacterCL::updateVisiblePostPos(const NLMISC::TTime &currentTimeInMs, CE
if (_InSceneUserInterface) if (_InSceneUserInterface)
{ {
// Activate // Activate
if (_InSceneUserInterface->getActive() != showIS) _InSceneUserInterface->setActive (showIS);
_InSceneUserInterface->setActive (showIS);
if (showIS) if (showIS)
{ {

View file

@ -343,8 +343,9 @@ void initCrashReport ()
send("/?crashtype=DURING_RELEASE"); send("/?crashtype=DURING_RELEASE");
else if (crashed) else if (crashed)
{ {
DialogBox (HInstance, MAKEINTRESOURCE(IDD_CRASH_INFORMATION), NULL, ReportDialogProc); //DialogBox (HInstance, MAKEINTRESOURCE(IDD_CRASH_INFORMATION), NULL, ReportDialogProc);
send("/?crashtype="+CrashFeedback); //send("/?crashtype="+CrashFeedback);
send("/?crashtype=CRASHED");
} }
else else
send("/?crashtype=NOT_CRASHED"); send("/?crashtype=NOT_CRASHED");

View file

@ -1040,7 +1040,7 @@ void CClientConfig::setValues()
///////////////////////// /////////////////////////
// NEW PATCHING SYSTEM // // NEW PATCHING SYSTEM //
READ_BOOL_DEV(PatchWanted) READ_BOOL_FV(PatchWanted)
READ_STRING_DEV(PatchUrl) READ_STRING_DEV(PatchUrl)
READ_STRING_DEV(PatchVersion) READ_STRING_DEV(PatchVersion)
READ_STRING_DEV(RingReleaseNotePath) READ_STRING_DEV(RingReleaseNotePath)

View file

@ -959,6 +959,14 @@ void CClientChatManager::buildTellSentence(const ucstring &sender, const ucstrin
bool bWoman = entity && entity->getGender() == GSGENDER::female; bool bWoman = entity && entity->getGender() == GSGENDER::female;
name = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(CEntityCL::getTitleFromName(sender), bWoman); name = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(CEntityCL::getTitleFromName(sender), bWoman);
{
// Sometimes translation contains another title
ucstring::size_type pos = name.find('$');
if (pos != ucstring::npos)
{
name = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(CEntityCL::getTitleFromName(name), bWoman);
}
}
} }
else else
{ {
@ -1032,6 +1040,14 @@ void CClientChatManager::buildChatSentence(TDataSetIndex /* compressedSenderInde
bool bWoman = entity && entity->getGender() == GSGENDER::female; bool bWoman = entity && entity->getGender() == GSGENDER::female;
senderName = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(CEntityCL::getTitleFromName(sender), bWoman); senderName = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(CEntityCL::getTitleFromName(sender), bWoman);
{
// Sometimes translation contains another title
ucstring::size_type pos = senderName.find('$');
if (pos != ucstring::npos)
{
senderName = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(CEntityCL::getTitleFromName(senderName), bWoman);
}
}
} }
switch(type) switch(type)

View file

@ -57,7 +57,6 @@
#include "time_client.h" #include "time_client.h"
#include "net_manager.h" #include "net_manager.h"
#include "string_manager_client.h" #include "string_manager_client.h"
#include "http_client.h"
#include "far_tp.h" #include "far_tp.h"
#include "movie_shooter.h" #include "movie_shooter.h"
@ -223,7 +222,6 @@ void connectionRestaureVideoMode ()
} }
#define GROUP_BROWSER "ui:outgame:charsel:webstart:content:webstart_html"
#define UI_VARIABLES_SCREEN_WEBSTART 8 #define UI_VARIABLES_SCREEN_WEBSTART 8
@ -243,23 +241,6 @@ class CAHOnReloadTestPage: public IActionHandler
}; };
REGISTER_ACTION_HANDLER (CAHOnReloadTestPage, "on_reload_test_page"); REGISTER_ACTION_HANDLER (CAHOnReloadTestPage, "on_reload_test_page");
void initWebBrowser()
{
CInterfaceManager *pIM = CInterfaceManager::getInstance();
//pIM->getDbProp("UI:VARIABLES:SCREEN")->setValue32(UI_VARIABLES_SCREEN_WEBSTART);
// start the browser
CGroupHTML *pGH = dynamic_cast<CGroupHTML*>(pIM->getElementFromId(GROUP_BROWSER));
if (pGH)
{
pGH->setActive(true);
pGH->browse(ClientCfg.PatchletUrl.c_str());
}
}
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void setOutGameFullScreen() void setOutGameFullScreen()
{ {
@ -388,7 +369,6 @@ bool connection (const string &cookie, const string &fsaddr)
WaitServerAnswer = true; WaitServerAnswer = true;
}*/ }*/
pIM->activateMasterGroup ("ui:outgame", true);
pIM->getDbProp ("UI:CURRENT_SCREEN")->setValue32(ClientCfg.Local ? 6 : -1); // TMP TMP pIM->getDbProp ("UI:CURRENT_SCREEN")->setValue32(ClientCfg.Local ? 6 : -1); // TMP TMP
CCDBNodeBranch::flushObserversCalls(); CCDBNodeBranch::flushObserversCalls();
@ -421,7 +401,6 @@ bool connection (const string &cookie, const string &fsaddr)
// Init web box // Init web box
nlinfo("ok"); nlinfo("ok");
initWebBrowser();
// TMP TMP // TMP TMP
if (ClientCfg.Local) if (ClientCfg.Local)
@ -551,7 +530,6 @@ bool reconnection()
// Start the finite state machine // Start the finite state machine
TInterfaceState InterfaceState = GLOBAL_MENU; TInterfaceState InterfaceState = GLOBAL_MENU;
pIM->activateMasterGroup ("ui:outgame", true);
pIM->getDbProp ("UI:CURRENT_SCREEN")->setValue32(-1); pIM->getDbProp ("UI:CURRENT_SCREEN")->setValue32(-1);
CCDBNodeBranch::flushObserversCalls(); CCDBNodeBranch::flushObserversCalls();
@ -1400,19 +1378,27 @@ Deprecated {
} }
*/ else if (sProp == "title") */ else if (sProp == "title")
{ {
bool womenTitle; bool womanTitle;
if( CharacterSummaries[PlayerSelectedSlot].VisualPropA.PropertySubData.Sex == 1 ) if( CharacterSummaries[PlayerSelectedSlot].VisualPropA.PropertySubData.Sex == 1 )
{ {
UserEntity->setGender( GSGENDER::female ); UserEntity->setGender( GSGENDER::female );
womenTitle = true; womanTitle = true;
} }
else else
{ {
UserEntity->setGender( GSGENDER::male ); UserEntity->setGender( GSGENDER::male );
womenTitle = false; womanTitle = false;
} }
string titleStr = CHARACTER_TITLE::toString(CharacterSummaries[PlayerSelectedSlot].Title); string titleStr = CHARACTER_TITLE::toString(CharacterSummaries[PlayerSelectedSlot].Title);
sValue = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(titleStr,womenTitle); sValue = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(titleStr, womanTitle);
{
// Sometimes translation contains another title
ucstring::size_type pos = sValue.find('$');
if (pos != ucstring::npos)
{
sValue = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(CEntityCL::getTitleFromName(sValue), womanTitle);
}
}
setTarget (pCaller, sTarget, sValue); setTarget (pCaller, sTarget, sValue);
} }
/* else if (sProp == "orient") /* else if (sProp == "orient")

View file

@ -2287,24 +2287,39 @@ void CEntityCL::onStringAvailable(uint /* stringId */, const ucstring &value)
// retrieve the translated string // retrieve the translated string
_TitleRaw = id.toString(); _TitleRaw = id.toString();
// ucstring replacement = CI18N::get(strNewTitle); // ucstring replacement = CI18N::get(strNewTitle);
bool womenTitle = false; bool womanTitle = false;
CCharacterCL * c = dynamic_cast<CCharacterCL*>(this); CCharacterCL * c = dynamic_cast<CCharacterCL*>(this);
if(c) if(c)
{ {
if( c->getGender() == GSGENDER::female ) womanTitle = ( c->getGender() == GSGENDER::female );
womenTitle = true;
} }
const ucstring replacement(STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(_TitleRaw,womenTitle));
_Tags = STRING_MANAGER::CStringManagerClient::getTitleInfos(_TitleRaw,womenTitle); ucstring replacement(STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(_TitleRaw, womanTitle));
// Sometimes translation contains another title
{
ucstring::size_type pos = replacement.find('$');
if (pos != ucstring::npos)
{
ucstring sn = replacement;
_EntityName = sn.substr(0, pos);
ucstring::size_type pos2 = sn.find('$', pos + 1);
_TitleRaw = sn.substr(pos+1, pos2 - pos - 1);
replacement = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(_TitleRaw, womanTitle);
}
}
_Tags = STRING_MANAGER::CStringManagerClient::getTitleInfos(_TitleRaw, womanTitle);
if (!replacement.empty() || !ClientCfg.DebugStringManager) if (!replacement.empty() || !ClientCfg.DebugStringManager)
{ {
// build the final name // build the final name
p1 = _EntityName.find('$');
_EntityName = _EntityName.substr(0, p1); // + _Name.substr(p2+1) _EntityName = _EntityName.substr(0, p1); // + _Name.substr(p2+1)
// Get extended name // Get extended name
_NameEx = replacement; _NameEx = replacement;
newtitle = _NameEx; newtitle = _NameEx;
} }
CHARACTER_TITLE::ECharacterTitle titleEnum = CHARACTER_TITLE::toCharacterTitle( _TitleRaw ); CHARACTER_TITLE::ECharacterTitle titleEnum = CHARACTER_TITLE::toCharacterTitle( _TitleRaw.toString() );
if ( titleEnum >= CHARACTER_TITLE::BeginGmTitle && titleEnum <= CHARACTER_TITLE::EndGmTitle ) if ( titleEnum >= CHARACTER_TITLE::BeginGmTitle && titleEnum <= CHARACTER_TITLE::EndGmTitle )
{ {
_GMTitle = titleEnum - CHARACTER_TITLE::BeginGmTitle; _GMTitle = titleEnum - CHARACTER_TITLE::BeginGmTitle;
@ -2338,7 +2353,7 @@ void CEntityCL::onStringAvailable(uint /* stringId */, const ucstring &value)
if (pGC != NULL) pGC->setUCTitle(_EntityName); if (pGC != NULL) pGC->setUCTitle(_EntityName);
CSkillManager *pSM = CSkillManager::getInstance(); CSkillManager *pSM = CSkillManager::getInstance();
pSM->setPlayerTitle(_TitleRaw); pSM->setPlayerTitle(_TitleRaw.toString());
} }
// Must rebuild the in scene interface 'cause name has changed // Must rebuild the in scene interface 'cause name has changed
@ -2349,17 +2364,17 @@ void CEntityCL::onStringAvailable(uint /* stringId */, const ucstring &value)
//----------------------------------------------- //-----------------------------------------------
// getTitleFromName // getTitleFromName
//----------------------------------------------- //-----------------------------------------------
string CEntityCL::getTitleFromName(const ucstring &name) ucstring CEntityCL::getTitleFromName(const ucstring &name)
{ {
ucstring::size_type p1 = name.find('$'); ucstring::size_type p1 = name.find('$');
if (p1 != ucstring::npos) if (p1 != ucstring::npos)
{ {
ucstring::size_type p2 = name.find('$', p1 + 1); ucstring::size_type p2 = name.find('$', p1 + 1);
if (p2 != ucstring::npos) if (p2 != ucstring::npos)
return name.toString().substr(p1+1, p2-p1-1); return name.substr(p1+1, p2-p1-1);
} }
return ""; return ucstring("");
}// getTitleFromName // }// getTitleFromName //
//----------------------------------------------- //-----------------------------------------------

View file

@ -329,7 +329,7 @@ public:
/// Return the Name of the entity. There may be a specification in it (guard, trader, etc ...). It is then surrounded by '$' /// Return the Name of the entity. There may be a specification in it (guard, trader, etc ...). It is then surrounded by '$'
const ucstring &getEntityName() const {return _EntityName;} const ucstring &getEntityName() const {return _EntityName;}
/// Return the title from a name. The specification is surrounded by '$', and tells the title of the entity (guard, matis merchant, etc ..) /// Return the title from a name. The specification is surrounded by '$', and tells the title of the entity (guard, matis merchant, etc ..)
static std::string getTitleFromName(const ucstring &name); static ucstring getTitleFromName(const ucstring &name);
/// Remove the specification from a name. The specification is surrounded by '$', and tells the title of the entity (guard, matis merchant, etc ..) /// Remove the specification from a name. The specification is surrounded by '$', and tells the title of the entity (guard, matis merchant, etc ..)
static ucstring removeTitleFromName(const ucstring &name); static ucstring removeTitleFromName(const ucstring &name);
/// Remove the shard from a name (if player from the same shard). The shard is surrounded by (), and tells the incoming shard of the entity (aniro, leanon etc...) /// Remove the shard from a name (if player from the same shard). The shard is surrounded by (), and tells the incoming shard of the entity (aniro, leanon etc...)
@ -930,7 +930,7 @@ protected:
// Current entity tags // Current entity tags
std::vector<ucstring> _Tags; std::vector<ucstring> _Tags;
// Current entity title string id // Current entity title string id
std::string _TitleRaw; ucstring _TitleRaw;
// Current permanent content symbol for the entity // Current permanent content symbol for the entity
std::string _PermanentStatutIcon; std::string _PermanentStatutIcon;
// Has reserved title? // Has reserved title?

View file

@ -34,7 +34,6 @@
#include "sound_manager.h" #include "sound_manager.h"
#include "actions_client.h" #include "actions_client.h"
#include "r2/editor.h" #include "r2/editor.h"
#include "http_client.h"
#include "global.h" #include "global.h"
#include "release.h" #include "release.h"
#include "nel/misc/string_conversion.h" #include "nel/misc/string_conversion.h"

View file

@ -64,7 +64,7 @@ CGroundFXManager::CGroundFXManager() :
_MinSpeed(1.5f), _MinSpeed(1.5f),
_MaxSpeed(6.f), _MaxSpeed(6.f),
_SpeedWaterWalkFast(3.f), _SpeedWaterWalkFast(3.f),
_SpeedWaterSwimFast(2.f), _SpeedWaterSwimFast(3.f),
_MaxDist(50.f), _MaxDist(50.f),
_MaxNumFX(10), _MaxNumFX(10),
_NumFX(0), _NumFX(0),
@ -495,7 +495,7 @@ void CGroundFXManager::update(const NLMISC::CVectorD &camPos)
break; break;
case CInstance::Swim: case CInstance::Swim:
if (speed == 0.f) fxName = "StepSwimIdle.ps"; if (speed == 0.f) fxName = "StepSwimIdle.ps";
else if (speed > _SpeedWaterSwimFast) else if (speed > _SpeedWaterWalkFast)
{ {
fxName = "StepSwimSpeed.ps"; fxName = "StepSwimSpeed.ps";
fxNameUnderWater = "StepSwimSpeedUnderWater.ps"; fxNameUnderWater = "StepSwimSpeedUnderWater.ps";

View file

@ -57,7 +57,7 @@ bool CCurlHttpClient::authenticate(const std::string &user, const std::string &p
return true; return true;
} }
const char *CAFilename = "ssl_ca_cert.pem"; // this the certificate "Thawte Server CA" const char *CAFilename = "ssl_ca_cert.pem"; // this is the certificate "Thawte Server CA"
// *************************************************************************** // ***************************************************************************
bool CCurlHttpClient::verifyServer(bool verify) bool CCurlHttpClient::verifyServer(bool verify)

View file

@ -1940,12 +1940,21 @@ public:
CStringPostProcessRemoveTitle::cbIDStringReceived(inout); CStringPostProcessRemoveTitle::cbIDStringReceived(inout);
if (inout.empty()) if (inout.empty())
{ {
CStringPostProcessRemoveName spprn;
CEntityCL *entity = EntitiesMngr.entity(Slot); CEntityCL *entity = EntitiesMngr.entity(Slot);
CCharacterCL *pChar = dynamic_cast<CCharacterCL*>(entity); CCharacterCL *pChar = dynamic_cast<CCharacterCL*>(entity);
bool womanTitle = false;
if (pChar != NULL) if (pChar != NULL)
spprn.Woman = pChar->getGender() == GSGENDER::female; womanTitle = pChar->getGender() == GSGENDER::female;
spprn.cbIDStringReceived(copyInout);
STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(CEntityCL::getTitleFromName(copyInout), womanTitle);
// Sometimes translation contains another title
ucstring::size_type pos = copyInout.find('$');
if (pos != ucstring::npos)
{
copyInout = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(CEntityCL::getTitleFromName(copyInout), womanTitle);
}
CStringPostProcessRemoveTitle::cbIDStringReceived(copyInout);
inout = copyInout; inout = copyInout;
} }
@ -2403,10 +2412,22 @@ class CAHTarget : public IActionHandler
// Get the entity name to target // Get the entity name to target
ucstring entityName; ucstring entityName;
entityName.fromUtf8 (getParam (Params, "entity")); entityName.fromUtf8 (getParam (Params, "entity"));
bool preferCompleteMatch = (getParam (Params, "prefer_complete_match") != "0");
if (!entityName.empty()) if (!entityName.empty())
{ {
// Get the entity CEntityCL *entity = NULL;
CEntityCL *entity = EntitiesMngr.getEntityByName (entityName, false, false); if (preferCompleteMatch)
{
// Try to get the entity with complete match first
entity = EntitiesMngr.getEntityByName (entityName, false, true);
}
if (entity == NULL)
{
// Get the entity with a partial match
entity = EntitiesMngr.getEntityByName (entityName, false, false);
}
if (entity) if (entity)
{ {
CCharacterCL *character = dynamic_cast<CCharacterCL*>(entity); CCharacterCL *character = dynamic_cast<CCharacterCL*>(entity);
@ -2937,10 +2958,7 @@ public:
CCtrlBaseButton *pBut = dynamic_cast<CCtrlBaseButton*>(pIM->getElementFromId( GAME_CONFIG_VIDEO_FULLSCREEN_BUTTON )); CCtrlBaseButton *pBut = dynamic_cast<CCtrlBaseButton*>(pIM->getElementFromId( GAME_CONFIG_VIDEO_FULLSCREEN_BUTTON ));
if (pBut) if (pBut)
{ {
if (ClientCfg.Windowed) pBut->setPushed(!ClientCfg.Windowed);
pBut->setPushed(false);
else
pBut->setPushed(true);
} }
pIM->runActionHandler("game_config_change_vid_fullscreen",NULL); pIM->runActionHandler("game_config_change_vid_fullscreen",NULL);
@ -4040,7 +4058,7 @@ public:
{ {
CEntityCL *pSel = EntitiesMngr.entity(UserEntity->selection()); CEntityCL *pSel = EntitiesMngr.entity(UserEntity->selection());
if (pSel != NULL) if (pSel != NULL)
UserEntity->moveToTotemBuildingPhrase( UserEntity->selection(), 2.0f, ~0, ~0, true); UserEntity->moveToTotemBuildingPhrase( UserEntity->selection(), 2.0f, std::numeric_limits<uint>::max(), std::numeric_limits<uint>::max(), true);
} }
} }
}; };

View file

@ -686,7 +686,7 @@ class CHandlerOpenTitleHelp : public IActionHandler
woman = pChar->getGender() == GSGENDER::female; woman = pChar->getGender() == GSGENDER::female;
// extract the replacement id // extract the replacement id
string strNewTitle = CEntityCL::getTitleFromName(copyName); ucstring strNewTitle = CEntityCL::getTitleFromName(copyName);
// retrieve the translated string // retrieve the translated string
if (!strNewTitle.empty()) if (!strNewTitle.empty())

View file

@ -884,11 +884,21 @@ NLMISC_COMMAND(slsn, "Temp : set the name of the last sender.", "<name>")
bool CStringPostProcessRemoveName::cbIDStringReceived(ucstring &inOut) bool CStringPostProcessRemoveName::cbIDStringReceived(ucstring &inOut)
{ {
// extract the replacement id // extract the replacement id
std::string strNewTitle = CEntityCL::getTitleFromName(inOut); ucstring strNewTitle = CEntityCL::getTitleFromName(inOut);
// retrieve the translated string // retrieve the translated string
if (!strNewTitle.empty()) if (!strNewTitle.empty())
inOut = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(strNewTitle,Woman); {
inOut = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(strNewTitle, Woman);
{
// Sometimes translation contains another title
ucstring::size_type pos = inOut.find('$');
if (pos != ucstring::npos)
{
inOut = STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(CEntityCL::getTitleFromName(inOut), Woman);
}
}
}
else else
inOut = ""; inOut = "";

View file

@ -1119,7 +1119,7 @@ public:
if (pCSDst->isShortCut()) if (pCSDst->isShortCut())
memoryLine = pPM->getSelectedMemoryLineDB(); memoryLine = pPM->getSelectedMemoryLineDB();
else else
memoryLine = 0; memoryLine = pPM->getSelectedMemoryAltLineDB();
if(memoryLine<0) if(memoryLine<0)
return; return;
@ -1577,6 +1577,32 @@ public:
}; };
REGISTER_ACTION_HANDLER(CHandlerPhraseSelectMemory, "phrase_select_memory"); REGISTER_ACTION_HANDLER(CHandlerPhraseSelectMemory, "phrase_select_memory");
class CHandlerPhraseSelectMemory2 : public IActionHandler
{
public:
virtual void execute(CCtrlBase * /* pCaller */, const string &Params)
{
string expr = getParam (Params, "value");
CInterfaceExprValue value;
if (CInterfaceExpr::eval(expr, value, NULL))
{
if (!value.toInteger())
{
nlwarning("<CHandlerPhraseSelectMemory:execute> expression doesn't evaluate to a numerical value");
}
else
{
CSPhraseManager *pPM= CSPhraseManager::getInstance();
sint val= (sint32)value.getInteger();
clamp(val, 0, MEM_SET_TYPES::NumMemories-1);
pPM->selectMemoryLineDBalt(val);
}
}
}
};
REGISTER_ACTION_HANDLER(CHandlerPhraseSelectMemory2, "phrase_select_memory_2");
// *************************************************************************** // ***************************************************************************
class CHandlerPhraseSelectShortcutBar : public IActionHandler class CHandlerPhraseSelectShortcutBar : public IActionHandler
@ -1585,7 +1611,7 @@ public:
virtual void execute(CCtrlBase * /* pCaller */, const string &Params) virtual void execute(CCtrlBase * /* pCaller */, const string &Params)
{ {
CInterfaceManager *pIM= CInterfaceManager::getInstance(); CInterfaceManager *pIM= CInterfaceManager::getInstance();
CCDBNodeLeaf *node= pIM->getDbProp("UI:PHRASE:SELECT_MEMORY", false); CCDBNodeLeaf *node= pIM->getDbProp("UI:PHRASE:SELECT_MEMORY_", false);
if(node) if(node)
{ {
sint32 val; sint32 val;
@ -1594,6 +1620,7 @@ public:
} }
} }
}; };
REGISTER_ACTION_HANDLER(CHandlerPhraseSelectShortcutBar, "select_shortcut_bar"); REGISTER_ACTION_HANDLER(CHandlerPhraseSelectShortcutBar, "select_shortcut_bar");

View file

@ -416,7 +416,7 @@ class CAHUIShowHide : public IActionHandler
nlwarning("%s is not a group html", window.c_str()); nlwarning("%s is not a group html", window.c_str());
return; return;
} }
pGH->setURL("http://"+ClientCfg.WebIgMainDomain+"/start/index.php?app="+webapp); pGH->setURL("http://"+ClientCfg.WebIgMainDomain+"/index.php?app="+webapp);
} }
} }
else else

View file

@ -156,8 +156,8 @@ void CBotChatPageMission::acceptMission()
} }
// close the selection box // close the selection box
activateWindow(WIN_BOT_CHAT_ACCEPT_MISSION, false); activateWindow(WIN_BOT_CHAT_ACCEPT_MISSION, false);
// close the botchat //// close the botchat
CBotChatManager::getInstance()->setCurrPage(NULL); //CBotChatManager::getInstance()->setCurrPage(NULL);
_CurrSel = NULL; _CurrSel = NULL;
} }

View file

@ -31,7 +31,8 @@ CChatTextManager* CChatTextManager::_Instance = NULL;
CChatTextManager::CChatTextManager() : CChatTextManager::CChatTextManager() :
_TextFontSize(NULL), _TextFontSize(NULL),
_TextMultilineSpace(NULL), _TextMultilineSpace(NULL),
_TextShadowed(NULL) _TextShadowed(NULL),
_ShowTimestamps(NULL)
{ {
} }
@ -44,6 +45,8 @@ CChatTextManager::~CChatTextManager()
_TextMultilineSpace = NULL; _TextMultilineSpace = NULL;
delete _TextShadowed; delete _TextShadowed;
_TextShadowed = NULL; _TextShadowed = NULL;
delete _ShowTimestamps;
_ShowTimestamps = NULL;
} }
//================================================================================= //=================================================================================
uint CChatTextManager::getTextFontSize() const uint CChatTextManager::getTextFontSize() const
@ -81,6 +84,18 @@ bool CChatTextManager::isTextShadowed() const
return _TextShadowed->getValueBool(); return _TextShadowed->getValueBool();
} }
//=================================================================================
bool CChatTextManager::showTimestamps() const
{
if (!_ShowTimestamps)
{
CInterfaceManager *im = CInterfaceManager::getInstance();
_ShowTimestamps = im->getDbProp("UI:SAVE:CHAT:SHOW_TIMES_IN_CHAT_CB", false);
if (!_ShowTimestamps) return false;
}
return _ShowTimestamps->getValueBool();
}
//================================================================================= //=================================================================================
static CInterfaceGroup *parseCommandTag(ucstring &line) static CInterfaceGroup *parseCommandTag(ucstring &line)
{ {
@ -149,13 +164,9 @@ CViewBase *CChatTextManager::createMsgText(const ucstring &cstMsg, NLMISC::CRGBA
vt->setModulateGlobalColor(false); vt->setModulateGlobalColor(false);
ucstring cur_time; ucstring cur_time;
static CCDBNodeLeaf* node = CInterfaceManager::getInstance()->getDbProp("UI:SAVE:CHAT:SHOW_TIMES_IN_CHAT_CB", false); if (showTimestamps())
if (node)
{ {
if (node->getValueBool()) cur_time = CInterfaceManager::getTimestampHuman();
{
cur_time = CInterfaceManager::getTimestampHuman();
}
} }
// if text contain any color code, set the text formated and white, // if text contain any color code, set the text formated and white,
@ -174,7 +185,6 @@ CViewBase *CChatTextManager::createMsgText(const ucstring &cstMsg, NLMISC::CRGBA
msg = cur_time + msg; msg = cur_time + msg;
} }
vt->setTextFormatTaged(msg); vt->setTextFormatTaged(msg);
vt->setColor(NLMISC::CRGBA::White); vt->setColor(NLMISC::CRGBA::White);
} }

View file

@ -59,10 +59,13 @@ private:
mutable class CCDBNodeLeaf *_TextFontSize; mutable class CCDBNodeLeaf *_TextFontSize;
mutable CCDBNodeLeaf *_TextMultilineSpace; mutable CCDBNodeLeaf *_TextMultilineSpace;
mutable CCDBNodeLeaf *_TextShadowed; mutable CCDBNodeLeaf *_TextShadowed;
mutable CCDBNodeLeaf *_ShowTimestamps;
// ctor, private because of singleton // ctor, private because of singleton
CChatTextManager(); CChatTextManager();
~CChatTextManager(); ~CChatTextManager();
bool showTimestamps() const;
}; };
// shortcut to get text manager instance // shortcut to get text manager instance

View file

@ -1296,7 +1296,7 @@ void CDBCtrlSheet::setupMacro()
if (!_NeedSetup) return; if (!_NeedSetup) return;
// compute from OptString // compute from OptString
setupCharBitmaps(24, 4); setupCharBitmaps(26, 4, 5);
_NeedSetup = false; _NeedSetup = false;
@ -1560,8 +1560,8 @@ void CDBCtrlSheet::setupDisplayAsPhrase(const std::vector<NLMISC::CSheetId> &bri
{ {
// recompute text // recompute text
_OptString= iconName; _OptString= iconName;
// compute from OptString. Allow only 1 line and 4 chars // compute from OptString. Allow only 1 line and 5 chars
setupCharBitmaps(24, 1, 4); setupCharBitmaps(26, 1, 5);
} }
} }
} }

View file

@ -621,8 +621,6 @@ void CGroupHTML::addLink (uint element_number, uint /* attribute_number */, HTCh
_Link.push_back(""); _Link.push_back("");
_LinkTitle.push_back(""); _LinkTitle.push_back("");
} }
} }
} }
} }
@ -1049,7 +1047,6 @@ void CGroupHTML::beginElement (uint element_number, const BOOL *present, const c
if (present[HTML_BODY_STYLE] && value[HTML_BODY_STYLE]) if (present[HTML_BODY_STYLE] && value[HTML_BODY_STYLE])
style = value[HTML_BODY_STYLE]; style = value[HTML_BODY_STYLE];
if (!style.empty()) if (!style.empty())
{ {
TStyle styles = parseStyle(style); TStyle styles = parseStyle(style);
@ -2470,7 +2467,6 @@ void CGroupHTML::addString(const ucstring &str)
getParagraph()->addChild (buttonGroup); getParagraph()->addChild (buttonGroup);
paragraphChange (); paragraphChange ();
} }
} }
else else
{ {

View file

@ -258,7 +258,7 @@ struct CWebigNotificationThread : public NLMISC::IRunnable
nlSleep(1*60*1000); nlSleep(1*60*1000);
while (true) while (true)
{ {
string url = "http://"+ClientCfg.WebIgMainDomain+"/start/index.php?app=notif&rnd="+randomString(); string url = "http://"+ClientCfg.WebIgMainDomain+"/index.php?app=notif&rnd="+randomString();
addWebIGParams(url, true); addWebIGParams(url, true);
get(url); get(url);
nlSleep(10*60*1000); nlSleep(10*60*1000);

View file

@ -1003,7 +1003,7 @@ void CGroupInSceneBubbleManager::webIgChatOpen (uint32 nBotUID, string text, con
{ {
uint32 i = 0; uint32 i = 0;
while (getDynBubble(i) != NULL) i++; while (getDynBubble(i) != NULL) i++;
id = "in_scene_webig_bubble_" + toString(i); id = "in_scene_webig_bubble_" + toString(nBotUID);
// Create the instance // Create the instance
std::vector<std::pair<std::string,std::string> > templateParams; std::vector<std::pair<std::string,std::string> > templateParams;
templateParams.push_back (std::pair<std::string,std::string>("id", id)); templateParams.push_back (std::pair<std::string,std::string>("id", id));
@ -1071,7 +1071,6 @@ void CGroupInSceneBubbleManager::webIgChatOpen (uint32 nBotUID, string text, con
for (j = 0; j < strs.size(); ++j) for (j = 0; j < strs.size(); ++j)
{ {
string fullid = id+"opt"+toString(j);
pVT = dynamic_cast<CViewText*>(bubble->getElement(id+"opt"+toString(j))); pVT = dynamic_cast<CViewText*>(bubble->getElement(id+"opt"+toString(j)));
if (pVT != NULL) if (pVT != NULL)
{ {
@ -1084,7 +1083,6 @@ void CGroupInSceneBubbleManager::webIgChatOpen (uint32 nBotUID, string text, con
{ {
pCL->setActionOnLeftClick("browse"); pCL->setActionOnLeftClick("browse");
pCL->setParamsOnLeftClick("name=ui:interface:web_transactions:content:html|show=0|url="+links[j]); pCL->setParamsOnLeftClick("name=ui:interface:web_transactions:content:html|show=0|url="+links[j]);
//pCL->setActionOnLeftClickParams("name=ui:interface:web_transactions:content:html|url="+links[j]);
pCL->setActive(true); pCL->setActive(true);
} }

View file

@ -172,9 +172,9 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
// For RoleMasters, merchants etc... must display name and function, and nothing else // For RoleMasters, merchants etc... must display name and function, and nothing else
for(uint i=0;i<NumBars;i++) for(uint i=0;i<NumBars;i++)
bars[i]= false; bars[i]= false;
name= !entityName.empty(); name= !entityName.empty() && pIM->getDbProp(dbEntry+"NPCNAME")->getValueBool();
symbol= false; symbol= false;
title= true; title= (entityName.empty() && pIM->getDbProp(dbEntry+"NPCNAME")->getValueBool()) || pIM->getDbProp(dbEntry+"NPCTITLE")->getValueBool();
guildName= false; guildName= false;
templateName = "in_scene_user_info"; templateName = "in_scene_user_info";
rpTags = (!entityTag1.empty() || !entityTag2.empty() || !entityTag3.empty() || !entityTag4.empty() ) && pIM->getDbProp(dbEntry+"RPTAGS")->getValueBool(); rpTags = (!entityTag1.empty() || !entityTag2.empty() || !entityTag3.empty() || !entityTag4.empty() ) && pIM->getDbProp(dbEntry+"RPTAGS")->getValueBool();
@ -281,10 +281,9 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
info->_Entity = entity; info->_Entity = entity;
// Some constants // Some constants
sint barHeight, barSpace, textH; sint barHeight, barSpace;
fromString(pIM->getDefine("in_scene_user_info_bar_h"), barHeight); fromString(pIM->getDefine("in_scene_user_info_bar_h"), barHeight);
fromString(pIM->getDefine("in_scene_user_info_bar_space"), barSpace); fromString(pIM->getDefine("in_scene_user_info_bar_space"), barSpace);
fromString(pIM->getDefine("in_scene_user_info_text_h"), textH);
fromString(pIM->getDefine("in_scene_user_bar_length"), CGroupInSceneUserInfo::_BatLength); fromString(pIM->getDefine("in_scene_user_bar_length"), CGroupInSceneUserInfo::_BatLength);
// Build the bars // Build the bars
@ -309,10 +308,9 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
bitmap->setColorRGBA (BarColor[i]); bitmap->setColorRGBA (BarColor[i]);
} }
info->_Bars[i] = bitmap; info->_Bars[i] = bitmap;
barCount++;
} }
} }
barCount++;
} }
} }
@ -345,21 +343,31 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
if (!barCount) if (!barCount)
{ {
// Delete // Delete
if (win_jauge_mid) CViewBase *view = leftGroup->getView ("win_bot");
win_jauge_mid->setActive(false);
// leftGroup->delView (win_jauge_mid);
CViewBase *view = leftGroup->getView ("win_jauge_top");
if (view) if (view)
view->setActive(false); leftGroup->delView (view);
//leftGroup->delView (view); view = leftGroup->getView ("win_mid");
if (view)
leftGroup->delView (view);
view = leftGroup->getView ("win_top");
if (view)
leftGroup->delView (view);
if (win_jauge_mid)
//win_jauge_mid->setActive(false);
leftGroup->delView (win_jauge_mid);
view = leftGroup->getView ("win_jauge_top");
if (view)
//view->setActive(false);
leftGroup->delView (view);
view = leftGroup->getView ("win_jauge_bot"); view = leftGroup->getView ("win_jauge_bot");
if (view) if (view)
view->setActive(false); //view->setActive(false);
//leftGroup->delView (view); leftGroup->delView (view);
} }
// Strings // Strings
sint stringSpace = 0; //sint stringSpace = 0;
sint stringCount = 0; sint stringCount = 0;
if (name) if (name)
{ {
@ -368,8 +376,8 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
info->_Name = dynamic_cast<CViewText*>(text); info->_Name = dynamic_cast<CViewText*>(text);
stringCount++; stringCount++;
} }
else //else
stringSpace += textH; // stringSpace += textH;
if (title) if (title)
{ {
CViewBase *text = leftGroup->getView ("info"+toString(stringCount)); CViewBase *text = leftGroup->getView ("info"+toString(stringCount));
@ -377,8 +385,8 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
info->_Title = dynamic_cast<CViewText*>(text); info->_Title = dynamic_cast<CViewText*>(text);
stringCount++; stringCount++;
} }
else //else
stringSpace += textH; // stringSpace += textH;
if (rpTags) if (rpTags)
{ {
@ -444,8 +452,8 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
stringCount++; stringCount++;
} }
} }
else //else
stringSpace += textH; // stringSpace += textH;
// Hide guild symbol / raw material source icon? // Hide guild symbol / raw material source icon?
if ( isForageSource ) if ( isForageSource )
@ -467,13 +475,9 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
if ( iconFilename ) if ( iconFilename )
bitmap->setTexture (*iconFilename); bitmap->setTexture (*iconFilename);
} }
leftGroup->setW( leftGroup->getW() + 42 );
leftGroup->invalidateCoords(); leftGroup->invalidateCoords();
} }
// Increase vertical size to let bars be seen
//leftGroup->setH( leftGroup->getH() + 42 ); // hide last bar, currently
// Set ZBias of forage interface // Set ZBias of forage interface
info->setZBias(ClientCfg.ForageInterfaceZBias); info->setZBias(ClientCfg.ForageInterfaceZBias);
@ -507,15 +511,15 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
{ {
info->delView(logoOver); info->delView(logoOver);
} }
leftGroup->setW( leftGroup->getW() + 42 ); //leftGroup->setW( leftGroup->getW() + 42 );
leftGroup->invalidateCoords();
} }
else else
{ {
info->delView(logo); info->delView(logo);
info->delView(logoOver); info->delView(logoOver);
leftGroup->setX(0); //leftGroup->setX(0);
} }
leftGroup->invalidateCoords();
} }
} }
else else
@ -578,7 +582,6 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
if (pPlayer == NULL) if (pPlayer == NULL)
needPvPLogo = false; needPvPLogo = false;
if (pPlayer != NULL && needPvPLogo) if (pPlayer != NULL && needPvPLogo)
{ {
if (pvpFactionLogo) if (pvpFactionLogo)
@ -633,7 +636,7 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
} }
} }
} }
if (pvpOutpostLogo) if (pvpOutpostLogo)
{ {
if( pPlayer->getOutpostId() != 0 ) if( pPlayer->getOutpostId() != 0 )
@ -641,7 +644,7 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
else else
pvpOutpostLogo->setActive(false); pvpOutpostLogo->setActive(false);
} }
if (pvpDuelLogo) if (pvpDuelLogo)
{ {
if( pPlayer->getPvpMode()&PVP_MODE::PvpDuel ) if( pPlayer->getPvpMode()&PVP_MODE::PvpDuel )
@ -653,36 +656,36 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
} }
else else
{ {
if (pvpFactionLogo) CInterfaceGroup* grp = info->getGroup("right_pvp");
pvpFactionLogo->setActive(false); if (grp)
if (pvpOutpostLogo) info->delGroup(grp);
pvpOutpostLogo->setActive(false);
if (pvpDuelLogo)
pvpDuelLogo->setActive(false);
} }
} }
// No bar and no string ? // No bar and no string ?
if (((stringCount == 1) && !barCount) || (stringCount == 0)) if (((stringCount == 1) && !barCount) || (stringCount == 0))
{ {
CViewBase *view = leftGroup->getView ("win_bot");
if (view)
leftGroup->delView (view);
view = leftGroup->getView ("win_mid");
if (view)
leftGroup->delView (view);
view = leftGroup->getView ("win_top");
if (view)
leftGroup->delView (view);
// Delete // Delete
CViewBase *bitmap = leftGroup->getView ("win_top"); view = leftGroup->getView ("win_jauge_top");
if (bitmap) if (view)
//leftGroup->delView (bitmap); leftGroup->delView (view);
bitmap->setAlpha(0); view = leftGroup->getView ("win_jauge_mid");
bitmap = leftGroup->getView ("win_mid"); if (view)
if (bitmap) leftGroup->delView (view);
//leftGroup->delView (bitmap); view = leftGroup->getView ("win_jauge_bot");
bitmap->setAlpha(0); if (view)
bitmap = leftGroup->getView ("win_bot"); leftGroup->delView (view);
if (bitmap)
//leftGroup->delView (bitmap);
bitmap->setAlpha(0);
// Anti-Bug, xmargin is not take into evaluate W
/*if (info->_Name)
info->_Name->setX(0);*/
} }
// Delete remaining strings // Delete remaining strings
@ -690,24 +693,17 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
{ {
CViewBase *text = leftGroup->getView ("info"+toString(i)); CViewBase *text = leftGroup->getView ("info"+toString(i));
if (text) if (text)
leftGroup->delView(text); text->setActive(false);
} }
// Adjust win_mid // Adjust win_mid
CViewBase *win_mid = leftGroup->getView ("win_mid"); CViewBase *win_mid = leftGroup->getView ("win_mid");
if (win_mid) if (win_mid)
{ {
win_mid->setH (win_mid->getH() - spaceBar/2 - stringSpace); win_mid->setH (win_mid->getH() - spaceBar/2);
} }
// Total height
sint totalHeight = info->getH ();
totalHeight -= spaceBar + stringSpace;
info->setH (totalHeight);
totalHeight = leftGroup->getH ();
totalHeight -= spaceBar + stringSpace;
leftGroup->setH (totalHeight);
// Set player name // Set player name
if (info->_Name) if (info->_Name)
{ {
@ -893,7 +889,7 @@ void CGroupInSceneUserInfo::updateDynamicData ()
ucstring entityName = _Entity->getDisplayName(); ucstring entityName = _Entity->getDisplayName();
if (pPlayer != NULL) if (pPlayer != NULL)
if (pPlayer->isAFK()) if (pPlayer->isAFK())
entityName += CI18N::get("uiAFK"); entityName += CI18N::get("uiAFK");
_Name->setText(entityName); _Name->setText(entityName);
// Title color get the PVP color // Title color get the PVP color

View file

@ -66,6 +66,7 @@
#include "group_in_scene_bubble.h" #include "group_in_scene_bubble.h"
#include "group_skills.h" #include "group_skills.h"
#include "group_compas.h" #include "group_compas.h"
#include "group_html.h"
// Misc // Misc
#include "../input.h" #include "../input.h"
@ -583,6 +584,17 @@ void CInterfaceManager::initOutGame()
initActions(); initActions();
} }
//NLMEMORY::CheckHeap (true); //NLMEMORY::CheckHeap (true);
// Initialize the web browser
{
CGroupHTML *pGH = dynamic_cast<CGroupHTML*>(this->getElementFromId(GROUP_BROWSER));
if (pGH)
{
pGH->setActive(true);
pGH->browse(ClientCfg.PatchletUrl.c_str());
}
}
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------

View file

@ -57,6 +57,8 @@ extern CCDBSynchronised IngameDbMngr;
///\todo nico remove that ///\todo nico remove that
extern bool g_hidden; extern bool g_hidden;
#define GROUP_BROWSER "ui:outgame:charsel:webstart:content:webstart_html"
///max botchat distance ///max botchat distance
#define MAX_BOTCHAT_DISTANCE_SQUARE 25 #define MAX_BOTCHAT_DISTANCE_SQUARE 25

View file

@ -491,6 +491,22 @@ void CSPhraseManager::selectMemoryLineDB(sint32 memoryLine)
} }
} }
void CSPhraseManager::selectMemoryLineDBalt(sint32 memoryLine)
{
if(memoryLine<0)
memoryLine= -1;
if(_SelectedMemoryDBalt!=memoryLine)
{
_SelectedMemoryDBalt= memoryLine;
// since memory selection changes then must update all the DB and the Ctrl states
updateMemoryDBAll();
updateAllMemoryCtrlState();
updateAllMemoryCtrlRegenTickRange();
// must update also the execution views
updateExecutionDisplay();
}
}
// *************************************************************************** // ***************************************************************************
void CSPhraseManager::updateMemoryDBAll() void CSPhraseManager::updateMemoryDBAll()
{ {
@ -517,12 +533,19 @@ void CSPhraseManager::updateMemoryDBAll()
} }
} }
if(_SelectedMemoryDB != -1 && (sint32)_Memories.size() > 0) if(_SelectedMemoryDBalt == -1 || _SelectedMemoryDBalt>=(sint32)_Memories.size())
{
for(uint i=0;i<PHRASE_MAX_MEMORY_SLOT;i++)
{
_MemoryAltDbLeaves[i]->setValue32(0);
}
}
else
{ {
// Always update alt gestionsets // Always update alt gestionsets
for(uint i=0;i<PHRASE_MAX_MEMORY_SLOT;i++) for(uint i=0;i<PHRASE_MAX_MEMORY_SLOT;i++)
{ {
CMemorySlot &slotAlt= _Memories[0].Slot[i]; CMemorySlot &slotAlt= _Memories[_SelectedMemoryDBalt].Slot[i];
if(!slotAlt.isPhrase()) if(!slotAlt.isPhrase())
_MemoryAltDbLeaves[i]->setValue32(0); _MemoryAltDbLeaves[i]->setValue32(0);
else else
@ -548,11 +571,8 @@ void CSPhraseManager::updateMemoryDBSlot(uint32 memorySlot)
_MemoryDbLeaves[memorySlot]->setValue32(0); _MemoryDbLeaves[memorySlot]->setValue32(0);
else else
_MemoryDbLeaves[memorySlot]->setValue32(slot.Id); _MemoryDbLeaves[memorySlot]->setValue32(slot.Id);
}
if (_SelectedMemoryDB == 0) CMemorySlot &slotAlt= _Memories[_SelectedMemoryDBalt].Slot[memorySlot];
{
CMemorySlot &slotAlt= _Memories[0].Slot[memorySlot];
if(!slotAlt.isPhrase()) if(!slotAlt.isPhrase())
_MemoryAltDbLeaves[memorySlot]->setValue32(0); _MemoryAltDbLeaves[memorySlot]->setValue32(0);
else else
@ -875,6 +895,7 @@ void CSPhraseManager::reset()
_InitInGameDone= false; _InitInGameDone= false;
_SelectedMemoryDB= -1; _SelectedMemoryDB= -1;
_SelectedMemoryDBalt = _SelectedMemoryDB;
// NB: slot under 2 can't be taken. // NB: slot under 2 can't be taken.
_MaxSlotSet= BookStartSlot-1; _MaxSlotSet= BookStartSlot-1;
_LastBookNumDbFill= 0; _LastBookNumDbFill= 0;
@ -2678,7 +2699,7 @@ void CSPhraseManager::updateMemoryCtrlRegenTickRange(uint memorySlot, CDBCtrlShe
if (ctrl->isShortCut()) if (ctrl->isShortCut())
memoryLine = getSelectedMemoryLineDB(); memoryLine = getSelectedMemoryLineDB();
else else
memoryLine = 0; memoryLine = getSelectedMemoryAltLineDB();
if (memoryLine < 0) if (memoryLine < 0)
return; return;
sint32 phraseId= getMemorizedPhrase(memoryLine, memorySlot); sint32 phraseId= getMemorizedPhrase(memoryLine, memorySlot);
@ -2820,7 +2841,7 @@ void CSPhraseManager::updateMemoryCtrlState(uint memorySlot, CDBCtrlSheet *ctrl,
if (ctrl->isShortCut()) // No memoryLine defined if (ctrl->isShortCut()) // No memoryLine defined
memoryLine= getSelectedMemoryLineDB(); memoryLine= getSelectedMemoryLineDB();
else else
memoryLine= 0; memoryLine= getSelectedMemoryAltLineDB();
bool newIsMacro= isMemorizedMacro(memoryLine, memorySlot); bool newIsMacro= isMemorizedMacro(memoryLine, memorySlot);
sint32 macroId= getMemorizedMacro(memoryLine, memorySlot); sint32 macroId= getMemorizedMacro(memoryLine, memorySlot);
sint32 phraseId= getMemorizedPhrase(memoryLine, memorySlot); sint32 phraseId= getMemorizedPhrase(memoryLine, memorySlot);

View file

@ -235,9 +235,10 @@ public:
/// Only one memory line is displayed in the Memory DB. if -1, erased. /// Only one memory line is displayed in the Memory DB. if -1, erased.
void selectMemoryLineDB(sint32 memoryLine); void selectMemoryLineDB(sint32 memoryLine);
void selectMemoryLineDBalt(sint32 memoryLine);
/// get the selected memory line. /// get the selected memory line.
sint32 getSelectedMemoryLineDB() const {return _SelectedMemoryDB;} sint32 getSelectedMemoryLineDB() const {return _SelectedMemoryDB;}
sint32 getSelectedMemoryAltLineDB() const {return _SelectedMemoryDBalt;}
/// Common Method to send the Memorize msg to server /// Common Method to send the Memorize msg to server
void sendMemorizeToServer(uint32 memoryLine, uint32 memorySlot, uint32 phraseId); void sendMemorizeToServer(uint32 memoryLine, uint32 memorySlot, uint32 phraseId);
/// Common Method to send the Forget msg to server /// Common Method to send the Forget msg to server
@ -518,6 +519,7 @@ private:
}; };
std::vector<CMemoryLine> _Memories; std::vector<CMemoryLine> _Memories;
sint32 _SelectedMemoryDB; sint32 _SelectedMemoryDB;
sint32 _SelectedMemoryDBalt;
void updateMemoryDBAll(); void updateMemoryDBAll();
void updateMemoryDBSlot(uint32 memorySlot); void updateMemoryDBSlot(uint32 memorySlot);

View file

@ -49,7 +49,6 @@
#include "global.h" #include "global.h"
#include "input.h" #include "input.h"
#include "libwww.h" #include "libwww.h"
#include "http_client.h"
#include "http_client_curl.h" #include "http_client_curl.h"
#include "login_progress_post_thread.h" #include "login_progress_post_thread.h"
@ -141,6 +140,19 @@ uint32 TotalPatchSize;
CLoginStateMachine LoginSM; CLoginStateMachine LoginSM;
// TODO : nico : put this in an external file, this way it isn't included by the background downloader
#ifndef RY_BG_DOWNLOADER
bool CStartupHttpClient::connectToLogin()
{
return connect(ClientCfg.ConfigFile.getVar("StartupHost").asString(0));
}
CStartupHttpClient HttpClient;
#endif // RY_BG_DOWNLOADER
// *************************************************************************** // ***************************************************************************
// Pop a fatal error message box, giving the option to 'quit' the client, plus a help button // Pop a fatal error message box, giving the option to 'quit' the client, plus a help button
@ -2329,7 +2341,6 @@ bool initCreateAccount()
if(text) if(text)
{ {
text->setHardText(toString(CI18N::get("uiCreateAccountWelcome"))); text->setHardText(toString(CI18N::get("uiCreateAccountWelcome")));
text->setMultiLineSpace(20);
text->setColor(CRGBA(255, 255, 255, 255)); text->setColor(CRGBA(255, 255, 255, 255));
CInterfaceGroup * group = dynamic_cast<CInterfaceGroup*>(createAccountUI->findFromShortId("erros_txt")); CInterfaceGroup * group = dynamic_cast<CInterfaceGroup*>(createAccountUI->findFromShortId("erros_txt"));
@ -2525,7 +2536,6 @@ class CAHOnCreateAccountSubmit : public IActionHandler
CViewText * text = dynamic_cast<CViewText*>(createAccountUI->findFromShortId("errors_list")); CViewText * text = dynamic_cast<CViewText*>(createAccountUI->findFromShortId("errors_list"));
if(text) if(text)
{ {
text->setMultiLineSpace(10);
text->setColor(CRGBA(250, 30, 30, 255)); text->setColor(CRGBA(250, 30, 30, 255));
std::vector< std::string > errors(5); std::vector< std::string > errors(5);

View file

@ -19,6 +19,7 @@
#define CL_LOGIN_H #define CL_LOGIN_H
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include "game_share/http_client.h"
#include <string> #include <string>
#include <vector> #include <vector>
@ -67,6 +68,22 @@ void mainLandPatch();
extern std::vector<CShard> Shards; extern std::vector<CShard> Shards;
extern sint32 ShardSelected; extern sint32 ShardSelected;
// TODO : nico : put this in an external file, this way it isn't included by the background downloader
#ifndef RY_BG_DOWNLOADER
/*
* HTTP client preconfigured to connect to the startup login host
*/
class CStartupHttpClient : public CHttpClient
{
public:
bool connectToLogin();
};
extern CStartupHttpClient HttpClient;
#endif // RY_BG_DOWNLOADER
#endif // CL_LOGIN_H #endif // CL_LOGIN_H

View file

@ -19,7 +19,7 @@
#include "nel/misc/thread.h" #include "nel/misc/thread.h"
#include "nel/misc/singleton.h" #include "nel/misc/singleton.h"
#include "http_client.h" #include "game_share/http_client.h"
namespace NLMISC namespace NLMISC

View file

@ -3260,7 +3260,7 @@ private:
if(i != digitMaxEnd) if(i != digitMaxEnd)
{ {
ucstring web_app = contentStr.substr(digitStart, i-digitStart); ucstring web_app = contentStr.substr(digitStart, i-digitStart);
contentStr = ucstring("http://"+ClientCfg.WebIgMainDomain+"/start/")+web_app+ucstring(".php?")+contentStr.substr(i+1); contentStr = ucstring("http://"+ClientCfg.WebIgMainDomain+"/")+web_app+ucstring("/index.php?")+contentStr.substr(i+1);
} }
else else
{ {

View file

@ -673,7 +673,7 @@ void CPlayerCL::updateVisualPropertyVpa(const NLMISC::TGameCycle &/* gameCycle *
} }
// update title when gender changed // update title when gender changed
const ucstring replacement(STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(_TitleRaw,_Gender == GSGENDER::female)); const ucstring replacement(STRING_MANAGER::CStringManagerClient::getTitleLocalizedName(_TitleRaw, _Gender == GSGENDER::female));
if (!replacement.empty() || !ClientCfg.DebugStringManager) if (!replacement.empty() || !ClientCfg.DebugStringManager)
{ {
// Get extended name // Get extended name

View file

@ -69,7 +69,7 @@
#include "string_manager_client.h" #include "string_manager_client.h"
#include "precipitation_clip_grid.h" #include "precipitation_clip_grid.h"
#include "interface_v3/music_player.h" #include "interface_v3/music_player.h"
#include "http_client.h" #include "login.h"
#include "actions_client.h" #include "actions_client.h"
#include "login_progress_post_thread.h" #include "login_progress_post_thread.h"
// //

View file

@ -25,6 +25,7 @@
#include "nel/misc/hierarchical_timer.h" #include "nel/misc/hierarchical_timer.h"
#include "nel/misc/algo.h" #include "nel/misc/algo.h"
#include "misc.h" #include "misc.h"
#include "entity_cl.h"
using namespace std; using namespace std;
using namespace NLMISC; using namespace NLMISC;
@ -729,6 +730,13 @@ restartLoop:
} }
} }
// If the string contains a title, then remove it
ucstring::size_type pos = str.find('$');
if ( ! str.empty() && pos != ucstring::npos)
{
str = CEntityCL::removeTitleFromName(str);
}
// append this string // append this string
temp.append(move, src+param.ReplacementPoint); temp.append(move, src+param.ReplacementPoint);
temp += str; temp += str;
@ -1603,7 +1611,7 @@ const ucchar *CStringManagerClient::getSPhraseLocalizedDescription(NLMISC::CShee
} }
// *************************************************************************** // ***************************************************************************
const ucchar *CStringManagerClient::getTitleLocalizedName(const std::string &titleId, bool women) const ucchar *CStringManagerClient::getTitleLocalizedName(const ucstring &titleId, bool women)
{ {
vector<ucstring> listInfos = getTitleInfos(titleId, women); vector<ucstring> listInfos = getTitleInfos(titleId, women);
@ -1613,18 +1621,16 @@ const ucchar *CStringManagerClient::getTitleLocalizedName(const std::string &tit
return _TitleWords.back().c_str(); return _TitleWords.back().c_str();
} }
ucstring ucId; return titleId.c_str();
ucId.fromUtf8(titleId);
return ucId.c_str();
} }
// *************************************************************************** // ***************************************************************************
vector<ucstring> CStringManagerClient::getTitleInfos(const std::string &titleId, bool women) vector<ucstring> CStringManagerClient::getTitleInfos(const ucstring &titleId, bool women)
{ {
ucstring infosUC; //ucstring infosUC;
infosUC.fromUtf8(titleId); //infosUC.fromUtf8(titleId);
vector<ucstring> listInfos; vector<ucstring> listInfos;
splitUCString(infosUC, ucstring("#"), listInfos); splitUCString(titleId, ucstring("#"), listInfos);
if (listInfos.size() > 0) if (listInfos.size() > 0)
{ {

View file

@ -106,8 +106,8 @@ public:
static const ucchar *getSPhraseLocalizedDescription(NLMISC::CSheetId id); static const ucchar *getSPhraseLocalizedDescription(NLMISC::CSheetId id);
// Get the Localized Title name // Get the Localized Title name
static const ucchar *getTitleLocalizedName(const std::string &titleId, bool women); static const ucchar *getTitleLocalizedName(const ucstring &titleId, bool women);
static std::vector<ucstring> getTitleInfos(const std::string &titleId, bool women); static std::vector<ucstring> getTitleInfos(const ucstring &titleId, bool women);
// Get the Localized name of a classification type // Get the Localized name of a classification type
static const ucchar *getClassificationTypeLocalizedName(EGSPD::CClassificationType::TClassificationType type); static const ucchar *getClassificationTypeLocalizedName(EGSPD::CClassificationType::TClassificationType type);

View file

@ -15,8 +15,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdpch.h" #include "stdpch.h"
#include "http_client.h" #include "game_share/http_client.h"
#include "client_cfg.h"
using namespace NLMISC; using namespace NLMISC;
using namespace NLNET; using namespace NLNET;
@ -193,15 +192,30 @@ void CHttpClient::disconnect()
} }
#ifndef RY_BG_DOWNLOADER
// *************************************************************************** // ***************************************************************************
bool CStartupHttpClient::connectToLogin() CHttpPostTask::CHttpPostTask(const std::string &host, const std::string &page, const std::string &params)
: _Host(host)
, _Page(page)
, _Params(params)
{ {
return connect(ClientCfg.ConfigFile.getVar("StartupHost").asString(0));
} }
CStartupHttpClient HttpClient; // ***************************************************************************
void CHttpPostTask::run(void)
{
CHttpClient httpClient;
std::string ret;
if ( ! httpClient.connect(_Host))
#endif {
return;
}
if ( ! httpClient.sendPost(_Host + _Page, _Params))
{
return;
}
httpClient.receive(ret);
httpClient.disconnect();
}

View file

@ -66,25 +66,22 @@ private:
NLNET::CTcpSock _Sock; NLNET::CTcpSock _Sock;
}; };
// ***************************************************************************
// ***************************************************************************
// ***************************************************************************
// TODO : nico : put this in an external file, this way it isn't included by the background downloader class CHttpPostTask : public NLMISC::IRunnable
#ifndef RY_BG_DOWNLOADER
/*
* HTTP client preconfigured to connect to the startup login host
*/
class CStartupHttpClient : public CHttpClient
{ {
public: public:
CHttpPostTask(const std::string &host, const std::string &page, const std::string &params);
void run(void);
bool connectToLogin(); private:
std::string _Host;
std::string _Page;
std::string _Params;
}; };
extern CStartupHttpClient HttpClient;
#endif
#endif // NL_HTTP_CLIENT_H #endif // NL_HTTP_CLIENT_H
/* End of http_client.h */ /* End of http_client.h */

View file

@ -31,7 +31,7 @@ const uint RYZOM_WEEK_IN_DAY = 6;
const uint RYZOM_YEAR_IN_DAY = RYZOM_MONTH_IN_DAY*RYZOM_YEAR_IN_MONTH; const uint RYZOM_YEAR_IN_DAY = RYZOM_MONTH_IN_DAY*RYZOM_YEAR_IN_MONTH;
const uint RYZOM_CYCLE_IN_MONTH = 12; const uint RYZOM_CYCLE_IN_MONTH = 12;
const uint RYZOM_START_YEAR = 2525; const uint RYZOM_START_YEAR = 2570-1;
const uint RYZOM_START_SPRING = 61; const uint RYZOM_START_SPRING = 61;
const uint RYZOM_START_DAY = 1111111; const uint RYZOM_START_DAY = 1111111;
const uint RYZOM_START_HOUR = 9; const uint RYZOM_START_HOUR = 9;