Merge branch 'feature/merge-ryzomcore-to-develop+CI' into 'develop'

Feature/merge ryzomcore to develop+ci



See merge request !22
This commit is contained in:
Zatalyz 2016-08-14 20:47:52 +00:00
commit 7e1800a9fe
234 changed files with 42490 additions and 1959 deletions

View file

@ -61,7 +61,7 @@ SET(NL_VERSION_MAJOR 0)
SET(NL_VERSION_MINOR 12)
SET(NL_VERSION_PATCH 0)
SET(YEAR "2004-${CURRENT_YEAR}")
SET(AUTHOR "Winchgate and The Ryzom Core Community")
SET(AUTHOR "Winch Gate and The Ryzom Core Community")
SET(RYZOM_VERSION_MAJOR 2)
SET(RYZOM_VERSION_MINOR 9)

View file

@ -22,13 +22,8 @@ IF(NOT TARGET_CPU)
SET(TARGET_CPU "armv7")
ENDIF()
SET(ARMV7_HARD_FLOAT OFF)
IF(TARGET_CPU STREQUAL "armv7")
SET(LIBRARY_ARCHITECTURE "armeabi-v7a")
IF(ARMV7_HARD_FLOAT)
SET(LIBRARY_ARCHITECTURE "${LIBRARY_ARCHITECTURE}-hard")
ENDIF()
SET(CMAKE_SYSTEM_PROCESSOR "armv7")
SET(TOOLCHAIN_ARCH "arm")
SET(GCC_TOOLCHAIN_PREFIX "arm-linux-androideabi")
@ -123,6 +118,12 @@ MACRO(SEARCH_TOOLCHAIN _COMPILER)
ENDFOREACH()
ENDIF()
# try prefixes without version
SET(_TOOLCHAIN_WITHOUT_VERSION "${NDK_ROOT}/toolchains/${${_COMPILER}_TOOLCHAIN_PREFIX}")
IF(EXISTS ${_TOOLCHAIN_WITHOUT_VERSION})
LIST(APPEND ${_COMPILER}_TOOLCHAIN_VERSIONS "default")
ENDIF()
IF(NOT ${_COMPILER}_TOOLCHAIN_VERSIONS)
MESSAGE(FATAL_ERROR "No Android ${_COMPILER} toolchain found in default search path ${NDK_ROOT}/toolchains")
ENDIF()
@ -136,7 +137,15 @@ MACRO(SEARCH_TOOLCHAIN _COMPILER)
LIST(GET ${_COMPILER}_TOOLCHAIN_VERSIONS 0 ${_COMPILER}_TOOLCHAIN_VERSION)
ENDIF()
SET(${_COMPILER}_TOOLCHAIN_ROOT "${NDK_ROOT}/toolchains/${${_COMPILER}_TOOLCHAIN_PREFIX}-${${_COMPILER}_TOOLCHAIN_VERSION}/prebuilt/${TOOLCHAIN_HOST}")
MESSAGE(STATUS "TOOLCHAIN_PREFIX = ${${_COMPILER}_TOOLCHAIN_VERSION}")
IF("${${_COMPILER}_TOOLCHAIN_VERSION}" STREQUAL "default")
MESSAGE(STATUS "default")
SET(${_COMPILER}_TOOLCHAIN_ROOT "${NDK_ROOT}/toolchains/${${_COMPILER}_TOOLCHAIN_PREFIX}/prebuilt/${TOOLCHAIN_HOST}")
ELSE()
MESSAGE(STATUS "not default")
SET(${_COMPILER}_TOOLCHAIN_ROOT "${NDK_ROOT}/toolchains/${${_COMPILER}_TOOLCHAIN_PREFIX}-${${_COMPILER}_TOOLCHAIN_VERSION}/prebuilt/${TOOLCHAIN_HOST}")
ENDIF()
IF(NOT EXISTS "${${_COMPILER}_TOOLCHAIN_ROOT}")
FILE(GLOB _TOOLCHAIN_PREFIXES "${${_COMPILER}_TOOLCHAIN_ROOT}*")
@ -192,7 +201,7 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
MACRO(SET_TOOLCHAIN_BINARY_LLVM _NAME _BINARY)
SET(${_NAME} ${CLANG_TOOLCHAIN_ROOT}/bin/${_BINARY}${TOOLCHAIN_BIN_SUFFIX} CACHE PATH "" FORCE )
SET(${_NAME} ${CLANG_TOOLCHAIN_ROOT}/bin/${_BINARY}${TOOLCHAIN_BIN_SUFFIX} CACHE PATH "" FORCE)
ENDMACRO()
MACRO(SET_TOOLCHAIN_BINARY_GCC _NAME _BINARY)
@ -214,6 +223,14 @@ IF(CLANG)
SET_TOOLCHAIN_BINARY_LLVM(CMAKE_ASM_COMPILER llvm-as)
SET_TOOLCHAIN_BINARY_LLVM(CMAKE_AR llvm-ar)
SET_TOOLCHAIN_BINARY_LLVM(CMAKE_LINKER clang++)
IF(NOT EXISTS "${CMAKE_ASM_COMPILER}")
SET_TOOLCHAIN_BINARY_GCC(CMAKE_ASM_COMPILER as)
ENDIF()
IF(NOT EXISTS "${CMAKE_AR}")
SET_TOOLCHAIN_BINARY_GCC(CMAKE_AR ar)
ENDIF()
ELSE()
MESSAGE(STATUS "Using GCC compiler")

View file

@ -124,7 +124,7 @@ IF(WITH_LUA51)
IF(WITH_STLPORT)
LIST(APPEND LIBRARY_NAME_RELEASE luabind_stlport_lua51)
LIST(APPEND LIBRARY_NAME_DEBUG luabind_stlport_lua51d)
ENDIF(WITH_STLPORT)
ENDIF()
LIST(APPEND LIBRARY_NAME_RELEASE luabind_lua51)
LIST(APPEND LIBRARY_NAME_DEBUG luabind_lua51d)
@ -134,7 +134,7 @@ IF(WITH_LUA50)
IF(WITH_STLPORT)
LIST(APPEND LIBRARY_NAME_RELEASE luabind_stlport_lua50)
LIST(APPEND LIBRARY_NAME_DEBUG luabind_stlport_lua50d)
ENDIF(WITH_STLPORT)
ENDIF()
LIST(APPEND LIBRARY_NAME_RELEASE luabind_lua50)
LIST(APPEND LIBRARY_NAME_DEBUG luabind_lua50d)
@ -195,7 +195,7 @@ IF(LUABIND_INCLUDE_DIR AND Boost_INCLUDE_DIR)
SET(LUABIND_FOUND TRUE)
SET(LUABIND_LIBRARIES ${LUABIND_LIBRARY_DEBUG})
ENDIF(LUABIND_LIBRARY_RELEASE AND LUABIND_LIBRARY_DEBUG)
ENDIF(LUABIND_INCLUDE_DIR AND Boost_INCLUDE_DIR)
ENDIF()
IF(LUABIND_FOUND)
SET(LUABIND_INCLUDE_DIR ${LUABIND_INCLUDE_DIR} ${Boost_INCLUDE_DIR})
@ -203,17 +203,17 @@ IF(LUABIND_FOUND)
FIND_FILE(LUABIND_VERSION_FILE luabind/version.hpp PATHS ${LUABIND_INCLUDE_DIR})
IF(LUABIND_VERSION_FILE)
SET(LUABIND_DEFINITIONS "-DHAVE_LUABIND_VERSION")
ENDIF(LUABIND_VERSION_FILE)
ENDIF()
FIND_CORRECT_LUA_VERSION()
IF(NOT Luabind_FIND_QUIETLY)
MESSAGE(STATUS "Found Luabind: ${LUABIND_LIBRARIES}")
ENDIF(NOT Luabind_FIND_QUIETLY)
ELSE(LUABIND_FOUND)
ELSE()
IF(NOT Luabind_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find Luabind!")
ENDIF(NOT Luabind_FIND_QUIETLY)
ENDIF()
ENDIF(LUABIND_FOUND)
MARK_AS_ADVANCED(LUABIND_LIBRARY_RELEASE LUABIND_LIBRARY_DEBUG Boost_LIB_DIAGNOSTIC_DEFINITIONS)

View file

@ -366,19 +366,34 @@ FIND_PATH(WINSDK_LIBRARY_DIR ComCtl32.lib
)
IF(WINSDK_UCRT_DIR)
# directory where UCRT headers are found
FIND_PATH(WINSDK_UCRT_INCLUDE_DIR corecrt.h
HINTS
${WINSDK_UCRT_DIR}/Include/10.0.10056.0/ucrt
${WINSDK_UCRT_DIR}/Include/10.0.10150.0/ucrt
)
# determine exact UCRT version
SET(WINSDK_UCRT_INCLUDE_ROOT_DIR ${WINSDK_UCRT_DIR}/Include)
SET(WINSDK_UCRT_LIB_ROOT_DIR ${WINSDK_UCRT_DIR}/Lib)
# directory where UCRT libraries are found
FIND_PATH(WINSDK_UCRT_LIBRARY_DIR ucrt.lib
HINTS
${WINSDK_UCRT_DIR}/Lib/10.0.10056.0/ucrt/${WINSDK8_SUFFIX}
${WINSDK_UCRT_DIR}/Lib/10.0.10150.0/ucrt/${WINSDK8_SUFFIX}
)
FILE(GLOB UCRT_SUBDIRS RELATIVE ${WINSDK_UCRT_INCLUDE_ROOT_DIR} ${WINSDK_UCRT_INCLUDE_ROOT_DIR}/*)
SET(UCRT_VERSION)
FOREACH(UCRT_SUBDIR ${UCRT_SUBDIRS})
IF(NOT UCRT_VERSION OR UCRT_SUBDIR VERSION_GREATER UCRT_VERSION)
SET(UCRT_VERSION ${UCRT_SUBDIR})
ENDIF()
ENDFOREACH()
IF(UCRT_VERSION)
MESSAGE(STATUS "Using Windows UCRT ${UCRT_VERSION}")
# directory where UCRT headers are found
FIND_PATH(WINSDK_UCRT_INCLUDE_DIR corecrt.h
HINTS
${WINSDK_UCRT_INCLUDE_ROOT_DIR}/${UCRT_VERSION}/ucrt
)
# directory where UCRT libraries are found
FIND_PATH(WINSDK_UCRT_LIBRARY_DIR ucrt.lib
HINTS
${WINSDK_UCRT_LIB_ROOT_DIR}/${UCRT_VERSION}/ucrt/${WINSDK8_SUFFIX}
)
ENDIF()
ENDIF()
# signtool is used to sign executables

View file

@ -177,26 +177,26 @@ ENDIF()
# set the architecture for iOS - using ARCHS_STANDARD_32_BIT sets armv7,armv7s and appears to be XCode's standard.
# The other value that works is ARCHS_UNIVERSAL_IPHONE_OS but that sets armv7 only
IF(ARCHS)
SET(CMAKE_OSX_ARCHITECTURES ${ARCHS} CACHE string "Build architecture for iOS")
SET(CMAKE_OSX_ARCHITECTURES ${ARCHS} CACHE STRING "Build architecture for iOS")
ENDIF()
# Set the find root to the iOS developer roots and to user defined paths
set (CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_IOS_SDK_ROOT} ${CMAKE_PREFIX_PATH} ${CMAKE_INSTALL_PREFIX} $ENV{EXTERNAL_IOS_PATH} CACHE string "iOS find search path root")
SET(CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_IOS_SDK_ROOT} ${CMAKE_PREFIX_PATH} ${CMAKE_INSTALL_PREFIX} ${CMAKE_SOURCE_DIR}/external $ENV{EXTERNAL_IOS_PATH} CACHE STRING "iOS find search path root")
# default to searching for frameworks first
set (CMAKE_FIND_FRAMEWORK FIRST)
SET(CMAKE_FIND_FRAMEWORK FIRST)
# set up the default search directories for frameworks
set (CMAKE_SYSTEM_FRAMEWORK_PATH
SET(CMAKE_SYSTEM_FRAMEWORK_PATH
${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks
${CMAKE_IOS_SDK_ROOT}/System/Library/PrivateFrameworks
${CMAKE_IOS_SDK_ROOT}/Developer/Library/Frameworks
)
# only search the iOS sdks, not the remainder of the host filesystem
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# determinate location for bin utils based on CMAKE_FIND_ROOT_PATH
include(CMakeFindBinUtils)

View file

@ -246,11 +246,12 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS)
###
OPTION(WITH_SYMBOLS "Keep debug symbols in binaries" OFF)
IF(WIN32)
# only enable STLport for VC++ 2010 and less
IF(WIN32 AND MSVC_VERSION LESS 1600)
OPTION(WITH_STLPORT "With STLport support." ON )
ELSE(WIN32)
ELSE()
OPTION(WITH_STLPORT "With STLport support." OFF)
ENDIF(WIN32)
ENDIF()
OPTION(BUILD_DASHBOARD "Build to the CDash dashboard" OFF)
@ -321,7 +322,7 @@ MACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS)
OPTION(WITH_RYZOM_CLIENT "Build Ryzom Core Client" ON )
OPTION(WITH_RYZOM_TOOLS "Build Ryzom Core Tools" ON )
OPTION(WITH_RYZOM_SERVER "Build Ryzom Core Services" ON )
OPTION(WITH_RYZOM_SOUND "Enable Ryzom Core Sound" ON )
OPTION(WITH_RYZOM_INSTALLER "Build Ryzom Installer" OFF)
###
# Optional support
@ -534,31 +535,31 @@ MACRO(NL_SETUP_BUILD)
# without inlining it's unusable, use custom optimizations again
SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}")
ELSEIF(MSVC12)
ADD_PLATFORM_FLAGS("/Gy- /MP")
ADD_PLATFORM_FLAGS("/Gy- /MP /Zm1000")
# /Ox is working with VC++ 2013, but custom optimizations don't exist
SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}")
# without inlining it's unusable, use custom optimizations again
SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}")
ELSEIF(MSVC11)
ADD_PLATFORM_FLAGS("/Gy- /MP")
ADD_PLATFORM_FLAGS("/Gy- /MP /Zm1000")
# /Ox is working with VC++ 2012, but custom optimizations don't exist
SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}")
# without inlining it's unusable, use custom optimizations again
SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}")
ELSEIF(MSVC10)
ADD_PLATFORM_FLAGS("/Gy- /MP")
ADD_PLATFORM_FLAGS("/Gy- /MP /Zm1000")
# /Ox is working with VC++ 2010, but custom optimizations don't exist
SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}")
# without inlining it's unusable, use custom optimizations again
SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}")
ELSEIF(MSVC90)
ADD_PLATFORM_FLAGS("/Gy- /MP")
ADD_PLATFORM_FLAGS("/Gy- /MP /Zm1000")
# don't use a /O[012x] flag if you want custom optimizations
SET(RELEASE_CFLAGS "/Ob2 /Oi /Ot /Oy /GT /GF /GS- ${RELEASE_CFLAGS}")
# without inlining it's unusable, use custom optimizations again
SET(DEBUG_CFLAGS "/Ob1 /GF- ${DEBUG_CFLAGS}")
ELSEIF(MSVC80)
ADD_PLATFORM_FLAGS("/Gy- /Wp64")
ADD_PLATFORM_FLAGS("/Gy- /Wp64 /Zm1000")
# don't use a /O[012x] flag if you want custom optimizations
SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}")
# without inlining it's unusable, use custom optimizations again
@ -567,7 +568,7 @@ MACRO(NL_SETUP_BUILD)
MESSAGE(FATAL_ERROR "Can't determine compiler version ${MSVC_VERSION}")
ENDIF(MSVC14)
ADD_PLATFORM_FLAGS("/D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /DWIN32 /D_WINDOWS /Zm1000 /wd4250")
ADD_PLATFORM_FLAGS("/D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /DWIN32 /D_WINDOWS /wd4250")
IF(TARGET_X64)
# Fix a bug with Intellisense

View file

@ -163,7 +163,7 @@ public:
/** There is (OrderS/2+1) * (OrderT/2+1) tiles light influence.
* It indicates which static pointLight influence each corner of a TessBlock (block of 2*2 tiles).
*
* If size()==0, suppose no light influence. but CZone::retrieve() always return a
* If empty(), suppose no light influence. but CZone::retrieve() always return a
* size() == (OrderS/2+1) * (OrderT/2+1).
*
* They are stored in line first order, from S=0 to 1, and T=0 to 1.

View file

@ -39,7 +39,6 @@ namespace NLGUI
class CGroupParagraph;
extern std::string CurrentCookie;
extern std::string HTTPCurrentDomain;
// HTML group
/**
@ -78,7 +77,7 @@ namespace NLGUI
class CStyleParams
{
public:
CStyleParams () : TextColor(255,255,255,255)
CStyleParams () : FontFamily(""), TextColor(255,255,255,255)
{
FontSize=10;
FontWeight=400;
@ -93,6 +92,7 @@ namespace NLGUI
uint FontSize;
uint FontWeight;
bool FontOblique;
std::string FontFamily;
NLMISC::CRGBA TextColor;
bool Underlined;
bool StrikeThrough;
@ -282,9 +282,6 @@ namespace NLGUI
// A new text block has been parsed
virtual void addText (const char * buf, int len);
// A link has been parsed
virtual void addLink (uint element_number, const std::vector<bool> &present, const std::vector<const char *> &value);
// A new begin HTML element has been parsed (<IMG> for exemple)
virtual void beginElement (uint element_number, const std::vector<bool> &present, const std::vector<const char *> &value);
@ -376,6 +373,7 @@ namespace NLGUI
std::string _URL;
// Current URL
std::string _DocumentUrl;
std::string _DocumentDomain;
// Valid base href was found
bool _IgnoreBaseUrlTag;
// Fragment from loading url
@ -511,6 +509,15 @@ namespace NLGUI
return _GlobalColor.back();
}
// Current font name
std::vector<std::string> _FontFamily;
inline const char* getFontFamily() const
{
if (_FontFamily.empty())
return "";
return _FontFamily.back().c_str();
}
// Current font size
std::vector<uint> _FontSize;
inline uint getFontSize() const

View file

@ -51,7 +51,8 @@ namespace NLGUI
public:
std::string scheme;
std::string domain;
std::string authority;
std::string host;
std::string path;
std::string query;
std::string hash;

View file

@ -586,8 +586,12 @@ namespace NLGUI
static NL3D::UDriver *driver;
static NL3D::UTextContext *textcontext;
typedef CHashMap< std::string, NL3D::UTextContext* > TFontsList;
static TFontsList fonts;
public:
static NL3D::UTextContext* getTextContext(){ return textcontext; }
static NL3D::UTextContext* getTextContext(const std::string &name="");
static bool registerFont(const std::string &name, const std::string &font);
/// Set of hw cursor images
static std::set< std::string > *hwCursors;

View file

@ -80,6 +80,7 @@ namespace NLGUI
/// Set
void setText (const ucstring &text);
void setFontName (const std::string &name);
void setFontSize (sint nFontSize);
void setEmbolden (bool nEmbolden);
void setOblique (bool nOblique);
@ -94,6 +95,7 @@ namespace NLGUI
void setMultiLineClipEndSpace (bool state); // use it for multiline edit box for instance
void setFirstLineX (uint firstLineX);
void setMultiMaxLine(uint l) { _MultiMaxLine = l; }
void setMultiMinLine(uint l) { _MultiMinLine = l; }
// Force only a subset of letter to be displayed. Default is 0/0xFFFFFFFF
void enableStringSelection(uint start, uint end);
@ -103,6 +105,7 @@ namespace NLGUI
ucstring getText() const { return _Text; }
sint getFontSize() const;
std::string getFontName() const { return _FontName; }
bool getEmbolden() { return _Embolden; }
bool getOblique() { return _Oblique; }
NLMISC::CRGBA getColor() { return _Color; }
@ -114,6 +117,8 @@ namespace NLGUI
sint getMultiLineSpace() const { return _MultiLineSpace; }
bool getMultiLineMaxWOnly() const { return _MultiLineMaxWOnly; }
uint32 getMultiMaxLine() const { return _MultiMaxLine; }
uint32 getMultiMinLine() const { return _MultiMinLine; }
uint32 getMultiMinOffsetY() const;
// get current Hint font width, in pixels
uint getFontWidth() const;
@ -224,6 +229,8 @@ namespace NLGUI
uint _Index;
/// info on the computed String associated to this text control
NL3D::UTextContext::CStringInfo _Info;
/// Font name to get TextContext
std::string _FontName;
/// the font size
sint _FontSize;
bool _Embolden;
@ -259,6 +266,7 @@ namespace NLGUI
sint _MultiLineSpace;
sint _LastMultiLineMaxW;
uint32 _MultiMaxLine;
uint32 _MultiMinLine;
/// FormatTag handling
@ -316,7 +324,7 @@ namespace NLGUI
CFormatInfo Format;
public:
// build from a string, using the current text context
void build(const ucstring &text, uint numSpaces= 0);
void build(const ucstring &text, NL3D::UTextContext &textContext, uint numSpaces= 0);
};
typedef std::vector<CWord> TWordVect;
@ -327,9 +335,9 @@ namespace NLGUI
// ctor
CLine();
// Clear the line & remove text contexts
void clear();
void clear(NL3D::UTextContext &textContext);
// Add a new word (and its context) in the line + a number of spaces to append at the end of the line
void addWord(const ucstring &word, uint numSpaces, const CFormatInfo &wordFormat, uint fontWidth);
void addWord(const ucstring &word, uint numSpaces, const CFormatInfo &wordFormat, uint fontWidth, NL3D::UTextContext &textContext);
void addWord(const CWord &word, uint fontWidth);
uint getNumWords() const { return (uint)_Words.size(); }
CWord &getWord(uint index) { return _Words[index]; }

View file

@ -442,6 +442,7 @@ namespace NLGUI
OptionTimeoutMessages,
OptionTimeoutContext,
OptionTimeoutContextHtml,
OptionMonospaceFont,
NumSystemOptions
};

View file

@ -120,9 +120,9 @@ public:
*/
std::string toString() const
{
if (_Ids.size()==0) return std::string("");
if (_Ids.empty()) return std::string("");
std::string str=_Ids[0];
for (unsigned i=1; i<_Ids.size(); i++)
for (uint i=1; i<_Ids.size(); i++)
str +=std::string(":")+ _Ids[i];
return str;
}

View file

@ -50,14 +50,14 @@ IDriver::~IDriver()
{
CSynchronized<TTexDrvInfoPtrMap>::CAccessor access(&_SyncTexDrvInfos);
TTexDrvInfoPtrMap &rTexDrvInfos = access.value();
nlassert( rTexDrvInfos.size() == 0 );
nlassert(rTexDrvInfos.empty());
}
nlassert(_TexDrvShares.size()==0);
nlassert(_MatDrvInfos.size()==0);
nlassert(_VBDrvInfos.size()==0);
nlassert(_IBDrvInfos.size()==0);
nlassert(_GPUPrgDrvInfos.size()==0);
nlassert(_TexDrvShares.empty());
nlassert(_MatDrvInfos.empty());
nlassert(_VBDrvInfos.empty());
nlassert(_IBDrvInfos.empty());
nlassert(_GPUPrgDrvInfos.empty());
}

View file

@ -4,7 +4,7 @@ NL_TARGET_DRIVER(nel_drv_direct3d_win ${SRC})
INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_direct3d_win nel3d nelmisc ${DXSDK_D3DX9_LIBRARY} ${DXSDK_D3D9_LIBRARY} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY})
TARGET_LINK_LIBRARIES(nel_drv_direct3d_win nel3d nelmisc ${DXSDK_D3DX9_LIBRARY} ${DXSDK_D3D9_LIBRARY})
NL_DEFAULT_PROPS(nel_drv_direct3d_win "NeL, Driver, Video: Direct3D")
NL_ADD_RUNTIME_FLAGS(nel_drv_direct3d_win)

View file

@ -125,7 +125,7 @@ uint8 *CVBDrvInfosD3D::lock (uint begin, uint end, bool readOnly)
}
else
{
nlinfo("Buffer %s at %x is Locked", (*it)->VertexBufferPtr->getName().c_str(), (int) *it);
nlinfo("Buffer %s at %p is Locked", (*it)->VertexBufferPtr->getName().c_str(), *it);
}
}
}

View file

