diff --git a/code/ryzom/client/client_default.cfg b/code/ryzom/client/client_default.cfg
index 311b7cddd..f95a5c2b6 100644
--- a/code/ryzom/client/client_default.cfg
+++ b/code/ryzom/client/client_default.cfg
@@ -476,7 +476,7 @@ XMLR2EDInterfaceFiles =
{
"r2ed.xml",
"r2_triggers.xml",
- "r2_logic_entities.xml",
+ "r2_logic_entities.xml",
"r2ed_acts.xml",
"r2ed_scenario.xml",
"r2ed_connect.xml"
@@ -560,11 +560,11 @@ HelpPages =
"de=http://forums.ryzom.com/forum/showthread.php?t=29131"
};
-WebIgMainDomain = "atys.ryzom.com";
+WebIgMainDomain = "app.ryzom.com";
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;
diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/actions.xml b/code/ryzom/client/data/gamedev/interfaces_v3/actions.xml
index 4596702eb..3486e0298 100644
--- a/code/ryzom/client/data/gamedev/interfaces_v3/actions.xml
+++ b/code/ryzom/client/data/gamedev/interfaces_v3/actions.xml
@@ -39,7 +39,8 @@
-
+
+
diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/commands.xml b/code/ryzom/client/data/gamedev/interfaces_v3/commands.xml
index 821225a03..6fdb5d32a 100644
--- a/code/ryzom/client/data/gamedev/interfaces_v3/commands.xml
+++ b/code/ryzom/client/data/gamedev/interfaces_v3/commands.xml
@@ -63,6 +63,9 @@
+
+
+
@@ -88,6 +91,11 @@
+
+
+
+
+
diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/config.xml b/code/ryzom/client/data/gamedev/interfaces_v3/config.xml
index c2fa6a71f..630ecd4c6 100644
--- a/code/ryzom/client/data/gamedev/interfaces_v3/config.xml
+++ b/code/ryzom/client/data/gamedev/interfaces_v3/config.xml
@@ -318,6 +318,12 @@
+
+
@@ -3389,6 +3395,10 @@ This MUST follow the Enum MISSION_DESC::TIconId
+
+
diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/game_config.xml b/code/ryzom/client/data/gamedev/interfaces_v3/game_config.xml
index 560d471ff..0a5c3c085 100644
--- a/code/ryzom/client/data/gamedev/interfaces_v3/game_config.xml
+++ b/code/ryzom/client/data/gamedev/interfaces_v3/game_config.xml
@@ -18,7 +18,7 @@
color="255 255 255 255"
fontsize="14"
shadow="true"
- case_mode="%case_first_string_letter_up" />
+ case_mode="%case_normal" />
+ y="-4" />
+
+
+
+
-
+
diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/inventory.xml b/code/ryzom/client/data/gamedev/interfaces_v3/inventory.xml
index f7de103dd..300f47ef0 100644
--- a/code/ryzom/client/data/gamedev/interfaces_v3/inventory.xml
+++ b/code/ryzom/client/data/gamedev/interfaces_v3/inventory.xml
@@ -1317,7 +1317,7 @@
+
+
+
+
+
+
+
+
diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/login_main.xml b/code/ryzom/client/data/gamedev/interfaces_v3/login_main.xml
index 813bbc649..f6dab0c1e 100644
--- a/code/ryzom/client/data/gamedev/interfaces_v3/login_main.xml
+++ b/code/ryzom/client/data/gamedev/interfaces_v3/login_main.xml
@@ -645,34 +645,34 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
-
+
-
-
+
-
-
+
-
-
+
-
+
-
@@ -701,8 +701,8 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
-
+
diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_select.xml b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_select.xml
index 92b907f69..d22e69a25 100644
--- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_select.xml
+++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_select.xml
@@ -580,14 +580,10 @@
onclick_l="proc" params_l="proc_charsel_play"/>
-->
-
-
-
diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/reset.xml b/code/ryzom/client/data/gamedev/interfaces_v3/reset.xml
index d31433cbc..4cf0ae866 100644
--- a/code/ryzom/client/data/gamedev/interfaces_v3/reset.xml
+++ b/code/ryzom/client/data/gamedev/interfaces_v3/reset.xml
@@ -175,6 +175,8 @@
+
+
diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.xml b/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.xml
index 55a66b68b..0c42103f3 100644
--- a/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.xml
+++ b/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.xml
@@ -87,12 +87,6 @@
-
-
-
-
-
-
-
-
-
@@ -313,6 +304,11 @@
+
+
+
+
+
@@ -355,12 +351,29 @@
-
+
@@ -1143,6 +1156,9 @@
+
+
@@ -1218,6 +1234,7 @@
+
diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml b/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml
index 1a9cac336..982bdf6e9 100644
--- a/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml
+++ b/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml
@@ -98,8 +98,6 @@
value="4" />
-
@@ -226,69 +224,25 @@
right_button="false"
opened="true"
child_resize_w="true"
- child_resize_h="true"
- child_resize_hmargin="20"
+ child_resize_h="true"
w="0"
- h="86"
+ h="0"
win_priority="%win_priority_world_space"
posref="BL BM"
use_cursor="false">
+
-
-
-
-
-
-
+ x="38"
+ h="158"
+ posref="TL TL" >
+
+
+
+
+
+
+
+
-
-
+
+ child_resize_h="true" >
+ child_resize_h="true" >
+ child_resize_h="true" >
@@ -770,26 +746,34 @@
opened="true"
child_resize_w="true"
child_resize_h="true"
- child_resize_hmargin="42"
- w="0"
- h="86"
+
win_priority="%win_priority_world_space"
posref="BL BM"
use_cursor="true">
-
+
+
-
+ hardtext="uiCreatorHeader"
+ active="false" />
getActive() != showIS)
- _InSceneUserInterface->setActive (showIS);
+ _InSceneUserInterface->setActive (showIS);
if (showIS)
{
diff --git a/code/ryzom/client/src/client.cpp b/code/ryzom/client/src/client.cpp
index 24a1c2c8b..85b852e35 100644
--- a/code/ryzom/client/src/client.cpp
+++ b/code/ryzom/client/src/client.cpp
@@ -343,8 +343,9 @@ void initCrashReport ()
send("/?crashtype=DURING_RELEASE");
else if (crashed)
{
- DialogBox (HInstance, MAKEINTRESOURCE(IDD_CRASH_INFORMATION), NULL, ReportDialogProc);
- send("/?crashtype="+CrashFeedback);
+ //DialogBox (HInstance, MAKEINTRESOURCE(IDD_CRASH_INFORMATION), NULL, ReportDialogProc);
+ //send("/?crashtype="+CrashFeedback);
+ send("/?crashtype=CRASHED");
}
else
send("/?crashtype=NOT_CRASHED");
diff --git a/code/ryzom/client/src/client_cfg.cpp b/code/ryzom/client/src/client_cfg.cpp
index 84ba25060..61cfbf9ad 100644
--- a/code/ryzom/client/src/client_cfg.cpp
+++ b/code/ryzom/client/src/client_cfg.cpp
@@ -1040,7 +1040,7 @@ void CClientConfig::setValues()
/////////////////////////
// NEW PATCHING SYSTEM //
- READ_BOOL_DEV(PatchWanted)
+ READ_BOOL_FV(PatchWanted)
READ_STRING_DEV(PatchUrl)
READ_STRING_DEV(PatchVersion)
READ_STRING_DEV(RingReleaseNotePath)
diff --git a/code/ryzom/client/src/client_chat_manager.cpp b/code/ryzom/client/src/client_chat_manager.cpp
index 4402029cb..828c1f94e 100644
--- a/code/ryzom/client/src/client_chat_manager.cpp
+++ b/code/ryzom/client/src/client_chat_manager.cpp
@@ -959,6 +959,14 @@ void CClientChatManager::buildTellSentence(const ucstring &sender, const ucstrin
bool bWoman = entity && entity->getGender() == GSGENDER::female;
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
{
@@ -1032,6 +1040,14 @@ void CClientChatManager::buildChatSentence(TDataSetIndex /* compressedSenderInde
bool bWoman = entity && entity->getGender() == GSGENDER::female;
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)
diff --git a/code/ryzom/client/src/connection.cpp b/code/ryzom/client/src/connection.cpp
index ffbba52e9..fbeb2e8ef 100644
--- a/code/ryzom/client/src/connection.cpp
+++ b/code/ryzom/client/src/connection.cpp
@@ -57,7 +57,6 @@
#include "time_client.h"
#include "net_manager.h"
#include "string_manager_client.h"
-#include "http_client.h"
#include "far_tp.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
@@ -243,23 +241,6 @@ class CAHOnReloadTestPage: public IActionHandler
};
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(pIM->getElementFromId(GROUP_BROWSER));
-
- if (pGH)
- {
- pGH->setActive(true);
- pGH->browse(ClientCfg.PatchletUrl.c_str());
- }
-}
-
-
// ------------------------------------------------------------------------------------------------
void setOutGameFullScreen()
{
@@ -388,7 +369,6 @@ bool connection (const string &cookie, const string &fsaddr)
WaitServerAnswer = true;
}*/
- pIM->activateMasterGroup ("ui:outgame", true);
pIM->getDbProp ("UI:CURRENT_SCREEN")->setValue32(ClientCfg.Local ? 6 : -1); // TMP TMP
CCDBNodeBranch::flushObserversCalls();
@@ -421,7 +401,6 @@ bool connection (const string &cookie, const string &fsaddr)
// Init web box
nlinfo("ok");
- initWebBrowser();
// TMP TMP
if (ClientCfg.Local)
@@ -551,7 +530,6 @@ bool reconnection()
// Start the finite state machine
TInterfaceState InterfaceState = GLOBAL_MENU;
- pIM->activateMasterGroup ("ui:outgame", true);
pIM->getDbProp ("UI:CURRENT_SCREEN")->setValue32(-1);
CCDBNodeBranch::flushObserversCalls();
@@ -1400,19 +1378,27 @@ Deprecated {
}
*/ else if (sProp == "title")
{
- bool womenTitle;
+ bool womanTitle;
if( CharacterSummaries[PlayerSelectedSlot].VisualPropA.PropertySubData.Sex == 1 )
{
UserEntity->setGender( GSGENDER::female );
- womenTitle = true;
+ womanTitle = true;
}
else
{
UserEntity->setGender( GSGENDER::male );
- womenTitle = false;
+ womanTitle = false;
}
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);
}
/* else if (sProp == "orient")
diff --git a/code/ryzom/client/src/entity_cl.cpp b/code/ryzom/client/src/entity_cl.cpp
index 993db26e1..daa69b902 100644
--- a/code/ryzom/client/src/entity_cl.cpp
+++ b/code/ryzom/client/src/entity_cl.cpp
@@ -2287,24 +2287,39 @@ void CEntityCL::onStringAvailable(uint /* stringId */, const ucstring &value)
// retrieve the translated string
_TitleRaw = id.toString();
// ucstring replacement = CI18N::get(strNewTitle);
- bool womenTitle = false;
+ bool womanTitle = false;
CCharacterCL * c = dynamic_cast(this);
if(c)
{
- if( c->getGender() == GSGENDER::female )
- womenTitle = true;
+ womanTitle = ( c->getGender() == GSGENDER::female );
}
- 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)
{
// build the final name
+ p1 = _EntityName.find('$');
_EntityName = _EntityName.substr(0, p1); // + _Name.substr(p2+1)
// Get extended name
_NameEx = replacement;
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 )
{
_GMTitle = titleEnum - CHARACTER_TITLE::BeginGmTitle;
@@ -2338,7 +2353,7 @@ void CEntityCL::onStringAvailable(uint /* stringId */, const ucstring &value)
if (pGC != NULL) pGC->setUCTitle(_EntityName);
CSkillManager *pSM = CSkillManager::getInstance();
- pSM->setPlayerTitle(_TitleRaw);
+ pSM->setPlayerTitle(_TitleRaw.toString());
}
// Must rebuild the in scene interface 'cause name has changed
@@ -2349,17 +2364,17 @@ void CEntityCL::onStringAvailable(uint /* stringId */, const ucstring &value)
//-----------------------------------------------
// getTitleFromName
//-----------------------------------------------
-string CEntityCL::getTitleFromName(const ucstring &name)
+ucstring CEntityCL::getTitleFromName(const ucstring &name)
{
ucstring::size_type p1 = name.find('$');
if (p1 != ucstring::npos)
{
ucstring::size_type p2 = name.find('$', p1 + 1);
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 //
//-----------------------------------------------
diff --git a/code/ryzom/client/src/entity_cl.h b/code/ryzom/client/src/entity_cl.h
index be388daa3..d66123986 100644
--- a/code/ryzom/client/src/entity_cl.h
+++ b/code/ryzom/client/src/entity_cl.h
@@ -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 '$'
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 ..)
- 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 ..)
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...)
@@ -930,7 +930,7 @@ protected:
// Current entity tags
std::vector _Tags;
// Current entity title string id
- std::string _TitleRaw;
+ ucstring _TitleRaw;
// Current permanent content symbol for the entity
std::string _PermanentStatutIcon;
// Has reserved title?
diff --git a/code/ryzom/client/src/far_tp.cpp b/code/ryzom/client/src/far_tp.cpp
index e4f3329fe..5b4870ad1 100644
--- a/code/ryzom/client/src/far_tp.cpp
+++ b/code/ryzom/client/src/far_tp.cpp
@@ -34,7 +34,6 @@
#include "sound_manager.h"
#include "actions_client.h"
#include "r2/editor.h"
-#include "http_client.h"
#include "global.h"
#include "release.h"
#include "nel/misc/string_conversion.h"
diff --git a/code/ryzom/client/src/ground_fx_manager.cpp b/code/ryzom/client/src/ground_fx_manager.cpp
index fbc8ad7fb..a8be04ccd 100644
--- a/code/ryzom/client/src/ground_fx_manager.cpp
+++ b/code/ryzom/client/src/ground_fx_manager.cpp
@@ -64,7 +64,7 @@ CGroundFXManager::CGroundFXManager() :
_MinSpeed(1.5f),
_MaxSpeed(6.f),
_SpeedWaterWalkFast(3.f),
- _SpeedWaterSwimFast(2.f),
+ _SpeedWaterSwimFast(3.f),
_MaxDist(50.f),
_MaxNumFX(10),
_NumFX(0),
@@ -495,7 +495,7 @@ void CGroundFXManager::update(const NLMISC::CVectorD &camPos)
break;
case CInstance::Swim:
if (speed == 0.f) fxName = "StepSwimIdle.ps";
- else if (speed > _SpeedWaterSwimFast)
+ else if (speed > _SpeedWaterWalkFast)
{
fxName = "StepSwimSpeed.ps";
fxNameUnderWater = "StepSwimSpeedUnderWater.ps";
diff --git a/code/ryzom/client/src/http_client_curl.cpp b/code/ryzom/client/src/http_client_curl.cpp
index 1b4ba6774..db830a9df 100644
--- a/code/ryzom/client/src/http_client_curl.cpp
+++ b/code/ryzom/client/src/http_client_curl.cpp
@@ -57,7 +57,7 @@ bool CCurlHttpClient::authenticate(const std::string &user, const std::string &p
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)
diff --git a/code/ryzom/client/src/interface_v3/action_handler_game.cpp b/code/ryzom/client/src/interface_v3/action_handler_game.cpp
index ca6e642c8..4b8a51d11 100644
--- a/code/ryzom/client/src/interface_v3/action_handler_game.cpp
+++ b/code/ryzom/client/src/interface_v3/action_handler_game.cpp
@@ -1940,12 +1940,21 @@ public:
CStringPostProcessRemoveTitle::cbIDStringReceived(inout);
if (inout.empty())
{
- CStringPostProcessRemoveName spprn;
CEntityCL *entity = EntitiesMngr.entity(Slot);
CCharacterCL *pChar = dynamic_cast(entity);
+ bool womanTitle = false;
if (pChar != NULL)
- spprn.Woman = pChar->getGender() == GSGENDER::female;
- spprn.cbIDStringReceived(copyInout);
+ womanTitle = pChar->getGender() == GSGENDER::female;
+
+ 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;
}
@@ -2403,10 +2412,22 @@ class CAHTarget : public IActionHandler
// Get the entity name to target
ucstring entityName;
entityName.fromUtf8 (getParam (Params, "entity"));
+ bool preferCompleteMatch = (getParam (Params, "prefer_complete_match") != "0");
if (!entityName.empty())
{
- // Get the entity
- CEntityCL *entity = EntitiesMngr.getEntityByName (entityName, false, false);
+ CEntityCL *entity = NULL;
+ 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)
{
CCharacterCL *character = dynamic_cast(entity);
@@ -2937,10 +2958,7 @@ public:
CCtrlBaseButton *pBut = dynamic_cast(pIM->getElementFromId( GAME_CONFIG_VIDEO_FULLSCREEN_BUTTON ));
if (pBut)
{
- if (ClientCfg.Windowed)
- pBut->setPushed(false);
- else
- pBut->setPushed(true);
+ pBut->setPushed(!ClientCfg.Windowed);
}
pIM->runActionHandler("game_config_change_vid_fullscreen",NULL);
@@ -4040,7 +4058,7 @@ public:
{
CEntityCL *pSel = EntitiesMngr.entity(UserEntity->selection());
if (pSel != NULL)
- UserEntity->moveToTotemBuildingPhrase( UserEntity->selection(), 2.0f, ~0, ~0, true);
+ UserEntity->moveToTotemBuildingPhrase( UserEntity->selection(), 2.0f, std::numeric_limits::max(), std::numeric_limits::max(), true);
}
}
};
diff --git a/code/ryzom/client/src/interface_v3/action_handler_help.cpp b/code/ryzom/client/src/interface_v3/action_handler_help.cpp
index e1a99481a..4717cc8aa 100644
--- a/code/ryzom/client/src/interface_v3/action_handler_help.cpp
+++ b/code/ryzom/client/src/interface_v3/action_handler_help.cpp
@@ -686,7 +686,7 @@ class CHandlerOpenTitleHelp : public IActionHandler
woman = pChar->getGender() == GSGENDER::female;
// extract the replacement id
- string strNewTitle = CEntityCL::getTitleFromName(copyName);
+ ucstring strNewTitle = CEntityCL::getTitleFromName(copyName);
// retrieve the translated string
if (!strNewTitle.empty())
diff --git a/code/ryzom/client/src/interface_v3/action_handler_misc.cpp b/code/ryzom/client/src/interface_v3/action_handler_misc.cpp
index d06598dce..b32d0480c 100644
--- a/code/ryzom/client/src/interface_v3/action_handler_misc.cpp
+++ b/code/ryzom/client/src/interface_v3/action_handler_misc.cpp
@@ -884,11 +884,21 @@ NLMISC_COMMAND(slsn, "Temp : set the name of the last sender.", "")
bool CStringPostProcessRemoveName::cbIDStringReceived(ucstring &inOut)
{
// extract the replacement id
- std::string strNewTitle = CEntityCL::getTitleFromName(inOut);
+ ucstring strNewTitle = CEntityCL::getTitleFromName(inOut);
// retrieve the translated string
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
inOut = "";
diff --git a/code/ryzom/client/src/interface_v3/action_handler_phrase.cpp b/code/ryzom/client/src/interface_v3/action_handler_phrase.cpp
index e03deaeca..46dbb8c2c 100644
--- a/code/ryzom/client/src/interface_v3/action_handler_phrase.cpp
+++ b/code/ryzom/client/src/interface_v3/action_handler_phrase.cpp
@@ -1119,7 +1119,7 @@ public:
if (pCSDst->isShortCut())
memoryLine = pPM->getSelectedMemoryLineDB();
else
- memoryLine = 0;
+ memoryLine = pPM->getSelectedMemoryAltLineDB();
if(memoryLine<0)
return;
@@ -1577,6 +1577,32 @@ public:
};
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(" 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
@@ -1585,7 +1611,7 @@ public:
virtual void execute(CCtrlBase * /* pCaller */, const string &Params)
{
CInterfaceManager *pIM= CInterfaceManager::getInstance();
- CCDBNodeLeaf *node= pIM->getDbProp("UI:PHRASE:SELECT_MEMORY", false);
+ CCDBNodeLeaf *node= pIM->getDbProp("UI:PHRASE:SELECT_MEMORY_", false);
if(node)
{
sint32 val;
@@ -1594,6 +1620,7 @@ public:
}
}
};
+
REGISTER_ACTION_HANDLER(CHandlerPhraseSelectShortcutBar, "select_shortcut_bar");
diff --git a/code/ryzom/client/src/interface_v3/action_handler_ui.cpp b/code/ryzom/client/src/interface_v3/action_handler_ui.cpp
index bf00c9b07..5e33b4ab4 100644
--- a/code/ryzom/client/src/interface_v3/action_handler_ui.cpp
+++ b/code/ryzom/client/src/interface_v3/action_handler_ui.cpp
@@ -416,7 +416,7 @@ class CAHUIShowHide : public IActionHandler
nlwarning("%s is not a group html", window.c_str());
return;
}
- pGH->setURL("http://"+ClientCfg.WebIgMainDomain+"/start/index.php?app="+webapp);
+ pGH->setURL("http://"+ClientCfg.WebIgMainDomain+"/index.php?app="+webapp);
}
}
else
diff --git a/code/ryzom/client/src/interface_v3/bot_chat_page_mission.cpp b/code/ryzom/client/src/interface_v3/bot_chat_page_mission.cpp
index 9af7c33a1..819751792 100644
--- a/code/ryzom/client/src/interface_v3/bot_chat_page_mission.cpp
+++ b/code/ryzom/client/src/interface_v3/bot_chat_page_mission.cpp
@@ -156,8 +156,8 @@ void CBotChatPageMission::acceptMission()
}
// close the selection box
activateWindow(WIN_BOT_CHAT_ACCEPT_MISSION, false);
- // close the botchat
- CBotChatManager::getInstance()->setCurrPage(NULL);
+ //// close the botchat
+ //CBotChatManager::getInstance()->setCurrPage(NULL);
_CurrSel = NULL;
}
diff --git a/code/ryzom/client/src/interface_v3/chat_text_manager.cpp b/code/ryzom/client/src/interface_v3/chat_text_manager.cpp
index 9b72d4b16..2afcde7dc 100644
--- a/code/ryzom/client/src/interface_v3/chat_text_manager.cpp
+++ b/code/ryzom/client/src/interface_v3/chat_text_manager.cpp
@@ -31,7 +31,8 @@ CChatTextManager* CChatTextManager::_Instance = NULL;
CChatTextManager::CChatTextManager() :
_TextFontSize(NULL),
_TextMultilineSpace(NULL),
- _TextShadowed(NULL)
+ _TextShadowed(NULL),
+ _ShowTimestamps(NULL)
{
}
@@ -44,6 +45,8 @@ CChatTextManager::~CChatTextManager()
_TextMultilineSpace = NULL;
delete _TextShadowed;
_TextShadowed = NULL;
+ delete _ShowTimestamps;
+ _ShowTimestamps = NULL;
}
//=================================================================================
uint CChatTextManager::getTextFontSize() const
@@ -81,6 +84,18 @@ bool CChatTextManager::isTextShadowed() const
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)
{
@@ -149,13 +164,9 @@ CViewBase *CChatTextManager::createMsgText(const ucstring &cstMsg, NLMISC::CRGBA
vt->setModulateGlobalColor(false);
ucstring cur_time;
- static CCDBNodeLeaf* node = CInterfaceManager::getInstance()->getDbProp("UI:SAVE:CHAT:SHOW_TIMES_IN_CHAT_CB", false);
- if (node)
+ if (showTimestamps())
{
- if (node->getValueBool())
- {
- cur_time = CInterfaceManager::getTimestampHuman();
- }
+ cur_time = CInterfaceManager::getTimestampHuman();
}
// 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;
}
-
vt->setTextFormatTaged(msg);
vt->setColor(NLMISC::CRGBA::White);
}
diff --git a/code/ryzom/client/src/interface_v3/chat_text_manager.h b/code/ryzom/client/src/interface_v3/chat_text_manager.h
index 3e2f1288c..9e3dcdc27 100644
--- a/code/ryzom/client/src/interface_v3/chat_text_manager.h
+++ b/code/ryzom/client/src/interface_v3/chat_text_manager.h
@@ -59,10 +59,13 @@ private:
mutable class CCDBNodeLeaf *_TextFontSize;
mutable CCDBNodeLeaf *_TextMultilineSpace;
mutable CCDBNodeLeaf *_TextShadowed;
+ mutable CCDBNodeLeaf *_ShowTimestamps;
// ctor, private because of singleton
CChatTextManager();
~CChatTextManager();
+
+ bool showTimestamps() const;
};
// shortcut to get text manager instance
diff --git a/code/ryzom/client/src/interface_v3/dbctrl_sheet.cpp b/code/ryzom/client/src/interface_v3/dbctrl_sheet.cpp
index 6a02917f2..bc9cc1554 100644
--- a/code/ryzom/client/src/interface_v3/dbctrl_sheet.cpp
+++ b/code/ryzom/client/src/interface_v3/dbctrl_sheet.cpp
@@ -1296,7 +1296,7 @@ void CDBCtrlSheet::setupMacro()
if (!_NeedSetup) return;
// compute from OptString
- setupCharBitmaps(24, 4);
+ setupCharBitmaps(26, 4, 5);
_NeedSetup = false;
@@ -1560,8 +1560,8 @@ void CDBCtrlSheet::setupDisplayAsPhrase(const std::vector &bri
{
// recompute text
_OptString= iconName;
- // compute from OptString. Allow only 1 line and 4 chars
- setupCharBitmaps(24, 1, 4);
+ // compute from OptString. Allow only 1 line and 5 chars
+ setupCharBitmaps(26, 1, 5);
}
}
}
diff --git a/code/ryzom/client/src/interface_v3/group_html.cpp b/code/ryzom/client/src/interface_v3/group_html.cpp
index 166a26f63..5b8a03d56 100644
--- a/code/ryzom/client/src/interface_v3/group_html.cpp
+++ b/code/ryzom/client/src/interface_v3/group_html.cpp
@@ -621,8 +621,6 @@ void CGroupHTML::addLink (uint element_number, uint /* attribute_number */, HTCh
_Link.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])
style = value[HTML_BODY_STYLE];
-
if (!style.empty())
{
TStyle styles = parseStyle(style);
@@ -2470,7 +2467,6 @@ void CGroupHTML::addString(const ucstring &str)
getParagraph()->addChild (buttonGroup);
paragraphChange ();
}
-
}
else
{
diff --git a/code/ryzom/client/src/interface_v3/group_html_webig.cpp b/code/ryzom/client/src/interface_v3/group_html_webig.cpp
index 5e5a3c3b2..f42fc56b7 100644
--- a/code/ryzom/client/src/interface_v3/group_html_webig.cpp
+++ b/code/ryzom/client/src/interface_v3/group_html_webig.cpp
@@ -258,7 +258,7 @@ struct CWebigNotificationThread : public NLMISC::IRunnable
nlSleep(1*60*1000);
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);
get(url);
nlSleep(10*60*1000);
diff --git a/code/ryzom/client/src/interface_v3/group_in_scene_bubble.cpp b/code/ryzom/client/src/interface_v3/group_in_scene_bubble.cpp
index dbc899e49..cb97e0cfc 100644
--- a/code/ryzom/client/src/interface_v3/group_in_scene_bubble.cpp
+++ b/code/ryzom/client/src/interface_v3/group_in_scene_bubble.cpp
@@ -1003,7 +1003,7 @@ void CGroupInSceneBubbleManager::webIgChatOpen (uint32 nBotUID, string text, con
{
uint32 i = 0;
while (getDynBubble(i) != NULL) i++;
- id = "in_scene_webig_bubble_" + toString(i);
+ id = "in_scene_webig_bubble_" + toString(nBotUID);
// Create the instance
std::vector > templateParams;
templateParams.push_back (std::pair("id", id));
@@ -1071,7 +1071,6 @@ void CGroupInSceneBubbleManager::webIgChatOpen (uint32 nBotUID, string text, con
for (j = 0; j < strs.size(); ++j)
{
- string fullid = id+"opt"+toString(j);
pVT = dynamic_cast(bubble->getElement(id+"opt"+toString(j)));
if (pVT != NULL)
{
@@ -1084,7 +1083,6 @@ void CGroupInSceneBubbleManager::webIgChatOpen (uint32 nBotUID, string text, con
{
pCL->setActionOnLeftClick("browse");
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);
}
diff --git a/code/ryzom/client/src/interface_v3/group_in_scene_user_info.cpp b/code/ryzom/client/src/interface_v3/group_in_scene_user_info.cpp
index 2c8b2e7bf..63e76ecc4 100644
--- a/code/ryzom/client/src/interface_v3/group_in_scene_user_info.cpp
+++ b/code/ryzom/client/src/interface_v3/group_in_scene_user_info.cpp
@@ -172,9 +172,9 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
// For RoleMasters, merchants etc... must display name and function, and nothing else
for(uint i=0;igetDbProp(dbEntry+"NPCNAME")->getValueBool();
symbol= false;
- title= true;
+ title= (entityName.empty() && pIM->getDbProp(dbEntry+"NPCNAME")->getValueBool()) || pIM->getDbProp(dbEntry+"NPCTITLE")->getValueBool();
guildName= false;
templateName = "in_scene_user_info";
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;
// 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_space"), barSpace);
- fromString(pIM->getDefine("in_scene_user_info_text_h"), textH);
fromString(pIM->getDefine("in_scene_user_bar_length"), CGroupInSceneUserInfo::_BatLength);
// Build the bars
@@ -309,10 +308,9 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
bitmap->setColorRGBA (BarColor[i]);
}
info->_Bars[i] = bitmap;
+ barCount++;
}
}
-
- barCount++;
}
}
@@ -345,21 +343,31 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
if (!barCount)
{
// Delete
- if (win_jauge_mid)
- win_jauge_mid->setActive(false);
- // leftGroup->delView (win_jauge_mid);
- CViewBase *view = leftGroup->getView ("win_jauge_top");
+ CViewBase *view = leftGroup->getView ("win_bot");
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");
if (view)
- view->setActive(false);
- //leftGroup->delView (view);
+ //view->setActive(false);
+ leftGroup->delView (view);
}
// Strings
- sint stringSpace = 0;
+ //sint stringSpace = 0;
sint stringCount = 0;
if (name)
{
@@ -368,8 +376,8 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
info->_Name = dynamic_cast(text);
stringCount++;
}
- else
- stringSpace += textH;
+ //else
+ // stringSpace += textH;
if (title)
{
CViewBase *text = leftGroup->getView ("info"+toString(stringCount));
@@ -377,8 +385,8 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
info->_Title = dynamic_cast(text);
stringCount++;
}
- else
- stringSpace += textH;
+ //else
+ // stringSpace += textH;
if (rpTags)
{
@@ -444,8 +452,8 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
stringCount++;
}
}
- else
- stringSpace += textH;
+ //else
+ // stringSpace += textH;
// Hide guild symbol / raw material source icon?
if ( isForageSource )
@@ -467,13 +475,9 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
if ( iconFilename )
bitmap->setTexture (*iconFilename);
}
- leftGroup->setW( leftGroup->getW() + 42 );
leftGroup->invalidateCoords();
}
- // Increase vertical size to let bars be seen
- //leftGroup->setH( leftGroup->getH() + 42 ); // hide last bar, currently
-
// Set ZBias of forage interface
info->setZBias(ClientCfg.ForageInterfaceZBias);
@@ -507,15 +511,15 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
{
info->delView(logoOver);
}
- leftGroup->setW( leftGroup->getW() + 42 );
- leftGroup->invalidateCoords();
+ //leftGroup->setW( leftGroup->getW() + 42 );
}
else
{
info->delView(logo);
info->delView(logoOver);
- leftGroup->setX(0);
+ //leftGroup->setX(0);
}
+ leftGroup->invalidateCoords();
}
}
else
@@ -578,7 +582,6 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
if (pPlayer == NULL)
needPvPLogo = false;
-
if (pPlayer != NULL && needPvPLogo)
{
if (pvpFactionLogo)
@@ -633,7 +636,7 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
}
}
}
-
+
if (pvpOutpostLogo)
{
if( pPlayer->getOutpostId() != 0 )
@@ -641,7 +644,7 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
else
pvpOutpostLogo->setActive(false);
}
-
+
if (pvpDuelLogo)
{
if( pPlayer->getPvpMode()&PVP_MODE::PvpDuel )
@@ -653,36 +656,36 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
}
else
{
- if (pvpFactionLogo)
- pvpFactionLogo->setActive(false);
- if (pvpOutpostLogo)
- pvpOutpostLogo->setActive(false);
- if (pvpDuelLogo)
- pvpDuelLogo->setActive(false);
+ CInterfaceGroup* grp = info->getGroup("right_pvp");
+ if (grp)
+ info->delGroup(grp);
}
}
// No bar and no string ?
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
- CViewBase *bitmap = leftGroup->getView ("win_top");
- if (bitmap)
- //leftGroup->delView (bitmap);
- bitmap->setAlpha(0);
- bitmap = leftGroup->getView ("win_mid");
- if (bitmap)
- //leftGroup->delView (bitmap);
- bitmap->setAlpha(0);
- bitmap = leftGroup->getView ("win_bot");
- if (bitmap)
- //leftGroup->delView (bitmap);
- bitmap->setAlpha(0);
-
- // Anti-Bug, xmargin is not take into evaluate W
- /*if (info->_Name)
- info->_Name->setX(0);*/
-
+ view = leftGroup->getView ("win_jauge_top");
+ if (view)
+ leftGroup->delView (view);
+ view = leftGroup->getView ("win_jauge_mid");
+ if (view)
+ leftGroup->delView (view);
+ view = leftGroup->getView ("win_jauge_bot");
+ if (view)
+ leftGroup->delView (view);
}
// Delete remaining strings
@@ -690,24 +693,17 @@ CGroupInSceneUserInfo *CGroupInSceneUserInfo::build (CEntityCL *entity)
{
CViewBase *text = leftGroup->getView ("info"+toString(i));
if (text)
- leftGroup->delView(text);
+ text->setActive(false);
}
// Adjust win_mid
CViewBase *win_mid = leftGroup->getView ("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
if (info->_Name)
{
@@ -893,7 +889,7 @@ void CGroupInSceneUserInfo::updateDynamicData ()
ucstring entityName = _Entity->getDisplayName();
if (pPlayer != NULL)
if (pPlayer->isAFK())
- entityName += CI18N::get("uiAFK");
+ entityName += CI18N::get("uiAFK");
_Name->setText(entityName);
// Title color get the PVP color
diff --git a/code/ryzom/client/src/interface_v3/interface_manager.cpp b/code/ryzom/client/src/interface_v3/interface_manager.cpp
index 495db53c9..a9a901283 100644
--- a/code/ryzom/client/src/interface_v3/interface_manager.cpp
+++ b/code/ryzom/client/src/interface_v3/interface_manager.cpp
@@ -66,6 +66,7 @@
#include "group_in_scene_bubble.h"
#include "group_skills.h"
#include "group_compas.h"
+#include "group_html.h"
// Misc
#include "../input.h"
@@ -583,6 +584,17 @@ void CInterfaceManager::initOutGame()
initActions();
}
//NLMEMORY::CheckHeap (true);
+
+ // Initialize the web browser
+ {
+ CGroupHTML *pGH = dynamic_cast(this->getElementFromId(GROUP_BROWSER));
+
+ if (pGH)
+ {
+ pGH->setActive(true);
+ pGH->browse(ClientCfg.PatchletUrl.c_str());
+ }
+ }
}
// ------------------------------------------------------------------------------------------------
diff --git a/code/ryzom/client/src/interface_v3/interface_manager.h b/code/ryzom/client/src/interface_v3/interface_manager.h
index 442824dd2..0de08d491 100644
--- a/code/ryzom/client/src/interface_v3/interface_manager.h
+++ b/code/ryzom/client/src/interface_v3/interface_manager.h
@@ -57,6 +57,8 @@ extern CCDBSynchronised IngameDbMngr;
///\todo nico remove that
extern bool g_hidden;
+#define GROUP_BROWSER "ui:outgame:charsel:webstart:content:webstart_html"
+
///max botchat distance
#define MAX_BOTCHAT_DISTANCE_SQUARE 25
diff --git a/code/ryzom/client/src/interface_v3/sphrase_manager.cpp b/code/ryzom/client/src/interface_v3/sphrase_manager.cpp
index 226993d37..211c14f54 100644
--- a/code/ryzom/client/src/interface_v3/sphrase_manager.cpp
+++ b/code/ryzom/client/src/interface_v3/sphrase_manager.cpp
@@ -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()
{
@@ -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;isetValue32(0);
+ }
+ }
+ else
{
// Always update alt gestionsets
for(uint i=0;isetValue32(0);
else
@@ -548,11 +571,8 @@ void CSPhraseManager::updateMemoryDBSlot(uint32 memorySlot)
_MemoryDbLeaves[memorySlot]->setValue32(0);
else
_MemoryDbLeaves[memorySlot]->setValue32(slot.Id);
- }
- if (_SelectedMemoryDB == 0)
- {
- CMemorySlot &slotAlt= _Memories[0].Slot[memorySlot];
+ CMemorySlot &slotAlt= _Memories[_SelectedMemoryDBalt].Slot[memorySlot];
if(!slotAlt.isPhrase())
_MemoryAltDbLeaves[memorySlot]->setValue32(0);
else
@@ -875,6 +895,7 @@ void CSPhraseManager::reset()
_InitInGameDone= false;
_SelectedMemoryDB= -1;
+ _SelectedMemoryDBalt = _SelectedMemoryDB;
// NB: slot under 2 can't be taken.
_MaxSlotSet= BookStartSlot-1;
_LastBookNumDbFill= 0;
@@ -2678,7 +2699,7 @@ void CSPhraseManager::updateMemoryCtrlRegenTickRange(uint memorySlot, CDBCtrlShe
if (ctrl->isShortCut())
memoryLine = getSelectedMemoryLineDB();
else
- memoryLine = 0;
+ memoryLine = getSelectedMemoryAltLineDB();
if (memoryLine < 0)
return;
sint32 phraseId= getMemorizedPhrase(memoryLine, memorySlot);
@@ -2820,7 +2841,7 @@ void CSPhraseManager::updateMemoryCtrlState(uint memorySlot, CDBCtrlSheet *ctrl,
if (ctrl->isShortCut()) // No memoryLine defined
memoryLine= getSelectedMemoryLineDB();
else
- memoryLine= 0;
+ memoryLine= getSelectedMemoryAltLineDB();
bool newIsMacro= isMemorizedMacro(memoryLine, memorySlot);
sint32 macroId= getMemorizedMacro(memoryLine, memorySlot);
sint32 phraseId= getMemorizedPhrase(memoryLine, memorySlot);
diff --git a/code/ryzom/client/src/interface_v3/sphrase_manager.h b/code/ryzom/client/src/interface_v3/sphrase_manager.h
index d98f9bd55..db2f098f6 100644
--- a/code/ryzom/client/src/interface_v3/sphrase_manager.h
+++ b/code/ryzom/client/src/interface_v3/sphrase_manager.h
@@ -235,9 +235,10 @@ public:
/// Only one memory line is displayed in the Memory DB. if -1, erased.
void selectMemoryLineDB(sint32 memoryLine);
+ void selectMemoryLineDBalt(sint32 memoryLine);
/// get the selected memory line.
sint32 getSelectedMemoryLineDB() const {return _SelectedMemoryDB;}
-
+ sint32 getSelectedMemoryAltLineDB() const {return _SelectedMemoryDBalt;}
/// Common Method to send the Memorize msg to server
void sendMemorizeToServer(uint32 memoryLine, uint32 memorySlot, uint32 phraseId);
/// Common Method to send the Forget msg to server
@@ -518,6 +519,7 @@ private:
};
std::vector _Memories;
sint32 _SelectedMemoryDB;
+ sint32 _SelectedMemoryDBalt;
void updateMemoryDBAll();
void updateMemoryDBSlot(uint32 memorySlot);
diff --git a/code/ryzom/client/src/login.cpp b/code/ryzom/client/src/login.cpp
index 8b9fbcb08..f0dd39a48 100644
--- a/code/ryzom/client/src/login.cpp
+++ b/code/ryzom/client/src/login.cpp
@@ -49,7 +49,6 @@
#include "global.h"
#include "input.h"
#include "libwww.h"
-#include "http_client.h"
#include "http_client_curl.h"
#include "login_progress_post_thread.h"
@@ -141,6 +140,19 @@ uint32 TotalPatchSize;
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
@@ -2329,7 +2341,6 @@ bool initCreateAccount()
if(text)
{
text->setHardText(toString(CI18N::get("uiCreateAccountWelcome")));
- text->setMultiLineSpace(20);
text->setColor(CRGBA(255, 255, 255, 255));
CInterfaceGroup * group = dynamic_cast(createAccountUI->findFromShortId("erros_txt"));
@@ -2525,7 +2536,6 @@ class CAHOnCreateAccountSubmit : public IActionHandler
CViewText * text = dynamic_cast(createAccountUI->findFromShortId("errors_list"));
if(text)
{
- text->setMultiLineSpace(10);
text->setColor(CRGBA(250, 30, 30, 255));
std::vector< std::string > errors(5);
diff --git a/code/ryzom/client/src/login.h b/code/ryzom/client/src/login.h
index e9e5f55f9..ad2388100 100644
--- a/code/ryzom/client/src/login.h
+++ b/code/ryzom/client/src/login.h
@@ -19,6 +19,7 @@
#define CL_LOGIN_H
#include "nel/misc/types_nl.h"
+#include "game_share/http_client.h"
#include
#include
@@ -67,6 +68,22 @@ void mainLandPatch();
extern std::vector Shards;
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
diff --git a/code/ryzom/client/src/login_progress_post_thread.h b/code/ryzom/client/src/login_progress_post_thread.h
index 68bc75a4b..feeaffcbc 100644
--- a/code/ryzom/client/src/login_progress_post_thread.h
+++ b/code/ryzom/client/src/login_progress_post_thread.h
@@ -19,7 +19,7 @@
#include "nel/misc/thread.h"
#include "nel/misc/singleton.h"
-#include "http_client.h"
+#include "game_share/http_client.h"
namespace NLMISC
diff --git a/code/ryzom/client/src/net_manager.cpp b/code/ryzom/client/src/net_manager.cpp
index ddfc19a9d..397414deb 100644
--- a/code/ryzom/client/src/net_manager.cpp
+++ b/code/ryzom/client/src/net_manager.cpp
@@ -3260,7 +3260,7 @@ private:
if(i != digitMaxEnd)
{
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
{
diff --git a/code/ryzom/client/src/player_cl.cpp b/code/ryzom/client/src/player_cl.cpp
index 24f3a36cf..f5ff60596 100644
--- a/code/ryzom/client/src/player_cl.cpp
+++ b/code/ryzom/client/src/player_cl.cpp
@@ -673,7 +673,7 @@ void CPlayerCL::updateVisualPropertyVpa(const NLMISC::TGameCycle &/* gameCycle *
}
// 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)
{
// Get extended name
diff --git a/code/ryzom/client/src/release.cpp b/code/ryzom/client/src/release.cpp
index 3032cfe57..b6bfe58f0 100644
--- a/code/ryzom/client/src/release.cpp
+++ b/code/ryzom/client/src/release.cpp
@@ -69,7 +69,7 @@
#include "string_manager_client.h"
#include "precipitation_clip_grid.h"
#include "interface_v3/music_player.h"
-#include "http_client.h"
+#include "login.h"
#include "actions_client.h"
#include "login_progress_post_thread.h"
//
diff --git a/code/ryzom/client/src/string_manager_client.cpp b/code/ryzom/client/src/string_manager_client.cpp
index c5e9edfb3..71ca87ad8 100644
--- a/code/ryzom/client/src/string_manager_client.cpp
+++ b/code/ryzom/client/src/string_manager_client.cpp
@@ -25,6 +25,7 @@
#include "nel/misc/hierarchical_timer.h"
#include "nel/misc/algo.h"
#include "misc.h"
+#include "entity_cl.h"
using namespace std;
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
temp.append(move, src+param.ReplacementPoint);
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 listInfos = getTitleInfos(titleId, women);
@@ -1613,18 +1621,16 @@ const ucchar *CStringManagerClient::getTitleLocalizedName(const std::string &tit
return _TitleWords.back().c_str();
}
- ucstring ucId;
- ucId.fromUtf8(titleId);
- return ucId.c_str();
+ return titleId.c_str();
}
// ***************************************************************************
-vector CStringManagerClient::getTitleInfos(const std::string &titleId, bool women)
+vector CStringManagerClient::getTitleInfos(const ucstring &titleId, bool women)
{
- ucstring infosUC;
- infosUC.fromUtf8(titleId);
+ //ucstring infosUC;
+ //infosUC.fromUtf8(titleId);
vector listInfos;
- splitUCString(infosUC, ucstring("#"), listInfos);
+ splitUCString(titleId, ucstring("#"), listInfos);
if (listInfos.size() > 0)
{
diff --git a/code/ryzom/client/src/string_manager_client.h b/code/ryzom/client/src/string_manager_client.h
index 7bb8fd043..89e05acd0 100644
--- a/code/ryzom/client/src/string_manager_client.h
+++ b/code/ryzom/client/src/string_manager_client.h
@@ -106,8 +106,8 @@ public:
static const ucchar *getSPhraseLocalizedDescription(NLMISC::CSheetId id);
// Get the Localized Title name
- static const ucchar *getTitleLocalizedName(const std::string &titleId, bool women);
- static std::vector getTitleInfos(const std::string &titleId, bool women);
+ static const ucchar *getTitleLocalizedName(const ucstring &titleId, bool women);
+ static std::vector getTitleInfos(const ucstring &titleId, bool women);
// Get the Localized name of a classification type
static const ucchar *getClassificationTypeLocalizedName(EGSPD::CClassificationType::TClassificationType type);
diff --git a/code/ryzom/client/src/http_client.cpp b/code/ryzom/common/src/game_share/http_client.cpp
similarity index 91%
rename from code/ryzom/client/src/http_client.cpp
rename to code/ryzom/common/src/game_share/http_client.cpp
index c63f3c217..9abc5929c 100644
--- a/code/ryzom/client/src/http_client.cpp
+++ b/code/ryzom/common/src/game_share/http_client.cpp
@@ -15,8 +15,7 @@
// along with this program. If not, see .
#include "stdpch.h"
-#include "http_client.h"
-#include "client_cfg.h"
+#include "game_share/http_client.h"
using namespace NLMISC;
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 ¶ms)
+ : _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;
-
-#endif
+ if ( ! httpClient.connect(_Host))
+ {
+ return;
+ }
+
+ if ( ! httpClient.sendPost(_Host + _Page, _Params))
+ {
+ return;
+ }
+
+ httpClient.receive(ret);
+ httpClient.disconnect();
+}
\ No newline at end of file
diff --git a/code/ryzom/client/src/http_client.h b/code/ryzom/common/src/game_share/http_client.h
similarity index 83%
rename from code/ryzom/client/src/http_client.h
rename to code/ryzom/common/src/game_share/http_client.h
index 4f53255cc..56e34b615 100644
--- a/code/ryzom/client/src/http_client.h
+++ b/code/ryzom/common/src/game_share/http_client.h
@@ -66,25 +66,22 @@ private:
NLNET::CTcpSock _Sock;
};
+// ***************************************************************************
+// ***************************************************************************
+// ***************************************************************************
-// 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
+class CHttpPostTask : public NLMISC::IRunnable
{
public:
+ CHttpPostTask(const std::string &host, const std::string &page, const std::string ¶ms);
+ void run(void);
- bool connectToLogin();
+private:
+ std::string _Host;
+ std::string _Page;
+ std::string _Params;
};
-extern CStartupHttpClient HttpClient;
-
-#endif
-
-
#endif // NL_HTTP_CLIENT_H
/* End of http_client.h */
diff --git a/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h b/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h
index 3005f0cdc..be8a77aea 100644
--- a/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h
+++ b/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h
@@ -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_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_DAY = 1111111;
const uint RYZOM_START_HOUR = 9;