From 2e6361ebfe00be4bf72934b8bff379665db42840 Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 22 Oct 2012 14:56:25 +0200 Subject: [PATCH 01/63] Fixed: revision.h error when hg executable not found --- code/CMakeModules/GetRevision.cmake | 31 ++++++++++++--------- code/CMakeModules/nel.cmake | 43 +++++++++++++++++++++++------ 2 files changed, 53 insertions(+), 21 deletions(-) diff --git a/code/CMakeModules/GetRevision.cmake b/code/CMakeModules/GetRevision.cmake index 52f443d5f..18e997af2 100644 --- a/code/CMakeModules/GetRevision.cmake +++ b/code/CMakeModules/GetRevision.cmake @@ -3,20 +3,24 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.3) # ROOT_DIR should be set to root of the repository (where to find the .svn or .hg directory) # SOURCE_DIR should be set to root of your code (where to find CMakeLists.txt) -# Replace spaces by semi-columns -IF(CMAKE_MODULE_PATH) - STRING(REPLACE " " ";" CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) -ENDIF(CMAKE_MODULE_PATH) +IF(SOURCE_DIR) + # Replace spaces by semi-columns + IF(CMAKE_MODULE_PATH) + STRING(REPLACE " " ";" CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) + ENDIF(CMAKE_MODULE_PATH) -SET(CMAKE_MODULE_PATH ${SOURCE_DIR}/CMakeModules ${CMAKE_MODULE_PATH}) + SET(CMAKE_MODULE_PATH ${SOURCE_DIR}/CMakeModules ${CMAKE_MODULE_PATH}) -IF(NOT ROOT_DIR AND SOURCE_DIR) - SET(ROOT_DIR ${SOURCE_DIR}) -ENDIF(NOT ROOT_DIR AND SOURCE_DIR) + IF(NOT ROOT_DIR AND SOURCE_DIR) + SET(ROOT_DIR ${SOURCE_DIR}) + ENDIF(NOT ROOT_DIR AND SOURCE_DIR) -IF(NOT SOURCE_DIR AND ROOT_DIR) - SET(SOURCE_DIR ${ROOT_DIR}) -ENDIF(NOT SOURCE_DIR AND ROOT_DIR) + IF(NOT SOURCE_DIR AND ROOT_DIR) + SET(SOURCE_DIR ${ROOT_DIR}) + ENDIF(NOT SOURCE_DIR AND ROOT_DIR) +ELSE(SOURCE_DIR) + SET(ROOT_DIR ${CMAKE_SOURCE_DIR}) +ENDIF(SOURCE_DIR) MACRO(NOW RESULT) IF (WIN32) @@ -53,10 +57,11 @@ IF(EXISTS "${ROOT_DIR}/.hg/") ENDIF(MERCURIAL_FOUND) ENDIF(EXISTS "${ROOT_DIR}/.hg/") -IF(DEFINED REVISION) +IF(SOURCE_DIR AND DEFINED REVISION) IF(EXISTS ${SOURCE_DIR}/revision.h.in) + MESSAGE(STATUS "Revision: ${REVISION}") NOW(BUILD_DATE) CONFIGURE_FILE(${SOURCE_DIR}/revision.h.in revision.h.txt) EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy revision.h.txt revision.h) # copy_if_different ENDIF(EXISTS ${SOURCE_DIR}/revision.h.in) -ENDIF(DEFINED REVISION) +ENDIF(SOURCE_DIR AND DEFINED REVISION) diff --git a/code/CMakeModules/nel.cmake b/code/CMakeModules/nel.cmake index b8f74e4de..e1b204690 100644 --- a/code/CMakeModules/nel.cmake +++ b/code/CMakeModules/nel.cmake @@ -22,22 +22,39 @@ ENDMACRO(NL_GEN_PC) ### MACRO(NL_GEN_REVISION_H) IF(EXISTS ${CMAKE_SOURCE_DIR}/revision.h.in) - INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}) - ADD_DEFINITIONS(-DHAVE_REVISION_H) - SET(HAVE_REVISION_H ON) + SET(TOOL_FOUND OFF) + + IF(EXISTS "${CMAKE_SOURCE_DIR}/../.svn/") + FIND_PACKAGE(Subversion) + + IF(SUBVERSION_FOUND) + SET(TOOL_FOUND ON) + ENDIF(SUBVERSION_FOUND) + ENDIF(EXISTS "${CMAKE_SOURCE_DIR}/../.svn/") + + IF(EXISTS "${CMAKE_SOURCE_DIR}/../.hg/") + FIND_PACKAGE(Mercurial) + + IF(MERCURIAL_FOUND) + SET(TOOL_FOUND ON) + ENDIF(MERCURIAL_FOUND) + ENDIF(EXISTS "${CMAKE_SOURCE_DIR}/../.hg/") # if already generated IF(EXISTS ${CMAKE_SOURCE_DIR}/revision.h) # copy it MESSAGE(STATUS "Copying provided revision.h...") FILE(COPY ${CMAKE_SOURCE_DIR}/revision.h DESTINATION ${CMAKE_BINARY_DIR}) - ELSE(EXISTS ${CMAKE_SOURCE_DIR}/revision.h) + SET(HAVE_REVISION_H ON) + ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/revision.h) + + IF(TOOL_FOUND) # a custom target that is always built - ADD_CUSTOM_TARGET(revision ALL - DEPENDS ${CMAKE_BINARY_DIR}/revision.h) + ADD_CUSTOM_TARGET(revision ALL) # creates revision.h using cmake script - ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/revision.h + ADD_CUSTOM_COMMAND(TARGET revision + PRE_BUILD COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR=${CMAKE_SOURCE_DIR} -DROOT_DIR=${CMAKE_SOURCE_DIR}/.. @@ -47,7 +64,13 @@ MACRO(NL_GEN_REVISION_H) SET_SOURCE_FILES_PROPERTIES(${CMAKE_BINARY_DIR}/revision.h PROPERTIES GENERATED TRUE HEADER_FILE_ONLY TRUE) - ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/revision.h) + SET(HAVE_REVISION_H ON) + ENDIF(TOOL_FOUND) + + IF(HAVE_REVISION_H) + INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}) + ADD_DEFINITIONS(-DHAVE_REVISION_H) + ENDIF(HAVE_REVISION_H) ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/revision.h.in) ENDMACRO(NL_GEN_REVISION_H) @@ -922,6 +945,10 @@ MACRO(SETUP_EXTERNAL) IF(WIN32) FIND_PACKAGE(External REQUIRED) + IF(NOT VC_DIR) + SET(VC_DIR $ENV{VC_DIR}) + ENDIF(NOT VC_DIR) + IF(MSVC10) IF(NOT MSVC10_REDIST_DIR) # If you have VC++ 2010 Express, put x64/Microsoft.VC100.CRT/*.dll in ${EXTERNAL_PATH}/redist From 41c00b9b48ea37817f6f368bb320a0c376799773 Mon Sep 17 00:00:00 2001 From: ulukyn Date: Tue, 23 Oct 2012 17:44:36 +0200 Subject: [PATCH 02/63] Changed: Update from Ryzom Team --- code/web/api/client/config.php.default | 2 +- code/web/api/client/time.php | 46 + code/web/api/common/actionPage.php | 161 + code/web/api/common/auth.php | 125 +- code/web/api/common/bbCode.php | 988 ++ code/web/api/common/config.php.default | 5 +- code/web/api/common/db_defs.php | 24 + code/web/api/common/db_lib.php | 266 +- code/web/api/common/dfm.php | 151 + code/web/api/common/logger.php | 29 +- code/web/api/common/render.php | 215 +- code/web/api/common/ryform.php | 678 ++ code/web/api/common/ryformBases.php | 177 + code/web/api/common/time.php | 130 + code/web/api/common/user.php | 58 + code/web/api/common/utils.php | 317 +- code/web/api/common/xml_utils.php | 23 + code/web/api/data/css/ryzom_ui.css | 60 +- code/web/api/data/icons/add_app.png | Bin 0 -> 2532 bytes code/web/api/data/icons/edit.png | Bin 0 -> 1203 bytes code/web/api/data/icons/edit_16.png | Bin 0 -> 732 bytes code/web/api/data/icons/no_action.png | Bin 0 -> 566 bytes code/web/api/data/icons/spe_com.png | Bin 0 -> 1840 bytes code/web/api/data/img/bordure.png | Bin 0 -> 3920 bytes code/web/api/data/img/lang/de.png | Bin 229 -> 736 bytes code/web/api/data/img/lang/en.png | Bin 396 -> 725 bytes code/web/api/data/img/lang/es.png | Bin 0 -> 649 bytes code/web/api/data/img/lang/fr.png | Bin 2889 -> 675 bytes code/web/api/data/img/lang/ru.png | Bin 2886 -> 646 bytes code/web/api/data/js/combobox.js | 17 + code/web/api/data/js/jquery-1.7.1.js | 9266 +++++++++++++++++ code/web/api/data/ryzom/guild_png/.htaccess | 1 + .../ryzom/guild_png/guild_back_b_00_1.png | Bin 0 -> 3427 bytes .../ryzom/guild_png/guild_back_b_00_2.png | Bin 0 -> 3354 bytes .../ryzom/guild_png/guild_back_b_01_1.png | Bin 0 -> 3432 bytes .../ryzom/guild_png/guild_back_b_01_2.png | Bin 0 -> 3346 bytes .../ryzom/guild_png/guild_back_b_02_1.png | Bin 0 -> 3426 bytes .../ryzom/guild_png/guild_back_b_02_2.png | Bin 0 -> 3325 bytes .../ryzom/guild_png/guild_back_b_03_1.png | Bin 0 -> 3295 bytes .../ryzom/guild_png/guild_back_b_03_2.png | Bin 0 -> 3249 bytes .../ryzom/guild_png/guild_back_b_04_1.png | Bin 0 -> 3042 bytes .../ryzom/guild_png/guild_back_b_04_2.png | Bin 0 -> 3042 bytes .../ryzom/guild_png/guild_back_b_05_1.png | Bin 0 -> 3825 bytes .../ryzom/guild_png/guild_back_b_05_2.png | Bin 0 -> 3634 bytes .../ryzom/guild_png/guild_back_b_06_1.png | Bin 0 -> 3875 bytes .../ryzom/guild_png/guild_back_b_06_2.png | Bin 0 -> 3641 bytes .../ryzom/guild_png/guild_back_b_07_1.png | Bin 0 -> 3776 bytes .../ryzom/guild_png/guild_back_b_07_2.png | Bin 0 -> 3645 bytes .../ryzom/guild_png/guild_back_b_08_1.png | Bin 0 -> 3722 bytes .../ryzom/guild_png/guild_back_b_08_2.png | Bin 0 -> 3574 bytes .../ryzom/guild_png/guild_back_b_09_1.png | Bin 0 -> 3381 bytes .../ryzom/guild_png/guild_back_b_09_2.png | Bin 0 -> 3459 bytes .../ryzom/guild_png/guild_back_b_10_1.png | Bin 0 -> 3517 bytes .../ryzom/guild_png/guild_back_b_10_2.png | Bin 0 -> 3152 bytes .../ryzom/guild_png/guild_back_b_11_1.png | Bin 0 -> 3603 bytes .../ryzom/guild_png/guild_back_b_11_2.png | Bin 0 -> 3174 bytes .../ryzom/guild_png/guild_back_b_12_1.png | Bin 0 -> 3612 bytes .../ryzom/guild_png/guild_back_b_12_2.png | Bin 0 -> 3152 bytes .../ryzom/guild_png/guild_back_b_13_1.png | Bin 0 -> 3493 bytes .../ryzom/guild_png/guild_back_b_13_2.png | Bin 0 -> 3079 bytes .../ryzom/guild_png/guild_back_b_14_1.png | Bin 0 -> 3133 bytes .../ryzom/guild_png/guild_back_b_14_2.png | Bin 0 -> 2954 bytes .../ryzom/guild_png/guild_back_s_00_1.png | Bin 0 -> 536 bytes .../ryzom/guild_png/guild_back_s_00_2.png | Bin 0 -> 517 bytes .../ryzom/guild_png/guild_back_s_01_1.png | Bin 0 -> 543 bytes .../ryzom/guild_png/guild_back_s_01_2.png | Bin 0 -> 498 bytes .../ryzom/guild_png/guild_back_s_02_1.png | Bin 0 -> 539 bytes .../ryzom/guild_png/guild_back_s_02_2.png | Bin 0 -> 502 bytes .../ryzom/guild_png/guild_back_s_03_1.png | Bin 0 -> 434 bytes .../ryzom/guild_png/guild_back_s_03_2.png | Bin 0 -> 419 bytes .../ryzom/guild_png/guild_back_s_04_1.png | Bin 0 -> 387 bytes .../ryzom/guild_png/guild_back_s_04_2.png | Bin 0 -> 363 bytes .../ryzom/guild_png/guild_back_s_05_1.png | Bin 0 -> 561 bytes .../ryzom/guild_png/guild_back_s_05_2.png | Bin 0 -> 457 bytes .../ryzom/guild_png/guild_back_s_06_1.png | Bin 0 -> 622 bytes .../ryzom/guild_png/guild_back_s_06_2.png | Bin 0 -> 484 bytes .../ryzom/guild_png/guild_back_s_07_1.png | Bin 0 -> 625 bytes .../ryzom/guild_png/guild_back_s_07_2.png | Bin 0 -> 494 bytes .../ryzom/guild_png/guild_back_s_08_1.png | Bin 0 -> 513 bytes .../ryzom/guild_png/guild_back_s_08_2.png | Bin 0 -> 366 bytes .../ryzom/guild_png/guild_back_s_09_1.png | Bin 0 -> 388 bytes .../ryzom/guild_png/guild_back_s_09_2.png | Bin 0 -> 416 bytes .../ryzom/guild_png/guild_back_s_10_1.png | Bin 0 -> 543 bytes .../ryzom/guild_png/guild_back_s_10_2.png | Bin 0 -> 397 bytes .../ryzom/guild_png/guild_back_s_11_1.png | Bin 0 -> 584 bytes .../ryzom/guild_png/guild_back_s_11_2.png | Bin 0 -> 405 bytes .../ryzom/guild_png/guild_back_s_12_1.png | Bin 0 -> 623 bytes .../ryzom/guild_png/guild_back_s_12_2.png | Bin 0 -> 394 bytes .../ryzom/guild_png/guild_back_s_13_1.png | Bin 0 -> 528 bytes .../ryzom/guild_png/guild_back_s_13_2.png | Bin 0 -> 351 bytes .../ryzom/guild_png/guild_back_s_14_1.png | Bin 0 -> 431 bytes .../ryzom/guild_png/guild_back_s_14_2.png | Bin 0 -> 238 bytes .../ryzom/guild_png/guild_symbol_b_00.png | Bin 0 -> 2851 bytes .../ryzom/guild_png/guild_symbol_b_01.png | Bin 0 -> 2035 bytes .../ryzom/guild_png/guild_symbol_b_02.png | Bin 0 -> 3081 bytes .../ryzom/guild_png/guild_symbol_b_03.png | Bin 0 -> 1850 bytes .../ryzom/guild_png/guild_symbol_b_04.png | Bin 0 -> 2424 bytes .../ryzom/guild_png/guild_symbol_b_05.png | Bin 0 -> 1937 bytes .../ryzom/guild_png/guild_symbol_b_06.png | Bin 0 -> 2192 bytes .../ryzom/guild_png/guild_symbol_b_07.png | Bin 0 -> 2655 bytes .../ryzom/guild_png/guild_symbol_b_08.png | Bin 0 -> 1757 bytes .../ryzom/guild_png/guild_symbol_b_09.png | Bin 0 -> 3326 bytes .../ryzom/guild_png/guild_symbol_b_10.png | Bin 0 -> 1561 bytes .../ryzom/guild_png/guild_symbol_b_11.png | Bin 0 -> 2189 bytes .../ryzom/guild_png/guild_symbol_b_12.png | Bin 0 -> 2029 bytes .../ryzom/guild_png/guild_symbol_b_13.png | Bin 0 -> 2566 bytes .../ryzom/guild_png/guild_symbol_b_14.png | Bin 0 -> 2617 bytes .../ryzom/guild_png/guild_symbol_b_15.png | Bin 0 -> 2474 bytes .../ryzom/guild_png/guild_symbol_b_16.png | Bin 0 -> 1915 bytes .../ryzom/guild_png/guild_symbol_b_17.png | Bin 0 -> 2424 bytes .../ryzom/guild_png/guild_symbol_b_18.png | Bin 0 -> 1850 bytes .../ryzom/guild_png/guild_symbol_b_19.png | Bin 0 -> 1009 bytes .../ryzom/guild_png/guild_symbol_b_20.png | Bin 0 -> 1656 bytes .../ryzom/guild_png/guild_symbol_b_21.png | Bin 0 -> 2647 bytes .../ryzom/guild_png/guild_symbol_b_22.png | Bin 0 -> 2739 bytes .../ryzom/guild_png/guild_symbol_b_23.png | Bin 0 -> 3122 bytes .../ryzom/guild_png/guild_symbol_b_24.png | Bin 0 -> 2923 bytes .../ryzom/guild_png/guild_symbol_b_25.png | Bin 0 -> 1925 bytes .../ryzom/guild_png/guild_symbol_b_26.png | Bin 0 -> 3289 bytes .../ryzom/guild_png/guild_symbol_b_27.png | Bin 0 -> 1864 bytes .../ryzom/guild_png/guild_symbol_b_28.png | Bin 0 -> 1515 bytes .../ryzom/guild_png/guild_symbol_b_29.png | Bin 0 -> 2642 bytes .../ryzom/guild_png/guild_symbol_b_30.png | Bin 0 -> 3340 bytes .../ryzom/guild_png/guild_symbol_b_31.png | Bin 0 -> 3335 bytes .../ryzom/guild_png/guild_symbol_b_32.png | Bin 0 -> 1410 bytes .../ryzom/guild_png/guild_symbol_b_33.png | Bin 0 -> 2922 bytes .../ryzom/guild_png/guild_symbol_b_34.png | Bin 0 -> 2349 bytes .../ryzom/guild_png/guild_symbol_b_35.png | Bin 0 -> 1490 bytes .../ryzom/guild_png/guild_symbol_b_36.png | Bin 0 -> 3116 bytes .../ryzom/guild_png/guild_symbol_b_37.png | Bin 0 -> 1978 bytes .../ryzom/guild_png/guild_symbol_b_38.png | Bin 0 -> 2939 bytes .../ryzom/guild_png/guild_symbol_b_39.png | Bin 0 -> 3075 bytes .../ryzom/guild_png/guild_symbol_b_40.png | Bin 0 -> 1264 bytes .../ryzom/guild_png/guild_symbol_b_41.png | Bin 0 -> 1584 bytes .../ryzom/guild_png/guild_symbol_b_42.png | Bin 0 -> 4013 bytes .../ryzom/guild_png/guild_symbol_b_43.png | Bin 0 -> 2076 bytes .../ryzom/guild_png/guild_symbol_s_00.png | Bin 0 -> 2125 bytes .../ryzom/guild_png/guild_symbol_s_01.png | Bin 0 -> 1608 bytes .../ryzom/guild_png/guild_symbol_s_02.png | Bin 0 -> 2156 bytes .../ryzom/guild_png/guild_symbol_s_03.png | Bin 0 -> 1375 bytes .../ryzom/guild_png/guild_symbol_s_04.png | Bin 0 -> 1951 bytes .../ryzom/guild_png/guild_symbol_s_05.png | Bin 0 -> 1689 bytes .../ryzom/guild_png/guild_symbol_s_06.png | Bin 0 -> 1393 bytes .../ryzom/guild_png/guild_symbol_s_07.png | Bin 0 -> 1904 bytes .../ryzom/guild_png/guild_symbol_s_08.png | Bin 0 -> 1117 bytes .../ryzom/guild_png/guild_symbol_s_09.png | Bin 0 -> 2269 bytes .../ryzom/guild_png/guild_symbol_s_10.png | Bin 0 -> 1117 bytes .../ryzom/guild_png/guild_symbol_s_11.png | Bin 0 -> 1714 bytes .../ryzom/guild_png/guild_symbol_s_12.png | Bin 0 -> 1530 bytes .../ryzom/guild_png/guild_symbol_s_13.png | Bin 0 -> 1953 bytes .../ryzom/guild_png/guild_symbol_s_14.png | Bin 0 -> 2012 bytes .../ryzom/guild_png/guild_symbol_s_15.png | Bin 0 -> 2223 bytes .../ryzom/guild_png/guild_symbol_s_16.png | Bin 0 -> 1552 bytes .../ryzom/guild_png/guild_symbol_s_17.png | Bin 0 -> 1932 bytes .../ryzom/guild_png/guild_symbol_s_18.png | Bin 0 -> 1360 bytes .../ryzom/guild_png/guild_symbol_s_19.png | Bin 0 -> 828 bytes .../ryzom/guild_png/guild_symbol_s_20.png | Bin 0 -> 1361 bytes .../ryzom/guild_png/guild_symbol_s_21.png | Bin 0 -> 2076 bytes .../ryzom/guild_png/guild_symbol_s_22.png | Bin 0 -> 1667 bytes .../ryzom/guild_png/guild_symbol_s_23.png | Bin 0 -> 2418 bytes .../ryzom/guild_png/guild_symbol_s_24.png | Bin 0 -> 2034 bytes .../ryzom/guild_png/guild_symbol_s_25.png | Bin 0 -> 1542 bytes .../ryzom/guild_png/guild_symbol_s_26.png | Bin 0 -> 2183 bytes .../ryzom/guild_png/guild_symbol_s_27.png | Bin 0 -> 1490 bytes .../ryzom/guild_png/guild_symbol_s_28.png | Bin 0 -> 1165 bytes .../ryzom/guild_png/guild_symbol_s_29.png | Bin 0 -> 1848 bytes .../ryzom/guild_png/guild_symbol_s_30.png | Bin 0 -> 2490 bytes .../ryzom/guild_png/guild_symbol_s_31.png | Bin 0 -> 2481 bytes .../ryzom/guild_png/guild_symbol_s_32.png | Bin 0 -> 1365 bytes .../ryzom/guild_png/guild_symbol_s_33.png | Bin 0 -> 2224 bytes .../ryzom/guild_png/guild_symbol_s_34.png | Bin 0 -> 1869 bytes .../ryzom/guild_png/guild_symbol_s_35.png | Bin 0 -> 1280 bytes .../ryzom/guild_png/guild_symbol_s_36.png | Bin 0 -> 2190 bytes .../ryzom/guild_png/guild_symbol_s_37.png | Bin 0 -> 1543 bytes .../ryzom/guild_png/guild_symbol_s_38.png | Bin 0 -> 2332 bytes .../ryzom/guild_png/guild_symbol_s_39.png | Bin 0 -> 2390 bytes .../ryzom/guild_png/guild_symbol_s_40.png | Bin 0 -> 1154 bytes .../ryzom/guild_png/guild_symbol_s_41.png | Bin 0 -> 1301 bytes .../ryzom/guild_png/guild_symbol_s_42.png | Bin 0 -> 2388 bytes .../ryzom/guild_png/guild_symbol_s_43.png | Bin 0 -> 1981 bytes code/web/api/data/ryzom/interface/1h_over.png | Bin 0 -> 402 bytes code/web/api/data/ryzom/interface/2h_over.png | Bin 0 -> 529 bytes code/web/api/data/ryzom/interface/am_logo.png | Bin 0 -> 619 bytes .../api/data/ryzom/interface/ar_armpad.png | Bin 0 -> 3066 bytes .../data/ryzom/interface/ar_armpad_mask.png | Bin 0 -> 1218 bytes .../web/api/data/ryzom/interface/ar_botte.png | Bin 0 -> 2969 bytes .../data/ryzom/interface/ar_botte_mask.png | Bin 0 -> 1367 bytes .../web/api/data/ryzom/interface/ar_gilet.png | Bin 0 -> 3444 bytes .../data/ryzom/interface/ar_gilet_mask.png | Bin 0 -> 1198 bytes code/web/api/data/ryzom/interface/ar_hand.png | Bin 0 -> 2206 bytes .../api/data/ryzom/interface/ar_hand_mask.png | Bin 0 -> 1097 bytes .../api/data/ryzom/interface/ar_helmet.png | Bin 0 -> 3203 bytes .../data/ryzom/interface/ar_helmet_mask.png | Bin 0 -> 1224 bytes .../data/ryzom/interface/ar_pantabotte.png | Bin 0 -> 3388 bytes .../ryzom/interface/ar_pantabotte_mask.png | Bin 0 -> 1887 bytes .../web/api/data/ryzom/interface/asc_exit.png | Bin 0 -> 2532 bytes .../ryzom/interface/asc_rolemastercraft.png | Bin 0 -> 2463 bytes .../ryzom/interface/asc_rolemasterfight.png | Bin 0 -> 2640 bytes .../ryzom/interface/asc_rolemasterharvest.png | Bin 0 -> 2456 bytes .../ryzom/interface/asc_rolemastermagic.png | Bin 0 -> 2396 bytes .../api/data/ryzom/interface/asc_unknown.png | Bin 0 -> 2368 bytes .../data/ryzom/interface/bg_downloader.png | Bin 0 -> 1712 bytes .../web/api/data/ryzom/interface/bg_empty.png | Bin 0 -> 1425 bytes code/web/api/data/ryzom/interface/bk_aura.png | Bin 0 -> 709 bytes .../web/api/data/ryzom/interface/bk_conso.png | Bin 0 -> 693 bytes .../data/ryzom/interface/bk_consommable.png | Bin 0 -> 627 bytes .../web/api/data/ryzom/interface/bk_fyros.png | Bin 0 -> 2656 bytes .../data/ryzom/interface/bk_fyros_brick.png | Bin 0 -> 117 bytes .../api/data/ryzom/interface/bk_generic.png | Bin 0 -> 2607 bytes .../data/ryzom/interface/bk_generic_brick.png | Bin 0 -> 121 bytes code/web/api/data/ryzom/interface/bk_goo.png | Bin 0 -> 2348 bytes .../web/api/data/ryzom/interface/bk_guild.png | Bin 0 -> 3095 bytes .../web/api/data/ryzom/interface/bk_horde.png | Bin 0 -> 162 bytes code/web/api/data/ryzom/interface/bk_kami.png | Bin 0 -> 2979 bytes .../api/data/ryzom/interface/bk_karavan.png | Bin 0 -> 3037 bytes .../ryzom/interface/bk_magie_noire_brick.png | Bin 0 -> 117 bytes .../web/api/data/ryzom/interface/bk_matis.png | Bin 0 -> 3143 bytes .../data/ryzom/interface/bk_matis_brick.png | Bin 0 -> 117 bytes .../api/data/ryzom/interface/bk_mission.png | Bin 0 -> 2459 bytes .../api/data/ryzom/interface/bk_mission2.png | Bin 0 -> 2689 bytes .../api/data/ryzom/interface/bk_outpost.png | Bin 0 -> 2607 bytes .../data/ryzom/interface/bk_outpost_brick.png | Bin 0 -> 552 bytes .../web/api/data/ryzom/interface/bk_power.png | Bin 0 -> 733 bytes .../api/data/ryzom/interface/bk_primes.png | Bin 0 -> 2955 bytes .../api/data/ryzom/interface/bk_service.png | Bin 0 -> 517 bytes .../api/data/ryzom/interface/bk_training.png | Bin 0 -> 3057 bytes .../api/data/ryzom/interface/bk_tryker.png | Bin 0 -> 3092 bytes .../data/ryzom/interface/bk_tryker_brick.png | Bin 0 -> 117 bytes .../web/api/data/ryzom/interface/bk_zorai.png | Bin 0 -> 3003 bytes .../data/ryzom/interface/bk_zorai_brick.png | Bin 0 -> 121 bytes .../data/ryzom/interface/brick_default.png | Bin 0 -> 1020 bytes .../ryzom/interface/building_state_24x24.png | Bin 0 -> 1514 bytes .../api/data/ryzom/interface/cb_main_nue.png | Bin 0 -> 1261 bytes code/web/api/data/ryzom/interface/ch_back.png | Bin 0 -> 120 bytes code/web/api/data/ryzom/interface/charge.png | Bin 0 -> 948 bytes code/web/api/data/ryzom/interface/clef.png | Bin 0 -> 2318 bytes .../data/ryzom/interface/conso_branche.png | Bin 0 -> 3436 bytes .../ryzom/interface/conso_branche_mask.png | Bin 0 -> 549 bytes .../api/data/ryzom/interface/conso_fleur.png | Bin 0 -> 3595 bytes .../data/ryzom/interface/conso_fleur_mask.png | Bin 0 -> 1891 bytes .../api/data/ryzom/interface/conso_grappe.png | Bin 0 -> 3602 bytes .../ryzom/interface/conso_grappe_mask.png | Bin 0 -> 1963 bytes .../api/data/ryzom/interface/conso_nectar.png | Bin 0 -> 3275 bytes .../ryzom/interface/conso_nectar_mask.png | Bin 0 -> 658 bytes .../api/data/ryzom/interface/construction.png | Bin 0 -> 3598 bytes code/web/api/data/ryzom/interface/cp_back.png | Bin 0 -> 126 bytes .../data/ryzom/interface/cp_over_break.png | Bin 0 -> 220 bytes .../api/data/ryzom/interface/cp_over_less.png | Bin 0 -> 157 bytes .../api/data/ryzom/interface/cp_over_more.png | Bin 0 -> 176 bytes .../data/ryzom/interface/cp_over_opening.png | Bin 0 -> 141 bytes .../ryzom/interface/cp_over_opening_2.png | Bin 0 -> 149 bytes .../api/data/ryzom/interface/cristal_ammo.png | Bin 0 -> 2903 bytes .../data/ryzom/interface/cristal_generic.png | Bin 0 -> 3045 bytes .../data/ryzom/interface/cristal_spell.png | Bin 0 -> 3164 bytes code/web/api/data/ryzom/interface/ef_back.png | Bin 0 -> 138 bytes .../data/ryzom/interface/ef_over_break.png | Bin 0 -> 219 bytes .../api/data/ryzom/interface/ef_over_less.png | Bin 0 -> 152 bytes .../api/data/ryzom/interface/ef_over_more.png | Bin 0 -> 169 bytes code/web/api/data/ryzom/interface/fo_back.png | Bin 0 -> 161 bytes code/web/api/data/ryzom/interface/fo_over.png | Bin 0 -> 160 bytes code/web/api/data/ryzom/interface/fp_ammo.png | Bin 0 -> 1136 bytes .../web/api/data/ryzom/interface/fp_armor.png | Bin 0 -> 1553 bytes .../api/data/ryzom/interface/fp_building.png | Bin 0 -> 1114 bytes .../web/api/data/ryzom/interface/fp_jewel.png | Bin 0 -> 1322 bytes .../web/api/data/ryzom/interface/fp_melee.png | Bin 0 -> 1316 bytes code/web/api/data/ryzom/interface/fp_over.png | Bin 0 -> 156 bytes .../web/api/data/ryzom/interface/fp_range.png | Bin 0 -> 1270 bytes .../api/data/ryzom/interface/fp_shield.png | Bin 0 -> 1460 bytes .../web/api/data/ryzom/interface/fp_tools.png | Bin 0 -> 1142 bytes .../interface/ge_mission_outpost_townhall.png | Bin 0 -> 3368 bytes .../ryzom/interface/ico_absorb_damage.png | Bin 0 -> 1020 bytes .../api/data/ryzom/interface/ico_accurate.png | Bin 0 -> 1010 bytes .../web/api/data/ryzom/interface/ico_acid.png | Bin 0 -> 883 bytes code/web/api/data/ryzom/interface/ico_aim.png | Bin 0 -> 650 bytes .../ryzom/interface/ico_aim_bird_wings.png | Bin 0 -> 1186 bytes .../ico_aim_flying_kitin_abdomen.png | Bin 0 -> 1643 bytes .../ryzom/interface/ico_aim_homin_arms.png | Bin 0 -> 1413 bytes .../ryzom/interface/ico_aim_homin_chest.png | Bin 0 -> 1433 bytes .../ryzom/interface/ico_aim_homin_feet.png | Bin 0 -> 1393 bytes .../ryzom/interface/ico_aim_homin_feint.png | Bin 0 -> 1541 bytes .../ryzom/interface/ico_aim_homin_hands.png | Bin 0 -> 1463 bytes .../ryzom/interface/ico_aim_homin_head.png | Bin 0 -> 1379 bytes .../ryzom/interface/ico_aim_homin_legs.png | Bin 0 -> 1397 bytes .../ryzom/interface/ico_aim_kitin_head.png | Bin 0 -> 1473 bytes .../api/data/ryzom/interface/ico_amande.png | Bin 0 -> 2738 bytes .../data/ryzom/interface/ico_ammo_bullet.png | Bin 0 -> 911 bytes .../data/ryzom/interface/ico_ammo_jacket.png | Bin 0 -> 1196 bytes .../api/data/ryzom/interface/ico_angle.png | Bin 0 -> 1102 bytes .../ryzom/interface/ico_anti_magic_shield.png | Bin 0 -> 1313 bytes .../api/data/ryzom/interface/ico_armor.png | Bin 0 -> 1383 bytes .../data/ryzom/interface/ico_armor_clip.png | Bin 0 -> 1066 bytes .../data/ryzom/interface/ico_armor_heavy.png | Bin 0 -> 1276 bytes .../data/ryzom/interface/ico_armor_kitin.png | Bin 0 -> 1261 bytes .../data/ryzom/interface/ico_armor_light.png | Bin 0 -> 1320 bytes .../data/ryzom/interface/ico_armor_medium.png | Bin 0 -> 1194 bytes .../ryzom/interface/ico_armor_penalty.png | Bin 0 -> 1543 bytes .../data/ryzom/interface/ico_armor_shell.png | Bin 0 -> 1519 bytes .../web/api/data/ryzom/interface/ico_atys.png | Bin 0 -> 1532 bytes .../api/data/ryzom/interface/ico_atysian.png | Bin 0 -> 733 bytes .../data/ryzom/interface/ico_balance_hp.png | Bin 0 -> 863 bytes .../api/data/ryzom/interface/ico_barrel.png | Bin 0 -> 1032 bytes .../web/api/data/ryzom/interface/ico_bash.png | Bin 0 -> 1210 bytes .../api/data/ryzom/interface/ico_berserk.png | Bin 0 -> 768 bytes .../api/data/ryzom/interface/ico_blade.png | Bin 0 -> 781 bytes .../api/data/ryzom/interface/ico_bleeding.png | Bin 0 -> 852 bytes .../api/data/ryzom/interface/ico_blind.png | Bin 0 -> 922 bytes .../api/data/ryzom/interface/ico_blunt.png | Bin 0 -> 930 bytes .../web/api/data/ryzom/interface/ico_bomb.png | Bin 0 -> 1166 bytes .../ryzom/interface/ico_cataliseur_xp.png | Bin 0 -> 4015 bytes .../data/ryzom/interface/ico_celestial.png | Bin 0 -> 790 bytes .../ryzom/interface/ico_circular_attack.png | Bin 0 -> 1574 bytes .../api/data/ryzom/interface/ico_clothes.png | Bin 0 -> 1423 bytes .../web/api/data/ryzom/interface/ico_cold.png | Bin 0 -> 1162 bytes .../ryzom/interface/ico_concentration.png | Bin 0 -> 1405 bytes .../ryzom/interface/ico_consommable_over.png | Bin 0 -> 472 bytes .../data/ryzom/interface/ico_constitution.png | Bin 0 -> 920 bytes .../ryzom/interface/ico_counterweight.png | Bin 0 -> 934 bytes .../data/ryzom/interface/ico_craft_buff.png | Bin 0 -> 1326 bytes .../ryzom/interface/ico_create_sapload.png | Bin 0 -> 1187 bytes .../api/data/ryzom/interface/ico_curse.png | Bin 0 -> 761 bytes .../api/data/ryzom/interface/ico_debuff.png | Bin 0 -> 863 bytes .../ryzom/interface/ico_debuff_resist.png | Bin 0 -> 1340 bytes .../data/ryzom/interface/ico_debuff_skill.png | Bin 0 -> 1345 bytes .../api/data/ryzom/interface/ico_desert.png | Bin 0 -> 973 bytes .../data/ryzom/interface/ico_dexterity.png | Bin 0 -> 950 bytes .../api/data/ryzom/interface/ico_disarm.png | Bin 0 -> 978 bytes .../api/data/ryzom/interface/ico_dodge.png | Bin 0 -> 906 bytes code/web/api/data/ryzom/interface/ico_dot.png | Bin 0 -> 1200 bytes .../data/ryzom/interface/ico_durability.png | Bin 0 -> 1021 bytes .../api/data/ryzom/interface/ico_electric.png | Bin 0 -> 1372 bytes .../api/data/ryzom/interface/ico_explosif.png | Bin 0 -> 682 bytes .../data/ryzom/interface/ico_extracting.png | Bin 0 -> 1299 bytes .../web/api/data/ryzom/interface/ico_fear.png | Bin 0 -> 1236 bytes .../api/data/ryzom/interface/ico_feint.png | Bin 0 -> 1202 bytes .../web/api/data/ryzom/interface/ico_fire.png | Bin 0 -> 1138 bytes .../data/ryzom/interface/ico_firing_pin.png | Bin 0 -> 1382 bytes .../ryzom/interface/ico_fleur_carac_1.png | Bin 0 -> 3025 bytes .../interface/ico_fleur_carac_1_mask.png | Bin 0 -> 1490 bytes .../ryzom/interface/ico_fleur_carac_2.png | Bin 0 -> 2513 bytes .../interface/ico_fleur_carac_2_mask.png | Bin 0 -> 1111 bytes .../ryzom/interface/ico_fleur_carac_3.png | Bin 0 -> 3175 bytes .../interface/ico_fleur_carac_3_mask.png | Bin 0 -> 1536 bytes .../api/data/ryzom/interface/ico_focus.png | Bin 0 -> 764 bytes .../data/ryzom/interface/ico_forage_buff.png | Bin 0 -> 1644 bytes .../data/ryzom/interface/ico_forbid_item.png | Bin 0 -> 1254 bytes .../api/data/ryzom/interface/ico_forest.png | Bin 0 -> 1476 bytes .../api/data/ryzom/interface/ico_foreuse.png | Bin 0 -> 3320 bytes .../data/ryzom/interface/ico_gardening.png | Bin 0 -> 949 bytes .../api/data/ryzom/interface/ico_gentle.png | Bin 0 -> 196 bytes code/web/api/data/ryzom/interface/ico_goo.png | Bin 0 -> 1491 bytes .../api/data/ryzom/interface/ico_gripp.png | Bin 0 -> 1011 bytes .../data/ryzom/interface/ico_haircolor.png | Bin 0 -> 3453 bytes .../api/data/ryzom/interface/ico_haircut.png | Bin 0 -> 3468 bytes .../api/data/ryzom/interface/ico_hammer.png | Bin 0 -> 1065 bytes .../api/data/ryzom/interface/ico_harmful.png | Bin 0 -> 194 bytes .../api/data/ryzom/interface/ico_hatred.png | Bin 0 -> 1801 bytes .../web/api/data/ryzom/interface/ico_heal.png | Bin 0 -> 746 bytes .../api/data/ryzom/interface/ico_hit_rate.png | Bin 0 -> 1272 bytes .../data/ryzom/interface/ico_incapacity.png | Bin 0 -> 952 bytes .../data/ryzom/interface/ico_intelligence.png | Bin 0 -> 894 bytes .../data/ryzom/interface/ico_interrupt.png | Bin 0 -> 852 bytes .../ryzom/interface/ico_invulnerability.png | Bin 0 -> 1688 bytes .../data/ryzom/interface/ico_jewel_stone.png | Bin 0 -> 1068 bytes .../interface/ico_jewel_stone_support.png | Bin 0 -> 804 bytes .../api/data/ryzom/interface/ico_jungle.png | Bin 0 -> 1237 bytes .../api/data/ryzom/interface/ico_lacustre.png | Bin 0 -> 1427 bytes .../ryzom/interface/ico_landmark_bonus.png | Bin 0 -> 762 bytes .../api/data/ryzom/interface/ico_level.png | Bin 0 -> 504 bytes .../api/data/ryzom/interface/ico_lining.png | Bin 0 -> 509 bytes .../api/data/ryzom/interface/ico_location.png | Bin 0 -> 1331 bytes .../api/data/ryzom/interface/ico_madness.png | Bin 0 -> 1161 bytes .../api/data/ryzom/interface/ico_magic.png | Bin 0 -> 670 bytes .../ryzom/interface/ico_magic_action_buff.png | Bin 0 -> 1368 bytes .../data/ryzom/interface/ico_magic_focus.png | Bin 0 -> 847 bytes .../ryzom/interface/ico_magic_target_buff.png | Bin 0 -> 1621 bytes .../ryzom/interface/ico_melee_action_buff.png | Bin 0 -> 1266 bytes .../ryzom/interface/ico_melee_target_buff.png | Bin 0 -> 1498 bytes .../api/data/ryzom/interface/ico_mental.png | Bin 0 -> 1323 bytes .../data/ryzom/interface/ico_metabolism.png | Bin 0 -> 702 bytes .../web/api/data/ryzom/interface/ico_mezz.png | Bin 0 -> 720 bytes .../data/ryzom/interface/ico_misfortune.png | Bin 0 -> 1199 bytes .../ryzom/interface/ico_mission_art_fyros.png | Bin 0 -> 2988 bytes .../ryzom/interface/ico_mission_art_matis.png | Bin 0 -> 2595 bytes .../interface/ico_mission_art_tryker.png | Bin 0 -> 3258 bytes .../ryzom/interface/ico_mission_art_zorai.png | Bin 0 -> 2790 bytes .../ryzom/interface/ico_mission_barrel.png | Bin 0 -> 2927 bytes .../ryzom/interface/ico_mission_bottle.png | Bin 0 -> 2684 bytes .../ryzom/interface/ico_mission_casket.png | Bin 0 -> 2586 bytes .../ryzom/interface/ico_mission_medicine.png | Bin 0 -> 2823 bytes .../ryzom/interface/ico_mission_message.png | Bin 0 -> 2875 bytes .../ryzom/interface/ico_mission_package.png | Bin 0 -> 3294 bytes .../data/ryzom/interface/ico_mission_pot.png | Bin 0 -> 2470 bytes .../ryzom/interface/ico_mission_purse.png | Bin 0 -> 3051 bytes .../web/api/data/ryzom/interface/ico_move.png | Bin 0 -> 1009 bytes .../data/ryzom/interface/ico_multi_fight.png | Bin 0 -> 917 bytes .../ryzom/interface/ico_multiple_spots.png | Bin 0 -> 673 bytes .../web/api/data/ryzom/interface/ico_noix.png | Bin 0 -> 3229 bytes .../data/ryzom/interface/ico_opening_hit.png | Bin 0 -> 1270 bytes .../data/ryzom/interface/ico_over_autumn.png | Bin 0 -> 311 bytes .../ryzom/interface/ico_over_degenerated.png | Bin 0 -> 770 bytes .../data/ryzom/interface/ico_over_fauna.png | Bin 0 -> 852 bytes .../data/ryzom/interface/ico_over_flora.png | Bin 0 -> 699 bytes .../ryzom/interface/ico_over_hit_arms.png | Bin 0 -> 630 bytes .../ryzom/interface/ico_over_hit_chest.png | Bin 0 -> 635 bytes .../ryzom/interface/ico_over_hit_feet.png | Bin 0 -> 510 bytes .../interface/ico_over_hit_feet_hands.png | Bin 0 -> 595 bytes .../interface/ico_over_hit_feet_head.png | Bin 0 -> 701 bytes .../ryzom/interface/ico_over_hit_feet_x2.png | Bin 0 -> 540 bytes .../ryzom/interface/ico_over_hit_feint_x3.png | Bin 0 -> 559 bytes .../ryzom/interface/ico_over_hit_hands.png | Bin 0 -> 523 bytes .../interface/ico_over_hit_hands_chest.png | Bin 0 -> 725 bytes .../interface/ico_over_hit_hands_head.png | Bin 0 -> 790 bytes .../ryzom/interface/ico_over_hit_head.png | Bin 0 -> 598 bytes .../ryzom/interface/ico_over_hit_head_x3.png | Bin 0 -> 625 bytes .../ryzom/interface/ico_over_hit_legs.png | Bin 0 -> 636 bytes .../data/ryzom/interface/ico_over_homin.png | Bin 0 -> 750 bytes .../data/ryzom/interface/ico_over_kitin.png | Bin 0 -> 1046 bytes .../data/ryzom/interface/ico_over_magic.png | Bin 0 -> 688 bytes .../data/ryzom/interface/ico_over_melee.png | Bin 0 -> 511 bytes .../data/ryzom/interface/ico_over_racial.png | Bin 0 -> 708 bytes .../data/ryzom/interface/ico_over_range.png | Bin 0 -> 495 bytes .../data/ryzom/interface/ico_over_special.png | Bin 0 -> 268 bytes .../data/ryzom/interface/ico_over_spring.png | Bin 0 -> 309 bytes .../data/ryzom/interface/ico_over_summer.png | Bin 0 -> 303 bytes .../data/ryzom/interface/ico_over_winter.png | Bin 0 -> 303 bytes .../api/data/ryzom/interface/ico_parry.png | Bin 0 -> 700 bytes .../api/data/ryzom/interface/ico_piercing.png | Bin 0 -> 1196 bytes .../api/data/ryzom/interface/ico_pointe.png | Bin 0 -> 849 bytes .../api/data/ryzom/interface/ico_poison.png | Bin 0 -> 808 bytes .../api/data/ryzom/interface/ico_power.png | Bin 0 -> 899 bytes .../data/ryzom/interface/ico_preservation.png | Bin 0 -> 1049 bytes .../api/data/ryzom/interface/ico_primal.png | Bin 0 -> 765 bytes .../data/ryzom/interface/ico_prime_roots.png | Bin 0 -> 1385 bytes .../api/data/ryzom/interface/ico_private.png | Bin 0 -> 880 bytes .../data/ryzom/interface/ico_prospecting.png | Bin 0 -> 897 bytes .../api/data/ryzom/interface/ico_quality.png | Bin 0 -> 1193 bytes .../api/data/ryzom/interface/ico_racine.png | Bin 0 -> 3220 bytes .../api/data/ryzom/interface/ico_range.png | Bin 0 -> 945 bytes .../ryzom/interface/ico_range_action_buff.png | Bin 0 -> 1718 bytes .../ryzom/interface/ico_range_target_buff.png | Bin 0 -> 2047 bytes .../api/data/ryzom/interface/ico_ricochet.png | Bin 0 -> 1042 bytes .../web/api/data/ryzom/interface/ico_root.png | Bin 0 -> 1524 bytes code/web/api/data/ryzom/interface/ico_rot.png | Bin 0 -> 1047 bytes .../web/api/data/ryzom/interface/ico_safe.png | Bin 0 -> 1729 bytes code/web/api/data/ryzom/interface/ico_sap.png | Bin 0 -> 724 bytes .../data/ryzom/interface/ico_self_damage.png | Bin 0 -> 985 bytes .../api/data/ryzom/interface/ico_shaft.png | Bin 0 -> 923 bytes .../data/ryzom/interface/ico_shield_buff.png | Bin 0 -> 1579 bytes .../data/ryzom/interface/ico_shield_up.png | Bin 0 -> 1406 bytes .../data/ryzom/interface/ico_shielding.png | Bin 0 -> 1061 bytes .../data/ryzom/interface/ico_shockwave.png | Bin 0 -> 1042 bytes .../api/data/ryzom/interface/ico_sickness.png | Bin 0 -> 557 bytes .../api/data/ryzom/interface/ico_slashing.png | Bin 0 -> 1017 bytes .../web/api/data/ryzom/interface/ico_slow.png | Bin 0 -> 695 bytes .../data/ryzom/interface/ico_soft_spot.png | Bin 0 -> 1220 bytes .../ryzom/interface/ico_source_knowledge.png | Bin 0 -> 909 bytes .../data/ryzom/interface/ico_source_time.png | Bin 0 -> 1662 bytes .../api/data/ryzom/interface/ico_speed.png | Bin 0 -> 605 bytes .../data/ryzom/interface/ico_speeding_up.png | Bin 0 -> 863 bytes .../data/ryzom/interface/ico_spell_break.png | Bin 0 -> 1350 bytes .../api/data/ryzom/interface/ico_spores.png | Bin 0 -> 2676 bytes .../api/data/ryzom/interface/ico_spray.png | Bin 0 -> 1410 bytes .../api/data/ryzom/interface/ico_spying.png | Bin 0 -> 1010 bytes .../api/data/ryzom/interface/ico_stamina.png | Bin 0 -> 758 bytes .../api/data/ryzom/interface/ico_strength.png | Bin 0 -> 945 bytes .../api/data/ryzom/interface/ico_stuffing.png | Bin 0 -> 1470 bytes .../api/data/ryzom/interface/ico_stunn.png | Bin 0 -> 1225 bytes .../data/ryzom/interface/ico_task_craft.png | Bin 0 -> 3962 bytes .../data/ryzom/interface/ico_task_done.png | Bin 0 -> 899 bytes .../data/ryzom/interface/ico_task_failed.png | Bin 0 -> 1168 bytes .../data/ryzom/interface/ico_task_fight.png | Bin 0 -> 3865 bytes .../data/ryzom/interface/ico_task_forage.png | Bin 0 -> 3860 bytes .../data/ryzom/interface/ico_task_generic.png | Bin 0 -> 3806 bytes .../interface/ico_task_generic_quart.png | Bin 0 -> 3379 bytes .../data/ryzom/interface/ico_task_guild.png | Bin 0 -> 3973 bytes .../data/ryzom/interface/ico_task_rite.png | Bin 0 -> 3926 bytes .../data/ryzom/interface/ico_task_travel.png | Bin 0 -> 3908 bytes .../api/data/ryzom/interface/ico_tatoo.png | Bin 0 -> 4185 bytes .../api/data/ryzom/interface/ico_taunt.png | Bin 0 -> 941 bytes .../web/api/data/ryzom/interface/ico_time.png | Bin 0 -> 720 bytes .../data/ryzom/interface/ico_time_bonus.png | Bin 0 -> 1028 bytes .../api/data/ryzom/interface/ico_tourbe.png | Bin 0 -> 3161 bytes .../api/data/ryzom/interface/ico_trigger.png | Bin 0 -> 762 bytes .../api/data/ryzom/interface/ico_umbrella.png | Bin 0 -> 1298 bytes .../ryzom/interface/ico_use_enchantement.png | Bin 0 -> 1230 bytes .../api/data/ryzom/interface/ico_vampire.png | Bin 0 -> 687 bytes .../data/ryzom/interface/ico_visibility.png | Bin 0 -> 886 bytes .../api/data/ryzom/interface/ico_war_cry.png | Bin 0 -> 1172 bytes .../api/data/ryzom/interface/ico_weight.png | Bin 0 -> 919 bytes .../data/ryzom/interface/ico_wellbalanced.png | Bin 0 -> 726 bytes .../web/api/data/ryzom/interface/ico_will.png | Bin 0 -> 716 bytes .../api/data/ryzom/interface/ico_windding.png | Bin 0 -> 1170 bytes .../api/data/ryzom/interface/ico_wisdom.png | Bin 0 -> 685 bytes .../data/ryzom/interface/improved_tool.png | Bin 0 -> 3549 bytes .../api/data/ryzom/interface/item_default.png | Bin 0 -> 1977 bytes .../data/ryzom/interface/item_plan_over.png | Bin 0 -> 220 bytes .../api/data/ryzom/interface/lucky_flower.png | Bin 0 -> 3527 bytes code/web/api/data/ryzom/interface/mail.png | Bin 0 -> 1706 bytes .../api/data/ryzom/interface/mektoub_pack.png | Bin 0 -> 4301 bytes .../data/ryzom/interface/mektoub_steed.png | Bin 0 -> 3913 bytes code/web/api/data/ryzom/interface/mf_back.png | Bin 0 -> 216 bytes code/web/api/data/ryzom/interface/mf_over.png | Bin 0 -> 205 bytes .../web/api/data/ryzom/interface/mg_glove.png | Bin 0 -> 3618 bytes .../data/ryzom/interface/mission_icon_0.png | Bin 0 -> 2760 bytes .../data/ryzom/interface/mission_icon_1.png | Bin 0 -> 2763 bytes .../data/ryzom/interface/mission_icon_2.png | Bin 0 -> 2739 bytes .../data/ryzom/interface/mission_icon_3.png | Bin 0 -> 2736 bytes code/web/api/data/ryzom/interface/mp3.png | Bin 0 -> 1515 bytes .../web/api/data/ryzom/interface/mp_amber.png | Bin 0 -> 2916 bytes .../data/ryzom/interface/mp_back_curative.png | Bin 0 -> 193 bytes .../ryzom/interface/mp_back_offensive.png | Bin 0 -> 190 bytes .../data/ryzom/interface/mp_back_selfonly.png | Bin 0 -> 186 bytes code/web/api/data/ryzom/interface/mp_bark.png | Bin 0 -> 2940 bytes .../ryzom/interface/mp_batiment_brique.png | Bin 0 -> 2791 bytes .../ryzom/interface/mp_batiment_colonne.png | Bin 0 -> 1691 bytes .../interface/mp_batiment_colonne_justice.png | Bin 0 -> 2828 bytes .../ryzom/interface/mp_batiment_comble.png | Bin 0 -> 2684 bytes .../interface/mp_batiment_noyau_maduk.png | Bin 0 -> 3596 bytes .../ryzom/interface/mp_batiment_ornement.png | Bin 0 -> 2444 bytes .../interface/mp_batiment_revetement.png | Bin 0 -> 1912 bytes .../ryzom/interface/mp_batiment_socle.png | Bin 0 -> 3064 bytes .../ryzom/interface/mp_batiment_statue.png | Bin 0 -> 2945 bytes code/web/api/data/ryzom/interface/mp_beak.png | Bin 0 -> 2440 bytes .../web/api/data/ryzom/interface/mp_blood.png | Bin 0 -> 1474 bytes code/web/api/data/ryzom/interface/mp_bone.png | Bin 0 -> 1825 bytes code/web/api/data/ryzom/interface/mp_bud.png | Bin 0 -> 2469 bytes .../data/ryzom/interface/mp_buterfly_blue.png | Bin 0 -> 2738 bytes .../ryzom/interface/mp_buterfly_cocoon.png | Bin 0 -> 2460 bytes .../api/data/ryzom/interface/mp_cereal.png | Bin 0 -> 3102 bytes code/web/api/data/ryzom/interface/mp_claw.png | Bin 0 -> 2531 bytes .../api/data/ryzom/interface/mp_dandelion.png | Bin 0 -> 4364 bytes code/web/api/data/ryzom/interface/mp_dry | Bin 0 -> 10373 bytes .../api/data/ryzom/interface/mp_dry wood.png | Bin 0 -> 2952 bytes code/web/api/data/ryzom/interface/mp_dry.png | Bin 0 -> 14122 bytes .../api/data/ryzom/interface/mp_dry_wood.png | Bin 0 -> 3057 bytes code/web/api/data/ryzom/interface/mp_dust.png | Bin 0 -> 2971 bytes code/web/api/data/ryzom/interface/mp_egg.png | Bin 0 -> 1765 bytes code/web/api/data/ryzom/interface/mp_eyes.png | Bin 0 -> 2526 bytes code/web/api/data/ryzom/interface/mp_fang.png | Bin 0 -> 2728 bytes .../web/api/data/ryzom/interface/mp_fiber.png | Bin 0 -> 3737 bytes .../api/data/ryzom/interface/mp_filament.png | Bin 0 -> 3290 bytes .../ryzom/interface/mp_firefly_abdomen.png | Bin 0 -> 4004 bytes .../data/ryzom/interface/mp_fish_scale.png | Bin 0 -> 3000 bytes .../api/data/ryzom/interface/mp_flowers.png | Bin 0 -> 2345 bytes .../ryzom/interface/mp_fresh_loose_soil.png | Bin 0 -> 1929 bytes .../web/api/data/ryzom/interface/mp_fruit.png | Bin 0 -> 1683 bytes .../api/data/ryzom/interface/mp_generic.png | Bin 0 -> 2498 bytes .../ryzom/interface/mp_generic_colorize.png | Bin 0 -> 2606 bytes .../web/api/data/ryzom/interface/mp_gomme.png | Bin 0 -> 2164 bytes .../data/ryzom/interface/mp_goo_residue.png | Bin 0 -> 3168 bytes .../web/api/data/ryzom/interface/mp_hairs.png | Bin 0 -> 2328 bytes code/web/api/data/ryzom/interface/mp_hoof.png | Bin 0 -> 2884 bytes code/web/api/data/ryzom/interface/mp_horn.png | Bin 0 -> 2277 bytes .../api/data/ryzom/interface/mp_horney.png | Bin 0 -> 2835 bytes .../data/ryzom/interface/mp_insect_fossil.png | Bin 0 -> 3390 bytes .../data/ryzom/interface/mp_kitin_flesh.png | Bin 0 -> 2011 bytes .../ryzom/interface/mp_kitin_secretion.png | Bin 0 -> 2878 bytes .../data/ryzom/interface/mp_kitinshell.png | Bin 0 -> 3065 bytes .../web/api/data/ryzom/interface/mp_larva.png | Bin 0 -> 2071 bytes code/web/api/data/ryzom/interface/mp_leaf.png | Bin 0 -> 3436 bytes .../api/data/ryzom/interface/mp_leather.png | Bin 0 -> 4001 bytes .../web/api/data/ryzom/interface/mp_liane.png | Bin 0 -> 2574 bytes .../api/data/ryzom/interface/mp_lichen.png | Bin 0 -> 3569 bytes .../api/data/ryzom/interface/mp_ligament.png | Bin 0 -> 3341 bytes .../api/data/ryzom/interface/mp_mandible.png | Bin 0 -> 2503 bytes code/web/api/data/ryzom/interface/mp_meat.png | Bin 0 -> 2826 bytes code/web/api/data/ryzom/interface/mp_moss.png | Bin 0 -> 3279 bytes .../api/data/ryzom/interface/mp_mushroom.png | Bin 0 -> 3154 bytes code/web/api/data/ryzom/interface/mp_nail.png | Bin 0 -> 2615 bytes code/web/api/data/ryzom/interface/mp_oil.png | Bin 0 -> 3139 bytes .../api/data/ryzom/interface/mp_over_link.png | Bin 0 -> 129 bytes .../api/data/ryzom/interface/mp_parasite.png | Bin 0 -> 2865 bytes .../web/api/data/ryzom/interface/mp_pearl.png | Bin 0 -> 2302 bytes .../api/data/ryzom/interface/mp_pelvis.png | Bin 0 -> 3513 bytes .../api/data/ryzom/interface/mp_pigment.png | Bin 0 -> 4092 bytes .../api/data/ryzom/interface/mp_pistil.png | Bin 0 -> 2757 bytes .../data/ryzom/interface/mp_plant_fossil.png | Bin 0 -> 2515 bytes .../api/data/ryzom/interface/mp_pollen.png | Bin 0 -> 2314 bytes .../web/api/data/ryzom/interface/mp_resin.png | Bin 0 -> 2994 bytes .../web/api/data/ryzom/interface/mp_ronce.png | Bin 0 -> 2493 bytes .../api/data/ryzom/interface/mp_rostrum.png | Bin 0 -> 2256 bytes code/web/api/data/ryzom/interface/mp_sap.png | Bin 0 -> 2473 bytes .../api/data/ryzom/interface/mp_sawdust.png | Bin 0 -> 3561 bytes code/web/api/data/ryzom/interface/mp_seed.png | Bin 0 -> 3242 bytes .../web/api/data/ryzom/interface/mp_shell.png | Bin 0 -> 3332 bytes .../api/data/ryzom/interface/mp_silk_worm.png | Bin 0 -> 2479 bytes code/web/api/data/ryzom/interface/mp_skin.png | Bin 0 -> 4247 bytes .../web/api/data/ryzom/interface/mp_skull.png | Bin 0 -> 3406 bytes .../data/ryzom/interface/mp_spiders_web.png | Bin 0 -> 4081 bytes .../web/api/data/ryzom/interface/mp_spine.png | Bin 0 -> 1885 bytes code/web/api/data/ryzom/interface/mp_stem.png | Bin 0 -> 3755 bytes .../web/api/data/ryzom/interface/mp_sting.png | Bin 0 -> 1877 bytes .../web/api/data/ryzom/interface/mp_straw.png | Bin 0 -> 2425 bytes code/web/api/data/ryzom/interface/mp_suc.png | Bin 0 -> 2370 bytes code/web/api/data/ryzom/interface/mp_tail.png | Bin 0 -> 2835 bytes .../web/api/data/ryzom/interface/mp_tooth.png | Bin 0 -> 3003 bytes .../web/api/data/ryzom/interface/mp_trunk.png | Bin 0 -> 2361 bytes .../api/data/ryzom/interface/mp_whiskers.png | Bin 0 -> 2161 bytes code/web/api/data/ryzom/interface/mp_wing.png | Bin 0 -> 2865 bytes code/web/api/data/ryzom/interface/mp_wood.png | Bin 0 -> 2296 bytes .../api/data/ryzom/interface/mp_wood_node.png | Bin 0 -> 2242 bytes .../api/data/ryzom/interface/mw_2h_axe.png | Bin 0 -> 2312 bytes .../api/data/ryzom/interface/mw_2h_lance.png | Bin 0 -> 1890 bytes .../api/data/ryzom/interface/mw_2h_mace.png | Bin 0 -> 2152 bytes .../api/data/ryzom/interface/mw_2h_sword.png | Bin 0 -> 2463 bytes code/web/api/data/ryzom/interface/mw_axe.png | Bin 0 -> 1526 bytes .../api/data/ryzom/interface/mw_dagger.png | Bin 0 -> 1075 bytes .../web/api/data/ryzom/interface/mw_lance.png | Bin 0 -> 1341 bytes code/web/api/data/ryzom/interface/mw_mace.png | Bin 0 -> 1507 bytes .../web/api/data/ryzom/interface/mw_staff.png | Bin 0 -> 1021 bytes .../web/api/data/ryzom/interface/mw_sword.png | Bin 0 -> 1894 bytes .../api/data/ryzom/interface/no_action.png | Bin 0 -> 566 bytes .../api/data/ryzom/interface/num_slash.png | Bin 0 -> 365 bytes code/web/api/data/ryzom/interface/op_back.png | Bin 0 -> 126 bytes .../data/ryzom/interface/op_over_break.png | Bin 0 -> 231 bytes .../api/data/ryzom/interface/op_over_less.png | Bin 0 -> 157 bytes .../api/data/ryzom/interface/op_over_more.png | Bin 0 -> 182 bytes .../api/data/ryzom/interface/pa_anklet.png | Bin 0 -> 2128 bytes code/web/api/data/ryzom/interface/pa_back.png | Bin 0 -> 125 bytes .../api/data/ryzom/interface/pa_bracelet.png | Bin 0 -> 1872 bytes .../api/data/ryzom/interface/pa_diadem.png | Bin 0 -> 1589 bytes .../api/data/ryzom/interface/pa_earring.png | Bin 0 -> 816 bytes .../data/ryzom/interface/pa_over_break.png | Bin 0 -> 222 bytes .../api/data/ryzom/interface/pa_over_less.png | Bin 0 -> 157 bytes .../api/data/ryzom/interface/pa_over_more.png | Bin 0 -> 178 bytes .../api/data/ryzom/interface/pa_pendant.png | Bin 0 -> 1648 bytes code/web/api/data/ryzom/interface/pa_ring.png | Bin 0 -> 1943 bytes code/web/api/data/ryzom/interface/profile.png | Bin 0 -> 129 bytes .../data/ryzom/interface/protect_amber.png | Bin 0 -> 3644 bytes .../api/data/ryzom/interface/pvp_ally_0.png | Bin 0 -> 1598 bytes .../api/data/ryzom/interface/pvp_ally_1.png | Bin 0 -> 1004 bytes .../api/data/ryzom/interface/pvp_ally_2.png | Bin 0 -> 1261 bytes .../api/data/ryzom/interface/pvp_ally_3.png | Bin 0 -> 1524 bytes .../api/data/ryzom/interface/pvp_ally_4.png | Bin 0 -> 1404 bytes .../api/data/ryzom/interface/pvp_ally_6.png | Bin 0 -> 1498 bytes .../data/ryzom/interface/pvp_ally_primas.png | Bin 0 -> 1537 bytes .../data/ryzom/interface/pvp_ally_ranger.png | Bin 0 -> 1255 bytes .../web/api/data/ryzom/interface/pvp_aura.png | Bin 0 -> 1200 bytes .../data/ryzom/interface/pvp_aura_mask.png | Bin 0 -> 2971 bytes .../api/data/ryzom/interface/pvp_boost.png | Bin 0 -> 2884 bytes .../data/ryzom/interface/pvp_boost_mask.png | Bin 0 -> 1102 bytes .../api/data/ryzom/interface/pvp_enemy_0.png | Bin 0 -> 1439 bytes .../api/data/ryzom/interface/pvp_enemy_1.png | Bin 0 -> 1281 bytes .../api/data/ryzom/interface/pvp_enemy_2.png | Bin 0 -> 1302 bytes .../api/data/ryzom/interface/pvp_enemy_3.png | Bin 0 -> 1532 bytes .../api/data/ryzom/interface/pvp_enemy_4.png | Bin 0 -> 1546 bytes .../api/data/ryzom/interface/pvp_enemy_6.png | Bin 0 -> 1612 bytes .../ryzom/interface/pvp_enemy_marauder.png | Bin 0 -> 1170 bytes .../ryzom/interface/pvp_enemy_trytonist.png | Bin 0 -> 1499 bytes code/web/api/data/ryzom/interface/pw_4.png | Bin 0 -> 297 bytes code/web/api/data/ryzom/interface/pw_5.png | Bin 0 -> 307 bytes code/web/api/data/ryzom/interface/pw_6.png | Bin 0 -> 537 bytes code/web/api/data/ryzom/interface/pw_7.png | Bin 0 -> 659 bytes .../web/api/data/ryzom/interface/pw_heavy.png | Bin 0 -> 221 bytes .../web/api/data/ryzom/interface/pw_light.png | Bin 0 -> 200 bytes .../api/data/ryzom/interface/pw_medium.png | Bin 0 -> 214 bytes .../api/data/ryzom/interface/quest_coeur.png | Bin 0 -> 2849 bytes .../api/data/ryzom/interface/quest_foie.png | Bin 0 -> 3675 bytes .../api/data/ryzom/interface/quest_jeton.png | Bin 0 -> 4192 bytes .../api/data/ryzom/interface/quest_langue.png | Bin 0 -> 2421 bytes .../api/data/ryzom/interface/quest_louche.png | Bin 0 -> 2290 bytes .../data/ryzom/interface/quest_oreille.png | Bin 0 -> 3300 bytes .../api/data/ryzom/interface/quest_patte.png | Bin 0 -> 3132 bytes .../api/data/ryzom/interface/quest_poils.png | Bin 0 -> 3011 bytes .../api/data/ryzom/interface/quest_queue.png | Bin 0 -> 2417 bytes .../api/data/ryzom/interface/quest_ticket.png | Bin 0 -> 3397 bytes code/web/api/data/ryzom/interface/r2_live.png | Bin 0 -> 3384 bytes .../api/data/ryzom/interface/r2_live_over.png | Bin 0 -> 3964 bytes .../data/ryzom/interface/r2_live_pushed.png | Bin 0 -> 2812 bytes .../ryzom/interface/r2_palette_entities.png | Bin 0 -> 1481 bytes .../api/data/ryzom/interface/requirement.png | Bin 0 -> 2791 bytes code/web/api/data/ryzom/interface/rm_f.png | Bin 0 -> 2716 bytes .../api/data/ryzom/interface/rm_f_upgrade.png | Bin 0 -> 2830 bytes code/web/api/data/ryzom/interface/rm_h.png | Bin 0 -> 2567 bytes .../api/data/ryzom/interface/rm_h_upgrade.png | Bin 0 -> 2682 bytes code/web/api/data/ryzom/interface/rm_m.png | Bin 0 -> 2487 bytes .../api/data/ryzom/interface/rm_m_upgrade.png | Bin 0 -> 2596 bytes code/web/api/data/ryzom/interface/rm_r.png | Bin 0 -> 2561 bytes .../api/data/ryzom/interface/rm_r_upgrade.png | Bin 0 -> 2668 bytes .../api/data/ryzom/interface/rpjob_200.png | Bin 0 -> 3930 bytes .../api/data/ryzom/interface/rpjob_201.png | Bin 0 -> 4027 bytes .../api/data/ryzom/interface/rpjob_202.png | Bin 0 -> 3789 bytes .../api/data/ryzom/interface/rpjob_203.png | Bin 0 -> 4267 bytes .../api/data/ryzom/interface/rpjob_204.png | Bin 0 -> 3960 bytes .../api/data/ryzom/interface/rpjob_205.png | Bin 0 -> 3452 bytes .../api/data/ryzom/interface/rpjob_206.png | Bin 0 -> 4044 bytes .../api/data/ryzom/interface/rpjob_207.png | Bin 0 -> 3968 bytes .../data/ryzom/interface/rpjob_advanced.png | Bin 0 -> 4209 bytes .../data/ryzom/interface/rpjob_elementary.png | Bin 0 -> 4140 bytes .../data/ryzom/interface/rpjob_roleplay.png | Bin 0 -> 4209 bytes .../api/data/ryzom/interface/rpjob_task.png | Bin 0 -> 4057 bytes .../interface/rpjob_task_certificats.png | Bin 0 -> 4000 bytes .../ryzom/interface/rpjob_task_convert.png | Bin 0 -> 3880 bytes .../ryzom/interface/rpjob_task_elementary.png | Bin 0 -> 4325 bytes .../ryzom/interface/rpjob_task_generic.png | Bin 0 -> 4025 bytes .../ryzom/interface/rpjob_task_upgrade.png | Bin 0 -> 3888 bytes .../data/ryzom/interface/rpjobitem_200_a.png | Bin 0 -> 3002 bytes .../data/ryzom/interface/rpjobitem_200_b.png | Bin 0 -> 4253 bytes .../data/ryzom/interface/rpjobitem_200_c.png | Bin 0 -> 3255 bytes .../data/ryzom/interface/rpjobitem_201_a.png | Bin 0 -> 3988 bytes .../data/ryzom/interface/rpjobitem_201_b.png | Bin 0 -> 3428 bytes .../data/ryzom/interface/rpjobitem_201_c.png | Bin 0 -> 2616 bytes .../data/ryzom/interface/rpjobitem_202_a.png | Bin 0 -> 4003 bytes .../data/ryzom/interface/rpjobitem_202_b.png | Bin 0 -> 4050 bytes .../data/ryzom/interface/rpjobitem_202_c.png | Bin 0 -> 2684 bytes .../data/ryzom/interface/rpjobitem_203_a.png | Bin 0 -> 4719 bytes .../data/ryzom/interface/rpjobitem_203_b.png | Bin 0 -> 4545 bytes .../data/ryzom/interface/rpjobitem_203_c.png | Bin 0 -> 3848 bytes .../data/ryzom/interface/rpjobitem_204_a.png | Bin 0 -> 2683 bytes .../data/ryzom/interface/rpjobitem_204_b.png | Bin 0 -> 2779 bytes .../data/ryzom/interface/rpjobitem_204_c.png | Bin 0 -> 2730 bytes .../data/ryzom/interface/rpjobitem_205_a.png | Bin 0 -> 3577 bytes .../data/ryzom/interface/rpjobitem_205_b.png | Bin 0 -> 3264 bytes .../data/ryzom/interface/rpjobitem_205_c.png | Bin 0 -> 2513 bytes .../data/ryzom/interface/rpjobitem_206_a.png | Bin 0 -> 2321 bytes .../data/ryzom/interface/rpjobitem_206_b.png | Bin 0 -> 3529 bytes .../data/ryzom/interface/rpjobitem_206_c.png | Bin 0 -> 2047 bytes .../data/ryzom/interface/rpjobitem_207_a.png | Bin 0 -> 3947 bytes .../data/ryzom/interface/rpjobitem_207_b.png | Bin 0 -> 3907 bytes .../data/ryzom/interface/rpjobitem_207_c.png | Bin 0 -> 4055 bytes .../interface/rpjobitem_certifications.png | Bin 0 -> 3864 bytes .../data/ryzom/interface/rw_autolaunch.png | Bin 0 -> 2268 bytes .../api/data/ryzom/interface/rw_bowgun.png | Bin 0 -> 2849 bytes .../api/data/ryzom/interface/rw_grenade.png | Bin 0 -> 1230 bytes .../data/ryzom/interface/rw_harpoongun.png | Bin 0 -> 1796 bytes .../api/data/ryzom/interface/rw_launcher.png | Bin 0 -> 2563 bytes .../api/data/ryzom/interface/rw_pistol.png | Bin 0 -> 1984 bytes .../api/data/ryzom/interface/rw_pistolarc.png | Bin 0 -> 2282 bytes .../web/api/data/ryzom/interface/rw_rifle.png | Bin 0 -> 2155 bytes code/web/api/data/ryzom/interface/sapload.png | Bin 0 -> 1079 bytes .../api/data/ryzom/interface/sh_buckler.png | Bin 0 -> 2540 bytes .../data/ryzom/interface/sh_large_shield.png | Bin 0 -> 3386 bytes .../data/ryzom/interface/small_task_craft.png | Bin 0 -> 824 bytes .../data/ryzom/interface/small_task_done.png | Bin 0 -> 464 bytes .../ryzom/interface/small_task_failed.png | Bin 0 -> 535 bytes .../data/ryzom/interface/small_task_fight.png | Bin 0 -> 808 bytes .../ryzom/interface/small_task_forage.png | Bin 0 -> 807 bytes .../ryzom/interface/small_task_generic.png | Bin 0 -> 796 bytes .../data/ryzom/interface/small_task_guild.png | Bin 0 -> 825 bytes .../data/ryzom/interface/small_task_rite.png | Bin 0 -> 848 bytes .../ryzom/interface/small_task_travel.png | Bin 0 -> 835 bytes .../api/data/ryzom/interface/spe_beast.png | Bin 0 -> 3041 bytes code/web/api/data/ryzom/interface/spe_com.png | Bin 0 -> 2443 bytes .../data/ryzom/interface/spe_inventory.png | Bin 0 -> 3253 bytes .../web/api/data/ryzom/interface/spe_labs.png | Bin 0 -> 3264 bytes .../api/data/ryzom/interface/spe_memory.png | Bin 0 -> 3080 bytes .../api/data/ryzom/interface/spe_options.png | Bin 0 -> 3407 bytes .../api/data/ryzom/interface/spe_status.png | Bin 0 -> 2912 bytes .../ryzom/interface/stimulating_water.png | Bin 0 -> 3567 bytes .../data/ryzom/interface/tb_action_attack.png | Bin 0 -> 1669 bytes .../data/ryzom/interface/tb_action_config.png | Bin 0 -> 1764 bytes .../ryzom/interface/tb_action_disband.png | Bin 0 -> 1491 bytes .../ryzom/interface/tb_action_disengage.png | Bin 0 -> 1727 bytes .../ryzom/interface/tb_action_extract.png | Bin 0 -> 1678 bytes .../data/ryzom/interface/tb_action_invite.png | Bin 0 -> 1416 bytes .../data/ryzom/interface/tb_action_kick.png | Bin 0 -> 1401 bytes .../data/ryzom/interface/tb_action_move.png | Bin 0 -> 1339 bytes .../data/ryzom/interface/tb_action_run.png | Bin 0 -> 1598 bytes .../data/ryzom/interface/tb_action_sit.png | Bin 0 -> 1565 bytes .../data/ryzom/interface/tb_action_stand.png | Bin 0 -> 1434 bytes .../data/ryzom/interface/tb_action_stop.png | Bin 0 -> 1336 bytes .../data/ryzom/interface/tb_action_talk.png | Bin 0 -> 994 bytes .../data/ryzom/interface/tb_action_walk.png | Bin 0 -> 1508 bytes .../api/data/ryzom/interface/tb_animals.png | Bin 0 -> 1716 bytes .../api/data/ryzom/interface/tb_config.png | Bin 0 -> 1764 bytes .../data/ryzom/interface/tb_connection.png | Bin 0 -> 1278 bytes .../api/data/ryzom/interface/tb_contacts.png | Bin 0 -> 1613 bytes .../api/data/ryzom/interface/tb_desk_1.png | Bin 0 -> 717 bytes .../api/data/ryzom/interface/tb_desk_2.png | Bin 0 -> 723 bytes .../api/data/ryzom/interface/tb_desk_3.png | Bin 0 -> 707 bytes .../api/data/ryzom/interface/tb_desk_4.png | Bin 0 -> 702 bytes .../api/data/ryzom/interface/tb_faction.png | Bin 0 -> 1344 bytes .../web/api/data/ryzom/interface/tb_forum.png | Bin 0 -> 1561 bytes .../web/api/data/ryzom/interface/tb_guild.png | Bin 0 -> 1704 bytes .../web/api/data/ryzom/interface/tb_help2.png | Bin 0 -> 1511 bytes code/web/api/data/ryzom/interface/tb_keys.png | Bin 0 -> 1688 bytes .../api/data/ryzom/interface/tb_macros.png | Bin 0 -> 1720 bytes code/web/api/data/ryzom/interface/tb_mail.png | Bin 0 -> 1593 bytes code/web/api/data/ryzom/interface/tb_mode.png | Bin 0 -> 401 bytes .../data/ryzom/interface/tb_mode_dodge.png | Bin 0 -> 1541 bytes .../data/ryzom/interface/tb_mode_parry.png | Bin 0 -> 1444 bytes code/web/api/data/ryzom/interface/tb_over.png | Bin 0 -> 113 bytes .../api/data/ryzom/interface/tb_support.png | Bin 0 -> 1535 bytes code/web/api/data/ryzom/interface/tb_team.png | Bin 0 -> 1462 bytes .../api/data/ryzom/interface/tb_windows.png | Bin 0 -> 770 bytes .../api/data/ryzom/interface/tetekitin.png | Bin 0 -> 4058 bytes code/web/api/data/ryzom/interface/to_ammo.png | Bin 0 -> 2936 bytes .../web/api/data/ryzom/interface/to_armor.png | Bin 0 -> 3563 bytes .../data/ryzom/interface/to_cooking_pot.png | Bin 0 -> 1958 bytes .../data/ryzom/interface/to_fishing_rod.png | Bin 0 -> 1616 bytes .../api/data/ryzom/interface/to_forage.png | Bin 0 -> 2589 bytes .../api/data/ryzom/interface/to_hammer.png | Bin 0 -> 1826 bytes .../ryzom/interface/to_jewelry_hammer.png | Bin 0 -> 1346 bytes .../api/data/ryzom/interface/to_jewels.png | Bin 0 -> 3822 bytes .../data/ryzom/interface/to_leathercutter.png | Bin 0 -> 1124 bytes .../web/api/data/ryzom/interface/to_melee.png | Bin 0 -> 2691 bytes .../api/data/ryzom/interface/to_needle.png | Bin 0 -> 1546 bytes .../api/data/ryzom/interface/to_pestle.png | Bin 0 -> 3242 bytes .../web/api/data/ryzom/interface/to_range.png | Bin 0 -> 3209 bytes .../api/data/ryzom/interface/to_searake.png | Bin 0 -> 1062 bytes .../web/api/data/ryzom/interface/to_spade.png | Bin 0 -> 1269 bytes .../web/api/data/ryzom/interface/to_stick.png | Bin 0 -> 984 bytes .../ryzom/interface/to_tunneling_knife.png | Bin 0 -> 1426 bytes code/web/api/data/ryzom/interface/to_whip.png | Bin 0 -> 2155 bytes .../api/data/ryzom/interface/to_wrench.png | Bin 0 -> 2053 bytes .../api/data/ryzom/interface/tp_caravane.png | Bin 0 -> 3668 bytes code/web/api/data/ryzom/interface/tp_kami.png | Bin 0 -> 4209 bytes .../api/data/ryzom/interface/us_back_0.png | Bin 0 -> 117 bytes .../api/data/ryzom/interface/us_back_1.png | Bin 0 -> 117 bytes .../api/data/ryzom/interface/us_back_2.png | Bin 0 -> 117 bytes .../api/data/ryzom/interface/us_back_3.png | Bin 0 -> 117 bytes .../api/data/ryzom/interface/us_back_4.png | Bin 0 -> 117 bytes .../api/data/ryzom/interface/us_back_5.png | Bin 0 -> 117 bytes .../api/data/ryzom/interface/us_back_6.png | Bin 0 -> 117 bytes .../api/data/ryzom/interface/us_back_7.png | Bin 0 -> 117 bytes .../api/data/ryzom/interface/us_back_8.png | Bin 0 -> 117 bytes .../api/data/ryzom/interface/us_back_9.png | Bin 0 -> 117 bytes .../web/api/data/ryzom/interface/us_ico_0.png | Bin 0 -> 201 bytes .../web/api/data/ryzom/interface/us_ico_1.png | Bin 0 -> 200 bytes .../web/api/data/ryzom/interface/us_ico_2.png | Bin 0 -> 201 bytes .../web/api/data/ryzom/interface/us_ico_3.png | Bin 0 -> 200 bytes .../web/api/data/ryzom/interface/us_ico_4.png | Bin 0 -> 201 bytes .../web/api/data/ryzom/interface/us_ico_5.png | Bin 0 -> 201 bytes .../web/api/data/ryzom/interface/us_ico_6.png | Bin 0 -> 200 bytes .../web/api/data/ryzom/interface/us_ico_7.png | Bin 0 -> 201 bytes .../web/api/data/ryzom/interface/us_ico_8.png | Bin 0 -> 199 bytes .../web/api/data/ryzom/interface/us_ico_9.png | Bin 0 -> 201 bytes .../api/data/ryzom/interface/us_over_0.png | Bin 0 -> 180 bytes .../api/data/ryzom/interface/us_over_1.png | Bin 0 -> 733 bytes .../api/data/ryzom/interface/us_over_2.png | Bin 0 -> 529 bytes .../api/data/ryzom/interface/us_over_3.png | Bin 0 -> 190 bytes .../api/data/ryzom/interface/us_over_4.png | Bin 0 -> 126 bytes .../api/data/ryzom/interface/w_am_logo.png | Bin 0 -> 566 bytes .../web/api/data/ryzom/interface/w_leader.png | Bin 0 -> 401 bytes code/web/api/data/ryzom/interface/w_major.png | Bin 0 -> 133 bytes .../api/data/ryzom/interface/w_pa_anklet.png | Bin 0 -> 2129 bytes .../data/ryzom/interface/w_pa_bracelet.png | Bin 0 -> 1806 bytes .../api/data/ryzom/interface/w_pa_diadem.png | Bin 0 -> 1527 bytes .../api/data/ryzom/interface/w_pa_earring.png | Bin 0 -> 793 bytes .../api/data/ryzom/interface/w_pa_pendant.png | Bin 0 -> 1618 bytes .../api/data/ryzom/interface/w_pa_ring.png | Bin 0 -> 1881 bytes .../ryzom/interface/w_slot_shortcut_id0.png | Bin 0 -> 141 bytes .../ryzom/interface/w_slot_shortcut_id1.png | Bin 0 -> 201 bytes .../ryzom/interface/w_slot_shortcut_id2.png | Bin 0 -> 178 bytes .../ryzom/interface/w_slot_shortcut_id3.png | Bin 0 -> 165 bytes .../ryzom/interface/w_slot_shortcut_id4.png | Bin 0 -> 174 bytes .../ryzom/interface/w_slot_shortcut_id5.png | Bin 0 -> 192 bytes .../ryzom/interface/w_slot_shortcut_id6.png | Bin 0 -> 147 bytes .../ryzom/interface/w_slot_shortcut_id7.png | Bin 0 -> 180 bytes .../ryzom/interface/w_slot_shortcut_id8.png | Bin 0 -> 192 bytes .../ryzom/interface/w_slot_shortcut_id9.png | Bin 0 -> 167 bytes .../interface/w_slot_shortcut_shift_id0.png | Bin 0 -> 231 bytes .../interface/w_slot_shortcut_shift_id1.png | Bin 0 -> 282 bytes .../interface/w_slot_shortcut_shift_id2.png | Bin 0 -> 253 bytes .../interface/w_slot_shortcut_shift_id3.png | Bin 0 -> 238 bytes .../interface/w_slot_shortcut_shift_id4.png | Bin 0 -> 259 bytes .../interface/w_slot_shortcut_shift_id5.png | Bin 0 -> 273 bytes .../interface/w_slot_shortcut_shift_id6.png | Bin 0 -> 239 bytes .../interface/w_slot_shortcut_shift_id7.png | Bin 0 -> 263 bytes .../interface/w_slot_shortcut_shift_id8.png | Bin 0 -> 264 bytes .../interface/w_slot_shortcut_shift_id9.png | Bin 0 -> 249 bytes .../api/data/ryzom/interface/xp_cat_green.png | Bin 0 -> 3582 bytes code/web/api/player_auth.php | 4 +- code/web/api/ryzom_api.php | 35 +- code/web/api/server/auth.php | 60 +- code/web/api/server/config.php.default | 2 + code/web/api/server/guilds.php | 62 + code/web/api/server/hmagic.php | 108 + code/web/api/server/item_icon.php | 266 + code/web/api/server/time.php | 46 + code/web/api/server/user.php | 44 +- code/web/api/server/utils.php | 2 +- code/web/api/time.php | 35 + 873 files changed, 13189 insertions(+), 214 deletions(-) create mode 100644 code/web/api/client/time.php create mode 100644 code/web/api/common/actionPage.php create mode 100644 code/web/api/common/bbCode.php create mode 100644 code/web/api/common/db_defs.php create mode 100644 code/web/api/common/dfm.php create mode 100644 code/web/api/common/ryform.php create mode 100644 code/web/api/common/ryformBases.php create mode 100644 code/web/api/common/time.php create mode 100644 code/web/api/common/xml_utils.php create mode 100755 code/web/api/data/icons/add_app.png create mode 100644 code/web/api/data/icons/edit.png create mode 100644 code/web/api/data/icons/edit_16.png create mode 100755 code/web/api/data/icons/no_action.png create mode 100644 code/web/api/data/icons/spe_com.png create mode 100644 code/web/api/data/img/bordure.png create mode 100644 code/web/api/data/img/lang/es.png create mode 100644 code/web/api/data/js/combobox.js create mode 100644 code/web/api/data/js/jquery-1.7.1.js create mode 100644 code/web/api/data/ryzom/guild_png/.htaccess create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_00_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_00_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_01_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_01_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_02_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_02_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_03_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_03_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_04_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_04_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_05_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_05_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_06_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_06_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_07_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_07_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_08_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_08_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_09_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_09_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_10_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_10_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_11_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_11_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_12_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_12_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_13_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_13_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_14_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_b_14_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_00_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_00_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_01_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_01_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_02_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_02_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_03_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_03_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_04_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_04_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_05_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_05_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_06_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_06_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_07_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_07_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_08_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_08_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_09_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_09_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_10_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_10_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_11_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_11_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_12_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_12_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_13_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_13_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_14_1.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_back_s_14_2.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_00.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_01.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_02.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_03.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_04.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_05.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_06.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_07.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_08.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_09.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_10.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_11.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_12.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_13.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_14.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_15.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_16.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_17.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_18.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_19.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_20.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_21.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_22.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_23.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_24.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_25.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_26.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_27.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_28.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_29.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_30.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_31.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_32.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_33.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_34.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_35.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_36.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_37.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_38.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_39.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_40.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_41.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_42.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_b_43.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_00.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_01.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_02.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_03.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_04.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_05.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_06.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_07.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_08.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_09.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_10.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_11.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_12.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_13.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_14.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_15.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_16.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_17.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_18.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_19.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_20.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_21.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_22.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_23.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_24.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_25.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_26.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_27.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_28.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_29.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_30.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_31.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_32.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_33.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_34.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_35.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_36.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_37.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_38.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_39.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_40.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_41.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_42.png create mode 100644 code/web/api/data/ryzom/guild_png/guild_symbol_s_43.png create mode 100644 code/web/api/data/ryzom/interface/1h_over.png create mode 100644 code/web/api/data/ryzom/interface/2h_over.png create mode 100644 code/web/api/data/ryzom/interface/am_logo.png create mode 100644 code/web/api/data/ryzom/interface/ar_armpad.png create mode 100644 code/web/api/data/ryzom/interface/ar_armpad_mask.png create mode 100644 code/web/api/data/ryzom/interface/ar_botte.png create mode 100644 code/web/api/data/ryzom/interface/ar_botte_mask.png create mode 100644 code/web/api/data/ryzom/interface/ar_gilet.png create mode 100644 code/web/api/data/ryzom/interface/ar_gilet_mask.png create mode 100644 code/web/api/data/ryzom/interface/ar_hand.png create mode 100644 code/web/api/data/ryzom/interface/ar_hand_mask.png create mode 100644 code/web/api/data/ryzom/interface/ar_helmet.png create mode 100644 code/web/api/data/ryzom/interface/ar_helmet_mask.png create mode 100644 code/web/api/data/ryzom/interface/ar_pantabotte.png create mode 100644 code/web/api/data/ryzom/interface/ar_pantabotte_mask.png create mode 100644 code/web/api/data/ryzom/interface/asc_exit.png create mode 100644 code/web/api/data/ryzom/interface/asc_rolemastercraft.png create mode 100644 code/web/api/data/ryzom/interface/asc_rolemasterfight.png create mode 100644 code/web/api/data/ryzom/interface/asc_rolemasterharvest.png create mode 100644 code/web/api/data/ryzom/interface/asc_rolemastermagic.png create mode 100644 code/web/api/data/ryzom/interface/asc_unknown.png create mode 100644 code/web/api/data/ryzom/interface/bg_downloader.png create mode 100644 code/web/api/data/ryzom/interface/bg_empty.png create mode 100644 code/web/api/data/ryzom/interface/bk_aura.png create mode 100644 code/web/api/data/ryzom/interface/bk_conso.png create mode 100644 code/web/api/data/ryzom/interface/bk_consommable.png create mode 100644 code/web/api/data/ryzom/interface/bk_fyros.png create mode 100644 code/web/api/data/ryzom/interface/bk_fyros_brick.png create mode 100644 code/web/api/data/ryzom/interface/bk_generic.png create mode 100644 code/web/api/data/ryzom/interface/bk_generic_brick.png create mode 100644 code/web/api/data/ryzom/interface/bk_goo.png create mode 100644 code/web/api/data/ryzom/interface/bk_guild.png create mode 100644 code/web/api/data/ryzom/interface/bk_horde.png create mode 100644 code/web/api/data/ryzom/interface/bk_kami.png create mode 100644 code/web/api/data/ryzom/interface/bk_karavan.png create mode 100644 code/web/api/data/ryzom/interface/bk_magie_noire_brick.png create mode 100644 code/web/api/data/ryzom/interface/bk_matis.png create mode 100644 code/web/api/data/ryzom/interface/bk_matis_brick.png create mode 100644 code/web/api/data/ryzom/interface/bk_mission.png create mode 100644 code/web/api/data/ryzom/interface/bk_mission2.png create mode 100644 code/web/api/data/ryzom/interface/bk_outpost.png create mode 100644 code/web/api/data/ryzom/interface/bk_outpost_brick.png create mode 100644 code/web/api/data/ryzom/interface/bk_power.png create mode 100644 code/web/api/data/ryzom/interface/bk_primes.png create mode 100644 code/web/api/data/ryzom/interface/bk_service.png create mode 100644 code/web/api/data/ryzom/interface/bk_training.png create mode 100644 code/web/api/data/ryzom/interface/bk_tryker.png create mode 100644 code/web/api/data/ryzom/interface/bk_tryker_brick.png create mode 100644 code/web/api/data/ryzom/interface/bk_zorai.png create mode 100644 code/web/api/data/ryzom/interface/bk_zorai_brick.png create mode 100644 code/web/api/data/ryzom/interface/brick_default.png create mode 100644 code/web/api/data/ryzom/interface/building_state_24x24.png create mode 100644 code/web/api/data/ryzom/interface/cb_main_nue.png create mode 100644 code/web/api/data/ryzom/interface/ch_back.png create mode 100644 code/web/api/data/ryzom/interface/charge.png create mode 100644 code/web/api/data/ryzom/interface/clef.png create mode 100644 code/web/api/data/ryzom/interface/conso_branche.png create mode 100644 code/web/api/data/ryzom/interface/conso_branche_mask.png create mode 100644 code/web/api/data/ryzom/interface/conso_fleur.png create mode 100644 code/web/api/data/ryzom/interface/conso_fleur_mask.png create mode 100644 code/web/api/data/ryzom/interface/conso_grappe.png create mode 100644 code/web/api/data/ryzom/interface/conso_grappe_mask.png create mode 100644 code/web/api/data/ryzom/interface/conso_nectar.png create mode 100644 code/web/api/data/ryzom/interface/conso_nectar_mask.png create mode 100644 code/web/api/data/ryzom/interface/construction.png create mode 100644 code/web/api/data/ryzom/interface/cp_back.png create mode 100644 code/web/api/data/ryzom/interface/cp_over_break.png create mode 100644 code/web/api/data/ryzom/interface/cp_over_less.png create mode 100644 code/web/api/data/ryzom/interface/cp_over_more.png create mode 100644 code/web/api/data/ryzom/interface/cp_over_opening.png create mode 100644 code/web/api/data/ryzom/interface/cp_over_opening_2.png create mode 100644 code/web/api/data/ryzom/interface/cristal_ammo.png create mode 100644 code/web/api/data/ryzom/interface/cristal_generic.png create mode 100644 code/web/api/data/ryzom/interface/cristal_spell.png create mode 100644 code/web/api/data/ryzom/interface/ef_back.png create mode 100644 code/web/api/data/ryzom/interface/ef_over_break.png create mode 100644 code/web/api/data/ryzom/interface/ef_over_less.png create mode 100644 code/web/api/data/ryzom/interface/ef_over_more.png create mode 100644 code/web/api/data/ryzom/interface/fo_back.png create mode 100644 code/web/api/data/ryzom/interface/fo_over.png create mode 100644 code/web/api/data/ryzom/interface/fp_ammo.png create mode 100644 code/web/api/data/ryzom/interface/fp_armor.png create mode 100644 code/web/api/data/ryzom/interface/fp_building.png create mode 100644 code/web/api/data/ryzom/interface/fp_jewel.png create mode 100644 code/web/api/data/ryzom/interface/fp_melee.png create mode 100644 code/web/api/data/ryzom/interface/fp_over.png create mode 100644 code/web/api/data/ryzom/interface/fp_range.png create mode 100644 code/web/api/data/ryzom/interface/fp_shield.png create mode 100644 code/web/api/data/ryzom/interface/fp_tools.png create mode 100644 code/web/api/data/ryzom/interface/ge_mission_outpost_townhall.png create mode 100644 code/web/api/data/ryzom/interface/ico_absorb_damage.png create mode 100644 code/web/api/data/ryzom/interface/ico_accurate.png create mode 100644 code/web/api/data/ryzom/interface/ico_acid.png create mode 100644 code/web/api/data/ryzom/interface/ico_aim.png create mode 100644 code/web/api/data/ryzom/interface/ico_aim_bird_wings.png create mode 100644 code/web/api/data/ryzom/interface/ico_aim_flying_kitin_abdomen.png create mode 100644 code/web/api/data/ryzom/interface/ico_aim_homin_arms.png create mode 100644 code/web/api/data/ryzom/interface/ico_aim_homin_chest.png create mode 100644 code/web/api/data/ryzom/interface/ico_aim_homin_feet.png create mode 100644 code/web/api/data/ryzom/interface/ico_aim_homin_feint.png create mode 100644 code/web/api/data/ryzom/interface/ico_aim_homin_hands.png create mode 100644 code/web/api/data/ryzom/interface/ico_aim_homin_head.png create mode 100644 code/web/api/data/ryzom/interface/ico_aim_homin_legs.png create mode 100644 code/web/api/data/ryzom/interface/ico_aim_kitin_head.png create mode 100644 code/web/api/data/ryzom/interface/ico_amande.png create mode 100644 code/web/api/data/ryzom/interface/ico_ammo_bullet.png create mode 100644 code/web/api/data/ryzom/interface/ico_ammo_jacket.png create mode 100644 code/web/api/data/ryzom/interface/ico_angle.png create mode 100644 code/web/api/data/ryzom/interface/ico_anti_magic_shield.png create mode 100644 code/web/api/data/ryzom/interface/ico_armor.png create mode 100644 code/web/api/data/ryzom/interface/ico_armor_clip.png create mode 100644 code/web/api/data/ryzom/interface/ico_armor_heavy.png create mode 100644 code/web/api/data/ryzom/interface/ico_armor_kitin.png create mode 100644 code/web/api/data/ryzom/interface/ico_armor_light.png create mode 100644 code/web/api/data/ryzom/interface/ico_armor_medium.png create mode 100644 code/web/api/data/ryzom/interface/ico_armor_penalty.png create mode 100644 code/web/api/data/ryzom/interface/ico_armor_shell.png create mode 100644 code/web/api/data/ryzom/interface/ico_atys.png create mode 100644 code/web/api/data/ryzom/interface/ico_atysian.png create mode 100644 code/web/api/data/ryzom/interface/ico_balance_hp.png create mode 100644 code/web/api/data/ryzom/interface/ico_barrel.png create mode 100644 code/web/api/data/ryzom/interface/ico_bash.png create mode 100644 code/web/api/data/ryzom/interface/ico_berserk.png create mode 100644 code/web/api/data/ryzom/interface/ico_blade.png create mode 100644 code/web/api/data/ryzom/interface/ico_bleeding.png create mode 100644 code/web/api/data/ryzom/interface/ico_blind.png create mode 100644 code/web/api/data/ryzom/interface/ico_blunt.png create mode 100644 code/web/api/data/ryzom/interface/ico_bomb.png create mode 100644 code/web/api/data/ryzom/interface/ico_cataliseur_xp.png create mode 100644 code/web/api/data/ryzom/interface/ico_celestial.png create mode 100644 code/web/api/data/ryzom/interface/ico_circular_attack.png create mode 100644 code/web/api/data/ryzom/interface/ico_clothes.png create mode 100644 code/web/api/data/ryzom/interface/ico_cold.png create mode 100644 code/web/api/data/ryzom/interface/ico_concentration.png create mode 100644 code/web/api/data/ryzom/interface/ico_consommable_over.png create mode 100644 code/web/api/data/ryzom/interface/ico_constitution.png create mode 100644 code/web/api/data/ryzom/interface/ico_counterweight.png create mode 100644 code/web/api/data/ryzom/interface/ico_craft_buff.png create mode 100644 code/web/api/data/ryzom/interface/ico_create_sapload.png create mode 100644 code/web/api/data/ryzom/interface/ico_curse.png create mode 100644 code/web/api/data/ryzom/interface/ico_debuff.png create mode 100644 code/web/api/data/ryzom/interface/ico_debuff_resist.png create mode 100644 code/web/api/data/ryzom/interface/ico_debuff_skill.png create mode 100644 code/web/api/data/ryzom/interface/ico_desert.png create mode 100644 code/web/api/data/ryzom/interface/ico_dexterity.png create mode 100644 code/web/api/data/ryzom/interface/ico_disarm.png create mode 100644 code/web/api/data/ryzom/interface/ico_dodge.png create mode 100644 code/web/api/data/ryzom/interface/ico_dot.png create mode 100644 code/web/api/data/ryzom/interface/ico_durability.png create mode 100644 code/web/api/data/ryzom/interface/ico_electric.png create mode 100644 code/web/api/data/ryzom/interface/ico_explosif.png create mode 100644 code/web/api/data/ryzom/interface/ico_extracting.png create mode 100644 code/web/api/data/ryzom/interface/ico_fear.png create mode 100644 code/web/api/data/ryzom/interface/ico_feint.png create mode 100644 code/web/api/data/ryzom/interface/ico_fire.png create mode 100644 code/web/api/data/ryzom/interface/ico_firing_pin.png create mode 100644 code/web/api/data/ryzom/interface/ico_fleur_carac_1.png create mode 100644 code/web/api/data/ryzom/interface/ico_fleur_carac_1_mask.png create mode 100644 code/web/api/data/ryzom/interface/ico_fleur_carac_2.png create mode 100644 code/web/api/data/ryzom/interface/ico_fleur_carac_2_mask.png create mode 100644 code/web/api/data/ryzom/interface/ico_fleur_carac_3.png create mode 100644 code/web/api/data/ryzom/interface/ico_fleur_carac_3_mask.png create mode 100644 code/web/api/data/ryzom/interface/ico_focus.png create mode 100644 code/web/api/data/ryzom/interface/ico_forage_buff.png create mode 100644 code/web/api/data/ryzom/interface/ico_forbid_item.png create mode 100644 code/web/api/data/ryzom/interface/ico_forest.png create mode 100644 code/web/api/data/ryzom/interface/ico_foreuse.png create mode 100644 code/web/api/data/ryzom/interface/ico_gardening.png create mode 100644 code/web/api/data/ryzom/interface/ico_gentle.png create mode 100644 code/web/api/data/ryzom/interface/ico_goo.png create mode 100644 code/web/api/data/ryzom/interface/ico_gripp.png create mode 100644 code/web/api/data/ryzom/interface/ico_haircolor.png create mode 100644 code/web/api/data/ryzom/interface/ico_haircut.png create mode 100644 code/web/api/data/ryzom/interface/ico_hammer.png create mode 100644 code/web/api/data/ryzom/interface/ico_harmful.png create mode 100644 code/web/api/data/ryzom/interface/ico_hatred.png create mode 100644 code/web/api/data/ryzom/interface/ico_heal.png create mode 100644 code/web/api/data/ryzom/interface/ico_hit_rate.png create mode 100644 code/web/api/data/ryzom/interface/ico_incapacity.png create mode 100644 code/web/api/data/ryzom/interface/ico_intelligence.png create mode 100644 code/web/api/data/ryzom/interface/ico_interrupt.png create mode 100644 code/web/api/data/ryzom/interface/ico_invulnerability.png create mode 100644 code/web/api/data/ryzom/interface/ico_jewel_stone.png create mode 100644 code/web/api/data/ryzom/interface/ico_jewel_stone_support.png create mode 100644 code/web/api/data/ryzom/interface/ico_jungle.png create mode 100644 code/web/api/data/ryzom/interface/ico_lacustre.png create mode 100644 code/web/api/data/ryzom/interface/ico_landmark_bonus.png create mode 100644 code/web/api/data/ryzom/interface/ico_level.png create mode 100644 code/web/api/data/ryzom/interface/ico_lining.png create mode 100644 code/web/api/data/ryzom/interface/ico_location.png create mode 100644 code/web/api/data/ryzom/interface/ico_madness.png create mode 100644 code/web/api/data/ryzom/interface/ico_magic.png create mode 100644 code/web/api/data/ryzom/interface/ico_magic_action_buff.png create mode 100644 code/web/api/data/ryzom/interface/ico_magic_focus.png create mode 100644 code/web/api/data/ryzom/interface/ico_magic_target_buff.png create mode 100644 code/web/api/data/ryzom/interface/ico_melee_action_buff.png create mode 100644 code/web/api/data/ryzom/interface/ico_melee_target_buff.png create mode 100644 code/web/api/data/ryzom/interface/ico_mental.png create mode 100644 code/web/api/data/ryzom/interface/ico_metabolism.png create mode 100644 code/web/api/data/ryzom/interface/ico_mezz.png create mode 100644 code/web/api/data/ryzom/interface/ico_misfortune.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_art_fyros.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_art_matis.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_art_tryker.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_art_zorai.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_barrel.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_bottle.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_casket.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_medicine.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_message.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_package.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_pot.png create mode 100644 code/web/api/data/ryzom/interface/ico_mission_purse.png create mode 100644 code/web/api/data/ryzom/interface/ico_move.png create mode 100644 code/web/api/data/ryzom/interface/ico_multi_fight.png create mode 100644 code/web/api/data/ryzom/interface/ico_multiple_spots.png create mode 100644 code/web/api/data/ryzom/interface/ico_noix.png create mode 100644 code/web/api/data/ryzom/interface/ico_opening_hit.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_autumn.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_degenerated.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_fauna.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_flora.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_arms.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_chest.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_feet.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_feet_hands.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_feet_head.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_feet_x2.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_feint_x3.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_hands.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_hands_chest.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_hands_head.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_head.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_head_x3.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_hit_legs.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_homin.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_kitin.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_magic.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_melee.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_racial.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_range.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_special.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_spring.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_summer.png create mode 100644 code/web/api/data/ryzom/interface/ico_over_winter.png create mode 100644 code/web/api/data/ryzom/interface/ico_parry.png create mode 100644 code/web/api/data/ryzom/interface/ico_piercing.png create mode 100644 code/web/api/data/ryzom/interface/ico_pointe.png create mode 100644 code/web/api/data/ryzom/interface/ico_poison.png create mode 100644 code/web/api/data/ryzom/interface/ico_power.png create mode 100644 code/web/api/data/ryzom/interface/ico_preservation.png create mode 100644 code/web/api/data/ryzom/interface/ico_primal.png create mode 100644 code/web/api/data/ryzom/interface/ico_prime_roots.png create mode 100644 code/web/api/data/ryzom/interface/ico_private.png create mode 100644 code/web/api/data/ryzom/interface/ico_prospecting.png create mode 100644 code/web/api/data/ryzom/interface/ico_quality.png create mode 100644 code/web/api/data/ryzom/interface/ico_racine.png create mode 100644 code/web/api/data/ryzom/interface/ico_range.png create mode 100644 code/web/api/data/ryzom/interface/ico_range_action_buff.png create mode 100644 code/web/api/data/ryzom/interface/ico_range_target_buff.png create mode 100644 code/web/api/data/ryzom/interface/ico_ricochet.png create mode 100644 code/web/api/data/ryzom/interface/ico_root.png create mode 100644 code/web/api/data/ryzom/interface/ico_rot.png create mode 100644 code/web/api/data/ryzom/interface/ico_safe.png create mode 100644 code/web/api/data/ryzom/interface/ico_sap.png create mode 100644 code/web/api/data/ryzom/interface/ico_self_damage.png create mode 100644 code/web/api/data/ryzom/interface/ico_shaft.png create mode 100644 code/web/api/data/ryzom/interface/ico_shield_buff.png create mode 100644 code/web/api/data/ryzom/interface/ico_shield_up.png create mode 100644 code/web/api/data/ryzom/interface/ico_shielding.png create mode 100644 code/web/api/data/ryzom/interface/ico_shockwave.png create mode 100644 code/web/api/data/ryzom/interface/ico_sickness.png create mode 100644 code/web/api/data/ryzom/interface/ico_slashing.png create mode 100644 code/web/api/data/ryzom/interface/ico_slow.png create mode 100644 code/web/api/data/ryzom/interface/ico_soft_spot.png create mode 100644 code/web/api/data/ryzom/interface/ico_source_knowledge.png create mode 100644 code/web/api/data/ryzom/interface/ico_source_time.png create mode 100644 code/web/api/data/ryzom/interface/ico_speed.png create mode 100644 code/web/api/data/ryzom/interface/ico_speeding_up.png create mode 100644 code/web/api/data/ryzom/interface/ico_spell_break.png create mode 100644 code/web/api/data/ryzom/interface/ico_spores.png create mode 100644 code/web/api/data/ryzom/interface/ico_spray.png create mode 100644 code/web/api/data/ryzom/interface/ico_spying.png create mode 100644 code/web/api/data/ryzom/interface/ico_stamina.png create mode 100644 code/web/api/data/ryzom/interface/ico_strength.png create mode 100644 code/web/api/data/ryzom/interface/ico_stuffing.png create mode 100644 code/web/api/data/ryzom/interface/ico_stunn.png create mode 100644 code/web/api/data/ryzom/interface/ico_task_craft.png create mode 100644 code/web/api/data/ryzom/interface/ico_task_done.png create mode 100644 code/web/api/data/ryzom/interface/ico_task_failed.png create mode 100644 code/web/api/data/ryzom/interface/ico_task_fight.png create mode 100644 code/web/api/data/ryzom/interface/ico_task_forage.png create mode 100644 code/web/api/data/ryzom/interface/ico_task_generic.png create mode 100644 code/web/api/data/ryzom/interface/ico_task_generic_quart.png create mode 100644 code/web/api/data/ryzom/interface/ico_task_guild.png create mode 100644 code/web/api/data/ryzom/interface/ico_task_rite.png create mode 100644 code/web/api/data/ryzom/interface/ico_task_travel.png create mode 100644 code/web/api/data/ryzom/interface/ico_tatoo.png create mode 100644 code/web/api/data/ryzom/interface/ico_taunt.png create mode 100644 code/web/api/data/ryzom/interface/ico_time.png create mode 100644 code/web/api/data/ryzom/interface/ico_time_bonus.png create mode 100644 code/web/api/data/ryzom/interface/ico_tourbe.png create mode 100644 code/web/api/data/ryzom/interface/ico_trigger.png create mode 100644 code/web/api/data/ryzom/interface/ico_umbrella.png create mode 100644 code/web/api/data/ryzom/interface/ico_use_enchantement.png create mode 100644 code/web/api/data/ryzom/interface/ico_vampire.png create mode 100644 code/web/api/data/ryzom/interface/ico_visibility.png create mode 100644 code/web/api/data/ryzom/interface/ico_war_cry.png create mode 100644 code/web/api/data/ryzom/interface/ico_weight.png create mode 100644 code/web/api/data/ryzom/interface/ico_wellbalanced.png create mode 100644 code/web/api/data/ryzom/interface/ico_will.png create mode 100644 code/web/api/data/ryzom/interface/ico_windding.png create mode 100644 code/web/api/data/ryzom/interface/ico_wisdom.png create mode 100644 code/web/api/data/ryzom/interface/improved_tool.png create mode 100644 code/web/api/data/ryzom/interface/item_default.png create mode 100644 code/web/api/data/ryzom/interface/item_plan_over.png create mode 100644 code/web/api/data/ryzom/interface/lucky_flower.png create mode 100644 code/web/api/data/ryzom/interface/mail.png create mode 100644 code/web/api/data/ryzom/interface/mektoub_pack.png create mode 100644 code/web/api/data/ryzom/interface/mektoub_steed.png create mode 100644 code/web/api/data/ryzom/interface/mf_back.png create mode 100644 code/web/api/data/ryzom/interface/mf_over.png create mode 100644 code/web/api/data/ryzom/interface/mg_glove.png create mode 100644 code/web/api/data/ryzom/interface/mission_icon_0.png create mode 100644 code/web/api/data/ryzom/interface/mission_icon_1.png create mode 100644 code/web/api/data/ryzom/interface/mission_icon_2.png create mode 100644 code/web/api/data/ryzom/interface/mission_icon_3.png create mode 100644 code/web/api/data/ryzom/interface/mp3.png create mode 100644 code/web/api/data/ryzom/interface/mp_amber.png create mode 100644 code/web/api/data/ryzom/interface/mp_back_curative.png create mode 100644 code/web/api/data/ryzom/interface/mp_back_offensive.png create mode 100644 code/web/api/data/ryzom/interface/mp_back_selfonly.png create mode 100644 code/web/api/data/ryzom/interface/mp_bark.png create mode 100644 code/web/api/data/ryzom/interface/mp_batiment_brique.png create mode 100644 code/web/api/data/ryzom/interface/mp_batiment_colonne.png create mode 100644 code/web/api/data/ryzom/interface/mp_batiment_colonne_justice.png create mode 100644 code/web/api/data/ryzom/interface/mp_batiment_comble.png create mode 100644 code/web/api/data/ryzom/interface/mp_batiment_noyau_maduk.png create mode 100644 code/web/api/data/ryzom/interface/mp_batiment_ornement.png create mode 100644 code/web/api/data/ryzom/interface/mp_batiment_revetement.png create mode 100644 code/web/api/data/ryzom/interface/mp_batiment_socle.png create mode 100644 code/web/api/data/ryzom/interface/mp_batiment_statue.png create mode 100644 code/web/api/data/ryzom/interface/mp_beak.png create mode 100644 code/web/api/data/ryzom/interface/mp_blood.png create mode 100644 code/web/api/data/ryzom/interface/mp_bone.png create mode 100644 code/web/api/data/ryzom/interface/mp_bud.png create mode 100644 code/web/api/data/ryzom/interface/mp_buterfly_blue.png create mode 100644 code/web/api/data/ryzom/interface/mp_buterfly_cocoon.png create mode 100644 code/web/api/data/ryzom/interface/mp_cereal.png create mode 100644 code/web/api/data/ryzom/interface/mp_claw.png create mode 100644 code/web/api/data/ryzom/interface/mp_dandelion.png create mode 100644 code/web/api/data/ryzom/interface/mp_dry create mode 100644 code/web/api/data/ryzom/interface/mp_dry wood.png create mode 100644 code/web/api/data/ryzom/interface/mp_dry.png create mode 100644 code/web/api/data/ryzom/interface/mp_dry_wood.png create mode 100644 code/web/api/data/ryzom/interface/mp_dust.png create mode 100644 code/web/api/data/ryzom/interface/mp_egg.png create mode 100644 code/web/api/data/ryzom/interface/mp_eyes.png create mode 100644 code/web/api/data/ryzom/interface/mp_fang.png create mode 100644 code/web/api/data/ryzom/interface/mp_fiber.png create mode 100644 code/web/api/data/ryzom/interface/mp_filament.png create mode 100644 code/web/api/data/ryzom/interface/mp_firefly_abdomen.png create mode 100644 code/web/api/data/ryzom/interface/mp_fish_scale.png create mode 100644 code/web/api/data/ryzom/interface/mp_flowers.png create mode 100644 code/web/api/data/ryzom/interface/mp_fresh_loose_soil.png create mode 100644 code/web/api/data/ryzom/interface/mp_fruit.png create mode 100644 code/web/api/data/ryzom/interface/mp_generic.png create mode 100644 code/web/api/data/ryzom/interface/mp_generic_colorize.png create mode 100644 code/web/api/data/ryzom/interface/mp_gomme.png create mode 100644 code/web/api/data/ryzom/interface/mp_goo_residue.png create mode 100644 code/web/api/data/ryzom/interface/mp_hairs.png create mode 100644 code/web/api/data/ryzom/interface/mp_hoof.png create mode 100644 code/web/api/data/ryzom/interface/mp_horn.png create mode 100644 code/web/api/data/ryzom/interface/mp_horney.png create mode 100644 code/web/api/data/ryzom/interface/mp_insect_fossil.png create mode 100644 code/web/api/data/ryzom/interface/mp_kitin_flesh.png create mode 100644 code/web/api/data/ryzom/interface/mp_kitin_secretion.png create mode 100644 code/web/api/data/ryzom/interface/mp_kitinshell.png create mode 100644 code/web/api/data/ryzom/interface/mp_larva.png create mode 100644 code/web/api/data/ryzom/interface/mp_leaf.png create mode 100644 code/web/api/data/ryzom/interface/mp_leather.png create mode 100644 code/web/api/data/ryzom/interface/mp_liane.png create mode 100644 code/web/api/data/ryzom/interface/mp_lichen.png create mode 100644 code/web/api/data/ryzom/interface/mp_ligament.png create mode 100644 code/web/api/data/ryzom/interface/mp_mandible.png create mode 100644 code/web/api/data/ryzom/interface/mp_meat.png create mode 100644 code/web/api/data/ryzom/interface/mp_moss.png create mode 100644 code/web/api/data/ryzom/interface/mp_mushroom.png create mode 100644 code/web/api/data/ryzom/interface/mp_nail.png create mode 100644 code/web/api/data/ryzom/interface/mp_oil.png create mode 100644 code/web/api/data/ryzom/interface/mp_over_link.png create mode 100644 code/web/api/data/ryzom/interface/mp_parasite.png create mode 100644 code/web/api/data/ryzom/interface/mp_pearl.png create mode 100644 code/web/api/data/ryzom/interface/mp_pelvis.png create mode 100644 code/web/api/data/ryzom/interface/mp_pigment.png create mode 100644 code/web/api/data/ryzom/interface/mp_pistil.png create mode 100644 code/web/api/data/ryzom/interface/mp_plant_fossil.png create mode 100644 code/web/api/data/ryzom/interface/mp_pollen.png create mode 100644 code/web/api/data/ryzom/interface/mp_resin.png create mode 100644 code/web/api/data/ryzom/interface/mp_ronce.png create mode 100644 code/web/api/data/ryzom/interface/mp_rostrum.png create mode 100644 code/web/api/data/ryzom/interface/mp_sap.png create mode 100644 code/web/api/data/ryzom/interface/mp_sawdust.png create mode 100644 code/web/api/data/ryzom/interface/mp_seed.png create mode 100644 code/web/api/data/ryzom/interface/mp_shell.png create mode 100644 code/web/api/data/ryzom/interface/mp_silk_worm.png create mode 100644 code/web/api/data/ryzom/interface/mp_skin.png create mode 100644 code/web/api/data/ryzom/interface/mp_skull.png create mode 100644 code/web/api/data/ryzom/interface/mp_spiders_web.png create mode 100644 code/web/api/data/ryzom/interface/mp_spine.png create mode 100644 code/web/api/data/ryzom/interface/mp_stem.png create mode 100644 code/web/api/data/ryzom/interface/mp_sting.png create mode 100644 code/web/api/data/ryzom/interface/mp_straw.png create mode 100644 code/web/api/data/ryzom/interface/mp_suc.png create mode 100644 code/web/api/data/ryzom/interface/mp_tail.png create mode 100644 code/web/api/data/ryzom/interface/mp_tooth.png create mode 100644 code/web/api/data/ryzom/interface/mp_trunk.png create mode 100644 code/web/api/data/ryzom/interface/mp_whiskers.png create mode 100644 code/web/api/data/ryzom/interface/mp_wing.png create mode 100644 code/web/api/data/ryzom/interface/mp_wood.png create mode 100644 code/web/api/data/ryzom/interface/mp_wood_node.png create mode 100644 code/web/api/data/ryzom/interface/mw_2h_axe.png create mode 100644 code/web/api/data/ryzom/interface/mw_2h_lance.png create mode 100644 code/web/api/data/ryzom/interface/mw_2h_mace.png create mode 100644 code/web/api/data/ryzom/interface/mw_2h_sword.png create mode 100644 code/web/api/data/ryzom/interface/mw_axe.png create mode 100644 code/web/api/data/ryzom/interface/mw_dagger.png create mode 100644 code/web/api/data/ryzom/interface/mw_lance.png create mode 100644 code/web/api/data/ryzom/interface/mw_mace.png create mode 100644 code/web/api/data/ryzom/interface/mw_staff.png create mode 100644 code/web/api/data/ryzom/interface/mw_sword.png create mode 100644 code/web/api/data/ryzom/interface/no_action.png create mode 100644 code/web/api/data/ryzom/interface/num_slash.png create mode 100644 code/web/api/data/ryzom/interface/op_back.png create mode 100644 code/web/api/data/ryzom/interface/op_over_break.png create mode 100644 code/web/api/data/ryzom/interface/op_over_less.png create mode 100644 code/web/api/data/ryzom/interface/op_over_more.png create mode 100644 code/web/api/data/ryzom/interface/pa_anklet.png create mode 100644 code/web/api/data/ryzom/interface/pa_back.png create mode 100644 code/web/api/data/ryzom/interface/pa_bracelet.png create mode 100644 code/web/api/data/ryzom/interface/pa_diadem.png create mode 100644 code/web/api/data/ryzom/interface/pa_earring.png create mode 100644 code/web/api/data/ryzom/interface/pa_over_break.png create mode 100644 code/web/api/data/ryzom/interface/pa_over_less.png create mode 100644 code/web/api/data/ryzom/interface/pa_over_more.png create mode 100644 code/web/api/data/ryzom/interface/pa_pendant.png create mode 100644 code/web/api/data/ryzom/interface/pa_ring.png create mode 100644 code/web/api/data/ryzom/interface/profile.png create mode 100644 code/web/api/data/ryzom/interface/protect_amber.png create mode 100644 code/web/api/data/ryzom/interface/pvp_ally_0.png create mode 100644 code/web/api/data/ryzom/interface/pvp_ally_1.png create mode 100644 code/web/api/data/ryzom/interface/pvp_ally_2.png create mode 100644 code/web/api/data/ryzom/interface/pvp_ally_3.png create mode 100644 code/web/api/data/ryzom/interface/pvp_ally_4.png create mode 100644 code/web/api/data/ryzom/interface/pvp_ally_6.png create mode 100644 code/web/api/data/ryzom/interface/pvp_ally_primas.png create mode 100644 code/web/api/data/ryzom/interface/pvp_ally_ranger.png create mode 100644 code/web/api/data/ryzom/interface/pvp_aura.png create mode 100644 code/web/api/data/ryzom/interface/pvp_aura_mask.png create mode 100644 code/web/api/data/ryzom/interface/pvp_boost.png create mode 100644 code/web/api/data/ryzom/interface/pvp_boost_mask.png create mode 100644 code/web/api/data/ryzom/interface/pvp_enemy_0.png create mode 100644 code/web/api/data/ryzom/interface/pvp_enemy_1.png create mode 100644 code/web/api/data/ryzom/interface/pvp_enemy_2.png create mode 100644 code/web/api/data/ryzom/interface/pvp_enemy_3.png create mode 100644 code/web/api/data/ryzom/interface/pvp_enemy_4.png create mode 100644 code/web/api/data/ryzom/interface/pvp_enemy_6.png create mode 100644 code/web/api/data/ryzom/interface/pvp_enemy_marauder.png create mode 100644 code/web/api/data/ryzom/interface/pvp_enemy_trytonist.png create mode 100644 code/web/api/data/ryzom/interface/pw_4.png create mode 100644 code/web/api/data/ryzom/interface/pw_5.png create mode 100644 code/web/api/data/ryzom/interface/pw_6.png create mode 100644 code/web/api/data/ryzom/interface/pw_7.png create mode 100644 code/web/api/data/ryzom/interface/pw_heavy.png create mode 100644 code/web/api/data/ryzom/interface/pw_light.png create mode 100644 code/web/api/data/ryzom/interface/pw_medium.png create mode 100644 code/web/api/data/ryzom/interface/quest_coeur.png create mode 100644 code/web/api/data/ryzom/interface/quest_foie.png create mode 100644 code/web/api/data/ryzom/interface/quest_jeton.png create mode 100644 code/web/api/data/ryzom/interface/quest_langue.png create mode 100644 code/web/api/data/ryzom/interface/quest_louche.png create mode 100644 code/web/api/data/ryzom/interface/quest_oreille.png create mode 100644 code/web/api/data/ryzom/interface/quest_patte.png create mode 100644 code/web/api/data/ryzom/interface/quest_poils.png create mode 100644 code/web/api/data/ryzom/interface/quest_queue.png create mode 100644 code/web/api/data/ryzom/interface/quest_ticket.png create mode 100644 code/web/api/data/ryzom/interface/r2_live.png create mode 100644 code/web/api/data/ryzom/interface/r2_live_over.png create mode 100644 code/web/api/data/ryzom/interface/r2_live_pushed.png create mode 100644 code/web/api/data/ryzom/interface/r2_palette_entities.png create mode 100644 code/web/api/data/ryzom/interface/requirement.png create mode 100644 code/web/api/data/ryzom/interface/rm_f.png create mode 100644 code/web/api/data/ryzom/interface/rm_f_upgrade.png create mode 100644 code/web/api/data/ryzom/interface/rm_h.png create mode 100644 code/web/api/data/ryzom/interface/rm_h_upgrade.png create mode 100644 code/web/api/data/ryzom/interface/rm_m.png create mode 100644 code/web/api/data/ryzom/interface/rm_m_upgrade.png create mode 100644 code/web/api/data/ryzom/interface/rm_r.png create mode 100644 code/web/api/data/ryzom/interface/rm_r_upgrade.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_200.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_201.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_202.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_203.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_204.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_205.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_206.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_207.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_advanced.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_elementary.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_roleplay.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_task.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_task_certificats.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_task_convert.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_task_elementary.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_task_generic.png create mode 100644 code/web/api/data/ryzom/interface/rpjob_task_upgrade.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_200_a.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_200_b.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_200_c.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_201_a.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_201_b.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_201_c.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_202_a.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_202_b.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_202_c.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_203_a.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_203_b.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_203_c.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_204_a.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_204_b.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_204_c.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_205_a.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_205_b.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_205_c.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_206_a.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_206_b.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_206_c.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_207_a.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_207_b.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_207_c.png create mode 100644 code/web/api/data/ryzom/interface/rpjobitem_certifications.png create mode 100644 code/web/api/data/ryzom/interface/rw_autolaunch.png create mode 100644 code/web/api/data/ryzom/interface/rw_bowgun.png create mode 100644 code/web/api/data/ryzom/interface/rw_grenade.png create mode 100644 code/web/api/data/ryzom/interface/rw_harpoongun.png create mode 100644 code/web/api/data/ryzom/interface/rw_launcher.png create mode 100644 code/web/api/data/ryzom/interface/rw_pistol.png create mode 100644 code/web/api/data/ryzom/interface/rw_pistolarc.png create mode 100644 code/web/api/data/ryzom/interface/rw_rifle.png create mode 100644 code/web/api/data/ryzom/interface/sapload.png create mode 100644 code/web/api/data/ryzom/interface/sh_buckler.png create mode 100644 code/web/api/data/ryzom/interface/sh_large_shield.png create mode 100644 code/web/api/data/ryzom/interface/small_task_craft.png create mode 100644 code/web/api/data/ryzom/interface/small_task_done.png create mode 100644 code/web/api/data/ryzom/interface/small_task_failed.png create mode 100644 code/web/api/data/ryzom/interface/small_task_fight.png create mode 100644 code/web/api/data/ryzom/interface/small_task_forage.png create mode 100644 code/web/api/data/ryzom/interface/small_task_generic.png create mode 100644 code/web/api/data/ryzom/interface/small_task_guild.png create mode 100644 code/web/api/data/ryzom/interface/small_task_rite.png create mode 100644 code/web/api/data/ryzom/interface/small_task_travel.png create mode 100644 code/web/api/data/ryzom/interface/spe_beast.png create mode 100644 code/web/api/data/ryzom/interface/spe_com.png create mode 100644 code/web/api/data/ryzom/interface/spe_inventory.png create mode 100644 code/web/api/data/ryzom/interface/spe_labs.png create mode 100644 code/web/api/data/ryzom/interface/spe_memory.png create mode 100644 code/web/api/data/ryzom/interface/spe_options.png create mode 100644 code/web/api/data/ryzom/interface/spe_status.png create mode 100644 code/web/api/data/ryzom/interface/stimulating_water.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_attack.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_config.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_disband.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_disengage.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_extract.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_invite.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_kick.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_move.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_run.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_sit.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_stand.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_stop.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_talk.png create mode 100644 code/web/api/data/ryzom/interface/tb_action_walk.png create mode 100644 code/web/api/data/ryzom/interface/tb_animals.png create mode 100644 code/web/api/data/ryzom/interface/tb_config.png create mode 100644 code/web/api/data/ryzom/interface/tb_connection.png create mode 100644 code/web/api/data/ryzom/interface/tb_contacts.png create mode 100644 code/web/api/data/ryzom/interface/tb_desk_1.png create mode 100644 code/web/api/data/ryzom/interface/tb_desk_2.png create mode 100644 code/web/api/data/ryzom/interface/tb_desk_3.png create mode 100644 code/web/api/data/ryzom/interface/tb_desk_4.png create mode 100644 code/web/api/data/ryzom/interface/tb_faction.png create mode 100644 code/web/api/data/ryzom/interface/tb_forum.png create mode 100644 code/web/api/data/ryzom/interface/tb_guild.png create mode 100644 code/web/api/data/ryzom/interface/tb_help2.png create mode 100644 code/web/api/data/ryzom/interface/tb_keys.png create mode 100644 code/web/api/data/ryzom/interface/tb_macros.png create mode 100644 code/web/api/data/ryzom/interface/tb_mail.png create mode 100644 code/web/api/data/ryzom/interface/tb_mode.png create mode 100644 code/web/api/data/ryzom/interface/tb_mode_dodge.png create mode 100644 code/web/api/data/ryzom/interface/tb_mode_parry.png create mode 100644 code/web/api/data/ryzom/interface/tb_over.png create mode 100644 code/web/api/data/ryzom/interface/tb_support.png create mode 100644 code/web/api/data/ryzom/interface/tb_team.png create mode 100644 code/web/api/data/ryzom/interface/tb_windows.png create mode 100644 code/web/api/data/ryzom/interface/tetekitin.png create mode 100644 code/web/api/data/ryzom/interface/to_ammo.png create mode 100644 code/web/api/data/ryzom/interface/to_armor.png create mode 100644 code/web/api/data/ryzom/interface/to_cooking_pot.png create mode 100644 code/web/api/data/ryzom/interface/to_fishing_rod.png create mode 100644 code/web/api/data/ryzom/interface/to_forage.png create mode 100644 code/web/api/data/ryzom/interface/to_hammer.png create mode 100644 code/web/api/data/ryzom/interface/to_jewelry_hammer.png create mode 100644 code/web/api/data/ryzom/interface/to_jewels.png create mode 100644 code/web/api/data/ryzom/interface/to_leathercutter.png create mode 100644 code/web/api/data/ryzom/interface/to_melee.png create mode 100644 code/web/api/data/ryzom/interface/to_needle.png create mode 100644 code/web/api/data/ryzom/interface/to_pestle.png create mode 100644 code/web/api/data/ryzom/interface/to_range.png create mode 100644 code/web/api/data/ryzom/interface/to_searake.png create mode 100644 code/web/api/data/ryzom/interface/to_spade.png create mode 100644 code/web/api/data/ryzom/interface/to_stick.png create mode 100644 code/web/api/data/ryzom/interface/to_tunneling_knife.png create mode 100644 code/web/api/data/ryzom/interface/to_whip.png create mode 100644 code/web/api/data/ryzom/interface/to_wrench.png create mode 100644 code/web/api/data/ryzom/interface/tp_caravane.png create mode 100644 code/web/api/data/ryzom/interface/tp_kami.png create mode 100644 code/web/api/data/ryzom/interface/us_back_0.png create mode 100644 code/web/api/data/ryzom/interface/us_back_1.png create mode 100644 code/web/api/data/ryzom/interface/us_back_2.png create mode 100644 code/web/api/data/ryzom/interface/us_back_3.png create mode 100644 code/web/api/data/ryzom/interface/us_back_4.png create mode 100644 code/web/api/data/ryzom/interface/us_back_5.png create mode 100644 code/web/api/data/ryzom/interface/us_back_6.png create mode 100644 code/web/api/data/ryzom/interface/us_back_7.png create mode 100644 code/web/api/data/ryzom/interface/us_back_8.png create mode 100644 code/web/api/data/ryzom/interface/us_back_9.png create mode 100644 code/web/api/data/ryzom/interface/us_ico_0.png create mode 100644 code/web/api/data/ryzom/interface/us_ico_1.png create mode 100644 code/web/api/data/ryzom/interface/us_ico_2.png create mode 100644 code/web/api/data/ryzom/interface/us_ico_3.png create mode 100644 code/web/api/data/ryzom/interface/us_ico_4.png create mode 100644 code/web/api/data/ryzom/interface/us_ico_5.png create mode 100644 code/web/api/data/ryzom/interface/us_ico_6.png create mode 100644 code/web/api/data/ryzom/interface/us_ico_7.png create mode 100644 code/web/api/data/ryzom/interface/us_ico_8.png create mode 100644 code/web/api/data/ryzom/interface/us_ico_9.png create mode 100644 code/web/api/data/ryzom/interface/us_over_0.png create mode 100644 code/web/api/data/ryzom/interface/us_over_1.png create mode 100644 code/web/api/data/ryzom/interface/us_over_2.png create mode 100644 code/web/api/data/ryzom/interface/us_over_3.png create mode 100644 code/web/api/data/ryzom/interface/us_over_4.png create mode 100644 code/web/api/data/ryzom/interface/w_am_logo.png create mode 100644 code/web/api/data/ryzom/interface/w_leader.png create mode 100644 code/web/api/data/ryzom/interface/w_major.png create mode 100644 code/web/api/data/ryzom/interface/w_pa_anklet.png create mode 100644 code/web/api/data/ryzom/interface/w_pa_bracelet.png create mode 100644 code/web/api/data/ryzom/interface/w_pa_diadem.png create mode 100644 code/web/api/data/ryzom/interface/w_pa_earring.png create mode 100644 code/web/api/data/ryzom/interface/w_pa_pendant.png create mode 100644 code/web/api/data/ryzom/interface/w_pa_ring.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_id0.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_id1.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_id2.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_id3.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_id4.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_id5.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_id6.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_id7.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_id8.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_id9.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_shift_id0.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_shift_id1.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_shift_id2.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_shift_id3.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_shift_id4.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_shift_id5.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_shift_id6.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_shift_id7.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_shift_id8.png create mode 100644 code/web/api/data/ryzom/interface/w_slot_shortcut_shift_id9.png create mode 100644 code/web/api/data/ryzom/interface/xp_cat_green.png create mode 100644 code/web/api/server/guilds.php create mode 100644 code/web/api/server/hmagic.php create mode 100644 code/web/api/server/item_icon.php create mode 100644 code/web/api/server/time.php create mode 100644 code/web/api/time.php diff --git a/code/web/api/client/config.php.default b/code/web/api/client/config.php.default index 3c8ca869d..6cdbff401 100644 --- a/code/web/api/client/config.php.default +++ b/code/web/api/client/config.php.default @@ -17,4 +17,4 @@ */ // Url where player_auth.php is located -define('RYAPI_AUTH_SCRIPT', ''); +define('RYAPI_AUTH_SCRIPT', ''); \ No newline at end of file diff --git a/code/web/api/client/time.php b/code/web/api/client/time.php new file mode 100644 index 000000000..4b81db42a --- /dev/null +++ b/code/web/api/client/time.php @@ -0,0 +1,46 @@ +. + */ + +$tick_cache_timeout = 60; + +function ryzom_time_tick() { + $fn = RYAPI_URL.'data/cache/game_cycle.ticks'; + $handle = fopen($fn, "r"); + $version = fread($handle, 1); + $raw_tick = fread($handle, 4); + fclose($handle); + $arr = unpack("V", $raw_tick); + $tick = $arr[1]; + return sprintf("%u", $tick & 0xffffffff); +} + + +/** + * Takes a computed ryzom time array and returns a SimpleXMLElement + */ +function ryzom_time_xml($rytime) { + global $tick_cache_timeout; + $out = ryzom_time_xml_without_cache($rytime); + $filename = RYAPI_URL.'data/cache/game_cycle.ticks'; + $cache = $out->addChild('cache'); + $cache->addAttribute('created', filemtime($filename)); + $cache->addAttribute('expire', (filemtime($filename)+$tick_cache_timeout)); + return $out; +} + +?> \ No newline at end of file diff --git a/code/web/api/common/actionPage.php b/code/web/api/common/actionPage.php new file mode 100644 index 000000000..735a33f32 --- /dev/null +++ b/code/web/api/common/actionPage.php @@ -0,0 +1,161 @@ +. + */ + +class ryActionClass { + public $classname; + public $instance; + public $args; + public $requires; + + function __construct($classname, $instance, $args, $requires) { + $this->classname = $classname; + $this->instance = $instance; + $this->args = $args; + $this->requires = $requires; + } + +} + +class ryActionPage { + + private static $classesArgs = array(); + private static $myClasses = array(); + private static $aliases = array(); + private static $messages; + private static $haveMessage; + protected static $id; + + public $instanceName; + public $myMethods = array(); + + function __construct() { + } + + function addMethods($child_class) { + if (is_array($child_class)) { + foreach ($child_class as $c_class) + $this->myMethods = array_merge($this->myMethods, get_class_methods($c_class)); + } else { + $this->myMethods = get_class_methods($child_class); + } + } + + static function addClass($name, $classname, $args=array(), $requires=NULL) { + self::$myClasses[$name] = new ryActionClass($classname, NULL, $args, $requires); + } + + static function addAlias($aliasname, $name) { + self::$aliases[$aliasname] = $name; + } + + static function initInstance($listener) { + $i = self::$myClasses[$listener]; + if (!$i->instance) { + // requires + if ($i->requires) { + self::initInstance($i->requires); + } + if ($i->args) + $i->instance = new $i->classname($listener, $i->args); + else + $i->instance = new $i->classname($listener); + $i->instance->addMethods($i->classname); + $i->instance->instanceName = $listener; + + } + return $i->instance; + } + + static function getInstance($listener) { + return self::initInstance($listener); + } + + static function _addMSG($type='OK', $message='') { + self::$messages[] = array($type, $message); + return ''; + } + + function addMSG($type='OK', $action='', $message='') { + self::$messages[] = array($type, $message); + $this->haveMessage = $action; + return ''; + } + + static function getMSGs() { + return self::$messages; + } + + static function call($action, $url_params) { + $action_params = explode('_', $action); + + if (count($action_params) != 2) + return self::_addMSG('ERR', 'Action call error : bad params of ['.$action.']'); + + list($listener, $call) = $action_params; + if (array_key_exists($listener,self::$aliases)) + $listener = self::$aliases[$listener]; + + if (!array_key_exists($listener, self::$myClasses)) + return self::_addMSG('ERR', 'Action call error : class ['. $listener .'] not found'); + + $i = self::initInstance($listener); + + if (in_array('action'.$call, $i->myMethods)) { + $i->haveMessage = NULL; + $ret = call_user_func(array($i, 'action'.$call), $url_params); + if (!isset($_SESSION['last_action']) or $action != $_SESSION['last_action']) + $_SESSION['last_action'] = $action; + $msg = $i->haveMessage; + if ($msg and ($msg != $action)) { + $ret = self::call($msg, $url_params); + return self::_addMSG('OK', $ret); + } + return self::_addMSG('OK', $ret); + } else + return self::_addMSG('ERR', 'Action call error : action ['. $call .'] of ['. $listener .'] not found'); + } +} + +function callAction($action) { + $c = ''; + ryActionPage::call($action, ryzom_get_params()); + $msgs = ryActionPage::getMSGs(); + + foreach ($msgs as $msg) { + if ($msg[0] == 'HEADER') + $c .= $msg[1]; + } + + foreach ($msgs as $msg) { + if ($msg[0] == 'ERR') + $c .= _s('message error', $msg[1]); + else if ($msg[0] == 'MSG') + $c .= _s('message', $msg[1]); + else if ($msg[0] == 'WARNING') + $c .= _s('message warning', $msg[1]); + else if ($msg[0] != 'HEADER') + $c .= $msg[1]; + } + return $c; +} + + + + +?> diff --git a/code/web/api/common/auth.php b/code/web/api/common/auth.php index 1d52c5d8e..3f06d28d5 100644 --- a/code/web/api/common/auth.php +++ b/code/web/api/common/auth.php @@ -1,37 +1,94 @@ . + */ + + +function ryzom_app_authenticate(&$user, $ask_login=true, $welcome_message='', $webprivs=true) { $name = ryzom_get_param('name'); - $authserver = ryzom_get_param('authserver'); - $authkey = ryzom_get_param('authkey'); + $urluser = ryzom_get_param('user'); // user serialization send by auth server + $urlusercheksum = ryzom_get_param('checksum'); // user serialization checksum + $authkey = ryzom_get_param('authkey'); // InGame authkey $lang = ryzom_get_param('lang'); - $cid = ryzom_get_param('cid', ''); - $is_ingame = false; + $cid = intval(ryzom_get_param('cid')); + $is_auth_ingame = false; // we have to set the $user['lang'] even for anonymous user or we cannot display the test in the right langage if($lang == '') { - $l = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); - if($l=='fr'||$l=='en'||$l=='de'||$l=='ru'||$l=='es') + $l = isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])?substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2):'en'; + if ($l=='fr'||$l=='en'||$l=='de'||$l=='ru'||$l=='es') $lang = $l; else $lang = 'en'; } + if ($lang!='fr'&&$lang!='en'&&$lang!='de'&&$lang!='ru'&&$lang!='es') + $lang = 'en'; + $user['message'] = ''; $user['lang'] = $lang; - $user['ig'] = false; - - if ((isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'Ryzom')) || ryzom_get_param('ig')) { + $user['groups'] = array(); + + if ((isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'Ryzom')) || ryzom_get_param('ig')) $user['ig'] = true; + else + $user['ig'] = false; + + if (isset($_SESSION['user'])) { + if (ryzom_get_param('action') == 'logout') + unset($_SESSION['user']); + else { + $_SESSION['user']['ig'] = $user['ig']; + define('RYZOM_IG', $user['ig']); + $user = $_SESSION['user']; + return true; + } + } + + if ($urluser && $urlusercheksum) { + // Check $authuser (used to test app from another server ingame) + if (hash_hmac('sha1', $urluser, RYAPI_AUTH_KEY) == $urlusercheksum) { + $ig = $user['ig']; + $user = array_merge($user, unserialize(base64_decode($urluser))); + $user['ig'] = $ig; + if (!isset($user['groups'])) + $user['groups'] = array(); + define('RYZOM_IG', $user['ig']); + $_SESSION['user'] = $user; + return true; + } + } + + if ($user['ig']) { // Ingame $shardid = ryzom_get_param('shardid'); - if (!ryzom_authenticate_ingame($shardid, $cid, $name, $authkey)) - return false; - $is_ingame = true; + $error_message = ''; + if (ryzom_authenticate_ingame($shardid, $cid, $name, $authkey) || ryzom_authenticate_with_session($name, $cid, $error_message)) { + $is_auth_ingame = true; + } } else { - // Outgame : Use session + // Outgame or bad ingame auth (external server) : Use session $error_message = ''; if (!ryzom_authenticate_with_session($name, $cid, $error_message)) { + define('RYZOM_IG', false); if ($ask_login) { - $c = ''; + + if ($error_message) + $c = '