@ -6,7 +6,7 @@ extern "C" {
#endif
/*
** Copyright (c) 2013-2015 The Khronos Group Inc.
** Copyright (c) 2013-2016 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@ -33,7 +33,7 @@ extern "C" {
** used to make the header, and the header can be found at
** http://www.opengl.org/registry/
**
** Khronos $Revision: 32155 $ on $Date: 2015-10-22 23:25:39 -0400 (Thu, 22 Oct 2015) $
** Khronos $Revision: 32957 $ on $Date: 2016-06-09 17:03:08 -0400 (Thu, 09 Jun 2016) $
*/
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
@ -53,7 +53,7 @@ extern "C" {
#define GLAPI extern
#endif
#define GL_GLEXT_VERSION 20151022
#define GL_GLEXT_VERSION 20160609
/* Generated C header for:
* API: gl
@ -5596,6 +5596,10 @@ GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLf
#define GL_AMD_shader_atomic_counter_ops 1
#endif /* GL_AMD_shader_atomic_counter_ops */
#ifndef GL_AMD_shader_explicit_vertex_parameter
#define GL_AMD_shader_explicit_vertex_parameter 1
#endif /* GL_AMD_shader_explicit_vertex_parameter */
#ifndef GL_AMD_shader_stencil_export
#define GL_AMD_shader_stencil_export 1
#endif /* GL_AMD_shader_stencil_export */
@ -8636,6 +8640,20 @@ GLAPI void APIENTRY glVertexWeightPointerEXT (GLint size, GLenum type, GLsizei s
#endif
#endif /* GL_EXT_vertex_weighting */
#ifndef GL_EXT_window_rectangles
#define GL_EXT_window_rectangles 1
#define GL_INCLUSIVE_EXT 0x8F10
#define GL_EXCLUSIVE_EXT 0x8F11
#define GL_WINDOW_RECTANGLE_EXT 0x8F12
#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13
#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14
#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15
typedef void (APIENTRYP PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint *box);
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLint *box);
#endif
#endif /* GL_EXT_window_rectangles */
#ifndef GL_EXT_x11_sync_object
#define GL_EXT_x11_sync_object 1
#define GL_SYNC_X11_FENCE_EXT 0x90E1
@ -9129,6 +9147,17 @@ GLAPI void APIENTRY glBlendBarrierNV (void);
#define GL_NV_blend_square 1
#endif /* GL_NV_blend_square */
#ifndef GL_NV_clip_space_w_scaling
#define GL_NV_clip_space_w_scaling 1
#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C
#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D
#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E
typedef void (APIENTRYP PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff);
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glViewportPositionWScaleNV (GLuint index, GLfloat xcoeff, GLfloat ycoeff);
#endif
#endif /* GL_NV_clip_space_w_scaling */
#ifndef GL_NV_command_list
#define GL_NV_command_list 1
#define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000
@ -9231,6 +9260,17 @@ GLAPI void APIENTRY glConservativeRasterParameterfNV (GLenum pname, GLfloat valu
#endif
#endif /* GL_NV_conservative_raster_dilate */
#ifndef GL_NV_conservative_raster_pre_snap_triangles
#define GL_NV_conservative_raster_pre_snap_triangles 1
#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D
#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E
#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F
typedef void (APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param);
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param);
#endif
#endif /* GL_NV_conservative_raster_pre_snap_triangles */
#ifndef GL_NV_copy_depth_to_color
#define GL_NV_copy_depth_to_color 1
#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
@ -10223,6 +10263,11 @@ GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname,
#endif
#endif /* GL_NV_register_combiners2 */
#ifndef GL_NV_robustness_video_memory_purge
#define GL_NV_robustness_video_memory_purge 1
#define GL_PURGED_CONTEXT_RESET_NV 0x92BB
#endif /* GL_NV_robustness_video_memory_purge */
#ifndef GL_NV_sample_locations
#define GL_NV_sample_locations 1
#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D
@ -10255,6 +10300,10 @@ GLAPI void APIENTRY glResolveDepthValuesNV (void);
#define GL_NV_shader_atomic_float 1
#endif /* GL_NV_shader_atomic_float */
#ifndef GL_NV_shader_atomic_float64
#define GL_NV_shader_atomic_float64 1
#endif /* GL_NV_shader_atomic_float64 */
#ifndef GL_NV_shader_atomic_fp16_vector
#define GL_NV_shader_atomic_fp16_vector 1
#endif /* GL_NV_shader_atomic_fp16_vector */
@ -10318,6 +10367,10 @@ GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLs
#define GL_NV_shader_thread_shuffle 1
#endif /* GL_NV_shader_thread_shuffle */
#ifndef GL_NV_stereo_view_rendering
#define GL_NV_stereo_view_rendering 1
#endif /* GL_NV_stereo_view_rendering */
#ifndef GL_NV_tessellation_program5
#define GL_NV_tessellation_program5 1
#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
@ -11088,6 +11141,26 @@ GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot
#define GL_NV_viewport_array2 1
#endif /* GL_NV_viewport_array2 */
#ifndef GL_NV_viewport_swizzle
#define GL_NV_viewport_swizzle 1
#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350
#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351
#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352
#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353
#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354
#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355
#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356
#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357
#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358
#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359
#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A
#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B
typedef void (APIENTRYP PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
#endif
#endif /* GL_NV_viewport_swizzle */
#ifndef GL_OML_interlace
#define GL_OML_interlace 1
#define GL_INTERLACE_OML 0x8980

View file

@ -6,7 +6,7 @@ extern "C" {
#endif
/*
** Copyright (c) 2013-2015 The Khronos Group Inc.
** Copyright (c) 2013-2016 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@ -33,10 +33,10 @@ extern "C" {
** used to make the header, and the header can be found at
** http://www.opengl.org/registry/
**
** Khronos $Revision: 31597 $ on $Date: 2015-06-25 16:32:35 -0400 (Thu, 25 Jun 2015) $
** Khronos $Revision: 32889 $ on $Date: 2016-05-31 07:09:51 -0400 (Tue, 31 May 2016) $
*/
#define GLX_GLXEXT_VERSION 20150623
#define GLX_GLXEXT_VERSION 20160531
/* Generated C header for:
* API: glx
@ -317,6 +317,11 @@ void glXFreeContextEXT (Display *dpy, GLXContext context);
#endif
#endif /* GLX_EXT_import_context */
#ifndef GLX_EXT_libglvnd
#define GLX_EXT_libglvnd 1
#define GLX_VENDOR_NAMES_EXT 0x20F6
#endif /* GLX_EXT_libglvnd */
#ifndef GLX_EXT_stereo_tree
#define GLX_EXT_stereo_tree 1
typedef struct {
@ -543,6 +548,11 @@ int glXBindVideoDeviceNV (Display *dpy, unsigned int video_slot, unsigned int vi
#endif
#endif /* GLX_NV_present_video */
#ifndef GLX_NV_robustness_video_memory_purge
#define GLX_NV_robustness_video_memory_purge 1
#define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7
#endif /* GLX_NV_robustness_video_memory_purge */
#ifndef GLX_NV_swap_group
#define GLX_NV_swap_group 1
typedef Bool ( *PFNGLXJOINSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint group);

View file

@ -6,7 +6,7 @@ extern "C" {
#endif
/*
** Copyright (c) 2013-2015 The Khronos Group Inc.
** Copyright (c) 2013-2016 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@ -33,7 +33,7 @@ extern "C" {
** used to make the header, and the header can be found at
** http://www.opengl.org/registry/
**
** Khronos $Revision: 31597 $ on $Date: 2015-06-25 16:32:35 -0400 (Thu, 25 Jun 2015) $
** Khronos $Revision: 32686 $ on $Date: 2016-04-19 21:08:44 -0400 (Tue, 19 Apr 2016) $
*/
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
@ -41,7 +41,7 @@ extern "C" {
#include <windows.h>
#endif
#define WGL_WGLEXT_VERSION 20150623
#define WGL_WGLEXT_VERSION 20160419
/* Generated C header for:
* API: wgl

View file

@ -676,8 +676,8 @@ bool CDriverGL::setupDisplay()
}
#endif
// Reset the vbl interval
setSwapVBLInterval(_Interval);
// Get initial VBL interval
_Interval = getSwapVBLInterval();
return true;
}
@ -2288,16 +2288,22 @@ void CDriverGL::setSwapVBLInterval(uint interval)
H_AUTO_OGL(CDriverGL_setSwapVBLInterval);
if (!_Initialized)
{
nlwarning("OpenGL driver not initialized when calling setSwapVBLInterval");
return;
}
bool res = true;
// don't try to change VBL if interval didn't change
if (_Interval == interval) return;
#ifdef USE_OPENGLES
res = eglSwapInterval(_EglDisplay, _Interval) == EGL_TRUE;
res = eglSwapInterval(_EglDisplay, interval) == EGL_TRUE;
#elif defined(NL_OS_WINDOWS)
if(_Extensions.WGLEXTSwapControl)
{
res = nwglSwapIntervalEXT(_Interval) == TRUE;
res = nwglSwapIntervalEXT(interval) == TRUE;
}
#elif defined(NL_OS_MAC)
[_ctx setValues:(GLint*)&interval forParameter:NSOpenGLCPSwapInterval];

View file

@ -1991,24 +1991,32 @@ bool registerWGlExtensions(CGlExtensions &ext, HDC hDC)
if (ext.WGLNVGPUAffinity)
{
uint i = 0;
uint gpuIndex = 0;
HGPUNV hGPU;
while(nwglEnumGpusNV(i, &hGPU))
// list all GPUs
while (nwglEnumGpusNV(gpuIndex, &hGPU))
{
uint j = 0;
PGPU_DEVICE lpGpuDevice = NULL;
_GPU_DEVICE gpuDevice;
gpuDevice.cb = sizeof(gpuDevice);
while(nwglEnumGpuDevicesNV(hGPU, j, lpGpuDevice))
// list all devices connected to GPU
while(nwglEnumGpuDevicesNV(hGPU, j, &gpuDevice))
{
nlinfo("Device: %s - %s - flags: %u", lpGpuDevice->DeviceName, lpGpuDevice->DeviceString, lpGpuDevice->Flags);
nlinfo("Device: %s / %s / flags: %u", gpuDevice.DeviceName, gpuDevice.DeviceString, (uint)gpuDevice.Flags);
if (gpuDevice.Flags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP)
{
nlinfo("Virtual screen: (%d,%d)-(%d,%d)", (sint)gpuDevice.rcVirtualScreen.left, (sint)gpuDevice.rcVirtualScreen.top, (sint)gpuDevice.rcVirtualScreen.right, (sint)gpuDevice.rcVirtualScreen.bottom);
}
++j;
}
++i;
++gpuIndex;
}
}

View file

@ -528,7 +528,7 @@ void CDRU::drawTrianglesUnlit(const NLMISC::CTriangleUV *trilist, sint ntris,
// ***************************************************************************
void CDRU::drawTrianglesUnlit(const std::vector<NLMISC::CTriangleUV> &trilist, CMaterial &mat, IDriver& driver)
{
if(trilist.size()==0)
if(trilist.empty())
return;
CDRU::drawTrianglesUnlit( &(*trilist.begin()), (uint)trilist.size(), mat, driver);
@ -570,7 +570,7 @@ void CDRU::drawLinesUnlit(const NLMISC::CLine *linelist, sint nlines, CMateria
// ***************************************************************************
void CDRU::drawLinesUnlit(const std::vector<NLMISC::CLine> &linelist, CMaterial &mat, IDriver& driver)
{
if(linelist.size()==0)
if(linelist.empty())
return;
CDRU::drawLinesUnlit( &(*linelist.begin()), (sint)linelist.size(), mat, driver);
}

View file

@ -2859,7 +2859,7 @@ void CLandscape::setupAutomaticLightDir(const CVector &lightDir)
// ***************************************************************************
CVector CLandscape::getHeightFieldDeltaZ(float x, float y) const
{
if(_HeightField.ZPatchs.size()==0)
if(_HeightField.ZPatchs.empty())
return CVector::Null;
// map to _HeightField coordinates.

View file

@ -134,7 +134,7 @@ void CLandscapeVBAllocator::resetReallocation()
uint CLandscapeVBAllocator::allocateVertex()
{
// if no more free, allocate.
if( _VertexFreeMemory.size()==0 )
if( _VertexFreeMemory.empty() )
{
// enlarge capacity.
uint newResize;

View file

@ -52,7 +52,7 @@ namespace NL3D
static NLMISC::CAABBoxExt makeBBox(const std::vector<CVector> &Vertices)
{
NLMISC::CAABBox ret;
nlassert(Vertices.size());
nlassert(!Vertices.empty());
ret.setCenter(Vertices[0]);
for(sint i=0;i<(sint)Vertices.size();i++)
{
@ -167,7 +167,7 @@ void CMeshGeom::build (CMesh::CMeshBuild &m, uint numMaxMaterial)
sint i;
// Empty geometry?
if(m.Vertices.size()==0 || m.Faces.size()==0)
if(m.Vertices.empty() || m.Faces.empty())
{
_VBuffer.setNumVertices(0);
_VBuffer.setName("CMeshGeom");
@ -436,7 +436,7 @@ void CMeshGeom::build (CMesh::CMeshBuild &m, uint numMaxMaterial)
}
// Set the vertex buffer preferred memory
bool avoidVBHard= _Skinned || ( _MeshMorpher && _MeshMorpher->BlendShapes.size()>0 );
bool avoidVBHard= _Skinned || ( _MeshMorpher && !_MeshMorpher->BlendShapes.empty() );
_VBuffer.setPreferredMemory (avoidVBHard?CVertexBuffer::RAMPreferred:CVertexBuffer::StaticPreferred, false);
// End!!
@ -638,7 +638,7 @@ void CMeshGeom::render(IDriver *drv, CTransformShape *trans, float polygonCount,
for(uint mb=0;mb<_MatrixBlocks.size();mb++)
{
CMatrixBlock &mBlock= _MatrixBlocks[mb];
if(mBlock.RdrPass.size()==0)
if(mBlock.RdrPass.empty())
continue;
// Global alpha ?
@ -790,7 +790,7 @@ void CMeshGeom::renderSkin(CTransformShape *trans, float alphaMRM)
for(uint mb=0;mb<_MatrixBlocks.size();mb++)
{
CMatrixBlock &mBlock= _MatrixBlocks[mb];
if(mBlock.RdrPass.size()==0)
if(mBlock.RdrPass.empty())
continue;
// Render all pass.
@ -840,7 +840,7 @@ void CMeshGeom::renderSimpleWithMaterial(IDriver *drv, const CMatrix &worldMatri
for(uint mb=0;mb<_MatrixBlocks.size();mb++)
{
CMatrixBlock &mBlock= _MatrixBlocks[mb];
if(mBlock.RdrPass.size()==0)
if(mBlock.RdrPass.empty())
continue;
// Render all pass.
@ -998,10 +998,10 @@ void CMeshGeom::compileRunTime()
_PreciseClipping= _BBox.getRadius() >= NL3D_MESH_PRECISE_CLIP_THRESHOLD;
// Support MeshBlockRendering only if not skinned/meshMorphed.
bool supportMeshBlockRendering= !_Skinned && _MeshMorpher->BlendShapes.size()==0;
bool supportMeshBlockRendering= !_Skinned && _MeshMorpher->BlendShapes.empty();
// true only if one matrix block, and at least one rdrPass.
supportMeshBlockRendering= supportMeshBlockRendering && _MatrixBlocks.size()==1 && _MatrixBlocks[0].RdrPass.size()>0;
supportMeshBlockRendering= supportMeshBlockRendering && _MatrixBlocks.size()==1 && !_MatrixBlocks[0].RdrPass.empty();
if (supportMeshBlockRendering && _MeshVertexProgram)
{
supportMeshBlockRendering = supportMeshBlockRendering && _MeshVertexProgram->supportMeshBlockRendering();
@ -1021,7 +1021,7 @@ void CMeshGeom::compileRunTime()
if(supportMBRPerMaterial)
_SupportMBRFlags|= MBRSortPerMaterial;
bool avoidVBHard= _Skinned || ( _MeshMorpher && _MeshMorpher->BlendShapes.size()>0 );
bool avoidVBHard= _Skinned || ( _MeshMorpher && !_MeshMorpher->BlendShapes.empty() );
_VBuffer.setPreferredMemory (avoidVBHard?CVertexBuffer::RAMPreferred:CVertexBuffer::StaticPreferred, false);
}

View file

@ -407,9 +407,10 @@ void CMeshMorpher::updateRawSkin (CVertexBuffer *vbOri,
rFactor*= 0.01f;
uint32 numVertices= (uint32)rBS.VertRefs.size();
// don't know why, but cases happen where deltaNorm not empty while deltaPos is
bool hasPos= rBS.deltaPos.size()>0;
bool hasNorm= rBS.deltaNorm.size()>0;
bool hasUV= rBS.deltaUV.size()>0;
bool hasPos = !rBS.deltaPos.empty();
bool hasNorm = !rBS.deltaNorm.empty();
bool hasUV = !rBS.deltaUV.empty();
for (j = 0; j < numVertices; ++j)
{
// Get the vertex Index in the VBufferFinal

View file

@ -180,7 +180,7 @@ void CMeshMRMGeom::CLod::optimizeTriangleOrder()
static NLMISC::CAABBoxExt makeBBox(const std::vector<CVector> &Vertices)
{
NLMISC::CAABBox ret;
nlassert(Vertices.size());
nlassert(!Vertices.empty());
ret.setCenter(Vertices[0]);
for(sint i=0;i<(sint)Vertices.size();i++)
{
@ -236,7 +236,7 @@ void CMeshMRMGeom::build(CMesh::CMeshBuild &m, std::vector<CMesh::CMeshBuild*>
uint numMaxMaterial, const CMRMParameters &params)
{
// Empty geometry?
if(m.Vertices.size()==0 || m.Faces.size()==0)
if(m.Vertices.empty() || m.Faces.empty())
{
_VBufferFinal.setNumVertices(0);
_VBufferFinal.reserve(0);
@ -308,7 +308,7 @@ void CMeshMRMGeom::build(CMesh::CMeshBuild &m, std::vector<CMesh::CMeshBuild*>
_LevelDetail.MaxFaceUsed= 0;
_LevelDetail.MinFaceUsed= 0;
// Count of primitive block
if(_Lods.size()>0)
if (!_Lods.empty())
{
uint pb;
// Compute MinFaces.
@ -469,7 +469,7 @@ void CMeshMRMGeom::applyGeomorph(std::vector<CMRMWedgeGeom> &geoms, float alpha
void CMeshMRMGeom::applyGeomorphWithVBHardPtr(std::vector<CMRMWedgeGeom> &geoms, float alphaLod, uint8 *vertexDestPtr)
{
// no geomorphs? quit.
if(geoms.size()==0)
if(geoms.empty())
return;
clamp(alphaLod, 0.f, 1.f);
@ -900,7 +900,7 @@ inline sint CMeshMRMGeom::chooseLod(float alphaMRM, float &alphaLod)
void CMeshMRMGeom::render(IDriver *drv, CTransformShape *trans, float polygonCount, uint32 rdrFlags, float globalAlpha)
{
nlassert(drv);
if(_Lods.size()==0)
if(_Lods.empty())
return;
@ -922,7 +922,7 @@ void CMeshMRMGeom::render(IDriver *drv, CTransformShape *trans, float polygonCou
// Render the choosen Lod.
CLod &lod= _Lods[numLod];
if(lod.RdrPass.size()==0)
if(lod.RdrPass.empty())
return;
@ -1104,7 +1104,7 @@ void CMeshMRMGeom::renderSkin(CTransformShape *trans, float alphaMRM)
{
H_AUTO( NL3D_MeshMRMGeom_renderSkin );
if(_Lods.size()==0)
if(_Lods.empty())
return;
@ -1126,7 +1126,7 @@ void CMeshMRMGeom::renderSkin(CTransformShape *trans, float alphaMRM)
// Render the choosen Lod.
CLod &lod= _Lods[numLod];
if(lod.RdrPass.size()==0)
if(lod.RdrPass.empty())
return;
@ -1295,7 +1295,7 @@ sint CMeshMRMGeom::renderSkinGroupGeom(CMeshMRMInstance *mi, float alphaMRM, uin
// Render the choosen Lod.
CLod &lod= _Lods[numLod];
if(lod.RdrPass.size()==0)
if(lod.RdrPass.empty())
// return no vertices added
return 0;
@ -1942,7 +1942,7 @@ void CMeshMRMGeom::loadFirstLod(NLMISC::IStream &f)
// If empty MRM, quit.
if(_LodInfos.size()==0)
if(_LodInfos.empty())
return;
/* If the version is <4, then SkinWeights are serialised per Lod.
@ -2431,7 +2431,7 @@ void CMeshMRMGeom::compileRunTime()
_PreciseClipping= _BBox.getRadius() >= NL3D_MESH_PRECISE_CLIP_THRESHOLD;
// Compute if can support SkinGrouping rendering
if(_Lods.size()==0 || !_Skinned)
if(_Lods.empty() || !_Skinned)
{
_SupportSkinGrouping= false;
_SupportShadowSkinGrouping= false;
@ -2451,7 +2451,7 @@ void CMeshMRMGeom::compileRunTime()
}
// Support MeshBlockRendering only if not skinned/meshMorphed.
_SupportMeshBlockRendering= !_Skinned && _MeshMorpher.BlendShapes.size()==0;
_SupportMeshBlockRendering= !_Skinned && _MeshMorpher.BlendShapes.empty();
// \todo yoyo: support later MeshVertexProgram
_SupportMeshBlockRendering= _SupportMeshBlockRendering && _MeshVertexProgram==NULL;
@ -3367,7 +3367,7 @@ void CMeshMRMGeom::updateRawSkinNormal(bool enabled, CMeshMRMInstance *mi, sint
// Case of MeshMorpher
//========
if(_MeshMorpher.BlendShapes.size()>0)
if(!_MeshMorpher.BlendShapes.empty())
{
skinLod.VertexRemap.resize((uint32)vertexFinalRemap.size());

View file

@ -55,7 +55,7 @@ namespace NL3D
void CMeshMRMGeom::applySkin(CLod &lod, const CSkeletonModel *skeleton)
{
nlassert(_Skinned);
if(_SkinWeights.size()==0)
if(_SkinWeights.empty())
return;
// get vertexPtr.

View file

@ -380,7 +380,7 @@ static void applyArraySkinTangentSpaceT(uint numMatrixes, uint32 *infPtr, CMesh:
void CMeshMRMGeom::applySkinWithNormal(CLod &lod, const CSkeletonModel *skeleton)
{
nlassert(_Skinned);
if(_SkinWeights.size()==0)
if(_SkinWeights.empty())
return;
// get vertexPtr / normalOff.
@ -446,7 +446,7 @@ void CMeshMRMGeom::applySkinWithTangentSpace(CLod &lod, const CSkeletonModel *sk
uint tangentSpaceTexCoord)
{
nlassert(_Skinned);
if(_SkinWeights.size()==0)
if(_SkinWeights.empty())
return;
// get vertexPtr / normalOff / tangent space offset.
@ -1468,7 +1468,7 @@ void CMeshMRMGeom::applyArrayRawSkinNormal4(CRawVertexNormalSkin4 *src, uint8 *
void CMeshMRMGeom::applyRawSkinWithNormal(CLod &lod, CRawSkinNormalCache &rawSkinLod, const CSkeletonModel *skeleton, uint8 *vbHard, float alphaLod)
{
nlassert(_Skinned);
if(_SkinWeights.size()==0)
if(_SkinWeights.empty())
return;
// Some assert

View file

@ -160,7 +160,7 @@ void CMeshMRMSkinnedGeom::CLod::buildPrimitiveBlock(uint renderPass, const CInde
static NLMISC::CAABBoxExt makeBBox(const std::vector<CVector> &Vertices)
{
NLMISC::CAABBox ret;
nlassert(Vertices.size());
nlassert(!Vertices.empty());
ret.setCenter(Vertices[0]);
for(sint i=0;i<(sint)Vertices.size();i++)
{
@ -211,7 +211,7 @@ void CMeshMRMSkinnedGeom::build(CMesh::CMeshBuild &m,
uint numMaxMaterial, const CMRMParameters &params)
{
// Empty geometry?
if(m.Vertices.size()==0 || m.Faces.size()==0)
if(m.Vertices.empty() || m.Faces.empty())
{
_VBufferFinal.clear();
_Lods.clear();
@ -261,7 +261,7 @@ void CMeshMRMSkinnedGeom::build(CMesh::CMeshBuild &m,
_LevelDetail.MaxFaceUsed= 0;
_LevelDetail.MinFaceUsed= 0;
// Count of primitive block
if(_Lods.size()>0)
if(!_Lods.empty())
{
uint pb;
// Compute MinFaces.
@ -421,7 +421,7 @@ void CMeshMRMSkinnedGeom::applyGeomorph(std::vector<CMRMWedgeGeom> &geoms, floa
void CMeshMRMSkinnedGeom::applyGeomorphWithVBHardPtr(std::vector<CMRMWedgeGeom> &geoms, float alphaLod)
{
// no geomorphs? quit.
if(geoms.size()==0)
if(geoms.empty())
return;
clamp(alphaLod, 0.f, 1.f);
@ -579,7 +579,7 @@ inline sint CMeshMRMSkinnedGeom::chooseLod(float alphaMRM, float &alphaLod)
void CMeshMRMSkinnedGeom::render(IDriver *drv, CTransformShape *trans, float polygonCount, uint32 rdrFlags, float globalAlpha)
{
nlassert(drv);
if(_Lods.size()==0)
if(_Lods.empty())
return;
@ -597,7 +597,7 @@ void CMeshMRMSkinnedGeom::render(IDriver *drv, CTransformShape *trans, float pol
// Render the choosen Lod.
CLod &lod= _Lods[numLod];
if(lod.RdrPass.size()==0)
if(lod.RdrPass.empty())
return;
@ -757,7 +757,7 @@ sint CMeshMRMSkinnedGeom::renderSkinGroupGeom(CMeshMRMSkinnedInstance *mi, float
// Render the choosen Lod.
CLod &lod= _Lods[numLod];
if(lod.RdrPass.size()==0)
if(lod.RdrPass.empty())
// return no vertices added
return 0;

View file

@ -3119,7 +3119,7 @@ bool CMRMBuilder::buildMRMSewingMeshes(const CMesh::CMeshBuild &mbuild, uint nWa
{
nlassert(nWantedLods>=1);
nlassert(divisor>=1);
if(mbuild.Interfaces.size()==0)
if(mbuild.Interfaces.empty())
return false;
// must have same size
if(mbuild.InterfaceLinks.size()!=mbuild.Vertices.size())

View file

@ -604,7 +604,8 @@ void CPatch::addRefTessBlocks()
uint i;
TessBlockRefCount++;
if(TessBlocks.size()==0)
if (TessBlocks.empty())
{
// Allocate the tessblocks.
//==========
@ -1629,7 +1630,7 @@ void CPatch::serial(NLMISC::IStream &f)
// then just copy to TileColors.
TileColors.resize(tmpArray.size());
if(TileColors.size()>0)
if(!TileColors.empty())
{
memcpy(&TileColors[0], &tmpArray[0], TileColors.size()*sizeof(CTileColor));
}

View file

@ -1452,7 +1452,7 @@ void CPatch::computeSoftwareGeomorphAndAlpha()
// Need only to fill CTessVertex, so do it only for FarVertices
// Hence Geomorph is done twice on edges of patches!!.
// If not too near for precise, fast compute of geomorph.
if( TessBlocks.size()==0 )
if( TessBlocks.empty() )
{
// Just update all vertices of master block.
computeGeomorphVertexList(MasterBlock.FarVertexList);

View file

@ -540,7 +540,7 @@ bool CPatchDLMContext::generate(CPatch *patch, CTextureDLM *textureDLM, CPatch
#ifndef NL_DLM_TILE_RES
// retrieve patch tileColor pointer.
nlassert(_Patch->TileColors.size()>0);
nlassert(!_Patch->TileColors.empty());
CTileColor *tileColor= &_Patch->TileColors[0];
// skip 1 tiles colors per column and per row
@ -898,7 +898,7 @@ void CPatchDLMContext::compileLighting(TCompileType compType, CRGBA modulateCt
if(! (_IsSrcTextureFullBlack && _IsDstTextureFullBlack) )
{
// if lightMap allocated
if(_LightMap.size()>0 && _DLMTexture)
if(!_LightMap.empty() && _DLMTexture)
{
// If the srcTexture is full black (ie no pointLight influence touch it),
if(_IsSrcTextureFullBlack)

View file

@ -226,7 +226,7 @@ void CPSFace::step(TPSProcessPass pass)
else if (pass == PSMotion)
{
if (_PrecompBasis.size()) // do we use precomputed basis ?
if (!_PrecompBasis.empty()) // do we use precomputed basis ?
{
// rotate all precomputed basis
for (CPSVector< CPlaneBasisPair >::V::iterator it = _PrecompBasis.begin(); it != _PrecompBasis.end(); ++it)
@ -394,7 +394,7 @@ void CPSFace::deleteElement(uint32 index)
NL_PS_FUNC(CPSFace_deleteElement)
CPSQuad::deleteElement(index);
deletePlaneBasisElement(index);
if (_PrecompBasis.size()) // do we use precomputed basis ?
if (!_PrecompBasis.empty()) // do we use precomputed basis ?
{
// replace ourself by the last element...
_IndexInPrecompBasis[index] = _IndexInPrecompBasis[_Owner->getSize() - 1];
@ -407,7 +407,7 @@ void CPSFace::resize(uint32 size)
NL_PS_FUNC(CPSFace_resize)
nlassert(size < (1 << 16));
resizePlaneBasis(size);
if (_PrecompBasis.size()) // do we use precomputed basis ?
if (!_PrecompBasis.empty()) // do we use precomputed basis ?
{
_IndexInPrecompBasis.resize(size);
}

View file

@ -1994,7 +1994,7 @@ void CPSConstraintMesh::deleteElement(uint32 index)
deleteSizeElement(index);
deletePlaneBasisElement(index);
// TODO : avoid code cuplication with CPSFace ...
if (_PrecompBasis.size()) // do we use precomputed basis ?
if (!_PrecompBasis.empty()) // do we use precomputed basis ?
{
// replace ourself by the last element...
_IndexInPrecompBasis[index] = _IndexInPrecompBasis[_Owner->getSize() - 1];
@ -2011,7 +2011,7 @@ void CPSConstraintMesh::resize(uint32 size)
resizeSize(size);
resizePlaneBasis(size);
// TODO : avoid code cuplication with CPSFace ...
if (_PrecompBasis.size()) // do we use precomputed basis ?
if (!_PrecompBasis.empty()) // do we use precomputed basis ?
{
_IndexInPrecompBasis.resize(size);
}

View file

@ -229,7 +229,7 @@ void CQuadEffect::processPoly(const TPoint2DVect &poly
static TRasters rDest;
float currY;
makeRasters(poly, quadWidth, quadHeight, rDest, currY);
if (dest.size())
if (!dest.empty())
{
TRasters::const_iterator it, endIt = rDest.end();
for (it = rDest.begin(); it != endIt; ++it)

View file

@ -705,7 +705,7 @@ void CShadowMapManager::renderProject(CScene *scene)
}
driver->activeVertexBuffer (CopyQuads);
if (_ShadowCasters.size()>0)
if (!_ShadowCasters.empty())
{
// get the transform to compute shadow map.
CTransform *sc= _ShadowCasters[0];

View file

@ -119,7 +119,7 @@ bool CTextureDLM::canCreateLightMap(uint w, uint h)
return true;
// If empty, test if there is an empty block.
return _EmptyBlocks.size()>0;
return !_EmptyBlocks.empty();
}
@ -166,7 +166,7 @@ bool CTextureDLM::createLightMap(uint w, uint h, uint &x, uint &y)
if(_FreeBlocks[lMapType]==NULL)
{
// list is empty => allocate a block from _EmptyBlocks.
nlassert(_EmptyBlocks.size()>0);
nlassert(!_EmptyBlocks.empty());
// pop a block from empty list
CBlock *block= &_Blocks[_EmptyBlocks.back()];

View file

@ -108,7 +108,7 @@ void CTileBank::serial(NLMISC::IStream &f) throw(NLMISC::EStream)
if (f.isReading())
{
// Checks
nlassert (_DisplacementMap.size()>0);
nlassert (!_DisplacementMap.empty());
// Set first empty
_DisplacementMap[0].setEmpty ();
@ -543,7 +543,7 @@ CTileNoiseMap *CTileBank::getTileNoiseMap (uint tileNumber, uint tileSubNoise)
}
}
if (_DisplacementMap.size()==0 || _DisplacementMap[0]._TileNoiseMap)
if (_DisplacementMap.empty() || _DisplacementMap[0]._TileNoiseMap)
return NULL;
// Checks

View file

@ -71,7 +71,7 @@ void CVegetableBlendLayerModel::render(IDriver *driver)
nlassert(VegetableManager);
if(SortBlocks.size()==0)
if(SortBlocks.empty())
return;
// Setup VegetableManager renderState (like pre-setuped material)

View file

@ -1019,12 +1019,12 @@ void CVegetableManager::reserveIgCompile(CVegetableInstanceGroup *ig, const CV
{
CVegetableInstanceGroup::CVegetableRdrPass &vegetRdrPass= ig->_RdrPass[rdrPass];
nlassert(vegetRdrPass.TriangleIndices.getNumIndexes()==0);
nlassert(vegetRdrPass.TriangleLocalIndices.size()==0);
nlassert(vegetRdrPass.Vertices.size()==0);
nlassert(vegetRdrPass.LightedInstances.size()==0);
nlassert(vegetRdrPass.TriangleLocalIndices.empty());
nlassert(vegetRdrPass.Vertices.empty());
nlassert(vegetRdrPass.LightedInstances.empty());
}
// Do the same for all quadrants of the zsort rdrPass.
nlassert(ig->_TriangleQuadrantOrderArray.size()==0);
nlassert(ig->_TriangleQuadrantOrderArray.empty());
nlassert(ig->_TriangleQuadrantOrderNumTriangles==0);
@ -2553,7 +2553,7 @@ bool CVegetableManager::updateLightingIGPart()
}
CVegetableInstanceGroup::CVegetableRdrPass &vegetRdrPass= _ULRootIg->_RdrPass[_ULCurrentIgRdrPass];
// if all instances are processed for this pass (especially if size()==0 !!)
// if all instances are processed for this pass (especially if empty() !!)
if(_ULCurrentIgInstance>= vegetRdrPass.LightedInstances.size())
{
// skip to the next rdrPass.

View file

@ -186,7 +186,7 @@ bool CVegetableVBAllocator::exceedMaxVertexInBufferHard(uint numAddVerts) cons
uint CVegetableVBAllocator::allocateVertex()
{
// if no more free, allocate.
if( _VertexFreeMemory.size()==0 )
if( _VertexFreeMemory.empty() )
{
// enlarge capacity.
uint newResize;

View file

@ -500,7 +500,7 @@ void CWaterModel::traverseRender()
sint startY;
projPoly.computeBorders(rasters, startY);
if (rasters.size())
if (!rasters.empty())
{
//===========================//
// perform Water animation //

View file

@ -1126,7 +1126,7 @@ void CZone::refineAll()
{
nlassert(Compiled);
if(Patchs.size()==0)
if(Patchs.empty())
return;
// DO NOT do a forceNoRenderClip(), to avoid big allocation of Near/Far VB vertices in driver.
@ -1150,7 +1150,7 @@ void CZone::averageTesselationVertices()
{
nlassert(Compiled);
if(Patchs.size()==0)
if(Patchs.empty())
return;
// averageTesselationVertices of ALL patchs.
@ -1250,8 +1250,10 @@ void CZone::resetRenderFarAndDeleteVBFV()
void CZone::forceMergeAtTileLevel()
{
CPatch *pPatch=0;
if(Patchs.size()>0)
if (!Patchs.empty())
pPatch= &(*Patchs.begin());
for(sint n=(sint)Patchs.size();n>0;n--, pPatch++)
{
pPatch->forceMergeAtTileLevel();
@ -1446,7 +1448,7 @@ void CZone::applyHeightField(const CLandscape &landScape)
vector<CBezierPatch> patchs;
// no patch, do nothing.
if(Patchs.size()==0)
if(Patchs.empty())
return;
// 0. Unpack patchs to Bezier Patchs.

View file

@ -3113,7 +3113,7 @@ void CZoneLighter::addWaterShape(CWaterShape *shape, const NLMISC::CMatrix &MT)
// ***********************************************************
void CZoneLighter::makeQuadGridFromWaterShapes(NLMISC::CAABBox zoneBBox)
{
if (!_WaterShapes.size()) return;
if (_WaterShapes.empty()) return;
NLMISC::CAABBox tmpBox;

View file

@ -43,8 +43,8 @@ namespace NLGUI
_BmpLeftW= _BmpMiddleW= _BmpRightW= _BmpH= 0;
_WMargin= 0;
_WMin= 0;
_TextX= -2;
_TextY= -2;
_TextX= 0;
_TextY= 0;
_Setuped= false;
_ViewText= NULL;
_IsViewTextId= false;
@ -602,7 +602,7 @@ namespace NLGUI
_WMin= max(_WMin, _BmpLeftW + _BmpMiddleW + _BmpRightW);
// TextY
_TextY= -2;
_TextY= 0;
prop = (char*) xmlGetProp( cur, (xmlChar*)"text_y" );
if (prop)
{

View file

@ -159,7 +159,7 @@ namespace NLGUI
}
// resize H
if(entries.size()>0)
if (!entries.empty())
{
CInterfaceGroup *colEnclosing = entries[0]->getTargetColumn();
if (colEnclosing && !colEnclosing->getGroups().empty())

View file

@ -50,11 +50,12 @@ using namespace std;
using namespace NLMISC;
// Default timeout to connect a server
#define DEFAULT_RYZOM_CONNECTION_TIMEOUT (30.0)
// Default maximum time the request is allowed to take
#define DEFAULT_RYZOM_CONNECTION_TIMEOUT (300.0)
// Allow up to 10 redirects, then give up
#define DEFAULT_RYZOM_REDIRECT_LIMIT (10)
//
#define FONT_WEIGHT_NORMAL 400
#define FONT_WEIGHT_BOLD 700
namespace NLGUI
@ -316,6 +317,11 @@ namespace NLGUI
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, true);
curl_easy_setopt(curl, CURLOPT_URL, finalUrl.c_str());
std::string userAgent = options.appName + "/" + options.appVersion;
curl_easy_setopt(curl, CURLOPT_USERAGENT, userAgent.c_str());
sendCookies(curl, _DocumentDomain, _TrustedDomain);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite);
@ -338,14 +344,7 @@ namespace NLGUI
#ifdef LOG_DL
nlwarning("Init Image Download");
#endif
/*
// Get current flag
int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
// Turn on leak-checking bit
tmpFlag |= _CRTDBG_CHECK_ALWAYS_DF;
// Set flag to the new value
_CrtSetDbgFlag( tmpFlag );
*/
string pathName = "cache";
if ( ! CFile::isExists( pathName ) )
CFile::createDirectory( pathName );
@ -506,7 +505,7 @@ namespace NLGUI
}
else
{
receiveCookies(_CurlWWW->Request, HTTPCurrentDomain, _TrustedDomain);
receiveCookies(_CurlWWW->Request, _DocumentDomain, _TrustedDomain);
// redirect, get the location and try browse again
// we cant use curl redirection because 'addHTTPGetParams()' must be called on new destination
@ -533,7 +532,7 @@ namespace NLGUI
}
else
{
receiveCookies(_CurlWWW->Request, HTTPCurrentDomain, _TrustedDomain);
receiveCookies(_CurlWWW->Request, _DocumentDomain, _TrustedDomain);
_RedirectsRemaining = DEFAULT_RYZOM_REDIRECT_LIMIT;
@ -628,32 +627,6 @@ namespace NLGUI
curl_multi_cleanup(MultiCurl);
}
/*
void dolibcurltest()
{
nlwarning("start libcurl test");
initImageDownload();
addImageDownload("http://www.ryzom.com/en/");
addImageDownload("http://www.ryzom.com/fr/");
addImageDownload("http://www.ryzom.com/de/");
do
{
checkImageDownload();
nlwarning("continue to sleep");
nlSleep(300);
}
while(RunningCurls);
releaseImageDownload();
nlwarning("end libcurl test");
}
*/
class CGroupListAdaptor : public CInterfaceGroup
{
public:
@ -726,10 +699,6 @@ namespace NLGUI
// Build a UTF8 string
string inputString(buf, buf+len);
// inputString.resize (len);
// uint i;
// for (i=0; i<(uint)len; i++)
// inputString[i] = buf[i];
if (_ParsingLua && _TrustedDomain)
{
@ -747,7 +716,6 @@ namespace NLGUI
ucstring tmp;
tmp.reserve(len);
uint ucLen = (uint)inputUCString.size();
//uint ucLenWithoutSpace = 0;
for (uint i=0; i<ucLen; i++)
{
ucchar output;
@ -768,22 +736,7 @@ namespace NLGUI
if (keep)
{
tmp.push_back(output);
/*
// Break if the string is more than 50 chars long without space
if (output != ucchar(' '))
{
ucLenWithoutSpace++;
if (ucLenWithoutSpace == 50)
{
tmp.push_back(ucchar(' '));
ucLenWithoutSpace = 0;
}
}
else
{
ucLenWithoutSpace = 0;
}
*/ }
}
}
if (!tmp.empty())
@ -801,69 +754,6 @@ namespace NLGUI
// ***************************************************************************
void CGroupHTML::addLink (uint element_number, const std::vector<bool> &present, const std::vector<const char *> &value)
{
if (_Browsing)
{
if (element_number == HTML_A)
{
registerAnchorName(MY_HTML_A);
// #fragment works with both ID and NAME so register both
if (present[MY_HTML_A_NAME] && value[MY_HTML_A_NAME])
_AnchorName.push_back(value[MY_HTML_A_NAME]);
if (present[MY_HTML_A_HREF] && value[MY_HTML_A_HREF])
{
string suri = value[MY_HTML_A_HREF];
if(suri.find("ah:") == 0)
{
if (_TrustedDomain)
_Link.push_back (suri);
else
_Link.push_back ("");
}
else if (_TrustedDomain && suri[0] == '#' && _LuaHrefHack)
{
// Direct url (hack for lua beginElement)
_Link.push_back (suri.substr(1));
}
else
{
// convert href from "?key=val" into "http://domain.com/?key=val"
_Link.push_back(getAbsoluteUrl(suri));
}
for(uint8 i = MY_HTML_A_ACCESSKEY; i < MY_HTML_A_Z_ACTION_SHORTCUT; i++)
{
if (present[i] && value[i])
{
string title = value[i];
// nlinfo("key %d = %s", i, title.c_str());
}
}
//nlinfo("key of TITLE is : %d", MY_HTML_A_Z_ACTION_PARAMS);
if (present[MY_HTML_A_Z_ACTION_PARAMS] && value[MY_HTML_A_Z_ACTION_PARAMS])
{
string title = value[MY_HTML_A_Z_ACTION_PARAMS];
_LinkTitle.push_back(title);
}
else
_LinkTitle.push_back("");
}
else
{
_Link.push_back("");
_LinkTitle.push_back("");
}
}
}
}
// ***************************************************************************
#define getCellsParameters(prefix,inherit) \
{\
CGroupHTML::CCellParams cellParams; \
@ -872,7 +762,7 @@ namespace NLGUI
cellParams = _CellParams.back(); \
} \
if (present[prefix##_BGCOLOR] && value[prefix##_BGCOLOR]) \
cellParams.BgColor = getColor (value[prefix##_BGCOLOR]); \
scanHTMLColor(value[prefix##_BGCOLOR], cellParams.BgColor); \
if (present[prefix##_L_MARGIN] && value[prefix##_L_MARGIN]) \
fromString(value[prefix##_L_MARGIN], cellParams.LeftMargin); \
if (present[prefix##_NOWRAP]) \
@ -923,6 +813,30 @@ namespace NLGUI
return src;
}
static float hueToRgb(float m1, float m2, float h)
{
if (h < 0) h += 1.0f;
if (h > 1) h -= 1.0f;
if (h*6 < 1.0f) return m1 + (m2 - m1)*h*6;
if (h*2 < 1.0f) return m2;
if (h*3 < 2.0f) return m1 + (m2 - m1) * (2.0f/3.0f - h)*6;
return m1;
}
static void hslToRgb(float h, float s, float l, CRGBA &result)
{
float m1, m2;
if (l <= 0.5f)
m2 = l * (s + 1.0f);
else
m2 = l + s - l * s;
m1 = l*2 - m2;
result.R = 255 * hueToRgb(m1, m2, h + 1.0f/3.0f);
result.G = 255 * hueToRgb(m1, m2, h);
result.B = 255 * hueToRgb(m1, m2, h - 1.0f/3.0f);
}
class CNameToCol
{
public:
@ -1085,6 +999,37 @@ namespace NLGUI
if (*src == '#')
{
++src;
if (strlen(src) == 3 || strlen(src) == 4)
{
bool hasAlpha = (strlen(src) == 4);
// check RGB for valid hex
if (isHexa(src[0]) && isHexa(src[1]) && isHexa(src[2]))
{
// check optional A for valid hex
if (hasAlpha && !isHexa(src[3])) return false;
dest.R = convertHexa(src[0]);
dest.G = convertHexa(src[1]);
dest.B = convertHexa(src[2]);
dest.R = dest.R << 4 | dest.R;
dest.G = dest.G << 4 | dest.G;
dest.B = dest.B << 4 | dest.B;
if (hasAlpha)
{
dest.A = convertHexa(src[3]);
dest.A = dest.A << 4 | dest.A;
}
else
dest.A = 255;
return true;
}
return false;
}
CRGBA result;
src = scanColorComponent(src, result.R); if (!src) return false;
src = scanColorComponent(src, result.G); if (!src) return false;
@ -1098,7 +1043,101 @@ namespace NLGUI
dest = result;
return true;
}
else
if (strnicmp(src, "rgb(", 4) == 0 || strnicmp(src, "rgba(", 5) == 0)
{
src += 4;
if (*src == '(') src++;
vector<string> parts;
NLMISC::splitString(src, ",", parts);
if (parts.size() >= 3)
{
CRGBA result;
sint tmpv;
float tmpf;
// R
if (getPercentage(tmpv, tmpf, parts[0].c_str())) tmpv = 255 * tmpf;
clamp(tmpv, 0, 255);
result.R = tmpv;
// G
if (getPercentage(tmpv, tmpf, parts[1].c_str())) tmpv = 255 * tmpf;
clamp(tmpv, 0, 255);
result.G = tmpv;
// B
if (getPercentage(tmpv, tmpf, parts[2].c_str())) tmpv = 255 * tmpf;
clamp(tmpv, 0, 255);
result.B = tmpv;
// A
if (parts.size() == 4)
{
if (!fromString(parts[3], tmpf)) return false;
if (parts[3].find_first_of("%") != std::string::npos)
tmpf /= 100;
tmpv = 255 * tmpf;
clamp(tmpv, 0, 255);
result.A = tmpv;
}
else
result.A = 255;
dest = result;
return true;
}
return false;
}
if (strnicmp(src, "hsl(", 4) == 0 || strnicmp(src, "hsla(", 5) == 0)
{
src += 4;
if (*src == '(') src++;
vector<string> parts;
NLMISC::splitString(src, ",", parts);
if (parts.size() >= 3)
{
sint tmpv;
float h, s, l;
// hue
if (!fromString(parts[0], tmpv)) return false;
tmpv = ((tmpv % 360) + 360) % 360;
h = (float) tmpv / 360.0f;
// saturation
if (!getPercentage(tmpv, s, parts[1].c_str())) return false;
clamp(s, 0.0f, 1.0f);
// lightness
if (!getPercentage(tmpv, l, parts[2].c_str())) return false;
clamp(l, 0.0f, 1.0f);
CRGBA result;
hslToRgb(h, s, l, result);
// A
if (parts.size() == 4)
{
float tmpf;
if (!fromString(parts[3], tmpf)) return false;
if (parts[3].find_first_of("%") != std::string::npos)
tmpf /= 100;
clamp(tmpf, 0.0f, 1.0f);
result.A = 255 * tmpf;
}
dest = result;
return true;
}
return false;
}
{
// slow but should suffice for now
for(uint k = 0; k < sizeofarray(htmlColorNameToRGBA); ++k)
@ -1166,7 +1205,7 @@ namespace NLGUI
pos = toLower(content).find("url=");
if (pos != string::npos)
_RefreshUrl = content.substr(pos + 4);
_RefreshUrl = getAbsoluteUrl(content.substr(pos + 4));
}
_NextRefreshTime += timeSec;
@ -1176,7 +1215,10 @@ namespace NLGUI
break;
case HTML_A:
{
registerAnchorName(MY_HTML_A);
CStyleParams style;
style.FontFamily = getFontFamily();
style.FontSize = getFontSize();
style.TextColor = LinkColor;
style.Underlined = true;
@ -1185,21 +1227,45 @@ namespace NLGUI
if (present[HTML_A_STYLE] && value[HTML_A_STYLE])
getStyleParams(value[HTML_A_STYLE], style);
_FontFamily.push_back(style.FontFamily);
_FontSize.push_back(style.FontSize);
_TextColor.push_back(style.TextColor);
_FontUnderlined.push_back(style.Underlined);
_FontStrikeThrough.push_back(style.StrikeThrough);
_GlobalColor.push_back(LinkColorGlobalColor);
_A.push_back(true);
_Link.push_back ("");
_LinkTitle.push_back("");
_LinkClass.push_back("");
// #fragment works with both ID and NAME so register both
if (present[MY_HTML_A_NAME] && value[MY_HTML_A_NAME])
_AnchorName.push_back(value[MY_HTML_A_NAME]);
if (present[MY_HTML_A_TITLE] && value[MY_HTML_A_TITLE])
_LinkTitle.push_back(value[MY_HTML_A_TITLE]);
_LinkTitle.back() = value[MY_HTML_A_TITLE];
if (present[MY_HTML_A_CLASS] && value[MY_HTML_A_CLASS])
_LinkClass.push_back(value[MY_HTML_A_CLASS]);
_LinkClass.back() = value[MY_HTML_A_CLASS];
if (present[MY_HTML_A_HREF] && value[MY_HTML_A_HREF])
{
string suri = value[MY_HTML_A_HREF];
if(suri.find("ah:") == 0)
{
if (_TrustedDomain)
_Link.back() = suri;
}
else if (_TrustedDomain && suri[0] == '#' && _LuaHrefHack)
{
// Direct url (hack for lua beginElement)
_Link.back() = suri.substr(1);
}
else
{
// convert href from "?key=val" into "http://domain.com/?key=val"
_Link.back() = getAbsoluteUrl(suri);
}
}
}
break;
case HTML_DIV:
{
_BlockLevelElement.push_back(true);
@ -1286,7 +1352,6 @@ namespace NLGUI
}
}
break;
case HTML_FONT:
{
bool found = false;
@ -1323,8 +1388,9 @@ namespace NLGUI
{
if (present[HTML_BODY_BGCOLOR] && value[HTML_BODY_BGCOLOR])
{
CRGBA bgColor = getColor (value[HTML_BODY_BGCOLOR]);
setBackgroundColor (bgColor);
CRGBA bgColor;
if (scanHTMLColor(value[HTML_BODY_BGCOLOR], bgColor))
setBackgroundColor (bgColor);
}
string style;
@ -1504,14 +1570,25 @@ namespace NLGUI
if (present[MY_HTML_INPUT_ALT] && value[MY_HTML_INPUT_ALT])
tooltip = value[MY_HTML_INPUT_ALT];
// by default not inherited, font family defaults to system font
CStyleParams style;
style.TextColor = TextColor;
style.FontSize = TextFontSize;
style.FontWeight = FONT_WEIGHT_NORMAL;
style.FontOblique = false;
if (present[MY_HTML_INPUT_STYLE] && value[MY_HTML_INPUT_STYLE])
getStyleParams(value[MY_HTML_INPUT_STYLE], style);
_TextColor.push_back(style.TextColor);
_FontFamily.push_back(style.FontFamily);
_FontSize.push_back(style.FontSize);
_FontWeight.push_back(style.FontWeight);
_FontOblique.push_back(style.FontOblique);
string type = toLower(value[MY_HTML_INPUT_TYPE]);
if (type == "image")
{
CStyleParams style;
// width, height from inline css
if (present[MY_HTML_INPUT_STYLE] && value[MY_HTML_INPUT_STYLE])
getStyleParams(value[MY_HTML_INPUT_STYLE], style);
// The submit button
string name;
string normal;
@ -1602,9 +1679,6 @@ namespace NLGUI
getParagraph()->addChild (buttonGroup);
paragraphChange ();
}
// addButton (CCtrlTextButton::PushButton, name, normal, pushed.empty()?normal:pushed, over,
// globalColor, "html_submit_form", param.c_str(), tooltip);
}
else if (type == "text")
{
@ -1722,6 +1796,12 @@ namespace NLGUI
_Forms.back().Entries.push_back (entry);
}
}
popIfNotEmpty(_FontFamily);
popIfNotEmpty(_FontSize);
popIfNotEmpty(_TextColor);
popIfNotEmpty(_FontWeight);
popIfNotEmpty(_FontOblique);
}
}
break;
@ -1834,7 +1914,29 @@ namespace NLGUI
newParagraph(PBeginSpace);
break;
case HTML_PRE:
_PRE.push_back(true);
{
CStyleParams style;
style.TextColor = getTextColor();
style.FontFamily = "monospace";
style.FontSize = getFontSize();
style.FontWeight = getFontWeight();
style.FontOblique = getFontOblique();
style.Underlined = getFontUnderlined();
style.StrikeThrough = getFontStrikeThrough();
if (present[HTML_PRE_STYLE] && value[HTML_PRE_STYLE])
getStyleParams(value[HTML_PRE_STYLE], style);
_TextColor.push_back(style.TextColor);
_FontFamily.push_back(style.FontFamily);
_FontSize.push_back(style.FontSize);
_FontWeight.push_back(style.FontWeight);
_FontOblique.push_back(style.FontOblique);
_FontUnderlined.push_back(style.Underlined);
_FontStrikeThrough.push_back(style.StrikeThrough);
_PRE.push_back(true);
}
break;
case HTML_TABLE:
{
@ -1851,7 +1953,7 @@ namespace NLGUI
if (present[MY_HTML_TABLE_BORDER] && value[MY_HTML_TABLE_BORDER])
fromString(value[MY_HTML_TABLE_BORDER], table->Border);
if (present[MY_HTML_TABLE_BORDERCOLOR] && value[MY_HTML_TABLE_BORDERCOLOR])
table->BorderColor = getColor (value[MY_HTML_TABLE_BORDERCOLOR]);
scanHTMLColor(value[MY_HTML_TABLE_BORDERCOLOR], table->BorderColor);
if (present[MY_HTML_TABLE_CELLSPACING] && value[MY_HTML_TABLE_CELLSPACING])
fromString(value[MY_HTML_TABLE_CELLSPACING], table->CellSpacing);
if (present[MY_HTML_TABLE_CELLPADDING] && value[MY_HTML_TABLE_CELLPADDING])
@ -1958,9 +2060,27 @@ namespace NLGUI
}
break;
case HTML_TEXTAREA:
_PRE.push_back(true);
// Got one form ?
if (!(_Forms.empty()))
{
// not inherited by default, font family defaults to system font
CStyleParams style;
style.TextColor = TextColor;
style.FontWeight = FONT_WEIGHT_NORMAL;
style.FontOblique = false;
style.FontSize = TextFontSize;
if (present[MY_HTML_TEXTAREA_STYLE] && value[MY_HTML_TEXTAREA_STYLE])
getStyleParams(value[MY_HTML_TEXTAREA_STYLE], style);
_TextColor.push_back(style.TextColor);
_FontFamily.push_back(style.FontFamily);
_FontSize.push_back(style.FontSize);
_FontWeight.push_back(style.FontWeight);
_FontOblique.push_back(style.FontOblique);
// read general property
string templateName;
@ -2043,6 +2163,7 @@ namespace NLGUI
{
CStyleParams style;
style.TextColor = getTextColor();
style.FontFamily = getFontFamily();
style.FontSize = getFontSize();
style.FontWeight = getFontWeight();
style.FontOblique = getFontOblique();
@ -2053,6 +2174,7 @@ namespace NLGUI
getStyleParams(value[MY_HTML_SPAN_STYLE], style);
_TextColor.push_back(style.TextColor);
_FontFamily.push_back(style.FontFamily);
_FontSize.push_back(style.FontSize);
_FontWeight.push_back(style.FontWeight);
_FontOblique.push_back(style.FontOblique);
@ -2207,6 +2329,7 @@ namespace NLGUI
popIfNotEmpty (_FontSize);
break;
case HTML_A:
popIfNotEmpty (_FontFamily);
popIfNotEmpty (_FontSize);
popIfNotEmpty (_TextColor);
popIfNotEmpty (_FontUnderlined);
@ -2232,6 +2355,13 @@ namespace NLGUI
endParagraph();
break;
case HTML_PRE:
popIfNotEmpty (_FontFamily);
popIfNotEmpty (_FontSize);
popIfNotEmpty (_FontWeight);
popIfNotEmpty (_FontOblique);
popIfNotEmpty (_TextColor);
popIfNotEmpty (_FontUnderlined);
popIfNotEmpty (_FontStrikeThrough);
popIfNotEmpty (_PRE);
break;
case HTML_DIV:
@ -2277,7 +2407,15 @@ namespace NLGUI
entry.TextArea = textArea;
_Forms.back().Entries.push_back (entry);
}
popIfNotEmpty (_FontFamily);
popIfNotEmpty (_FontSize);
popIfNotEmpty (_FontWeight);
popIfNotEmpty (_FontOblique);
popIfNotEmpty (_TextColor);
}
popIfNotEmpty (_PRE);
}
break;
case HTML_TITLE:
@ -2437,6 +2575,7 @@ namespace NLGUI
}
break;
case HTML_SPAN:
popIfNotEmpty (_FontFamily);
popIfNotEmpty (_FontSize);
popIfNotEmpty (_FontWeight);
popIfNotEmpty (_FontOblique);
@ -2548,6 +2687,7 @@ namespace NLGUI
_SelectOption = false;
_GroupListAdaptor = NULL;
_DocumentUrl = "";
_DocumentDomain = "";
_UrlFragment.clear();
_RefreshUrl.clear();
_NextRefreshTime = 0.0;
@ -3907,6 +4047,7 @@ namespace NLGUI
// Compatible with current parameters ?
if (!skipLine &&
(getTextColor() == _CurrentViewLink->getColor()) &&
(getFontFamily() == _CurrentViewLink->getFontName()) &&
(getFontSize() == (uint)_CurrentViewLink->getFontSize()) &&
(getFontUnderlined() == _CurrentViewLink->getUnderlined()) &&
(getFontStrikeThrough() == _CurrentViewLink->getStrikeThrough()) &&
@ -3971,6 +4112,7 @@ namespace NLGUI
}
newLink->setText(tmpStr);
newLink->setColor(getTextColor());
newLink->setFontName(getFontFamily());
newLink->setFontSize(getFontSize());
newLink->setEmbolden(embolden);
newLink->setOblique(getFontOblique());
@ -4062,7 +4204,7 @@ namespace NLGUI
// ***************************************************************************
CInterfaceGroup *CGroupHTML::addTextArea(const std::string &templateName, const char *name, uint /* rows */, uint cols, bool multiLine, const ucstring &content, uint maxlength)
CInterfaceGroup *CGroupHTML::addTextArea(const std::string &templateName, const char *name, uint rows, uint cols, bool multiLine, const ucstring &content, uint maxlength)
{
// In a paragraph ?
if (!_Paragraph)
@ -4077,11 +4219,18 @@ namespace NLGUI
{
// Not added ?
std::vector<std::pair<std::string,std::string> > templateParams;
templateParams.push_back (std::pair<std::string,std::string> ("w", toString (cols*12)));
//templateParams.push_back (std::pair<std::string,std::string> ("h", toString (rows*12)));
templateParams.push_back (std::pair<std::string,std::string> ("w", toString (cols*getFontSize())));
templateParams.push_back (std::pair<std::string,std::string> ("id", name));
templateParams.push_back (std::pair<std::string,std::string> ("prompt", ""));
templateParams.push_back (std::pair<std::string,std::string> ("multiline", multiLine?"true":"false"));
templateParams.push_back (std::pair<std::string,std::string> ("fontsize", toString (getFontSize())));
templateParams.push_back (std::pair<std::string,std::string> ("color", getTextColor().toString()));
if (getFontWeight() >= FONT_WEIGHT_BOLD)
templateParams.push_back (std::pair<std::string,std::string> ("fontweight", "bold"));
if (getFontOblique())
templateParams.push_back (std::pair<std::string,std::string> ("fontstyle", "oblique"));
if (multiLine)
templateParams.push_back (std::pair<std::string,std::string> ("multi_min_line", toString(rows)));
templateParams.push_back (std::pair<std::string,std::string> ("want_return", multiLine?"true":"false"));
templateParams.push_back (std::pair<std::string,std::string> ("enter_recover_focus", "false"));
if (maxlength > 0)
@ -4279,7 +4428,6 @@ namespace NLGUI
ctrlButton->setToolTipParent(TTMouse);
ctrlButton->setToolTipParentPosRef(Hotspot_TTAuto);
ctrlButton->setToolTipPosRef(Hotspot_TTAuto);
ctrlButton->setActionOnLeftClickParams(tooltip);
}
getParagraph()->addChild (ctrlButton);
@ -4657,9 +4805,12 @@ namespace NLGUI
string finalUrl;
bool isLocal = lookupLocalFile (finalUrl, _URL.c_str(), true);
// Save new url
_URL = finalUrl;
CUrlParser uri (_URL);
_TrustedDomain = isTrustedDomain(uri.host);
_DocumentDomain = uri.host;
// file is probably from bnp (ingame help)
if (isLocal)
{
@ -4667,8 +4818,6 @@ namespace NLGUI
}
else
{
_TrustedDomain = isTrustedDomain(setCurrentDomain(finalUrl));
SFormFields formfields;
if (_PostNextTime)
{
@ -4704,9 +4853,11 @@ namespace NLGUI
// Ref the form
CForm &form = _Forms[_PostFormId];
// Save new url
_URL = form.Action;
_TrustedDomain = isTrustedDomain(setCurrentDomain(_URL));
CUrlParser uri(_URL);
_TrustedDomain = isTrustedDomain(uri.host);
_DocumentDomain = uri.host;
for (i=0; i<form.Entries.size(); i++)
{
@ -4814,6 +4965,7 @@ namespace NLGUI
#endif
_TrustedDomain = true;
_DocumentDomain = "localhost";
// Stop previous browse, remove content
stopBrowse ();
@ -4899,7 +5051,7 @@ namespace NLGUI
curl_easy_setopt(curl, CURLOPT_USERAGENT, userAgent.c_str());
// Cookies
sendCookies(curl, HTTPCurrentDomain, _TrustedDomain);
sendCookies(curl, _DocumentDomain, _TrustedDomain);
// Referer
if (!referer.empty())
@ -4983,9 +5135,6 @@ namespace NLGUI
nlwarning("(%s) HTML download finished, content length %d, type '%s', code %d", _Id.c_str(), content.size(), type.c_str(), code);
#endif
// set trusted domain for parsing
_TrustedDomain = isTrustedDomain(setCurrentDomain(_URL));
// create <html> markup for image downloads
if (type.find("image/") == 0 && content.size() > 0)
{
@ -5468,15 +5617,11 @@ namespace NLGUI
value.insert(value.begin() + (uint)it.nextKey().toInteger(), buffer);
}
// ingame lua scripts from browser are using <a href="#http://..."> url scheme
// reason unknown
_LuaHrefHack = true;
beginElement(element_number, present, value);
if (element_number == HTML_A)
{
// ingame lua scripts from browser are using <a href="#http://..."> url scheme
// reason unknown
_LuaHrefHack = true;
addLink(element_number, present, value);
_LuaHrefHack = false;
}
_LuaHrefHack = false;
return 0;
}
@ -5637,23 +5782,45 @@ namespace NLGUI
{
if (it->first == "font-size")
{
float tmp;
sint size = 0;
getPercentage (size, tmp, it->second.c_str());
if (size > 0)
style.FontSize = size;
if (it->second == "inherit")
style.FontSize = getFontSize();
else
{
float tmp;
sint size = 0;
getPercentage (size, tmp, it->second.c_str());
if (size > 0)
style.FontSize = size;
}
}
else
if (it->first == "font-style")
{
if (it->second == "inherit")
style.FontOblique = getFontOblique();
else
if (it->second == "italic" || it->second == "oblique")
style.FontOblique = true;
}
else
if (it->first == "font-family")
{
if (it->second == "inherit")
style.FontFamily = getFontFamily();
else
if (it->second == "monospace")
style.FontFamily = "monospace";
else
style.FontFamily = "";
}
else
if (it->first == "font-weight")
{
// https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight
uint weight = 400;
if (it->second == "inherit")
weight = getFontWeight();
else
if (it->second == "normal")
weight = 400;
else
@ -5686,7 +5853,10 @@ namespace NLGUI
}
else
if (it->first == "color")
scanHTMLColor(it->second.c_str(), style.TextColor);
if (it->second == "inherit")
style.TextColor = getTextColor();
else
scanHTMLColor(it->second.c_str(), style.TextColor);
else
if (it->first == "text-decoration" || it->first == "text-decoration-line")
{
@ -5827,7 +5997,6 @@ namespace NLGUI
{
std::string ret;
sint32 number = Value;
bool upper = false;
if (Type == "disc")
{

View file

@ -61,11 +61,6 @@ namespace NLGUI
}
}
if (element_number == HTML_A)
{
addLink(element_number, present, value);
}
beginElement(element_number, present, value);
}
else

View file

@ -262,7 +262,7 @@ namespace NLGUI
{
tabB->setId(string("tab") + NLMISC::toString(_Buttons.size()));
if(_Buttons.size()==0)
if(_Buttons.empty())
{
tabB->setParentPos(NULL);
tabB->setParentPosRef(Hotspot_TL);
@ -453,7 +453,7 @@ namespace NLGUI
// ***************************************************************************
void CGroupTab::updateFirstTabButton()
{
if(!_HideOutTabs || (_Selection<0) || (_Buttons.size()==0) || (_Parent->getWReal()<0)
if(!_HideOutTabs || (_Selection<0) || _Buttons.empty() || (_Parent->getWReal()<0)
|| _FirstTabIndex>=(sint)_Buttons.size())
return;

View file

@ -193,7 +193,7 @@ namespace NLGUI
xmlKeepBlanksDefault(0);
//parse all interface files and build a single xml document
xmlNodePtr globalEnclosing;
nlassert (strings.size());
nlassert (!strings.empty());
CIXml read;
string nextFileName;
static const char *SCRIPT_AS_STRING = "<script as string>";

View file

@ -31,7 +31,6 @@ namespace NLGUI
/// store all cookies we receive and resent them depending of the domain
static std::map<std::string, std::map<std::string, std::string> > HTTPCookies;
std::string HTTPCurrentDomain; // The current domain that will be used to get which cookies to send
// ***************************************************************************
@ -332,24 +331,6 @@ namespace NLGUI
return dst;
}
// set current HTTPCurrentDomain for cookie selection, return new domain
const std::string &setCurrentDomain(const std::string &uri)
{
if (uri.find("http://") == 0)
HTTPCurrentDomain = uri.substr(7, uri.find("/", 7) - 7);
else
if (uri.find("https://") == 0)
HTTPCurrentDomain = uri.substr(8, uri.find("/", 8) - 8);
else
if (uri.find("//") == 0)
HTTPCurrentDomain = uri.substr(2, uri.find("/", 2) - 2);
else
if (uri.find("/") != std::string::npos)
HTTPCurrentDomain = uri.substr(0, uri.find("/") - 1);
return HTTPCurrentDomain;
}
// update HTTPCookies list
static void receiveCookie(const char *nsformat, const std::string &domain, bool trusted)
{
@ -371,6 +352,9 @@ namespace NLGUI
chunks[0] = chunks[0].substr(10);
}
// make sure domain is lowercase
chunks[0] = toLower(chunks[0]);
if (chunks[0] != domain && chunks[0] != std::string("." + domain))
{
// cookie is for different domain

View file

@ -14,8 +14,7 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <string>
#include "nel/misc/types_nl.h"
#include "nel/misc/common.h"
#include "nel/gui/url_parser.h"
using namespace std;
@ -63,22 +62,40 @@ namespace NLGUI
}
}
// scan for domain
// scan for authority
if (uri.substr(0, 2) == "//")
{
pos = uri.find("/", 3);
domain = uri.substr(0, pos);
pos = uri.find_first_of("/?", 2);
authority = uri.substr(0, pos);
if (pos != npos)
uri = uri.substr(pos);
else
uri.clear();
// strip empty port from authority
if (authority.find_last_of(":") == authority.length() - 1)
authority = authority.substr(0, authority.length() - 1);
// extract host from user:pass@host:port
pos = authority.find("@");
if (pos != npos)
host = authority.substr(pos + 1);
else
host = authority.substr(2);
// case-insensitive
host = NLMISC::toLower(host);
pos = host.find(":");
if (pos != npos)
host = host.substr(0, pos);
}
// scan for query
pos = uri.find("?");
if (pos != npos)
{
query = uri.substr(pos + 1);
query = uri.substr(pos);
uri = uri.substr(0, pos);
}
@ -99,11 +116,11 @@ namespace NLGUI
scheme = base.scheme;
// if we already have domain, then ignore base path
if (!domain.empty())
// if we already have authority, then ignore base path
if (!authority.empty())
return;
domain = base.domain;
authority = base.authority;
if (path.empty())
{
path = base.path;
@ -190,7 +207,7 @@ namespace NLGUI
bool CUrlParser::isAbsolute() const
{
return !scheme.empty() && !domain.empty();
return !scheme.empty() && !authority.empty();
}
// serialize URL back to string
@ -200,9 +217,9 @@ namespace NLGUI
if (!scheme.empty())
result += scheme + ":";
if (!domain.empty())
if (!authority.empty())
{
result += domain;
result += authority;
}
// path already has leading slash
@ -210,7 +227,9 @@ namespace NLGUI
result += path;
if (!query.empty())
result += "?" + query;
if (query.find_first_of("?") != 0)
result += "?";
result += query;
if (!hash.empty())
result += "#" + hash;

View file

@ -34,6 +34,7 @@ namespace NLGUI
NL3D::UTextContext* CViewRenderer::textcontext = NULL;
std::set< std::string >* CViewRenderer::hwCursors = NULL;
float CViewRenderer::hwCursorScale = 1.0f;
CViewRenderer::TFontsList CViewRenderer::fonts;
CViewRenderer::CViewRenderer()
{
@ -214,17 +215,65 @@ namespace NLGUI
ite++;
}
TFontsList::iterator iteFonts = fonts.begin();
while (iteFonts != fonts.end())
{
driver->deleteTextContext(iteFonts->second);
++iteFonts;
}
_GlobalTextures.clear();
_SImages.clear();
_SImageIterators.clear();
_TextureMap.clear();
_IndexesToTextureIds.clear();
fonts.clear();
}
NL3D::UDriver* CViewRenderer::getDriver(){
return driver;
}
// ***************************************************************************
NL3D::UTextContext* CViewRenderer::getTextContext(const std::string &name)
{
if (name.size() > 0 && fonts.count(name) > 0)
return fonts[name];
return textcontext;
}
// ***************************************************************************
bool CViewRenderer::registerFont(const std::string &name, const std::string &font)
{
nlassert(driver != NULL);
// free existing font
if (fonts.count(name) > 0)
driver->deleteTextContext(fonts[name]);
std::string fontFile = CPath::lookup(font, false);
if (fontFile.size() == 0)
{
nlwarning("Font file '%s' not found", font.c_str());
return false;
}
NL3D::UTextContext *context;
context = driver->createTextContext(fontFile);
if (context == NULL)
{
nlwarning("Cannot create a TextContext with font '%s'.", font.c_str());
return false;
}
context->setKeep800x600Ratio(false);
fonts[name] = context;
return true;
}
void CViewRenderer::setTextContext(NL3D::UTextContext *textcontext)
{
CViewRenderer::textcontext = textcontext;

View file

@ -61,6 +61,7 @@ namespace NLGUI
_FontSize = 12 +
CWidgetManager::getInstance()->getSystemOption( CWidgetManager::OptionAddCoefFont ).getValSInt32();
_FontName.clear();
_Embolden = false;
_Oblique = false;
_Color = CRGBA(255,255,255,255);
@ -75,6 +76,7 @@ namespace NLGUI
_MultiLineMaxWOnly = false;
_MultiLineClipEndSpace = false;
_LastMultiLineMaxW = 0;
_MultiMinLine = 0;
_MultiMaxLine = 0;
_Index = 0xFFFFFFFF;
@ -133,7 +135,7 @@ namespace NLGUI
CViewText::~CViewText()
{
if (_Index != 0xFFFFFFFF)
CViewRenderer::getTextContext()->erase (_Index);
CViewRenderer::getTextContext(_FontName)->erase (_Index);
clearLines();
if (!_Setuped)
@ -147,7 +149,7 @@ namespace NLGUI
CViewText &CViewText::operator=(const CViewText &vt)
{
if (_Index != 0xFFFFFFFF)
CViewRenderer::getTextContext()->erase (_Index);
CViewRenderer::getTextContext(_FontName)->erase (_Index);
// Create database entries
_Active = vt._Active;
@ -305,6 +307,11 @@ namespace NLGUI
return toString( _MultiMaxLine );
}
else
if( name == "multi_min_line" )
{
return toString( _MultiMinLine );
}
else
if( name == "underlined" )
{
return toString( _Underlined );
@ -479,6 +486,14 @@ namespace NLGUI
return true;
}
else
if( name == "multi_min_line" )
{
uint32 i;
if( fromString( value, i ) )
_MultiMinLine = i;
return true;
}
else
if( name == "underlined" )
{
bool b;
@ -621,6 +636,7 @@ namespace NLGUI
xmlSetProp( node, BAD_CAST "multi_line_space", BAD_CAST toString( _MultiLineSpace ).c_str() );
xmlSetProp( node, BAD_CAST "multi_line_maxw_only", BAD_CAST toString( _MultiLineMaxWOnly ).c_str() );
xmlSetProp( node, BAD_CAST "multi_max_line", BAD_CAST toString( _MultiMaxLine ).c_str() );
xmlSetProp( node, BAD_CAST "multi_min_line", BAD_CAST toString( _MultiMinLine ).c_str() );
xmlSetProp( node, BAD_CAST "underlined", BAD_CAST toString( _Underlined ).c_str() );
xmlSetProp( node, BAD_CAST "strikethrough", BAD_CAST toString( _StrikeThrough ).c_str() );
xmlSetProp( node, BAD_CAST "case_mode", BAD_CAST toString( uint32( _CaseMode ) ).c_str() );
@ -741,6 +757,11 @@ namespace NLGUI
if (prop)
fromString((const char*)prop, _MultiMaxLine);
prop = (char*) xmlGetProp( cur, (xmlChar*)"multi_min_line" );
_MultiMinLine = 0;
if (prop)
fromString((const char*)prop, _MultiMinLine);
prop = (char*) xmlGetProp( cur, (xmlChar*)"underlined" );
_Underlined = false;
if (prop)
@ -938,7 +959,7 @@ namespace NLGUI
return;
rVR.getScreenOOSize (oow, ooh);
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
// *** get current color
@ -963,8 +984,6 @@ namespace NLGUI
{
if (_Lines.size() == 0) return;
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
TextContext->setShadeOutline (_ShadowOutline);
@ -981,6 +1000,13 @@ namespace NLGUI
sint y_line = _YReal+_FontLegHeight-2;
if (_MultiMinLine > _Lines.size())
{
uint dy = getMultiMinOffsetY();
y += dy * ooh;
y_line += dy;
}
// special selection code
if(_TextSelection)
{
@ -1233,6 +1259,24 @@ namespace NLGUI
_FormatTags.clear();
}
// ***************************************************************************
void CViewText::setFontName(const std::string &name)
{
if (_FontName == name)
return;
if (_FontName.length() > 0)
{
if (_Index != 0xFFFFFFFF)
CViewRenderer::getTextContext(_FontName)->erase (_Index);
clearLines();
}
_FontName = name;
computeFontSize ();
invalidateContent();
}
// ***************************************************************************
void CViewText::setFontSize (sint nFontSize)
{
@ -1360,9 +1404,23 @@ namespace NLGUI
return _FontLegHeight;
}
// ***************************************************************************
uint CViewText::getMultiMinOffsetY() const
{
uint dy = 0;
if (_MultiMinLine > _Lines.size())
{
// first line is always present even if _Lines is empty
uint nbLines = _MultiMinLine - std::max((sint)1, (sint)_Lines.size());
dy = nbLines * _FontHeight + (nbLines - 1) * _MultiLineSpace;
}
return dy;
}
// ***************************************************************************
void CViewText::flushWordInLine(ucstring &ucCurrentWord, bool &linePushed, const CFormatInfo &wordFormat)
{
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
// create a new line?
if(!linePushed)
{
@ -1370,7 +1428,7 @@ namespace NLGUI
linePushed= true;
}
// Append to the last line
_Lines.back()->addWord(ucCurrentWord, 0, wordFormat, _FontWidth);
_Lines.back()->addWord(ucCurrentWord, 0, wordFormat, _FontWidth, *TextContext);
// reset the word
ucCurrentWord = ucstring("");
}
@ -1406,7 +1464,7 @@ namespace NLGUI
rWidthCurrentLine= max(rWidthCurrentLine, (float)wordFormat.TabX*_FontWidth);
}
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
// Parse the letter
{
@ -1452,6 +1510,7 @@ namespace NLGUI
// ***************************************************************************
void CViewText::addDontClipWordLine(std::vector<CWord> &currLine)
{
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
// create a new line
_Lines.push_back(TLineSPtr(new CLine));
@ -1466,7 +1525,7 @@ namespace NLGUI
if(currLine[i].Format!=lineWordFormat)
{
// add the current lineWord to the line.
_Lines.back()->addWord(lineWord, 0, lineWordFormat, _FontWidth);
_Lines.back()->addWord(lineWord, 0, lineWordFormat, _FontWidth, *TextContext);
// get new lineWordFormat
lineWordFormat= currLine[i].Format;
// and clear
@ -1481,7 +1540,7 @@ namespace NLGUI
}
if(!lineWord.empty())
_Lines.back()->addWord(lineWord, 0, lineWordFormat, _FontWidth);
_Lines.back()->addWord(lineWord, 0, lineWordFormat, _FontWidth, *TextContext);
// clear
currLine.clear();
@ -1491,6 +1550,7 @@ namespace NLGUI
// ***************************************************************************
void CViewText::updateTextContextMultiLineJustified(uint nMaxWidth, bool expandSpaces)
{
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
UTextContext::CStringInfo si;
//
TCharPos currPos = 0;
@ -1584,7 +1644,7 @@ namespace NLGUI
// Get the word value.
wordValue = _Text.substr(spaceEnd, wordEnd - spaceEnd);
// compute width of word
si = CViewRenderer::getTextContext()->getStringInfo(wordValue);
si = TextContext->getStringInfo(wordValue);
// compute size of spaces/Tab + word
newLineWidth = lineWidth + numSpaces * _SpaceWidth;
@ -1641,7 +1701,7 @@ namespace NLGUI
{
uint maxNumSpaces = std::max(1U, (uint) (nMaxWidth / _SpaceWidth));
CWord spaceWord; // a word with only spaces in it
spaceWord.build (ucstring (""), maxNumSpaces);
spaceWord.build (ucstring (""), *TextContext, maxNumSpaces);
spaceWord.Format= wordFormat;
_Lines.push_back(TLineSPtr(new CLine));
_Lines.back()->addWord(spaceWord, _FontWidth);
@ -1663,14 +1723,14 @@ namespace NLGUI
for(currChar = 0; currChar < wordValue.length(); ++currChar)
{
oneChar = wordValue[currChar];
si = CViewRenderer::getTextContext()->getStringInfo(oneChar);
si = TextContext->getStringInfo(oneChar);
if ((uint) (px + si.StringWidth) > nMaxWidth) break;
px += si.StringWidth;
}
currChar = std::max((uint) 1, currChar); // must fit at least one character otherwise there's an infinite loop
wordValue = _Text.substr(spaceEnd, currChar);
CWord word;
word.build(wordValue, numSpaces);
word.build(wordValue, *TextContext, numSpaces);
word.Format= wordFormat;
_Lines.push_back(TLineSPtr(new CLine));
float roomForSpaces = (float) nMaxWidth - word.Info.StringWidth;
@ -1705,7 +1765,7 @@ namespace NLGUI
if (!wordValue.empty() || numSpaces != 0)
{
CWord word;
word.build(wordValue, numSpaces);
word.build(wordValue, *TextContext, numSpaces);
word.Format= wordFormat;
// update line width
_Lines.back()->addWord(word, _FontWidth);
@ -1782,7 +1842,7 @@ namespace NLGUI
// ***************************************************************************
void CViewText::updateTextContext ()
{
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
@ -1816,13 +1876,13 @@ namespace NLGUI
{
while (_Lines.size() > _MultiMaxLine)
{
_Lines.back()->clear();
_Lines.back()->clear(*TextContext);
_Lines.pop_back();
}
_Lines.pop_back();
CViewText::CLine *endLine = new CViewText::CLine;
CViewText::CWord w;
w.build(string("..."));
w.build(string("..."), *TextContext);
endLine->addWord(w, _FontWidth);
_Lines.push_back(TLineSPtr(endLine));
}
@ -1836,6 +1896,10 @@ namespace NLGUI
_W = (sint)rTotalW;
_H = std::max(_FontHeight, uint(_FontHeight * _Lines.size() + std::max(0, sint(_Lines.size()) - 1) * _MultiLineSpace));
// See if we should pretend to have at least X lines
if (_MultiMinLine > 1)
_H = std::max(_H, sint(_FontHeight * _MultiMinLine + (_MultiMinLine - 1) * _MultiLineSpace));
// Compute tooltips size
if (_Tooltips.size() > 0)
for (uint i=0 ; i<_Lines.size() ; ++i)
@ -2106,7 +2170,7 @@ namespace NLGUI
void CViewText::getCharacterPositionFromIndex(sint index, bool cursorAtPreviousLineEnd, sint &x, sint &y, sint &height) const
{
NLMISC::clamp(index, 0, (sint) _Text.length());
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
TextContext->setShadeOutline (_ShadowOutline);
@ -2118,11 +2182,13 @@ namespace NLGUI
//
if (_MultiLine)
{
uint dy = getMultiMinOffsetY();
uint charIndex = 0;
// special case for end of text
if (index == (sint) _Text.length())
{
y = 0;
y = dy;
if (_Lines.empty())
{
x = 0;
@ -2142,7 +2208,7 @@ namespace NLGUI
{
// should display the character at the end of previous line
CLine &currLine = *_Lines[i - 1];
y = (sint) ((_FontHeight + _MultiLineSpace) * (_Lines.size() - i));
y = (sint) ((_FontHeight + _MultiLineSpace) * (_Lines.size() - i) + dy);
x = (sint) (currLine.getWidth() + currLine.getEndSpaces() * currLine.getSpaceWidth());
sint nMaxWidth = getCurrentMultiLineMaxW();
x = std::min(x, nMaxWidth);
@ -2153,7 +2219,7 @@ namespace NLGUI
if ((sint) newCharIndex > index)
{
// ok, this line contains the character, now, see which word contains it.
y = (sint) ((_FontHeight + _MultiLineSpace) * (_Lines.size() - 1 - i));
y = (sint) ((_FontHeight + _MultiLineSpace) * (_Lines.size() - 1 - i) + dy);
// see if the index is in the spaces at the end of line
if (index - charIndex >= currLine.getNumChars())
{
@ -2211,7 +2277,7 @@ namespace NLGUI
// ***************************************************************************
// Tool fct : From a word and a x coordinate, give the matching character index
static uint getCharacterIndex(const ucstring &textValue, float x)
static uint getCharacterIndex(const ucstring &textValue, float x, NL3D::UTextContext &textContext)
{
float px = 0.f;
UTextContext::CStringInfo si;
@ -2221,7 +2287,7 @@ namespace NLGUI
{
// get character width
singleChar[0] = textValue[i];
si = CViewRenderer::getTextContext()->getStringInfo(singleChar);
si = textContext.getStringInfo(singleChar);
px += si.StringWidth;
// the character is at the i - 1 position
if (px > x)
@ -2238,7 +2304,7 @@ namespace NLGUI
// ***************************************************************************
void CViewText::getCharacterIndexFromPosition(sint x, sint y, uint &index, bool &cursorAtPreviousLineEnd) const
{
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
// setup the text context
TextContext->setHotSpot (UTextContext::BottomLeft);
@ -2252,6 +2318,7 @@ namespace NLGUI
uint charPos = 0;
if (_MultiLine)
{
y -= getMultiMinOffsetY();
// seek the line
float py = 0.f;
if (py > y)
@ -2318,7 +2385,7 @@ namespace NLGUI
else
{
// the coord is in the word itself
index = charPos + currWord.NumSpaces + getCharacterIndex(currWord.Text, (float) x - (px + spacesWidth));
index = charPos + currWord.NumSpaces + getCharacterIndex(currWord.Text, (float) x - (px + spacesWidth), *TextContext);
cursorAtPreviousLineEnd = false;
return;
}
@ -2343,7 +2410,7 @@ namespace NLGUI
index = 0;
return;
}
index = getCharacterIndex(_Text, (float) x);
index = getCharacterIndex(_Text, (float) x, *TextContext);
return;
}
}
@ -2381,15 +2448,16 @@ namespace NLGUI
quadSize--;
}
// select what quad to skip
CViewRenderer::getTextContext()->setStringSelection(stringId, quadStart, quadSize);
CViewRenderer::getTextContext(_FontName)->setStringSelection(stringId, quadStart, quadSize);
}
// ***************************************************************************
void CViewText::clearLines()
{
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
for(uint k = 0; k < _Lines.size(); ++k)
{
_Lines[k]->clear();
_Lines[k]->clear(*TextContext);
}
_Lines.clear();
}
@ -2443,10 +2511,10 @@ namespace NLGUI
}
// ***************************************************************************
void CViewText::CLine::addWord(const ucstring &text, uint numSpaces, const CFormatInfo &wordFormat, uint fontWidth)
void CViewText::CLine::addWord(const ucstring &text, uint numSpaces, const CFormatInfo &wordFormat, uint fontWidth, NL3D::UTextContext &textContext)
{
CWord word;
word.build(text, numSpaces);
word.build(text, textContext, numSpaces);
word.Format= wordFormat;
addWord(word, fontWidth);
}
@ -2468,12 +2536,12 @@ namespace NLGUI
}
// ***************************************************************************
void CViewText::CLine::clear()
void CViewText::CLine::clear(NL3D::UTextContext &textContext)
{
for(uint k = 0; k < _Words.size(); ++k)
{
if (_Words[k].Index != 0xffffffff)
CViewRenderer::getTextContext()->erase(_Words[k].Index);
textContext.erase(_Words[k].Index);
}
_Words.clear();
_NumChars = 0;
@ -2490,13 +2558,12 @@ namespace NLGUI
}
// ***************************************************************************
void CViewText::CWord::build(const ucstring &text, uint numSpaces/*=0*/)
void CViewText::CWord::build(const ucstring &text, NL3D::UTextContext &textContext, uint numSpaces)
{
Text = text;
NumSpaces = numSpaces;
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
Index = TextContext->textPush(text);
Info = TextContext->getStringInfo(Index);
Index = textContext.textPush(text);
Info = textContext.getStringInfo(Index);
}
// ***************************************************************************
@ -2517,7 +2584,7 @@ namespace NLGUI
static const ucstring lineFeedStr("\n");
float maxWidth = 0;
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
TextContext->setShadeOutline (_ShadowOutline);
@ -2604,7 +2671,7 @@ namespace NLGUI
// If we can't clip the words, return the size of the largest word
else if ((_TextMode == DontClipWord) || (_TextMode == Justified))
{
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
TextContext->setShadeOutline (_ShadowOutline);
@ -2662,7 +2729,7 @@ namespace NLGUI
// ***************************************************************************
void CViewText::computeFontSize ()
{
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
TextContext->setShadeOutline (_ShadowOutline);
@ -2671,9 +2738,25 @@ namespace NLGUI
TextContext->setOblique (_Oblique);
// Letter size
UTextContext::CStringInfo si = TextContext->getStringInfo(ucstring("|")); // for now we can't now that directly from UTextContext
_FontHeight = (uint) si.StringHeight; // + (_Shadow?(_ShadowOutline?2:1):0);
_FontLegHeight = (uint) si.StringLine; // + (_Shadow?(_ShadowOutline?2:1):0);
ucstring chars;
// instead of using the height of "|" that depends on font,
// we're using 2 characters:
// - "_" that should be the character with the lowest part
// - A with an accent for the highest part
chars.fromUtf8("_\xc3\x84");
// for now we can't know that directly from UTextContext
UTextContext::CStringInfo si = TextContext->getStringInfo(chars);
// font generator changes unknown glyphs to dot '.'. use fallback if it looks odd
if (_FontSize > (si.StringHeight + si.StringLine))
{
chars.fromUtf8("|");
si = TextContext->getStringInfo(chars);
}
// add a padding of 1 pixel else the top will be truncated
_FontHeight = (uint) si.StringHeight+1;
_FontLegHeight = (uint) si.StringLine;
// Space width
si = TextContext->getStringInfo(ucstring(" "));
@ -3025,7 +3108,7 @@ namespace NLGUI
}
// convert in ULetterColors
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
ULetterColors * letterColors = TextContext->createLetterColors();
for(uint i=0; i<tempLetterColors.size(); i++)
{

View file

@ -3170,6 +3170,7 @@ namespace NLGUI
_SystemOptions[OptionTimeoutMessages]= opt->getValue("messages_timeout");
_SystemOptions[OptionTimeoutContext]= opt->getValue("context_timeout");
_SystemOptions[OptionTimeoutContextHtml]= opt->getValue("context_html_timeout");
_SystemOptions[OptionMonospaceFont]= opt->getValue("monospace_font");
}
}

View file

@ -1218,7 +1218,7 @@ const IPrimitive *IPrimitive::getPrimitive (const std::string &absoluteOrRelativ
path.erase(0,2);
}
while (path.size()>0)
while (!path.empty())
{
if (path.find("/")==0)
{

View file

@ -15,6 +15,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdlogic.h"
#include "nel/logic/logic_state.h"
#include "nel/logic/logic_state_machine.h"

View file

@ -18,6 +18,7 @@
#include "nel/misc/app_context.h"
#include "nel/misc/dynloadlib.h"
#include "nel/misc/command.h"
#include "nel/misc/system_utils.h"
#include <locale.h>
@ -71,6 +72,9 @@ INelContext::~INelContext()
CInstanceCounterLocalManager::releaseInstance();
// uninit some systems stuff
CSystemUtils::uninit();
_NelContext = NULL;
*(_getInstance()) = NULL;
}
@ -90,6 +94,9 @@ void INelContext::contextReady()
// set numeric locale to C to avoid the use of decimal separators different of a dot
char *locale = setlocale(LC_NUMERIC, "C");
// init some systems stuff
CSystemUtils::init();
// register any pending thinks
// register local instance counter in the global instance counter manager

View file

@ -278,7 +278,7 @@ ICDBNode * CCDBNodeBranch::getNode (const CTextId& id, bool bCreate)
{
// Yoyo: must not be SERVER or LOCAL, cause definied through xml.
// This may cause some important crash error
//nlassert(id.size()>0);
//nlassert(!id.empty());
//nlassert(id.getElement(0)!="SERVER");
//nlassert(id.getElement(0)!="LOCAL");
ICDBNode *newNode;

View file

@ -1784,7 +1784,9 @@ std::string CPath::getApplicationDirectory(const std::string &appName, bool loca
std::string CFileContainer::getApplicationDirectory(const std::string &appName, bool local)
{
static std::string appPaths[2];
std::string &appPath = appPaths[local ? 1 : 0];
if (appPath.empty())
{
#ifdef NL_OS_WINDOWS
@ -1800,26 +1802,21 @@ std::string CFileContainer::getApplicationDirectory(const std::string &appName,
SHGetSpecialFolderPathW(NULL, buffer, CSIDL_APPDATA, TRUE);
}
appPath = CPath::standardizePath(wideToUtf8(buffer));
#elif defined(NL_OS_MAC)
appPath = CPath::standardizePath(getenv("HOME"));
appPath += "/Library/Application Support/";
#else
appPath = CPath::standardizePath(getenv("HOME"));
// get user home directory from HOME environment variable
const char* homePath = getenv("HOME");
appPath = CPath::standardizePath(homePath ? homePath : ".");
#if defined(NL_OS_MAC)
appPath += "Library/Application Support/";
#else
// recommended for applications data that are owned by user
appPath += ".local/share/";
#endif
#endif
}
std::string path = appPath;
#ifdef NL_OS_WINDOWS
if (!appName.empty())
path = CPath::standardizePath(path + appName);
#elif defined(NL_OS_MAC)
path = CPath::standardizePath(path + appName);
#else
if (!appName.empty())
path = CPath::standardizePath(path + "." + toLower(appName));
#endif
return path;
return CPath::standardizePath(appPath + appName);
}
std::string CPath::getTemporaryDirectory()
@ -2374,11 +2371,33 @@ static bool CopyMoveFile(const std::string &dest, const std::string &src, bool c
#else
if (rename (ssrc.c_str(), sdest.c_str()) == -1)
{
nlwarning ("PATH: CopyMoveFile error: can't rename '%s' into '%s', error %u",
ssrc.c_str(),
sdest.c_str(),
errno);
return false;
// unable to move because file systems are different
if (errno == EXDEV)
{
// different file system, we need to copy and delete file manually
if (!CopyMoveFile(dest, src, true, failIfExists, progress)) return false;
// get modification time
uint32 modificationTime = CFile::getFileModificationDate(src);
// delete original file
if (!CFile::deleteFile(src)) return false;
// set same modification time
if (!CFile::setFileModificationDate(dest, modificationTime))
{
nlwarning("Unable to set modification time %s (%u) for %s", timestampToHumanReadable(modificationTime).c_str(), modificationTime, dest.c_str());
}
}
else
{
nlwarning("PATH: CopyMoveFile error: can't rename '%s' into '%s', error %u",
ssrc.c_str(),
sdest.c_str(),
errno);
return false;
}
}
#endif
}

View file

@ -105,7 +105,7 @@ void CPolygon::clip(const CPlane *planes, uint nPlanes)
// ***************************************************************************
void CPolygon::clip(const std::vector<CPlane> &planes)
{
if(planes.size()==0)
if(planes.empty())
return;
clip(&(*planes.begin()), (uint)planes.size());
}

File diff suppressed because it is too large Load diff

View file

@ -107,7 +107,7 @@ bool CSystemUtils::updateProgressBar(uint value, uint total)
#ifdef TASKBAR_PROGRESS
if (s_window == NULL)
{
nlwarning("No window has be set with CSystemUtils::setWindow(), progress bar can't be displayed");
nldebug("No window has be set with CSystemUtils::setWindow(), progress bar can't be displayed");
return false;
}
@ -139,7 +139,7 @@ bool CSystemUtils::updateProgressBar(uint value, uint total)
bool CSystemUtils::copyTextToClipboard(const ucstring &text)
{
if (!text.size()) return false;
if (text.empty()) return false;
bool res = false;

View file

@ -430,7 +430,7 @@ void serviceGetView (uint32 rid, const string &rawvarpath, TAdminViewResult &ans
else
{
if (strs.size()>0)
if (!strs.empty())
{
str = strs[0].substr(0,strs[0].size()-1);
// replace all spaces into udnerscore because space is a reserved char
@ -717,7 +717,7 @@ void updateAdmin()
ICommand::execute(Alarms[i].Name, logDisplayVars, true, false);
const std::deque<std::string> &strs = mdDisplayVars.lockStrings();
if (strs.size()>0)
if (!strs.empty())
{
str = strs[0].substr(0,strs[0].size()-1);
}

View file

@ -155,7 +155,7 @@ bool CBufSock::flush( uint *nbBytesRemaining )
{
SendFifo.front( tmpbuffer, size );
}
while ( ! SendFifo.empty() && ( (_ReadyToSendBuffer.size()==0) || (_ReadyToSendBuffer.size() +size < MaxTCPPacketSize) ) )
while ( ! SendFifo.empty() && ( _ReadyToSendBuffer.empty() || (_ReadyToSendBuffer.size() +size < MaxTCPPacketSize) ) )
{
// Compute the size and add it into the beginning of the buffer
netlen = htonl( (TBlockSize)size );
@ -252,7 +252,7 @@ bool CBufSock::flush( uint *nbBytesRemaining )
}
}
while ( !SendFifo.empty() && _ReadyToSendBuffer.size()==0 );
while ( !SendFifo.empty() && _ReadyToSendBuffer.empty() );
return true;
}

View file

@ -288,7 +288,7 @@ string CLoginClient::confirmConnection(sint32 shardId)
// S05: create and send the "CS" message with the shardid choice to the LS
//
if (!ShardList.size())
if (ShardList.empty())
{
_LSCallbackClient->disconnect();
return "No shard available";
@ -358,7 +358,7 @@ string CLoginClient::selectShardBegin(sint32 shardId)
ShardChooseShardReason = "";
ShardChooseShard = false;
if (!ShardList.size())
if (ShardList.empty())
{
_LSCallbackClient->disconnect();
delete _LSCallbackClient;

View file

@ -420,7 +420,7 @@ bool CNamingClient::lookup (const std::string &name, CInetAddress &addr)
vector<CInetAddress> addrs;
find (name, addrs);
if (addrs.size()==0)
if (addrs.empty())
return false;
nlassert (addrs.size()==1);
@ -436,7 +436,7 @@ bool CNamingClient::lookup (TServiceId sid, CInetAddress &addr)
vector<CInetAddress> addrs;
find (sid, addrs);
if (addrs.size()==0)
if (addrs.empty())
return false;
nlassert (addrs.size()==1);
@ -465,7 +465,7 @@ bool CNamingClient::lookupAlternate (const std::string &name, CInetAddress &addr
vector<CInetAddress> addrs;
find (name, addrs);
if (addrs.size()==0)
if (addrs.empty())
return false;
nlassert (addrs.size()==1);

View file

@ -1460,7 +1460,7 @@ sint IService::main (const char *serviceShortName, const char *serviceLongName,
mdDisplayVars.clear ();
ICommand::execute(varName, logDisplayVars, true);
const std::deque<std::string> &strs = mdDisplayVars.lockStrings();
if (strs.size()>0)
if (!strs.empty())
{
str += strs[0].substr(0,strs[0].size()-1);
}

View file

@ -3,7 +3,7 @@ FILE(GLOB SRC *.cpp *.h *.def *.rc)
NL_TARGET_DRIVER(nel_drv_dsound_win ${SRC})
INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_dsound_win nelmisc nelsnd_lowlevel ${DXSDK_DSOUND_LIBRARY} ${DXSDK_GUID_LIBRARY})
TARGET_LINK_LIBRARIES(nel_drv_dsound_win nelmisc nelsnd_lowlevel ${DXSDK_DSOUND_LIBRARY})
NL_DEFAULT_PROPS(nel_drv_dsound_win "NeL, Driver, Sound: DirectSound")
NL_ADD_RUNTIME_FLAGS(nel_drv_dsound_win)

View file

@ -22,6 +22,7 @@
# include <eax.h>
#endif
#include <initguid.h>
#include <dsound.h>
#include <iostream>

View file

@ -197,7 +197,7 @@ CSoundDriverAL::~CSoundDriverAL()
// Remove the allocated (but not exported) source and buffer names-
// Release internal resources of all remaining ISource instances
if (_Sources.size())
if (!_Sources.empty())
{
nlwarning("AL: _Sources.size(): '%u'", (uint32)_Sources.size());
set<CSourceAL *>::iterator it(_Sources.begin()), end(_Sources.end());
@ -206,7 +206,7 @@ CSoundDriverAL::~CSoundDriverAL()
}
if (!_Buffers.empty()) alDeleteBuffers(compactAliveNames(_Buffers, alIsBuffer), &*_Buffers.begin());
// Release internal resources of all remaining IEffect instances
if (_Effects.size())
if (!_Effects.empty())
{
nlwarning("AL: _Effects.size(): '%u'", (uint32)_Effects.size());
set<CEffectAL *>::iterator it(_Effects.begin()), end(_Effects.end());

View file

@ -254,7 +254,7 @@ bool CSourceAL::play()
if (!_IsPlaying) // set start time if not playing yet
_StartTime = CTime::getLocalTime();
_IsPlaying = true; // this play always virtually succeed but may not actually be playing
if (_QueuedBuffers.size()) // ensure buffers have actually queued
if (!_QueuedBuffers.empty()) // ensure buffers have actually queued
{
alSourcePlay(_Source);
if (alGetError() != AL_NO_ERROR)
@ -306,7 +306,7 @@ void CSourceAL::stop()
alSourceStop(_Source);
alTestError();
// unqueue buffers
while (_QueuedBuffers.size())
while (!_QueuedBuffers.empty())
{
ALuint bufferName = _QueuedBuffers.front()->bufferName();
alSourceUnqueueBuffers(_Source, 1, &bufferName);

View file

@ -30,7 +30,7 @@ NL_TARGET_DRIVER(nel_drv_xaudio2_win ${SRC})
INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_xaudio2_win nelmisc nelsnd_lowlevel ${DXSDK_XAUDIO_LIBRARY} ${DXSDK_GUID_LIBRARY})
TARGET_LINK_LIBRARIES(nel_drv_xaudio2_win nelmisc nelsnd_lowlevel ${DXSDK_XAUDIO_LIBRARY})
NL_DEFAULT_PROPS(nel_drv_xaudio2_win "NeL, Driver, Sound: XAudio2")
NL_ADD_RUNTIME_FLAGS(nel_drv_xaudio2_win)

View file

@ -215,7 +215,7 @@ void CSoundDriverXAudio2::release()
// the created instances must still be released by the user!
// Release internal resources of all remaining ISource instances
if (_Sources.size())
if (!_Sources.empty())
{
nlwarning(NLSOUND_XAUDIO2_PREFIX "_Sources.size(): '%u'", (uint32)_Sources.size());
set<CSourceXAudio2 *>::iterator it(_Sources.begin()), end(_Sources.end());
@ -223,7 +223,7 @@ void CSoundDriverXAudio2::release()
_Sources.clear();
}
// Release internal resources of all remaining IBuffer instances
if (_Buffers.size())
if (!_Buffers.empty())
{
nlwarning(NLSOUND_XAUDIO2_PREFIX "_Buffers.size(): '%u'", (uint32)_Buffers.size());
set<CBufferXAudio2 *>::iterator it(_Buffers.begin()), end(_Buffers.end());
@ -231,7 +231,7 @@ void CSoundDriverXAudio2::release()
_Buffers.clear();
}
// Release internal resources of all remaining IEffect instances
if (_Effects.size())
if (!_Effects.empty())
{
nlwarning(NLSOUND_XAUDIO2_PREFIX "_Effects.size(): '%u'", (uint32)_Effects.size());
set<CEffectXAudio2 *>::iterator it(_Effects.begin()), end(_Effects.end());

View file

@ -363,7 +363,7 @@ CSound* CSoundBank::getSound(const NLMISC::CSheetId &sheetId)
if (sheetId.getShortId() >= _Sounds.size())
{
std::string sheetName = sheetId.toString();
nlwarning("NLSOUND: Sound sheet id '%s' exceeds loaded sound sheets", sheetName.c_str());
nldebug("NLSOUND: Sound sheet id '%s' exceeds loaded sound sheets", sheetName.c_str());
return NULL;
}

View file

@ -74,7 +74,7 @@ CMainWindow::CMainWindow(const QMap<QString, QSize> &customSizeHints, QWidget *p
createStatusBar();
m_PanoplyPreview = new CPanoplyPreview(this);
setCentralWidget(m_PanoplyPreview);
setCentralWidget(m_PanoplyPreview);
createDockWindows();
}

View file

@ -190,6 +190,7 @@ void CCrashReportWidget::onLoad()
}
QTextStream ss( &f );
ss.setCodec("UTF-8");
m_ui.reportEdit->setPlainText( ss.readAll() );
f.close();
}

View file

@ -8,17 +8,7 @@ SET(RZ_SERVER_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/server/src)
ADD_SUBDIRECTORY(common)
ADD_SUBDIRECTORY(tools)
IF(WITH_RYZOM_CLIENT)
IF(NOT WITH_GUI)
MESSAGE( FATAL_ERROR "The client cannot be built without the NeL GUI Library (WITH_GUI)")
ENDIF()
ADD_SUBDIRECTORY(client)
ELSEIF(WITH_RYZOM_TOOLS)
# Need clientsheets lib for sheets packer tool
ADD_SUBDIRECTORY(client)
ENDIF()
ADD_SUBDIRECTORY(client)
IF(WITH_RYZOM_SERVER OR WITH_RYZOM_TOOLS)
# Need servershare for build packed collision tool

View file

@ -1,4 +1,5 @@
# Need clientsheets lib for sheets packer tool
# Need seven_zip for patch_gen and ryzom_installer
ADD_SUBDIRECTORY(src)
IF(WITH_RYZOM_CLIENT)

File diff suppressed because it is too large Load diff

Binary file not shown.

Binary file not shown.

View file

@ -212,7 +212,6 @@
background_bitmap_view=""
home=""
browse_next_time="false"
timeout="5"
form_text_area_group="edit_box_widget_multiline">
<group id="black"
posref="BR BR"

View file

@ -645,7 +645,7 @@
id="dist"
posref="BM BM"
x="0"
y="0"
y="2"
hardtext="uiRadarZoom0"
shadow="true"
color="255 255 255 255"
@ -694,7 +694,7 @@
id="range"
posref="BM MM"
x="0"
y="16"
y="20"
hardtext="uiRadarZoom0"
shadow="true"
color="255 255 255 255"
@ -748,8 +748,8 @@
posref="BM BM"
x="0"
y="26"
w="44"
h="18" />
w="46"
h="25" />
</group>
<tree node="compass" />
<link expr="switch(@UI:SAVE:RADARZOOM, 'uiRadarZoom0', 'uiRadarZoom1', 'uiRadarZoom2', 'uiRadarZoom3')"
@ -811,7 +811,7 @@
id="upload"
posref="TL TL"
x="0"
y="-20"
y="-18"
color="255 255 255 255"
shadow="true"
fontsize="10"
@ -823,7 +823,7 @@
posref="BL TL"
posparent="upload"
x="0"
y="-2"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="10"
@ -835,7 +835,7 @@
posref="BL TL"
posparent="download"
x="0"
y="-2"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="10"
@ -847,7 +847,7 @@
posref="BL TL"
posparent="ping"
x="0"
y="-2"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="10"
@ -870,7 +870,7 @@
id="up_title"
posref="TL TL"
x="0"
y="-4"
y="-2"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -879,7 +879,7 @@
id="down_title"
posref="TL TL"
x="0"
y="-20"
y="-18"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -888,7 +888,7 @@
id="ping_title"
posref="TL TL"
x="0"
y="-36"
y="-34"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -897,7 +897,7 @@
id="packet_title"
posref="TL TL"
x="0"
y="-52"
y="-50"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -906,7 +906,7 @@
id="server_title"
posref="TL TL"
x="0"
y="-68"
y="-66"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -915,7 +915,7 @@
id="upload"
posref="TR TR"
x="0"
y="-4"
y="-2"
color="255 255 255 255"
shadow="true"
fontsize="11"
@ -926,7 +926,7 @@
id="download"
posref="TR TR"
x="0"
y="-20"
y="-18"
color="255 255 255 255"
shadow="true"
fontsize="11"
@ -937,7 +937,7 @@
id="ping"
posref="TR TR"
x="0"
y="-36"
y="-34"
color="255 255 255 255"
shadow="true"
fontsize="11"
@ -948,7 +948,7 @@
id="packet"
posref="TR TR"
x="0"
y="-52"
y="-50"
color="255 255 255 255"
shadow="true"
fontsize="11"
@ -959,7 +959,7 @@
id="server0"
posref="TR TR"
x="0"
y="-68"
y="-66"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -969,7 +969,7 @@
id="server1"
posref="TR TR"
x="0"
y="-68"
y="-66"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -979,7 +979,7 @@
id="server2"
posref="TR TR"
x="0"
y="-68"
y="-66"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -989,7 +989,7 @@
id="server3"
posref="TR TR"
x="0"
y="-68"
y="-66"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -999,7 +999,7 @@
id="server4"
posref="TR TR"
x="0"
y="-68"
y="-66"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -1009,7 +1009,7 @@
id="server5"
posref="TR TR"
x="0"
y="-68"
y="-66"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -1019,7 +1019,7 @@
id="server6"
posref="TR TR"
x="0"
y="-68"
y="-66"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -1029,7 +1029,7 @@
id="server7"
posref="TR TR"
x="0"
y="-68"
y="-66"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -1039,7 +1039,7 @@
id="server8"
posref="TR TR"
x="0"
y="-68"
y="-66"
color="255 255 255 255"
fontsize="11"
shadow="true"
@ -1049,7 +1049,7 @@
id="server9"
posref="TR TR"
x="0"
y="-68"
y="-66"
color="255 255 255 255"
fontsize="11"
shadow="true"

View file

@ -583,11 +583,11 @@
<param name="title_offset_x"
value="8" />
<param name="title_offset_y"
value="-10" />
value="-7" />
<param name="title_offset_openable_x"
value="20" />
<param name="title_offset_openable_y"
value="-10" />
value="-7" />
<param name="scrollbar_offset_x"
value="6" />
<param name="scrollbar_size_w"
@ -732,11 +732,11 @@
<param name="title_offset_x"
value="56" />
<param name="title_offset_y"
value="-26" />
value="-23" />
<param name="title_offset_openable_x"
value="20" />
<param name="title_offset_openable_y"
value="-10" />
value="-7" />
<param name="scrollbar_offset_x"
value="6" />
<param name="scrollbar_size_w"
@ -873,11 +873,11 @@
<param name="title_offset_x"
value="28" />
<param name="title_offset_y"
value="-10" />
value="-7" />
<param name="title_offset_openable_x"
value="20" />
<param name="title_offset_openable_y"
value="-10" />
value="-7" />
<param name="scrollbar_offset_x"
value="6" />
<param name="scrollbar_size_w"
@ -1014,11 +1014,11 @@
<param name="title_offset_x"
value="8" />
<param name="title_offset_y"
value="-6" />
value="-4" />
<param name="title_offset_openable_x"
value="18" />
<param name="title_offset_openable_y"
value="-6" />
value="-4" />
<param name="header_h"
value="14" />
<param name="open_state_tx_opened"
@ -1109,11 +1109,11 @@
<param name="title_offset_x"
value="8" />
<param name="title_offset_y"
value="-5" />
value="-3" />
<param name="title_offset_openable_x"
value="20" />
<param name="title_offset_openable_y"
value="-5" />
value="-3" />
<param name="header_h"
value="12" />
<param name="open_state_tx_opened"
@ -1202,11 +1202,11 @@
<param name="title_offset_x"
value="8" />
<param name="title_offset_y"
value="-5" />
value="-3" />
<param name="title_offset_openable_x"
value="22" />
<param name="title_offset_openable_y"
value="-5" />
value="-3" />
<param name="header_h"
value="10" />
<param name="open_state_tx_opened"
@ -1295,11 +1295,11 @@
<param name="title_offset_x"
value="18" />
<param name="title_offset_y"
value="-5" />
value="-3" />
<param name="title_offset_openable_x"
value="24" />
<param name="title_offset_openable_y"
value="-5" />
value="-3" />
<param name="header_h"
value="10" />
<param name="open_state_tx_opened"
@ -1599,11 +1599,11 @@
<param name="title_offset_x"
value="8" />
<param name="title_offset_y"
value="-6" />
value="-4" />
<param name="title_offset_openable_x"
value="18" />
<param name="title_offset_openable_y"
value="-6" />
value="-4" />
<param name="header_h"
value="14" />
<!-- View state opened/closed (defined TL TL) -->
@ -1698,11 +1698,11 @@
<param name="title_offset_x"
value="8" />
<param name="title_offset_y"
value="-2" />
value="0" />
<param name="title_offset_openable_x"
value="40" />
<param name="title_offset_openable_y"
value="-2" />
value="0" />
<param name="header_h"
value="12" />
<!-- View state opened/closed (defined TL TL) -->
@ -1916,6 +1916,8 @@ This MUST follow the Enum MISSION_DESC::TIconId
value="basic.ttf" /> -->
<param name="font"
value="ryzom.ttf" />
<param name="monospace_font"
value="ryzom_monospace.ttf" />
<param name="add_coef_font"
value="1" />
<param name="mul_coef_anim"

View file

@ -138,7 +138,7 @@
x="0"
y="6"
posref="BM BM"
text_y="-2"
text_y="0"
onclick_l="proc"
params_l="welcome_close"
hardtext="uittOK" />
@ -199,7 +199,7 @@
x="-15"
y="10"
posref="BM BM"
text_y="-2"
text_y="0"
onclick_l="proc"
params_l="active_hardware_cursor"
hardtext="uiYes" />
@ -208,7 +208,7 @@
y="0"
posparent="active_ok"
posref="BR BL"
text_y="-2"
text_y="0"
onclick_l="proc"
params_l="close_hardware_cursor"
hardtext="uiNo" />
@ -316,7 +316,7 @@
x="0"
y="6"
posref="BM BM"
text_y="-2"
text_y="0"
onclick_l="proc"
params_l="universe_chanel_warning_close"
hardtext="uittOK" />
@ -356,9 +356,9 @@
</proc>
<group type="container"
id="death_warning"
w="400"
pop_min_w="400"
pop_max_w="400"
w="500"
pop_min_w="500"
pop_max_w="500"
h="250"
pop_min_h="250"
pop_max_h="250"
@ -401,7 +401,7 @@
id="death_warning_text"
posref="TM TM"
x="0"
y="-20"
y="-10"
color="255 255 255 255"
fontsize="12"
shadow="true"
@ -416,6 +416,7 @@
y="30"
w="0"
h="16"
y_text="-5"
fontsize="10"
hardtext="uiDeathWarningAvoid"
dblink="UI:VARIABLES:TEMP_DEATH_WARNING_AVOID"
@ -424,7 +425,7 @@
x="0"
y="6"
posref="BM BM"
text_y="-2"
text_y="0"
onclick_l="proc"
params_l="death_warning_close"
hardtext="uittOK" />
@ -463,9 +464,9 @@
</proc>
<group type="container"
id="night_warning"
w="400"
pop_min_w="400"
pop_max_w="400"
w="500"
pop_min_w="500"
pop_max_w="500"
h="250"
pop_min_h="250"
pop_max_h="250"
@ -508,7 +509,7 @@
id="night_warning_text"
posref="TM TM"
x="0"
y="-20"
y="-10"
color="255 255 255 255"
fontsize="12"
shadow="true"
@ -531,7 +532,7 @@
x="0"
y="6"
posref="BM BM"
text_y="-2"
text_y="0"
onclick_l="proc"
params_l="night_warning_close"
hardtext="uittOK" />
@ -2828,7 +2829,7 @@
global_color_normal="true"
global_color_over="true"
global_color_pushed="true"
text_y="-2"
text_y="0"
fontsize="10"
shadow="true"
case_mode="%case_upper"
@ -2887,21 +2888,21 @@
x="4"
y="0"
posref="TL TL"
text_y="-2"
text_y="0"
onclick_l="proc"
params_l="proc_stat_report_yes"
hardtext="uiYes" />
<ctrl style="button_cancel"
x="4"
posparent="ok"
text_y="-2"
text_y="0"
posref="TR TL"
onclick_l="leave_modal"
hardtext="uiNo" />
<ctrl style="button_always"
x="4"
posparent="cancel"
text_y="-2"
text_y="0"
posref="TR TL"
onclick_l="proc"
params_l="proc_stat_report_always"

View file

@ -57,7 +57,7 @@
<view type="text"
id="t"
posref="TL TL"
y="-1"
y="0"
color="255 255 255 255"
fontsize="12"
shadow="true"
@ -66,7 +66,7 @@
id="max"
posref="MR MR"
x="-4"
y="-2"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="12"
@ -76,7 +76,7 @@
id="sep"
posparent="max"
posref="TL TR"
x="-1"
x="0"
color="255 255 255 255"
shadow="true"
fontsize="12"
@ -128,7 +128,7 @@
<view type="text"
id="t"
posref="TL TL"
y="-1"
y="0"
color="255 255 255 255"
fontsize="12"
shadow="true"
@ -137,7 +137,7 @@
id="val"
posref="MR MR"
x="-4"
y="-2"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="12"
@ -176,7 +176,7 @@
<view type="text"
id="t"
posref="TL TL"
y="-1"
y="0"
color="255 255 255 255"
fontsize="12"
shadow="true"
@ -185,7 +185,7 @@
id="val"
posref="MR MR"
x="-4"
y="-2"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="12"
@ -223,7 +223,7 @@
<view type="text"
id="t"
posref="TL TL"
y="-1"
y="0"
color="255 255 255 255"
fontsize="12"
shadow="true"
@ -232,7 +232,7 @@
id="val"
posref="MR MR"
x="-4"
y="-2"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="12"
@ -271,7 +271,7 @@
<view type="text"
id="t"
posref="TL TL"
y="-1"
y="0"
color="255 255 255 255"
fontsize="12"
shadow="true"
@ -280,7 +280,7 @@
id="val"
posref="MR MR"
x="-4"
y="-2"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="12"
@ -317,7 +317,7 @@
<view type="text"
id="t"
posref="TL TL"
y="-1"
y="0"
color="255 255 255 255"
fontsize="12"
shadow="true"
@ -326,7 +326,7 @@
id="val"
posref="MR MR"
x="-4"
y="-2"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="12"
@ -362,7 +362,7 @@
<view type="text"
id="t"
posref="TL TL"
y="-1"
y="0"
color="255 255 255 255"
fontsize="12"
shadow="true"
@ -371,7 +371,7 @@
id="max"
posref="MR MR"
x="-4"
y="-1"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="12"
@ -380,7 +380,7 @@
id="sep"
posref="MR MR"
x="-20"
y="-1"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="12"
@ -389,7 +389,7 @@
id="val"
posref="MR MR"
x="-37"
y="-1"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="12"
@ -432,7 +432,7 @@
id="val"
posref="MR MR"
x="-4"
y="-2"
y="0"
color="255 255 255 255"
shadow="true"
fontsize="12"
@ -480,7 +480,7 @@
id="t"
posref="TL TL"
x="16"
y="-3"
y="2"
color="255 255 255 255"
global_color="false"
fontsize="10"
@ -519,7 +519,7 @@
<view type="text"
id="t"
posref="TL TL"
y="-1"
y="0"
color="255 255 255 255"
fontsize="12"
shadow="true"
@ -569,12 +569,12 @@
value="-1" />
<group type="container"
id="info_player_skills"
w="500"
w="540"
title="uiSkillsTitle"
global_color="false"
header_color="UI:SAVE:WIN:COLORS:PLA"
min_w="330"
max_w="500"
min_w="350"
max_w="540"
min_h="550"
max_h="1600"
pop_max_h="800"
@ -681,7 +681,7 @@
posparent="basics_skills"
posref="TL TL"
x="0"
y="-24"
y="-10"
hardtext="uiRaceBold"
shadow="true"
color="255 255 255 255"
@ -701,7 +701,7 @@
posref="TL TL"
sizeref="w"
h="14"
y="-48">
y="-30">
<view type="text"
id="guild_title"
posref="TL TL"
@ -719,7 +719,7 @@
shadow="true"
color="255 200 55 255"
global_color="false"
x="2"
x="2"
fontsize="12"
textid="SERVER:GUILD:NAME"
dynamic_string="false" />
@ -729,7 +729,7 @@
sizeref="w5"
w="-1"
h="188"
y="-72">
y="-52">
<view type="text"
id="Skill_t"
posref="TL TL"
@ -744,7 +744,7 @@
posref="TL TL"
x="0"
sizeref="w"
y="-14"
y="-16"
w="0"
h="172"
inherit_gc_alpha="true">
@ -855,7 +855,7 @@
w="-1"
x="1"
h="188"
y="-72">
y="-52">
<view type="text"
id="Skill_t"
posref="TL TL"
@ -870,7 +870,7 @@
posref="TL TL"
x="0"
sizeref="w"
y="-14"
y="-16"
w="0"
h="172"
inherit_gc_alpha="true">
@ -950,7 +950,7 @@
sizeref="w5"
w="-1"
h="83"
y="-264">
y="-248">
<view type="text"
id="sp"
posref="TL TL"
@ -965,7 +965,7 @@
posref="TL TL"
x="0"
sizeref="w"
y="-14"
y="-16"
w="0"
h="67"
inherit_gc_alpha="true">
@ -1024,7 +1024,7 @@
w="-1"
x="1"
h="83"
y="-264">
y="-248">
<view type="text"
id="cm"
posref="TL TL"
@ -1039,7 +1039,7 @@
posref="TL TL"
x="0"
sizeref="w"
y="-14"
y="-16"
w="0"
h="67"
inherit_gc_alpha="true">
@ -1110,8 +1110,8 @@
posref="TL TL"
sizeref="w5"
w="-1"
h="155"
y="-347">
h="157"
y="-338">
<view type="text"
id="resists_t"
posref="TL TL"
@ -1129,15 +1129,15 @@
posref="TL TL"
x="0"
sizeref="w"
y="-14"
y="-16"
w="0"
h="141"
h="140"
inherit_gc_alpha="true">
<instance template="tipc_magic_resist"
id="Desert"
posref="TL TL"
x="8"
y="-10"
y="-8"
w="-8"
val="%player_resist_desert" />
<instance template="tipc_magic_resist"
@ -1173,8 +1173,8 @@
posref="TM TL"
sizeref="w5"
w="-1"
h="155"
y="-347">
h="158"
y="-337">
<view type="text"
id="protections_t"
posref="TL TL"
@ -1192,15 +1192,15 @@
posref="TL TL"
x="0"
sizeref="w"
y="-14"
y="-16"
w="0"
h="141"
h="140"
inherit_gc_alpha="true">
<instance template="tipc_magic_protect"
id="Acid"
posref="TL TL"
x="8"
y="-10"
y="-8"
w="-8"
val="%player_protect_acid" />
<instance template="tipc_magic_protect"
@ -1256,8 +1256,8 @@
posref="TL TL"
sizeref="w5"
w="-1"
h="40"
y="-510">
h="42"
y="-500">
<view type="text"
id="defense_t"
posref="TL TL"
@ -1272,15 +1272,15 @@
posref="TL TL"
x="0"
sizeref="w"
y="-14"
y="-16"
w="0"
h="26"
h="24"
inherit_gc_alpha="true">
<instance template="tipc_scoreEP"
id="dodge"
posref="TL TL"
x="8"
y="-7"
y="-5"
w="-8"
text="uiDodge"
val="%player_dodge_current"
@ -1298,21 +1298,21 @@
posref="TM TL"
sizeref="w5"
w="-1"
h="40"
y="-510">
h="42"
y="-500">
<group id="black"
posref="TL TL"
x="0"
sizeref="w"
y="-14"
y="-16"
w="0"
h="26"
h="24"
inherit_gc_alpha="true">
<instance template="tipc_scoreEP"
id="parry"
posref="TL TL"
x="8"
y="-7"
y="-5"
w="-8"
text="uiParry"
val="%player_parry_current"
@ -1403,7 +1403,7 @@
x="0"
y="-10" />
<group id="pvp_points"
posparent="fp"
posparent="fp"
posref="BL TL"
sizeref="wh"
w="-1"
@ -1423,7 +1423,7 @@
posref="TL TL"
x="0"
sizeref="w"
y="-14"
y="-16"
w="0"
h="26"
inherit_gc_alpha="true">
@ -1453,8 +1453,8 @@
inherit_gc_alpha="true" />
</group>
</group>
<group h="0" id="rpjobs" posref="TL TL" sizeref="wh" w="0" y="0">
<ctrl style="text_button_header"
<group h="0" id="rpjobs" posref="TL TL" sizeref="wh" w="0" y="0">
<ctrl style="text_button_header"
button_type="push_button"
id="browse_home"
posref="TR TR"
@ -1464,8 +1464,7 @@
tooltip="uittBrowseRefresh"
onclick_l="browse_home"
params_l="name=ui:interface:info_player_skills:content:rpjobs:html" />
<group type="webig_html"
<group type="webig_html"
id="html"
posref="TL TL"
url="http://app.ryzom.com/app_rpjobs/index.php"
@ -1583,24 +1582,23 @@
posref="TR TR"
active="true"
y="-9"
wmargin="8"
hardtext="uiInfo"
tooltip="uittIdentityInfo"
onclick_l="open_title_help"
params_l="from=user" />
<ctrl style="text_button_header"
wmargin="8"
hardtext="uiInfo"
tooltip="uittIdentityInfo"
onclick_l="open_title_help"
params_l="from=user" />
<ctrl style="text_button_header"
button_type="push_button"
id="browse_home"
posref="BR TR"
posparent="title"
posparent="title"
x="0"
y="-2"
hardtext="uiBrowseRefresh"
tooltip="uittBrowseRefresh"
onclick_l="browse_home"
params_l="name=ui:interface:info_player_skills:content:webinfos:html" />
<group type="webig_html"
<group type="webig_html"
id="html"
posref="TL TL"
posparent="parent"
@ -3776,7 +3774,7 @@
y="0"
posref="ML MR"
posparent="browse_undo"
text_y="-2"
text_y="0"
onclick_l="lua"
params_l="game.RingAccessPointFilter:open()"
hardtext="uiRingAccessPointFilter"
@ -3788,7 +3786,7 @@
y="0"
posref="ML MR"
posparent="browse_filter"
text_y="-2"
text_y="0"
onclick_l="lua"
params_l="game.RingAccessPointFilter:validate()"
hardtext="uiBotChatRefresh"

View file

@ -27,6 +27,15 @@
<!-- Yoyo: prefer show an empty list when clicking -->
<!-- <action handler="leave_modal" cond="eq(getprop('ui:interface:bag_choose:list:nbelt'),0)" /> -->
</proc>
<proc id="select_special_items">
<action handler="set" params="target_property=ui:interface:inventory:content:bag:iil:active|value=0" />
<action handler="set" params="target_property=ui:interface:inventory:content:bag:webitems:active|value=1" />
<action handler="browse_home" params="name=ui:interface:inventory:content:bag:webitems:html" />
</proc>
<proc id="select_bag_items">
<action handler="set" params="target_property=ui:interface:inventory:content:bag:iil:active|value=1" />
<action handler="set" params="target_property=ui:interface:inventory:content:bag:webitems:active|value=0" />
</proc>
<!-- ************* -->
<!-- * EQUIPMENT * -->
<!-- ************* -->
@ -44,6 +53,83 @@
onclick_l="proc"
params_l="inv_left_click_on_slot"
auto_grayed="false" />
<template name="img_button"
id="image_button"
ok_text="uittOK"
tx_over="blank.tga"
cancel_text="uittCancel"
posparent="parent"
posref="BM TM"
onclick_ok=""
onclick_ok_param=""
x="0"
y="0"
keep="true"
tooltip_ok=""
avoid_resize_parent="false">
<group id="#id"
posparent="#posparent"
posref="#posref"
child_resize_w="true"
child_resize_h="true"
x="#x"
y="#y"
avoid_resize_parent="#avoid_resize_parent">
<ctrl style="button_ok"
id="bb"
x="0"
y="0"
posref="TL TL"
text_y="-2"
onclick_l="#onclick_ok"
params_l="#onclick_ok_param"
hardtext="#ok_text"
tooltip="#tooltip_ok" />
<ctrl type="button"
id="button"
button_type="push_button"
posref="TL TL"
x="0"
y="0"
scale="false"
tx_over="#tx_over"
color="255 255 255 255"
col_pushed="255 255 255 255"
col_over="255 255 255 0"
onclick_l="#onclick_ok"
params_l="#onclick_ok_param" />
</group>
</template>
<template name="image_button"
tx_over="blank.tga"
onclick_l=""
params_l="" >
<group id="#id"
posref="TL TL"
x="0"
y="0"
sizeref="wh"
w="0"
h="0">
<ctrl type="button"
id=""
button_type="push_button"
posref=""
posparent=""
x=""
y=""
scale="false"
tx_over="#tx_over"
color="255 255 255 255"
col_pushed="255 255 255 255"
col_over="255 255 255 0"
onclick_l="#onclick_l"
params_l="#params_l" />
</group>
</template>
<!-- For the moment we use a template because we have to make the fake container -->
<template name="tinv_equip">
<group id="equip"
@ -159,6 +245,7 @@
posparent="jewelry"
hardtext="uiJewelryTitle"
fontsize="10"
y="2"
shadow="true" />
<!-- Armor -->
<group id="armors"
@ -234,6 +321,7 @@
posparent="armors"
hardtext="uiArmorTitle"
fontsize="10"
y="2"
shadow="true" />
<!--
<group id="hands" posparent="armors" x="8" y="0" w="86" h="42" posref="TR TL" >
@ -334,6 +422,7 @@
<instance template="tinv_nbslots_bulk_weight"
id="ibw"
x="-16"
y="2"
inv_branch="%bag"
inv_bulk_max="%bag_bulk_max" />
</group>
@ -481,6 +570,7 @@
posref="TL TL"
group_onclick_r="active_menu"
group_params_r="menu=ui:interface:base_menu_with_color">
<group type="tab"
id="inv_select"
child_resize_w="true"
@ -624,6 +714,99 @@
sizeref="wh"
w="0"
h="0">
<!-- Special Items -->
<ctrl style="text_button_16"
id="bag_items"
posref="TL TL"
y="-2"
x="10"
wmargin="8"
hardtext="uitabInvBag"
tooltip="uitabInvBag"
onclick_l="proc"
params_l="select_bag_items" />
<ctrl style="text_button_16"
id="special_items"
posref="TR TL"
posparent="bag_items"
y="0"
x="2"
wmargin="8"
hardtext="uiSpecialLabo"
tooltip="uiSpecialLabo"
onclick_l="proc"
params_l="select_special_items" />
<!-- Keys
<ctrl style="text_button_16"
id="keys"
posref="TR TL"
posparent="special_items"
y="0"
x="2"
wmargin="8"
hardtext="Keys"
tooltip="uiSpecialLabo"
onclick_l="open_title_help"
params_l="from=user" />-->
<group id="webitems" posref="TL TL" sizeref="wh" h="-45" w="0" x="-10" y="-25" active="0">
<group type="webig_html"
id="html"
url="http://app.ryzom.com/app_arcc/index.php?action=mItem_DisplayUserItems"
title_prefix=""
sizeref="wh"
x="10"
y="0"
w="0"
h="0"
background_color="0 0 0 255"
error_color="255 240 48 255"
link_color="240 155 100 255"
text_color="210 210 210 255"
h1_color="255 255 255 255"
h2_color="255 255 255 255"
h3_color="255 255 255 255"
h4_color="255 255 255 255"
h5_color="255 255 255 255"
h6_color="100 255 100 255"
text_font_size="10"
h1_font_size="20"
h2_font_size="18"
h3_font_size="16"
h4_font_size="14"
h5_font_size="12"
h6_font_size="10"
paragraph_begin_space="1"
multi_line_space_factor="0.25"
td_begin_space="16"
li_begin_space="4"
ul_begin_space="12"
li_indent="0"
ul_indent="30"
checkbox_bitmap_normal="w_slot_on.tga"
checkbox_bitmap_pushed="w_opacity_on.tga"
checkbox_bitmap_over=""
background_bitmap_view="black2"
home="http://app.ryzom.com/app_arcc/index.php?action=mItem_DisplayUserItems"
browse_next_time="true"
form_text_area_group="edit_box_widget_multiline">
<group type="list"
id="text_list"
fontsize="9"
posref="TL TL"
posparent="black"
x="9"
y="-2"
space="0"
sizeref="hw"
w="-4"
h="-4"
maxelements="2000" />
<ctrl style="skin_scroll"
id="scroll_bar" />
</group>
</group>
<instance template="tinv_nbslots_bulk_weight"
id="ibw"
x="0"
@ -632,7 +815,7 @@
<instance template="tinv_item_list"
id="iil"
inv_branch_nb="%max_bag_invslot"
y="-16"
y="-18"
sizeref="wh"
h="-16"
inv_branch="%bag"
@ -841,7 +1024,7 @@
xitem="2"
yitem="-2"
xtext="46"
ytext="-2"
ytext="0"
hspace="2"
array="false"
maxitem="%max_temp_invslot"

View file

@ -838,6 +838,8 @@ This MUST follow the Enum MISSION_DESC::TIconId
value="basic.ttf" /> -->
<param name="font"
value="ryzom.ttf" />
<param name="monospace_font"
value="ryzom_monospace.ttf" />
<param name="add_coef_font"
value="3" />
<param name="mul_coef_anim"

View file

@ -41,14 +41,14 @@
<view type="text" id="txt_log" x="0" posref="TM TM" posparent="window" hardtext="uiLogin" fontsize="10" y="-200" color="255 255 255 255" />
<view type="text" id="txt_pas" posparent="txt_log" posref="TM TM" hardtext="uiPassword" fontsize="10" y="-48" color="255 255 255 255" />
<instance template="edit_box_log" id="eb_login" posparent="txt_log" posref="BM TM" w="240" h="24" fontsize="12" x="0" y="-4"
text_ref="BM BM" text_y="-2"
<instance template="edit_box_log" id="eb_login" posparent="txt_log" posref="BM TM" w="240" h="26" fontsize="12" x="0" y="-4"
text_ref="BM BM" text_y="0"
reset_focus_on_hide="false" max_historic="0"
onenter="set_keyboard_focus" params="target=ui:login:checkpass: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" />
<instance template="edit_box_log" id="eb_password" posparent="txt_pas" posref="BM TM" w="240" h="24" fontsize="14" x="0" y="-4"
text_ref="BM BM" text_y="-2"
<instance template="edit_box_log" id="eb_password" posparent="txt_pas" posref="BM TM" w="240" h="26" fontsize="12" x="0" y="-4"
text_ref="BM BM" text_y="0"
reset_focus_on_hide="false" max_historic="0" entry_type="password"
onenter="on_login" params=""
prompt="" enter_loose_focus="true" multi_line="false" max_num_chars="20" color="135 243 28 255" />
@ -113,11 +113,11 @@
<!-- EXIT BUTTON -->
<ctrl style="log_button" id="but_exit" posparent="windows" posref="BR BR" y="6" onclick_l="login_quit" hardtext="uiExitLogin" />
<!-- Textes -->
<view type="text" id="title_res" posparent="res_win" posref="TL BL" y="0" color="255 255 255 255" fontsize="10" shadow="true" hardtext="uiLOGResolution" />
<view type="text" id="title_lod" posparent="lod_win" posref="TL BL" y="0" color="255 255 255 255" fontsize="10" shadow="true" hardtext="uiLOGLod" />
<view type="text" id="title_res" posparent="res_win" posref="TL BL" y="2" color="255 255 255 255" fontsize="10" shadow="true" hardtext="uiLOGResolution" />
<view type="text" id="title_lod" posparent="lod_win" posref="TL BL" y="2" color="255 255 255 255" fontsize="10" shadow="true" hardtext="uiLOGLod" />
<view type="text" id="res_value" posparent="res_win" posref="MM MM" y="-2" color="135 243 28 255" fontsize="10" shadow="true" hardtext="uiResValue" />
<view type="text" id="lod_value" posparent="lod_win" posref="MM MM" y="-2" color="135 243 28 255" fontsize="10" shadow="true" hardtext="uiLodValue" />
<view type="text" id="res_value" posparent="res_win" posref="MM MM" y="0" color="135 243 28 255" fontsize="10" shadow="true" hardtext="uiResValue" />
<view type="text" id="lod_value" posparent="lod_win" posref="MM MM" y="0" color="135 243 28 255" fontsize="10" shadow="true" hardtext="uiLodValue" />
<!-- Boutons Res -->
@ -187,7 +187,7 @@
<view type="bitmap" id="kami" posparent="window" posref="TR TR" x="-50" y="-24" texture="log_kami.tga" global_color="false" render_layer="-1" />
<!-- EXIT BUTTON -->
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-20" onclick_l="login_quit" hardtext="uiExitLogin" />
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-18" onclick_l="login_quit" hardtext="uiExitLogin" />
<!-- SERVER SELECTION -->
<instance template="server_box" id="server_win" posparent="window" posref="ML ML" w="612" h="338" x="8" y="0" />
@ -291,13 +291,13 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<instance template="log_box" id="window" y="-8" posref="MM MM" w="800" h="440" />
<!-- EXIT BUTTON -->
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-20" onclick_l="login_quit" hardtext="uiExitLogin" />
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-18" onclick_l="login_quit" hardtext="uiExitLogin" />
<!-- Window -->
<instance template="server_box" id="check_win" posparent="window" posref="MM MM" w="600" h="128" x="0" y="0" />
<!-- Textes -->
<!-- Texts -->
<view type="text" id="title" posparent="check_win" posref="TM BM" y="8" color="255 255 255 255"
fontsize="12" shadow="true" hardtext="uiOnChecking" />
@ -346,7 +346,7 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<instance template="log_box" id="window" y="-8" posref="MM MM" w="800" h="440" />
<!-- EXIT BUTTON -->
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-20" onclick_l="login_quit" hardtext="uiExitLogin" />
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-18" onclick_l="login_quit" hardtext="uiExitLogin" />
<!-- Window -->
<instance template="server_box" id="global_win" posparent="bl" posref="TM TM" w="400" h="22" x="-14" y="-240" />
@ -354,19 +354,19 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<instance template="server_box" id="opt_win" posparent="nonopt_win" posref="BM TM" w="400" h="206" y="-30" />
<!-- Textes -->
<view type="text" id="title" posparent="global_win" posref="TM BM" y="24" color="255 255 255 255"
<view type="text" id="title" posparent="global_win" posref="TM BM" y="2" color="255 255 255 255"
fontsize="12" shadow="true" hardtext="uiOnPatchDetail" />
<view type="text" id="opt_txt" posparent="opt_win" posref="TL BL" y="1" color="255 255 255 255"
fontsize="10" shadow="true" hardtext="uiOnPatchOpt" />
<group id="global_patch" w="382" h="22" posparent="global_win" posref="MM MM" >
<view type="text" id="name" posref="BL BL" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="uiTotalPatch" />
<view type="text" id="size" posref="BR BR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext="...Kbs" />
<view type="text" id="name" posref="ML ML" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="uiTotalPatch" />
<view type="text" id="size" posref="MR MR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext="...Kbs" />
</group>
<group id="nonopt_patch" w="382" h="22" posparent="nonopt_win" posref="MM MM" >
<view type="text" id="name" posref="BL BL" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="uiRequiredFiles" />
<view type="text" id="size" posref="BR BR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext="...Kbs" />
<view type="text" id="name" posref="ML ML" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="uiRequiredFiles" />
<view type="text" id="size" posref="MR MR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext="...Kbs" />
</group>
<!-- Categories -->
@ -403,7 +403,7 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<instance template="log_box" id="window" y="-8" posref="MM MM" w="800" h="440" />
<!-- EXIT BUTTON -->
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-20" onclick_l="login_quit" hardtext="uiExitLogin" />
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-18" onclick_l="login_quit" hardtext="uiExitLogin" />
<!-- patch -->
@ -412,12 +412,12 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<link expr="eq(@UI:VARIABLES:SCREEN,4)" target="global_win:active,patch_win:active"/>
<group id="global_patch" w="582" h="22" posparent="global_win" posref="MM MM" >
<view type="text" id="name" posref="BL BL" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="TOTAL PATCH" />
<view type="text" id="size" posref="BR BR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext=".../...Kbs" />
<view type="text" id="name" posref="ML ML" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="uiTotalPatch" />
<view type="text" id="size" posref="MR MR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext=".../...Kbs" />
</group>
<link expr="eq(@UI:VARIABLES:SCREEN,4)" target="global_patch:active"/>
<view type="text" id="progress" posref="TL TL" posparent="patch_win" fontsize="12" x="8" y="-8" color="135 243 28 255" shadow="true"/>
<view type="text" id="progress" posref="TL TL" posparent="patch_win" fontsize="12" x="8" y="-4" color="135 243 28 255" shadow="true"/>
<view type="text" id="state" posparent="progress" posref="TR TL" w="520" x="4" y="0" line_maxw="520" color="135 243 28 255"
fontsize="12" shadow="true" multi_line="true" multi_line_space="0" case_mode="%case_normal"/>
<link expr="eq(@UI:VARIABLES:SCREEN,4)" target="progress:active,state:active"/>
@ -434,9 +434,9 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<!-- Release Note -->
<instance template="server_box" id="release_win" posparent="bl" posref="TM TM" w="600" h="324" x="-14" y="-282" />
<instance template="server_box" id="release_win" posparent="bl" posref="TM TM" w="600" h="324" x="-14" y="-282" />
<view type="text" id="release_title" posref="TM BM" posparent="release_win" fontsize="10" y="-2" color="255 255 255 255"
<view type="text" id="release_title" posref="TM BM" posparent="release_win" fontsize="10" y="0" color="255 255 255 255"
hardtext="uiOnRelease" shadow="true"/>
<!--
@ -511,7 +511,7 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<instance template="log_box" id="window" y="-8" posref="MM MM" w="800" h="440" />
<!-- EXIT BUTTON -->
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-20" onclick_l="login_quit" hardtext="uiExitLogin" />
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-18" onclick_l="login_quit" hardtext="uiExitLogin" />
<!-- WINDOW -->
<instance template="server_box" id="eula_win" posparent="window" posref="MM MM" w="612" h="338" x="-24" y="0" />
@ -556,7 +556,7 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<instance template="log_box" id="window" y="-8" posref="MM MM" w="800" h="440" />
<!-- EXIT BUTTON -->
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-20" onclick_l="login_quit" hardtext="uiExitLogin" />
<ctrl style="log_button" id="but_exit" posparent="window" posref="TR TR" y="-18" onclick_l="login_quit" hardtext="uiExitLogin" />
<!-- Window -->
@ -626,7 +626,7 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
</group>
</template>
<!-- Page that show the result of data scanning -->
<!-- Page that allows to create an account -->
<group id="create_account" posref="MM MM" w="1024" h="768" active="false" >
<group id="content" x="0" y="0" w="1024" h="768" posref="TL TL" >
@ -647,8 +647,8 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<!-- login -->
<view type="text" id="txt_log" posref="TL TL" hardtext="uiUsername" fontsize="12" 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"
text_ref="BM BM" text_y="-2"
<instance template="edit_box_log" id="eb_login" posparent="txt_log" posref="BL BL" w="250" h="26" fontsize="12" x="200" y="0"
text_ref="BM BM" text_y="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"
prompt="" enter_loose_focus="true" multi_line="false" max_num_chars="12" color="135 243 28 255" />
@ -656,7 +656,7 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<!-- 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" />
<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="250" h="26" fontsize="12" x="200" y="0"
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"
onenter="set_keyboard_focus" params="target=ui:login:create_account:content:submit_gr:eb_confirm_password:eb|select_all=false"
@ -665,7 +665,7 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<!-- 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" />
<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="250" h="26" fontsize="12" x="200" y="0"
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"
onenter="set_keyboard_focus" params="target=ui:login:create_account:content:submit_gr:eb_email:eb|select_all=false"
@ -674,8 +674,8 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<!-- 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" />
<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"
<instance template="edit_box_log" id="eb_email" posparent="txt_email" posref="BL BL" w="250" h="26" fontsize="12" x="200" y="0"
text_ref="BM BM" text_y="0"
on_focus="create_account_rules" on_focus_params="rules_email" reset_focus_on_hide="false" max_historic="0"
onenter="" params=""
prompt="" enter_loose_focus="true" multi_line="false" max_num_chars="254" color="135 243 28 255" />

View file

@ -63,7 +63,7 @@
</template>
<template name="edit_box_log" posref="TL TL" text_x="0" text_y="-1" text_ref="BL BL" multi_line="false" x="0" y="0" w="0" h="0"
<template name="edit_box_log" posref="TL TL" text_x="0" text_y="0" text_ref="BL BL" multi_line="false" x="0" y="0" w="0" h="0"
id="eb" posparent="parent" onenter="chat_box_entry" params="" reset_focus_on_hide="true" on_focus="" on_focus_params=""
enter_loose_focus="true" prompt="&gt;"
enter_recover_focus="true"
@ -100,7 +100,7 @@
</template>
<template name="edit_box_widget_multiline" posref="TL TL" text_x="0" text_y="-1" text_ref="BL BL" child_resize_h="true" multi_line="true" x="0" y="0" w="0" h="0"
<template name="edit_box_widget_multiline" posref="TL TL" text_x="0" text_y="0" text_ref="BL BL" child_resize_h="true" multi_line="true" x="0" y="0" w="0" h="0"
sizeref="" id="eb" posparent="parent" onenter="chat_box_entry" params="" reset_focus_on_hide="true"
enter_loose_focus="true" prompt="&gt;"
enter_recover_focus="true"
@ -111,17 +111,20 @@
entry_type="text"
keep="true"
max_historic="40"
fontsize="10"
fontsize="10"
fontweight=""
fontstyle=""
backup_father_container_pos="false"
want_return="false"
color="255 255 255 255"
sizeref_eb="w"
render_layer="0"
multi_min_line="0"
>
<group id="#id" posref="#posref" x="#x" y="#y" posparent="#posparent" child_resize_h="#child_resize_h" sizeref="#sizeref" w="#w" h="#h" render_layer="#render_layer">
<group type="edit_box" sizeref="#sizeref_eb" w="-16" id="eb" posref="TL TL" x="8" y="-8" child_resize_h="#child_resize_h" onenter="#onenter" params="#params" onchange="#onchange" onchange_params="#onchange_params" max_num_chars="#max_num_chars" prompt="#prompt" enter_loose_focus="#enter_loose_focus" enter_recover_focus="#enter_recover_focus" entry_type="#entry_type" reset_focus_on_hide="#reset_focus_on_hide" menu_r="#menu_r" max_historic="#max_historic" want_return="#want_return" backup_father_container_pos="#backup_father_container_pos" render_layer="#render_layer">
<view type="bitmap" id="bg" scale="true" sizeref="hw" h="0" w="0" texture="log_eb_m.tga" inherit_gc_alpha="false" render_layer="#render_layer"/>
<view id="edit_text" type="text" x="#text_x" y="#text_y" posref="#text_ref" multi_line="#multi_line" multi_line_space="0" fontsize="#fontsize" color="#color" shadow="true" hardtext="" global_color="false" render_layer="#render_layer"/>
<view id="edit_text" type="text" x="#text_x" y="#text_y" posref="#text_ref" multi_line="#multi_line" multi_line_space="0" multi_min_line="#multi_min_line" fontsize="#fontsize" color="#color" fontweight="#fontweight" fontstyle="#fontstyle" shadow="true" hardtext="" global_color="false" render_layer="#render_layer"/>
</group>
<!-- border around the list -->
@ -138,7 +141,7 @@
<!-- Alternate look for multi line input -->
<template name="edit_box_widget_multiline_2" posref="TL TL" text_x="0" text_y="-1" text_ref="BL BL" child_resize_h="true" multi_line="true" x="0" y="0" w="0" h="0"
<template name="edit_box_widget_multiline_2" posref="TL TL" text_x="0" text_y="0" text_ref="BL BL" child_resize_h="true" multi_line="true" x="0" y="0" w="0" h="0"
sizeref="" id="eb" posparent="parent" onenter="chat_box_entry" params="" reset_focus_on_hide="true"
enter_loose_focus="true" prompt="&gt;"
enter_recover_focus="true"
@ -179,7 +182,7 @@
<style style="log_button" type="text_button" button_type="push_button"
tx_normal="log_but" tx_pushed="log_but_over" tx_over="log_but_over" wmargin="48"
color="255 255 255 255" col_over="255 255 255 255" col_pushed="255 255 255 255"
text_y="-3" fontsize="10" shadow="true"
text_y="0" fontsize="10" shadow="true"
text_color_normal="255 255 255 160"
text_color_pushed="255 255 255 255"
text_color_over="255 255 255 255"
@ -192,7 +195,7 @@
<style style="log_std_but" type="text_button" button_type="push_button"
tx_normal="but" tx_pushed="but" tx_over="but_over" wmargin="16"
color="255 255 255 160" col_over="255 255 255 255" col_pushed="255 255 255 255"
text_y="-3" fontsize="10" shadow="true"
text_y="-1" fontsize="10" shadow="true"
text_color_normal="135 243 28 160"
text_color_pushed="135 243 28 255"
text_color_over="135 243 28 255"
@ -229,7 +232,7 @@
<style style="text_button_16" type="text_button" button_type="push_button"
tx_normal="w_text_button_normal" tx_pushed="w_text_button_pushed" tx_over="w_text_button_over"
global_color_normal="true" global_color_over="true" global_color_pushed="true"
text_y="-2" fontsize="10" shadow="true" case_mode="%case_upper" wmargin="8"
text_y="0" fontsize="10" shadow="true" case_mode="%case_upper" wmargin="8"
text_color_normal="255 255 255 128" text_color_pushed="255 255 255 255" text_color_over="255 255 255 255" />
@ -382,7 +385,7 @@
<!-- * EDIT BOX WIDGET * -->
<!-- ********************* -->
<template name="edit_box_widget" posref="TL TL" text_x="0" text_y="-1" text_ref="BL BL" child_resize_h="true" multi_line="false" x="0" y="0" w="0" h="0"
<template name="edit_box_widget" posref="TL TL" text_x="0" text_y="0" text_ref="BL BL" child_resize_h="true" multi_line="false" x="0" y="0" w="0" h="0"
sizeref="" id="eb" posparent="parent" onenter="chat_box_entry" params="" reset_focus_on_hide="true"
enter_loose_focus="true" prompt="&gt;"
enter_recover_focus="true"
@ -420,7 +423,7 @@
</template>
<!-- alternate look for edit box -->
<template name="edit_box_widget_2" posref="TL TL" text_x="0" text_y="-1" text_ref="BL BL" child_resize_h="true" multi_line="false" x="0" y="0" w="0" h="0"
<template name="edit_box_widget_2" posref="TL TL" text_x="0" text_y="0" text_ref="BL BL" child_resize_h="true" multi_line="false" x="0" y="0" w="0" h="0"
sizeref="" id="eb" posparent="parent" onenter="chat_box_entry" params="" reset_focus_on_hide="true"
enter_loose_focus="true" prompt="&gt;"
enter_recover_focus="true"
@ -595,8 +598,8 @@
<template name="button_ok_cancel" id="ok_cancel" ok_text="uittOK" cancel_text="uittCancel" posparent="parent" posref="BM TM"
onclick_ok="" onclick_ok_param="" onclick_cancel="" onclick_cancel_param="" x="0" y="0" keep="true" >
<group id="#id" posparent="#posparent" posref="#posref" child_resize_w="true" child_resize_h="true" x="#x" y="#y">
<ctrl style="button_ok" x="0" y="0" posref="TL TL" text_y="-2" onclick_l="#onclick_ok" params_l="#onclick_ok_param" hardtext="#ok_text" />
<ctrl style="button_cancel" x="4" posparent="ok" text_y="-2" posref ="TR TL" onclick_l="#onclick_cancel" params_l="#onclick_cancel_param" hardtext="#cancel_text" />
<ctrl style="button_ok" x="0" y="0" posref="TL TL" text_y="0" onclick_l="#onclick_ok" params_l="#onclick_ok_param" hardtext="#ok_text" />
<ctrl style="button_cancel" x="4" posparent="ok" text_y="0" posref ="TR TL" onclick_l="#onclick_cancel" params_l="#onclick_cancel_param" hardtext="#cancel_text" />
</group>
</template>
@ -611,7 +614,7 @@
<template name="html_text_button" id="" text="" posparent="parent" posref="TL TL"
onclick="" onclick_param="" x="0" y="0" keep="true" active="true" wmin="0">
<group type="html_input_offset" y_offset="-8" id="#id" posparent="#posparent" posref="#posref" child_resize_w="true" child_resize_h="true" x="#x" y="#y" active="#active">
<ctrl style="log_spe_but" id="button" wmin="#wmin" x="0" y="0" posref="TL TL" text_y="-2" onclick_l="#onclick" params_l="#onclick_param" hardtext="#text" color="255 255 255 200"/>
<ctrl style="log_spe_but" id="button" wmin="#wmin" x="0" y="0" posref="TL TL" text_y="0" onclick_l="#onclick" params_l="#onclick_param" hardtext="#text" color="255 255 255 200"/>
</group>
</template>
@ -620,7 +623,7 @@
<template name="html_text_button_look2" id="" text="" posparent="parent" posref="TL TL"
onclick="" onclick_param="" x="0" y="0" keep="true" >
<group type="html_input_offset" y_offset="-8" id="#id" posparent="#posparent" posref="#posref" child_resize_w="true" child_resize_h="true" x="#x" y="#y">
<ctrl style="log_button" id="button" wmin="0" x="0" y="0" posref="TL TL" text_y="-2" onclick_l="#onclick" params_l="#onclick_param" hardtext="#text" color="255 255 255 200"/>
<ctrl style="log_button" id="button" wmin="0" x="0" y="0" posref="TL TL" text_y="0" onclick_l="#onclick" params_l="#onclick_param" hardtext="#text" color="255 255 255 200"/>
</group>
</template>
@ -629,7 +632,7 @@
<template name="html_text_button_look3" id="" text="" posparent="parent" posref="TL TL"
onclick="" onclick_param="" x="0" y="0" keep="true" >
<group type="html_input_offset" y_offset="-8" id="#id" posparent="#posparent" posref="#posref" child_resize_w="true" child_resize_h="true" x="#x" y="#y">
<ctrl style="server_note" id="button" wmin="0" x="0" y="0" posref="TL TL" text_y="-2" onclick_l="#onclick" params_l="#onclick_param" hardtext="#text" color="255 255 255 200"/>
<ctrl style="server_note" id="button" wmin="0" x="0" y="0" posref="TL TL" text_y="0" onclick_l="#onclick" params_l="#onclick_param" hardtext="#text" color="255 255 255 200"/>
</group>
</template>

View file

@ -403,12 +403,12 @@
onclick_l="new_macro_new_cmd" />
<group id="cmds" type="list" posref="BR TR" posparent="sep" x="0" y="-22" over="true" >
<!--
<instance template="macro_command" id="cmd1" posref="TL TL" />
<instance template="macro_command" id="cmd2" posparent="cmd1" posref="BL TL" />
-->
<group id="cmds" x="0" y="-22" over="true" sizeref="w" posref="TL TL" posparent="sep" child_resize_h="true" child_resize_hmargin="4">
<group id="macros" x="10" y="-4" sizeref="w" posref="TL TL" child_resize_h="true" max_h="300" >
<group id="list" type="list" x="0" y="0" posref="TL TL" />
</group>
<ctrl style="skin_scroll" id="sv" posref="TL TL" y="-4" target="macros" />
</group>
<instance template="button_ok_cancel" posparent="cmds" posref="BR TR" x="0" y="-4"
onclick_ok="new_macro_ok"
@ -659,4 +659,4 @@
<tree node="keys_r2ed"/>
</tree>
</interface_config>
</interface_config>

View file

@ -192,8 +192,8 @@
<ctrl type="button" id="center" button_type="push_button" posparent="zoom_out" posref="TR TL" y="0" x="4" tx_normal="w_center_map.tga" tx_pushed="W_button_16_over.tga" tx_over="W_button_16_over.tga"
onclick_l="map_center" params_l="map=ui:interface:map:content:map_content:actual_map" tooltip="uittCenter" />
<view type="text" id="time" x="12" y="-1" posparent="center" posref="MR ML" color="255 255 255 255" fontsize="12" shadow="true" hardtext="" />
<view type="text" id="weather" x="8" y="-18" posref="TL TL" color="255 255 255 255" fontsize="12" shadow="true" hardtext="" />
<view type="text" id="time" x="12" y="0" posparent="center" posref="MR ML" color="255 255 255 255" fontsize="12" shadow="true" hardtext="" />
<view type="text" id="weather" x="8" y="-16" posref="TL TL" color="255 255 255 255" fontsize="12" shadow="true" hardtext="" />
<instance template="box_widget" id="back" posref="TL TL" sizeref="wh" w="-2" h="-32" x="1" y="-32" render_layer="0" />
@ -383,7 +383,7 @@
<ctrl style="button_ok" id="respawn" posparent="center" x="16" posref="TR TL" onclick_l="respawn_map_valid" params_l="map=ui:interface:respawn_map:content:map_content:actual_map" hardtext="uiRespawn"/>
<group id="timer" posparent="respawn" posref="TR TL" x="8" y="-5" child_resize_h="true" child_resize_w="true">
<group id="timer" posparent="respawn" posref="TR TL" x="8" y="-2" child_resize_h="true" child_resize_w="true">
<view type="bar" id="b" ultra_mini="true" posref="TL TL" value="%player_hp_percent" range="%player_percent_max" color="255 255 255 255" color_negative="255 255 255 255" />
<view type="text" id="t" posparent="b" posref="TR TL" x="4" color="255 255 255 255" fontsize="8" shadow="true" hardtext="" />
</group>

View file

@ -1294,7 +1294,7 @@
max_chars_size="252" menu_r="" max_historic="" entry_type="alpha">
<instance template="job_border" id="bord" posref="MM MM" />
<view type="text" id="edit_text" x="0" y="-2" posref="MM MM" multi_line="false" render_layer="4"
<view type="text" id="edit_text" x="0" y="0" posref="MM MM" multi_line="false" render_layer="4"
fontsize="20" shadow="true" global_color="false" case="%case_first_string_letter_up" />
</group>
@ -1740,7 +1740,7 @@
</proc>
<group type="modal" id="appear_infos1" x="0" y="0" w="824" h="768" posref="TR TR" render_layer="1"
<group type="modal" id="appear_infos1" x="74" y="0" w="824" h="768" posref="MM MM" render_layer="1"
mouse_pos="false" escapable="false" exit_click_out="true" savable="false"
display="false"
>
@ -1765,7 +1765,7 @@
onclick_l="proc" params_l="proc_charsel_infos"/>
</group>
<group type="modal" id="appear_infos2" x="-74" y="-68" w="698" h="652" posref="TR TR" render_layer="1"
<group type="modal" id="appear_infos2" x="-74" y="-68" w="698" h="652" posref="MM MM" render_layer="1"
mouse_pos="false" escapable="false" exit_click_out="true"
display="false"
>
@ -1778,7 +1778,7 @@
onclick_l="proc" params_l="proc_charsel_infos"/>
</group>
<group type="modal" id="appear_infos3" x="-74" y="-68" w="698" h="652" posref="TR TR" render_layer="1"
<group type="modal" id="appear_infos3" x="-74" y="-68" w="698" h="652" posref="MM MM" render_layer="1"
mouse_pos="false" escapable="false" exit_click_out="true"
display="false"
>
@ -1791,7 +1791,7 @@
onclick_l="proc" params_l="proc_charsel_infos"/>
</group>
<group type="modal" id="appear_infos4" x="-74" y="-68" w="698" h="652" posref="TR TR" render_layer="1"
<group type="modal" id="appear_infos4" x="-74" y="-68" w="698" h="652" posref="MM MM" render_layer="1"
mouse_pos="false" escapable="false" exit_click_out="true"
display="false"
>
@ -1804,7 +1804,7 @@
onclick_l="proc" params_l="proc_charsel_infos"/>
</group>
<group type="modal" id="appear_infos5" x="-74" y="-68" w="698" h="652" posref="TR TR" render_layer="1"
<group type="modal" id="appear_infos5" x="-74" y="-68" w="698" h="652" posref="MM MM" render_layer="1"
mouse_pos="false" escapable="false" exit_click_out="true"
display="false"
>
@ -2049,19 +2049,19 @@
<instance template="outgame_black_back" id="back" />
</group>
<ctrl style="opt_button" id="fyros_but" posref="TL TL" x="60" y="-88" hardtext="uiCP_Specie_Fyros"
<ctrl style="opt_button" id="fyros_but" posref="TL TL" x="60" y="-88" text_y="15" hardtext="uiCP_Specie_Fyros"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|0"/>
<ctrl style="opt_button" id="matis_but" posparent="fyros_but" posref="BL TL" hardtext="uiCP_Specie_Matis"
<ctrl style="opt_button" id="matis_but" posparent="fyros_but" posref="BL TL" text_y="15" hardtext="uiCP_Specie_Matis"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|1"/>
<ctrl style="opt_button" id="tryker_but" posparent="matis_but" posref="BL TL" hardtext="uiCP_Specie_Tryker"
<ctrl style="opt_button" id="tryker_but" posparent="matis_but" posref="BL TL" text_y="15" hardtext="uiCP_Specie_Tryker"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|2"/>
<ctrl style="opt_button" id="zorai_but" posparent="tryker_but" posref="BL TL" hardtext="uiCP_Specie_Zorai"
<ctrl style="opt_button" id="zorai_but" posparent="tryker_but" posref="BL TL" text_y="15" hardtext="uiCP_Specie_Zorai"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|3"/>
@ -2091,11 +2091,11 @@
<instance template="outgame_black_back" id="back" />
</group>
<ctrl style="opt_button" id="male_but" posref="TL TL" x="20" y="-88" hardtext="uiCP_Sex_Male"
<ctrl style="opt_button" id="male_but" posref="TL TL" x="20" y="-88" text_y="15" hardtext="uiCP_Sex_Male"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_sex|0"/>
<ctrl style="opt_button" id="female_but" posparent="male_but" posref="BL TL" hardtext="uiCP_Sex_Female"
<ctrl style="opt_button" id="female_but" posparent="male_but" posref="BL TL" text_y="15" hardtext="uiCP_Sex_Female"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_sex|1"/>
@ -2117,7 +2117,7 @@
<!-- Height -->
<instance template="slider" id="bk1" posref="TL TL" x="20" y="-88" w="180" h="48" />
<view type="text" id="title1" posparent="bk1" posref="TL TL" x="16" y="2" hardtext="uiHeight" color="255 255 255 255" fontsize="10"/>
<view type="text" id="title1" posparent="bk1" posref="TL TL" x="16" y="4" hardtext="uiHeight" color="255 255 255 255" fontsize="10"/>
<ctrl type="scroll" id="scroll1" posparent="bk1" posref="MM MM" x="0" y="0" w="140" h="32"
vertical="false" align="L" min="0" max="14" value="UI:TEMP:CHAR3D:VPC:CHARACTERHEIGHT" tracksize="40"
onscrollend="proc" params="CP_Camera_Face"
@ -2125,7 +2125,7 @@
<!-- Torso -->
<instance template="slider" id="bk2" posparent="bk1" posref="BL TL" w="180" h="48" />
<view type="text" id="title2" posparent="bk2" posref="TL TL" x="16" y="2" hardtext="uiTorso" color="255 255 255 255" fontsize="10"/>
<view type="text" id="title2" posparent="bk2" posref="TL TL" x="16" y="4" hardtext="uiTorso" color="255 255 255 255" fontsize="10"/>
<ctrl type="scroll" id="scroll2" posparent="bk2" posref="MM MM" x="0" y="0" w="140" h="32"
vertical="false" align="L" min="0" max="14" value="UI:TEMP:CHAR3D:VPC:TORSOWIDTH" tracksize="40"
onscroll="" params=""
@ -2133,7 +2133,7 @@
<!-- Arms -->
<instance template="slider" id="bk3" posparent="bk2" posref="BL TL" w="180" h="48" />
<view type="text" id="title3" posparent="bk3" posref="TL TL" x="16" y="2" hardtext="uiArms" color="255 255 255 255" fontsize="10"/>
<view type="text" id="title3" posparent="bk3" posref="TL TL" x="16" y="4" hardtext="uiArms" color="255 255 255 255" fontsize="10"/>
<ctrl type="scroll" id="scroll3" posparent="bk3" posref="MM MM" x="0" y="0" w="140" h="32"
vertical="false" align="L" min="0" max="14" value="UI:TEMP:CHAR3D:VPC:ARMSWIDTH" tracksize="40"
onscroll="" params=""
@ -2141,7 +2141,7 @@
<!-- Legs -->
<instance template="slider" id="bk4" posparent="bk3" posref="BL TL" w="180" h="48" />
<view type="text" id="title4" posparent="bk4" posref="TL TL" x="16" y="2" hardtext="uiLegs" color="255 255 255 255" fontsize="10"/>
<view type="text" id="title4" posparent="bk4" posref="TL TL" x="16" y="4" hardtext="uiLegs" color="255 255 255 255" fontsize="10"/>
<ctrl type="scroll" id="scroll4" posparent="bk4" posref="MM MM" x="0" y="0" w="140" h="32"
vertical="false" align="L" min="0" max="14" value="UI:TEMP:CHAR3D:VPC:LEGSWIDTH" tracksize="40"
onscroll="" params=""
@ -2150,7 +2150,7 @@
<!-- Breast -->
<instance template="slider" id="bk5" posparent="bk4" posref="BL TL" w="180" h="48" active="false" />
<view type="text" id="title5" posparent="bk5" posref="TL TL" x="16" y="2" hardtext="uiBreasts" color="255 255 255 255" fontsize="10" active="false" />
<view type="text" id="title5" posparent="bk5" posref="TL TL" x="16" y="4" hardtext="uiBreasts" color="255 255 255 255" fontsize="10" active="false" />
<ctrl type="scroll" id="scroll5" posparent="bk5" posref="MM MM" x="0" y="0" w="140" h="32"
vertical="false" align="L" min="0" max="14" value="UI:TEMP:CHAR3D:VPC:BREASTSIZE" tracksize="40"
onscroll="" params=""
@ -2216,14 +2216,14 @@
<!-- TITLES Des SLIDERS -->
<view type="text" id="face1" posparent="pos1" posref="TL TL" x="16" y="2" hardtext="uiFace1Fy" color="255 255 255 255" fontsize="11"/>
<view type="text" id="face2" posparent="pos2" posref="TL TL" x="16" y="2" hardtext="uiFace2Fy" color="255 255 255 255" fontsize="11"/>
<view type="text" id="face3" posparent="pos3" posref="TL TL" x="16" y="2" hardtext="uiFace3Fy" color="255 255 255 255" fontsize="11"/>
<view type="text" id="face4" posparent="pos4" posref="TL TL" x="16" y="2" hardtext="uiFace4Fy" color="255 255 255 255" fontsize="11"/>
<view type="text" id="face5" posparent="pos5" posref="TL TL" x="16" y="2" hardtext="uiFace5Fy" color="255 255 255 255" fontsize="11"/>
<view type="text" id="face6" posparent="pos6" posref="TL TL" x="16" y="2" hardtext="uiFace6Fy" color="255 255 255 255" fontsize="11"/>
<view type="text" id="face7" posparent="pos7" posref="TL TL" x="16" y="2" hardtext="uiFace7Fy" color="255 255 255 255" fontsize="11"/>
<view type="text" id="face8" posparent="pos8" posref="TL TL" x="16" y="2" hardtext="uiFace8Fy" color="255 255 255 255" fontsize="11"/>
<view type="text" id="face1" posparent="pos1" posref="TL TL" x="2" y="4" hardtext="uiFace1Fy" color="255 255 255 255" fontsize="10"/>
<view type="text" id="face2" posparent="pos2" posref="TL TL" x="2" y="4" hardtext="uiFace2Fy" color="255 255 255 255" fontsize="10"/>
<view type="text" id="face3" posparent="pos3" posref="TL TL" x="2" y="4" hardtext="uiFace3Fy" color="255 255 255 255" fontsize="10"/>
<view type="text" id="face4" posparent="pos4" posref="TL TL" x="2" y="4" hardtext="uiFace4Fy" color="255 255 255 255" fontsize="10"/>
<view type="text" id="face5" posparent="pos5" posref="TL TL" x="2" y="4" hardtext="uiFace5Fy" color="255 255 255 255" fontsize="10"/>
<view type="text" id="face6" posparent="pos6" posref="TL TL" x="2" y="4" hardtext="uiFace6Fy" color="255 255 255 255" fontsize="10"/>
<view type="text" id="face7" posparent="pos7" posref="TL TL" x="2" y="4" hardtext="uiFace7Fy" color="255 255 255 255" fontsize="10"/>
<view type="text" id="face8" posparent="pos8" posref="TL TL" x="2" y="4" hardtext="uiFace8Fy" color="255 255 255 255" fontsize="10"/>
<!--
<view type="bitmap" id="branch" posref="BL BL" texture="branch.tga" color="255 255 255 255" global_color="false" />
@ -2237,28 +2237,28 @@
<!-- HAIRCUT -->
<instance template="but_slider" id="haircut" posparent="pos1" posref="TL TL" x="-516" y="0" w="180" h="48" value="UI:TEMP:HAIRCUT" max="6" />
<view type="text" id="hair1" posparent="haircut" posref="TL TL" x="16" y="2" hardtext="uiHaircut" color="255 255 255 255" fontsize="11"/>
<view type="text" id="hair1" posparent="haircut" posref="TL TL" x="16" y="4" hardtext="uiHaircut" color="255 255 255 255" fontsize="10"/>
<ctrl type="scroll" id="hair2" posparent="haircut" posref="MM MM" x="0" y="0" w="140" h="32"
vertical="false" align="L" min="0" max="6" value="UI:TEMP:HAIRCUT" tracksize="40"
tx_topright="" tx_middle="slider_m.tga" tx_bottomleft=""/>
<!-- HAIR COLOR -->
<instance template="but_slider" id="haircolor" posparent="pos2" posref="TL TL" x="-516" y="0" w="180" h="48" value="UI:TEMP:CHAR3D:VPA:HATCOLOR" max="5" />
<view type="text" id="haircol1" posparent="haircolor" posref="TL TL" x="16" y="2" hardtext="uiHairColor" color="255 255 255 255" fontsize="11"/>
<view type="text" id="haircol1" posparent="haircolor" posref="TL TL" x="16" y="4" hardtext="uiHairColor" color="255 255 255 255" fontsize="10"/>
<ctrl type="scroll" id="haircol2" posparent="haircolor" posref="MM MM" x="0" y="0" w="140" h="32"
vertical="false" align="L" min="0" max="5" value="UI:TEMP:CHAR3D:VPA:HATCOLOR" tracksize="40"
tx_topright="" tx_middle="slider_m.tga" tx_bottomleft=""/>
<!-- TATOOS -->
<instance template="but_slider" id="tatoos" posparent="pos3" posref="TL TL" x="-516" y="0" w="180" h="48" value="UI:TEMP:CHAR3D:VPC:TATTOO" max="31" />
<view type="text" id="tatoo1" posparent="tatoos" posref="TL TL" x="16" y="2" hardtext="uiTatoos" color="255 255 255 255" fontsize="11"/>
<view type="text" id="tatoo1" posparent="tatoos" posref="TL TL" x="16" y="4" hardtext="uiTatoos" color="255 255 255 255" fontsize="10"/>
<ctrl type="scroll" id="tatoo2" posparent="tatoos" posref="MM MM" x="0" y="0" w="140" h="32"
vertical="false" align="L" min="0" max="31" value="UI:TEMP:CHAR3D:VPC:TATTOO" tracksize="40"
tx_topright="" tx_middle="slider_m.tga" tx_bottomleft=""/>
<!-- EYES -->
<instance template="but_slider" id="eyes" posparent="pos4" posref="TL TL" x="-516" y="0" w="180" h="48" value="UI:TEMP:CHAR3D:VPC:EYESCOLOR" max="7" />
<view type="text" id="eyes1" posparent="eyes" posref="TL TL" x="16" y="2" hardtext="uiEyes" color="255 255 255 255" fontsize="11"/>
<view type="text" id="eyes1" posparent="eyes" posref="TL TL" x="16" y="4" hardtext="uiEyes" color="255 255 255 255" fontsize="10"/>
<ctrl type="scroll" id="eyes2" posparent="eyes" posref="MM MM" x="0" y="0" w="140" h="32"
vertical="false" align="L" min="0" max="7" value="UI:TEMP:CHAR3D:VPC:EYESCOLOR" tracksize="40"
tx_topright="" tx_middle="slider_m.tga" tx_bottomleft=""/>
@ -2306,9 +2306,9 @@
</group>
<!-- Bonus 1 -->
<instance template="slider" id="bp1" posref="TL TL" x="20" y="-96" w="180" h="48" />
<view type="text" id="title1" posparent="bp1" posref="TL TL" x="16" y="2" hardtext="uiCP_BP1" color="255 255 255 255" fontsize="10"/>
<view type="text" id="info1" posparent="title1" posref="MR ML" x="0" y="1" hardtext="uiCP_JOB1" color="255 255 255 255" fontsize="11"/>
<instance template="slider" id="bp1" posref="TL TL" x="15" y="-90" w="180" h="48" />
<view type="text" id="title1" posparent="bp1" posref="TL TL" x="0" y="2" hardtext="uiCP_BP1" color="255 255 255 255" fontsize="10"/>
<view type="text" id="info1" posparent="title1" posref="MR ML" x="5" y="1" hardtext="uiCP_JOB1" color="255 255 255 255" fontsize="11"/>
<ctrl type="scroll" id="scroll1" posparent="bp1" posref="MM MM" x="0" y="0" w="140" h="32"
vertical="false" align="L" min="0" max="3" value="UI:TEMP:JOB_POINT1" tracksize="40"
tx_topright="" tx_middle="slider_m.tga" tx_bottomleft=""/>
@ -2335,13 +2335,13 @@
<view type="text" id="desc_title" posparent="icons_back" posref="TL BL" hardtext="uiCP_BP_Des" color="140 162 107 255" fontsize="13" x="0" y="4" />
<!-- Pack description -->
<view type="text" id="pack_F" posref="TR TL" hardtext="uiCP_Job_F1" fontsize="10" x="12" y="-10" posparent="icons_back"
<view type="text" id="pack_F" posref="TR TL" hardtext="uiCP_Job_F1" fontsize="10" x="12" y="-5" posparent="icons_back"
line_maxw="450" multi_line="true" multi_line_space="0"/>
<view type="text" id="pack_M" posref="TR TL" hardtext="uiCP_Job_M1" fontsize="10" x="12" y="-66" posparent="icons_back"
<view type="text" id="pack_M" posref="TR TL" hardtext="uiCP_Job_M1" fontsize="10" x="12" y="-61" posparent="icons_back"
line_maxw="450" multi_line="true" multi_line_space="0"/>
<view type="text" id="pack_G" posref="TR TL" hardtext="uiCP_Job_G1" fontsize="10" x="12" y="-122" posparent="icons_back"
<view type="text" id="pack_G" posref="TR TL" hardtext="uiCP_Job_G1" fontsize="10" x="12" y="-117" posparent="icons_back"
line_maxw="450" multi_line="true" multi_line_space="0"/>
<view type="text" id="pack_C" posref="TR TL" hardtext="uiCP_Job_C1" fontsize="10" x="12" y="-178" posparent="icons_back"
<view type="text" id="pack_C" posref="TR TL" hardtext="uiCP_Job_C1" fontsize="10" x="12" y="-173" posparent="icons_back"
line_maxw="450" multi_line="true" multi_line_space="0"/>
@ -2397,8 +2397,8 @@
<group id="result" posparent="desc" posref="TL TL" y="0" sizeref="w" h="96" >
<view type="text" id="title1" posref="TL TL" hardtext="uiCP_Title" color="140 162 107 255" fontsize="13" x="16" y="-12"/>
<view type="text" id="title2" posref="BR BL" hardtext="uiCP_Refugee" color="255 255 255 255" fontsize="15" x="0" posparent="title1" />
<view type="text" id="title1" posref="TL TL" hardtext="uiCP_Title" color="140 162 107 255" fontsize="13" x="16" y="-10"/>
<view type="text" id="title2" posref="BR BL" hardtext="uiCP_Refugee" color="255 255 255 255" fontsize="15" y="-2" x="0" posparent="title1" />
<view type="text" id="title3" posparent="title1" posref="BL TL" hardtext="uiCP_Pack" fontsize="13" color="140 162 107 255" y="-8"/>
<view type="text" id="res" posparent="title3" posref="TR TL" hardtext="uiCP_Res_F" fontsize="13" color="255 255 255 255" x="8" multi_line="true" multi_line_space="0" />
@ -2467,7 +2467,7 @@
<!-- TITLE -->
<group id="title" w="292" h="46" y="-6" x="-272" posref="TR TR">
<view type="text" id="title1" posref="TM TM" global_color="false" render_layer="2" fontsize="20" shadow="true" y="-4" hardtext="uiCP_title1"/>
<view type="text" id="title1" posref="TM TM" global_color="false" render_layer="2" fontsize="20" shadow="true" y="0" hardtext="uiCP_title1"/>
<view type="text" id="title2" posref="BM BM" global_color="false" render_layer="2" fontsize="20" shadow="true" y="0" hardtext="uiCP_creation"/>
</group>

View file

@ -25,6 +25,8 @@
value="basic.ttf" /> -->
<param name="font"
value="ryzom.ttf" />
<param name="monospace_font"
value="ryzom_monospace.ttf" />
<param name="add_coef_font"
value="0" />
<param name="mul_coef_anim"

View file

@ -628,7 +628,7 @@
<!-- TITLE -->
<group id="title" w="292" h="46" y="-6" x="-272" posref="TR TR">
<view type="text" id="title1" posref="TM TM" global_color="false" render_layer="2" fontsize="20" shadow="true" y="-4" hardtext="uiCP_title1"/>
<view type="text" id="title1" posref="TM TM" global_color="false" render_layer="2" fontsize="20" shadow="true" y="0" hardtext="uiCP_title1"/>
<view type="text" id="title2" posref="BM BM" global_color="false" render_layer="2" fontsize="20" shadow="true" y="0" hardtext="uiCP_selection"/>
</group>
@ -723,7 +723,7 @@
<group id="black" posref="BR BR" sizeref="hw" w="-16" h="-12" inherit_gc_alpha="true"/>
<view type="bitmap" id="black2" posparent="black" posref="MM MM" sizeref="wh" w="-2" h="-2" inherit_gc_alpha="true" scale="true" texture="blank.tga" global_color="false"/>
<group type="list" id="text_list" fontsize="9" posref="TL TL" posparent="black" x="2" y="-2" space="0" sizeref="hw" w="-4" h="-4" maxelements="2000"/>
<group type="list" id="text_list" fontsize="9" posref="TL TL" posparent="black" x="2" y="0" space="0" sizeref="hw" w="-4" h="-4" maxelements="2000"/>
<ctrl style="skin_scroll" id="scroll_bar" />
</group>
</group>
@ -778,7 +778,7 @@
<group type="menu" id="r2ed_editor_menu"
options="menu_back"
text_y="-2"
text_y="0"
color="255 255 255 255"
fontsize="16"
shadow="true"

View file

@ -83,7 +83,7 @@
tx_normal="qh_off" tx_pushed="qh_on" tx_over="qh_off" wmin="80" wmargin="40"
global_color_normal="false" global_color_over="false" global_color_pushed="false"
color="255 255 255 255" col_over="255 255 255 0" col_pushed="255 255 255 255"
text_y="-1" fontsize="13" shadow="true"
text_y="1" fontsize="13" shadow="true"
text_color_normal="222 201 182 255"
text_color_pushed="222 201 182 255"
text_color_over="255 255 255 255"

View file

@ -25,6 +25,8 @@
value="outgame.ttf" /> -->
<param name="font"
value="ryzom.ttf" />
<param name="monospace_font"
value="ryzom_monospace.ttf" />
<param name="add_coef_font"
value="3" />
<param name="mul_coef_anim"

Some files were not shown because too many files have changed in this diff Show more