'._t($error_message).'

'; + else + $c = ''; if (!$welcome_message) $welcome_message = 'The application '._t(APP_NAME).' require authentication. Please enter your credentials'; @@ -47,18 +104,40 @@ function ryzom_app_authenticate(&$user, $ask_login=true, $welcome_message='') { } } - if ($lang) - $_SESSION['lang'] = $lang; + $_SESSION['lang'] = $lang; + define('RYZOM_IG', $user['ig']); // get user informations - $user = ryzom_user_get_info($cid); - $user['lang'] = $_SESSION['lang']; + $ig = $user['ig']; + $user = ryzom_user_get_info($cid, $webprivs); + if (isset($user['creation_date'])) - $user['id'] = ryzom_get_user_id($cid, $user['char_name'], $user['creation_date']); - if ($is_ingame && $user['last_played_date'] != '0') - $user['ig'] = true; + $user['id'] = ryzom_get_user_id($cid, $user['char_name'], $user['creation_date'], $user); + + $user['ig'] = $ig; + $user['lang'] = $_SESSION['lang']; + if (!isset($user['groups'])) + $user['groups'] = array(); + + if ($is_auth_ingame && $user['last_played_date'] != '0') + $user['auth_ig'] = true; else - $user['ig'] = false; + $user['auth_ig'] = false; + + if (!isset($_SESSION['translater_mode']) || ryzom_get_param('translate_this') == '0') + $_SESSION['translater_mode'] = false; + + // Set/unset translation mode + if (in_array('WTRS', $user['groups']) && ryzom_get_param('translate_this') == '1') + $_SESSION['translater_mode'] = true; + + $user['translation_mode'] = $_SESSION['translater_mode']; + + ryzom_unset_url_param('translate_this'); + + if (isset($user['last_played_date'])) + $_SESSION['last_played_date'] = $user['last_played_date']; + // don't send this informations to external apps unset($user['last_played_date']); unset($user['creation_date']); return true; diff --git a/code/web/api/common/bbCode.php b/code/web/api/common/bbCode.php new file mode 100644 index 000000000..e45dfadb9 --- /dev/null +++ b/code/web/api/common/bbCode.php @@ -0,0 +1,988 @@ +. + */ + +// setup bbCode formatter + +bbCode::$ig = RYZOM_IG; + +/** + * Image proxy + */ +if(!defined('IMG_PROXY')){ + $url = 'http://'.$_SERVER['HTTP_HOST'].'/app_forum/tools/imageproxy.php'; + define('IMG_PROXY', $url); +} +if (!function_exists('proxy_image_url')) { + function proxy_image_url($href, $attrs=''){ + return IMG_PROXY.'?'.($attrs != '' ? $attrs.'&' : '').'url='.urlencode($href); + } +} + + +abstract class bbCodeParser { + + /** + * @var bool + */ + private $_ig; + + /** + * @var array + */ + private $tags_ignore; + private $tags_block_open; + private $tags_block_close; + private $tags_ignore_depth; + + /** + * @var array + */ + private $open_tags; + + /** + * @var string + */ + private $last_closed_tag; + + /** + * @var int + */ + private $current_tag; + + /** + * @var array + */ + private $state; + + /** + * @param bool $ig if true, use ingame markup + */ + function __construct($ig) { + $this->_ig = $ig; + + // ignore bbcode between these tags + $this->tags_ignore = array( + 'noparse', 'code', + 'url', 'img', 'mail', 'page', 'forum', 'topic', 'post', 'wiki', 'time', 'date' + ); + + // these create block level html code, so '\n' or ' ' or '\t' around them needs to be cleared + $this->tags_block_open = array('h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'quote', 'list', 'p'); + $this->tags_block_close = $this->tags_block_open; + if ($this->_ig) { + // ingame

is not block level when closing, so dont strip there + $key = array_search('p', $this->tags_block_close, true); + unset($this->tags_block_close[$key]); + } + + $this->state = array(); + + // reset internals + $this->reset(); + } + + /** + * Format bbcode tag + * + * @param string $tag tag name + * @param string $open open markup + * @param string $close close markup + * @param string $attr tag attributes + * @param string $text text between tags + */ + abstract function format($tag, $open, $close, $attr, $text); + + /** + * Wrapper to call Child->format(...) + * + * @param array $tag assoc array with tag info + * @return string + */ + function handle_tag($tag) { + return $this->format($tag['tag'], $tag['open'], $tag['close'], $tag['attr'], $tag['text']); + } + + /** + * Reset internals + */ + function reset() { + $this->current_tag = 0; + $this->tags_ignore_depth = 0; + + // 0'th position is used as result + $this->open_tags = array( + 0 => array('tag' => '', 'open' => '', 'close' => '', 'attr' => '', 'text' => '') + ); + + $this->last_closed_tag = false; + } + + /** + * Save working state + */ + private function _state_save() { + $this->state[] = array($this->current_tag, $this->tags_ignore_depth, $this->open_tags, $this->last_closed_tag); + $this->reset(); + } + + /** + * Restore working state + */ + private function _state_restore() { + if (!empty($this->state)) { + list($this->current_tag, $this->tags_ignore_depth, $this->open_tags, $this->last_closed_tag) = array_pop($this->state); + } + } + + /** + * Main worker. Parse $text for bbCode tags + * + * NOTE: Text must already be safe for HTML, ie. treated with htmlspecialchars() + * + * @param string $text + * @return string formatted string + */ + function bbcode($text) { + $text = str_replace("\r\n", "\n", $text); + + $split = preg_split('/(\[[a-zA-Z0-9_\/]*?(?:[= ].*?)?\])/', $text, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); + + foreach ($split as $chunk) { + if (substr($chunk, 0, 1) == '[' && substr($chunk, -1, 1) == ']') { + if (substr($chunk, 0, 2) == '[/') { + $this->close($chunk); + } else { + $this->open($chunk); + } + } else { + $this->text($chunk); + } + } + + return $this->result(); + } + + /** + * Push tag with args to stack + * Do not strip whitespace because tag might be invalid + * + * @param string $chunk full tag string, eg. [tag=attr] + */ + function open($chunk) { + list($tag, $attr) = $this->split_params($chunk); + + // test for [noparse] + if ($this->tags_ignore_depth > 0) { + $this->text($chunk); + } else { + $this->current_tag++; + // remember tag, attributes and complete string that was used in markup + $this->open_tags[$this->current_tag] = array('tag' => $tag, 'attr' => $attr, 'open' => $chunk, 'close' => '', 'text' => ''); + } + + if (in_array($tag, $this->tags_ignore)) { + $this->tags_ignore_depth++; + } + } + + /** + * Close tag and call tag handler to format output + * + * @param $chunk full tag string, eg. [/tag] + */ + function close($chunk) { + // extract tag name from [/name] + $tag = strtolower(substr($chunk, 2, -1)); + + if ($this->tags_ignore_depth > 0 && in_array($tag, $this->tags_ignore)) { + $this->tags_ignore_depth--; + } + + // stack underrun + if ($this->current_tag < 0) { + $this->text($chunk); + return; + } + + // ignore block + if ($this->tags_ignore_depth > 0) { + $this->text($chunk); + return; + } + + // tag mismatch + if ($this->open_tags[$this->current_tag]['tag'] !== $tag) { + // try to find first open tag for this + $key = false; + for ($i = $this->current_tag - 1; $i > 0; $i--) { + if (isset($this->open_tags[$i]['tag']) && $this->open_tags[$i]['tag'] === $tag) { + $key = $i; + break; + } + } + if ($key === false) { + $this->text($chunk); + return; + } + + // tag is open so we need to 'rewind' a bit + for ($i = $this->current_tag; $i > $key; $i--) { + $tmp_tag = $this->pop_stack(); + $this->text($tmp_tag['open'] . $tmp_tag['text']); + } + } + + // close tag + $open = $this->pop_stack(); + + // handle bbcode + $open['close'] = $chunk; + + $block_level = false; + if (in_array($tag, $this->tags_block_open)) { + $block_level = true; + // for block level element, trim whitespace from inside tag + // [tag]...text...[/tag] + $open['text'] = $this->trim_ws($open['text']); + } + $result = $this->handle_tag($open); + + // strip whitespace from text before tag 'text...[tag]' + if ($block_level) { + $ts = $this->rtrim_ws($this->open_tags[$this->current_tag]['text']); + $this->open_tags[$this->current_tag]['text'] = $ts; + } + + $this->text($result); + + $this->last_closed_tag = $open['tag']; + } + + function text($text) { + // strip whitespace after closing '[/tag]...text' + if (in_array($this->last_closed_tag, $this->tags_block_close)) { + $text = $this->ltrim_ws($text); + } + $this->open_tags[$this->current_tag]['text'] .= $text; + + $this->last_closed_tag = false; + } + + function result() { + // close tags that are still open + while ($this->current_tag > 0) { + $open = $this->pop_stack(); + + if ($this->tags_ignore_depth > 0) { + $this->tags_ignore_depth--; + // need to reparse text that's after ignore tag + $this->_state_save(); + $text = $open['open'] . $this->bbcode($open['text']); + $this->_state_restore(); + } else { + // tag was not closed proprely, include start tag with result + $text = $open['open'] . $open['text']; + } + + $this->text($text); + }; + + return $this->open_tags[0]['text']; + } + + /** + * Pop tag and text from stack and return them + * + * @return array [0] = tag, [1] = text + */ + function pop_stack() { + // remove from stack + $open = $this->open_tags[$this->current_tag]; + unset($this->open_tags[$this->current_tag]); + $this->current_tag--; + + return $open; + } + + /** + * Trim from end of string + * 'text...\s{0,}\n{1}\s{0,}' + * + * @param string $ts + * @return string + */ + function rtrim_ws($ts){ + // we want to get rid of all spaces/tabs, but only single \n, so rtrim($ts, " \t\n\r") would not work + $ts = rtrim($ts, " \t"); + if (substr($ts, -1, 1) === "\n") { + $ts = substr($ts, 0, -1); + $ts = rtrim($ts, " \t"); + } + return $ts; + } + + /** + * Trim from start of string + * '\s{0,}\n{1}...text' + * + * @param string $ts + * @return string + */ + function ltrim_ws($ts){ + // we want to get rid of all spaces/tabs, but only single \n, so ltrim($ts, " \t\n\r") would not work + $ts = ltrim($ts, " \t"); + if (substr($ts, 0, 1) === "\n") { + $ts = substr($ts, 1); + } + return $ts; + } + + /** + * Trim from both sides + * '\s{0,}\n{1}...text...\s{0,}\n{1}\s{0,} + * + * @param string $ts + * @return string + */ + function trim_ws($ts){ + $ts = $this->ltrim_ws($ts); + $ts = $this->rtrim_ws($ts); + return $ts; + } + + /** + * Extract tag parameters from [tag=params] or [tag key1=val1 key2=val2] + * + * @param type $tag + * @return type + */ + function split_params($chunk) { + if (substr($chunk, 0, 1) == '[') { + $b = '\['; + $e = '\]'; + } else { + $b = ''; + $e = ''; + } + // [1] [2] [3] + if (preg_match('/^' . $b . '([\*a-zA-Z0-9]*?)' . '(=| )' . '(.*?)' . $e . '$/', $chunk, $match)) { + $tagName = strtolower($match[1]); + if ($match[2] == '=') { + // = means single parameter + $tagParam = $match[3]; + } else { + // means multiple parameters + $tagParam = array(); + $args = preg_split('/[ ]/', $match[3], null, PREG_SPLIT_NO_EMPTY); + foreach ($args as $arg) { + $pairs = explode('=', $arg); + // preg_replace will remove possible quotes around value + if (isset($pairs[1])) { + $tagParam[strtolower($pairs[0])] = preg_replace('@("|\'|)(.*?)\\1@', '$2', $pairs[1]); + } else { + $tagParam[] = preg_replace('@("|\'|)(.*?)\\1@', '$2', $pairs[0]); + } + } + } + } else { + if (substr($chunk, 0, 1) == '[' && substr($chunk, -1, 1) == ']') { + $chunk = substr($chunk, 1, -1); + } + $tagName = strtolower($chunk); + $tagParam = ''; + } + return array($tagName, $tagParam); + } + +} + +class bbCode extends bbCodeParser { + static $legacy_sync = 1348956841; + static $legacy_shard = array( + 'ani' => 2363920179, + 'lea' => 2437578274, + 'ari' => 2358620001, + ); + + static $ig = false; + static $timezone = 'UTC'; + static $clock12h = false; + static $shardid = false; + static $lang = 'en'; + static $disabledTags = array(); + // + const COLOR_P = '#d0d0d0'; // normal text + // + const COLOR_BBCODE_TAG = '#444444'; + + static function bbDisabled($tag) { + return in_array(strtolower($tag), self::$disabledTags); + } + + static function getFontSize($value) { + $size = 16; + switch (strtolower($value)) { + case '1': case 'xx-small': $size = 9; break; + case '2': case 'x-small' : $size = 10; break; + case '3': case 'small' : $size = 13; break; + case '4': case 'medium' : $size = 16; break; + case '5': case 'large' : $size = 18; break; + case '6': case 'x-large' : $size = 24; break; + case '7': case 'xx-large': $size = 32; break; + //case '8': case 'smaller' : break; + //case '9': case 'larger' : break; + } + return $size; + } + + static function bb_noparse($code) { + return preg_replace(array('/\[/', '/\]/'), array('[', ']'), $code); + } + + static function bb_code($code) { + return '

' . self::bb_noparse($code) . '
'; + } + + static function bb_list($list) { + $result = ''; + $list = str_replace("\n[", '[', $list); + $result = ''; + return preg_replace('#