diff --git a/code/ryzom/client/patcher/CMakeLists.txt b/code/ryzom/client/patcher/CMakeLists.txt
deleted file mode 100644
index 3b8b89a3d..000000000
--- a/code/ryzom/client/patcher/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-FILE(GLOB SRC *.uxt)
-
-INSTALL(FILES ${SRC} DESTINATION "${RYZOM_SHARE_PREFIX}/patcher")
diff --git a/code/ryzom/client/patcher/de.uxt b/code/ryzom/client/patcher/de.uxt
deleted file mode 100644
index 6312cc39c..000000000
--- a/code/ryzom/client/patcher/de.uxt
+++ /dev/null
@@ -1,191 +0,0 @@
-// HASH_VALUE 6B09AC86E0363C89
-// INDEX 0
-LanguageName [Deutsch]
-
-// HASH_VALUE 3259CCA76B39A0A8
-// INDEX 1
-TheSagaOfRyzom [Ryzom]
-
-// HASH_VALUE C7CC3BE0464ED819
-// INDEX 333
-uiOnChecking [ÜBERPRÜFE DATEIEN FÜR DEN PATCH...]
-
-// HASH_VALUE 3DDF0D8BBD1D3C7A
-// INDEX 348
-uiErrCantPatch [Fehler : Du kannst nicht patchen, da die PatchURL noch nicht in die Datenbank eingegeben wurde (Fehlercode 16).]
-
-// HASH_VALUE E1B933F053557A69
-// INDEX 349
-uiNeedToPatch [Information : Du musst patchen, um Zugang zu diesem Shard zu erlangen.]
-
-// HASH_VALUE 1CFD71DE1856F357
-// INDEX 350
-uiErrServerLost [Fehler : Die Verbindung zum Server wurde während des Patchens unterbrochen.]
-
-// HASH_VALUE 0781700FFA41B8F9
-// INDEX 351
-uiPatching [PATCHE, BITTE WARTEN]
-
-// HASH_VALUE B11FE4024EE3A1CB
-// INDEX 352
-uiErrPatchApply [Fehler : Patchprozess beendet, aber der Patch konnte nicht erfolgreich eingesetzt werden.]
-
-// HASH_VALUE 428B3D2BDA3B2CD2
-// INDEX 353
-uiErrChecking [Fehler : Patchdateien versagen - Überprüfung.]
-
-// HASH_VALUE 40D0242C40D0242C
-// INDEX 354
-uiKb [KB]
-
-// HASH_VALUE 4050243440502434
-// INDEX 355
-uiMb [MB]
-
-// HASH_VALUE 9FA5A06DD895B637
-// INDEX 356
-uiLoginGetFile [Lade Datei:]
-
-// HASH_VALUE 373988CC56A4B9DB
-// INDEX 357
-uiDLFailed [Download vom Notfall-Server gescheitert, Login wurde abgebrochen]
-
-// HASH_VALUE 0DD314AEEB0A6833
-// INDEX 358
-uiDLURIFailed [Download vom URI gescheitert (neuer Versuch):]
-
-// HASH_VALUE 9FEF11F92FE58883
-// INDEX 359
-uiNoMoreURI [Keine Verbindung mehr zum URI, versuche den Notfall-Server]
-
-// HASH_VALUE D126843FEAF6BF89
-// INDEX 360
-uiDLWithCurl [Datei laden mit Curl:]
-
-// HASH_VALUE 5DF5B8902957A38B
-// INDEX 361
-uiDecompressing [Dekomprimiere Datei:]
-
-// HASH_VALUE 5C24504228490833
-// INDEX 362
-uiCheckInt [Überprüfe Integrität:]
-
-// HASH_VALUE 4C08EC7AE63A3CA8
-// INDEX 363
-uiNoVersionFound [Keine Version gefunden]
-
-// HASH_VALUE EA9BF07087F0DE5C
-// INDEX 364
-uiVersionFound [Version gefunden:]
-
-// HASH_VALUE 6CBAA4C2CED054DA
-// INDEX 365
-uiApplyingDelta [Delta anlegen:]
-
-// HASH_VALUE 6BA9B484A5229440
-// INDEX 366
-uiClientVersion [Klientversion]
-
-// HASH_VALUE 2EAADC9D27B47047
-// INDEX 367
-uiServerVersion [Serverversion]
-
-// HASH_VALUE A8B6FC32E686BF9C
-// INDEX 368
-uiCheckingFile [Überprüfe Datei]
-
-// HASH_VALUE 6618CC5E4408BC94
-// INDEX 369
-uiNeededPatches [Benötigte Patches :]
-
-// HASH_VALUE 57D72C08D558C375
-// INDEX 370
-uiCheckInBNP [Überprüfe innerhalb BNP :]
-
-// HASH_VALUE 8810F72436CBB610
-// INDEX 371
-uiSHA1Diff [BNP Zwangsentpackung : Checksumme stimmt nicht überein :]
-
-// HASH_VALUE 0328885969AA93AC
-// INDEX 372
-uiCheckEndNoErr [Dateiüberprüfung ohne Fehler beendet]
-
-// HASH_VALUE 9759642196BA93B6
-// INDEX 373
-uiCheckEndWithErr [Dateiüberprüfung mit Fehler beendet:]
-
-// HASH_VALUE 03196C6669AA93A9
-// INDEX 374
-uiPatchEndNoErr [Dateipatch ohne Fehler beendet]
-
-// HASH_VALUE E2A45B80D6C8F35E
-// INDEX 375
-uiPatchEndWithErr [Patch fehlgeschlagen!]
-
-// HASH_VALUE 97987345E8D46F43
-// INDEX 376
-uiPatchDiskFull [Ungenügender Festplattenspeicher!]
-
-// HASH_VALUE 67818F3F0F656F1B
-// INDEX 377
-uiPatchWriteError [Fehler beim Schreiben auf die Festplatte! (Festplatte voll?)]
-
-// HASH_VALUE 54956061978AB897
-// INDEX 378
-uiProcessing [Bearbeite Datei:]
-
-// HASH_VALUE D183CC5E53E4E24A
-// INDEX 379
-uiUnpack [BNP entpacken:]
-
-// HASH_VALUE 57282453CE0D24A5
-// INDEX 380
-uiUnpackErrHead [Bnp-Header unlesbar:]
-
-// HASH_VALUE 3EC17830B80D1B1D
-// INDEX 381
-uiRebootConfirm [Klicke, um neu zu starten. Bitte warten, Ryzom startet dann automatisch.]
-
-// HASH_VALUE 809F582A06023625
-// INDEX 382
-uiRebootBut [HIER KLICKEN, UM NEU ZU STARTEN]
-
-// HASH_VALUE EA9888EBCAF59355
-// INDEX 383
-uiChangeDate [Das Mod-Datum ändern :]
-
-// HASH_VALUE 4589434CDD042E75
-// INDEX 384
-uiChgDateErr [File-Zeit unveränderbar :]
-
-// HASH_VALUE 5BCA0C0C45A99719
-// INDEX 385
-uiNowDate [Wir haben den :]
-
-// HASH_VALUE 485B4807F0581777
-// INDEX 386
-uiSetAttrib [File-Attribute einstellen :]
-
-// HASH_VALUE 5EB5789353166D5E
-// INDEX 387
-uiAttribErr [Zugang unlesbar :]
-
-// HASH_VALUE C2B6FF326665E080
-// INDEX 388
-uiDelFile [File löschen :]
-
-// HASH_VALUE 0D262B3499A4A35A
-// INDEX 389
-uiDelErr [ File kann nicht gelöscht werden:]
-
-// HASH_VALUE C238BC781514042B
-// INDEX 390
-uiDelNoFile [ File löschen (Keine File)]
-
-// HASH_VALUE C1B7E33CDEF4085B
-// INDEX 391
-uiRenameFile [File umbenennen:]
-
-// HASH_VALUE 8DB5533699858756
-// INDEX 392
-uiRenameErr [File kann nicht umbenannt werden :]
diff --git a/code/ryzom/client/patcher/en.uxt b/code/ryzom/client/patcher/en.uxt
deleted file mode 100644
index c092d57a1..000000000
--- a/code/ryzom/client/patcher/en.uxt
+++ /dev/null
@@ -1,191 +0,0 @@
-// HASH_VALUE 6B09AC86E0363C89
-// INDEX 0
-LanguageName [English]
-
-// HASH_VALUE 3259CCA76B39A0A8
-// INDEX 1
-TheSagaOfRyzom [Ryzom]
-
-// HASH_VALUE C7CC3BE0464ED819
-// INDEX 333
-uiOnChecking [CHECKING FILES FOR PATCH...]
-
-// HASH_VALUE 3DDF0D8BBD1D3C7A
-// INDEX 348
-uiErrCantPatch [Error: You cannot patch because the PatchURL isn't setup in database (error code 16).]
-
-// HASH_VALUE E1B933F053557A69
-// INDEX 349
-uiNeedToPatch [Information: You need to patch to access to this shard.]
-
-// HASH_VALUE 1CFD71DE1856F357
-// INDEX 350
-uiErrServerLost [Error: Lost server during patching.]
-
-// HASH_VALUE 0781700FFA41B8F9
-// INDEX 351
-uiPatching [PATCHING PLEASE WAIT]
-
-// HASH_VALUE B11FE4024EE3A1CB
-// INDEX 352
-uiErrPatchApply [Error: Patch process ended but the patch has not been successfully applied.]
-
-// HASH_VALUE 428B3D2BDA3B2CD2
-// INDEX 353
-uiErrChecking [Error: Patch files failed - checking.]
-
-// HASH_VALUE 40D0242C40D0242C
-// INDEX 354
-uiKb [KB]
-
-// HASH_VALUE 4050243440502434
-// INDEX 355
-uiMb [MB]
-
-// HASH_VALUE 9FA5A06DD895B637
-// INDEX 356
-uiLoginGetFile [Getting File:]
-
-// HASH_VALUE 373988CC56A4B9DB
-// INDEX 357
-uiDLFailed [Download from emergency server failed, patching is aborted]
-
-// HASH_VALUE 0DD314AEEB0A6833
-// INDEX 358
-uiDLURIFailed [Download from URI failed (will try again):]
-
-// HASH_VALUE 9FEF11F92FE58883
-// INDEX 359
-uiNoMoreURI [No more patch URI, try emergency patch server]
-
-// HASH_VALUE D126843FEAF6BF89
-// INDEX 360
-uiDLWithCurl [Downloading File With Curl:]
-
-// HASH_VALUE 5DF5B8902957A38B
-// INDEX 361
-uiDecompressing [Decompressing File:]
-
-// HASH_VALUE 5C24504228490833
-// INDEX 362
-uiCheckInt [Checking Integrity:]
-
-// HASH_VALUE 4C08EC7AE63A3CA8
-// INDEX 363
-uiNoVersionFound [No Version Found]
-
-// HASH_VALUE EA9BF07087F0DE5C
-// INDEX 364
-uiVersionFound [Version Found:]
-
-// HASH_VALUE 6CBAA4C2CED054DA
-// INDEX 365
-uiApplyingDelta [Applying Delta:]
-
-// HASH_VALUE 6BA9B484A5229440
-// INDEX 366
-uiClientVersion [Client Version]
-
-// HASH_VALUE 2EAADC9D27B47047
-// INDEX 367
-uiServerVersion [Server Version]
-
-// HASH_VALUE A8B6FC32E686BF9C
-// INDEX 368
-uiCheckingFile [Checking File]
-
-// HASH_VALUE 6618CC5E4408BC94
-// INDEX 369
-uiNeededPatches [Required Patches:]
-
-// HASH_VALUE 57D72C08D558C375
-// INDEX 370
-uiCheckInBNP [Checking inside BNP:]
-
-// HASH_VALUE 8810F72436CBB610
-// INDEX 371
-uiSHA1Diff [Force BNP Unpacking: checksums do not correspond:]
-
-// HASH_VALUE 0328885969AA93AC
-// INDEX 372
-uiCheckEndNoErr [Checking file ended with no errors]
-
-// HASH_VALUE 9759642196BA93B6
-// INDEX 373
-uiCheckEndWithErr [Checking file ended with errors:]
-
-// HASH_VALUE 03196C6669AA93A9
-// INDEX 374
-uiPatchEndNoErr [Patching file ended with no errors]
-
-// HASH_VALUE E2A45B80D6C8F35E
-// INDEX 375
-uiPatchEndWithErr [Patch failed!]
-
-// HASH_VALUE 97987345E8D46F43
-// INDEX 376
-uiPatchDiskFull [Disk full!]
-
-// HASH_VALUE 67818F3F0F656F1B
-// INDEX 377
-uiPatchWriteError [Disk write error! (disk full?)]
-
-// HASH_VALUE 54956061978AB897
-// INDEX 378
-uiProcessing [Processing file:]
-
-// HASH_VALUE D183CC5E53E4E24A
-// INDEX 379
-uiUnpack [BNP Unpacking:]
-
-// HASH_VALUE 57282453CE0D24A5
-// INDEX 380
-uiUnpackErrHead [Cannot read bnp header:]
-
-// HASH_VALUE 3EC17830B80D1B1D
-// INDEX 381
-uiRebootConfirm [Ryzom will now relaunch. Please wait until Ryzom is fully restarted.]
-
-// HASH_VALUE 809F582A06023625
-// INDEX 382
-uiRebootBut [CLICK HERE TO RELAUNCH]
-
-// HASH_VALUE EA9888EBCAF59355
-// INDEX 383
-uiChangeDate [Changing the mod date:]
-
-// HASH_VALUE 4589434CDD042E75
-// INDEX 384
-uiChgDateErr [Cannot change file time:]
-
-// HASH_VALUE 5BCA0C0C45A99719
-// INDEX 385
-uiNowDate [Now the date is:]
-
-// HASH_VALUE 485B4807F0581777
-// INDEX 386
-uiSetAttrib [Set file attributes:]
-
-// HASH_VALUE 5EB5789353166D5E
-// INDEX 387
-uiAttribErr [Cannot have read/write access:]
-
-// HASH_VALUE C2B6FF326665E080
-// INDEX 388
-uiDelFile [Delete file:]
-
-// HASH_VALUE 0D262B3499A4A35A
-// INDEX 389
-uiDelErr [Cannot delete file:]
-
-// HASH_VALUE C238BC781514042B
-// INDEX 390
-uiDelNoFile [Delete file (no file)]
-
-// HASH_VALUE C1B7E33CDEF4085B
-// INDEX 391
-uiRenameFile [Rename File:]
-
-// HASH_VALUE 8DB5533699858756
-// INDEX 392
-uiRenameErr [Cannot rename file:]
diff --git a/code/ryzom/client/patcher/fr.uxt b/code/ryzom/client/patcher/fr.uxt
deleted file mode 100644
index 9be7db2d4..000000000
--- a/code/ryzom/client/patcher/fr.uxt
+++ /dev/null
@@ -1,191 +0,0 @@
-// HASH_VALUE 6B09AC86E0363C89
-// INDEX 0
-LanguageName [Français]
-
-// HASH_VALUE 3259CCA76B39A0A8
-// INDEX 1
-TheSagaOfRyzom [Ryzom]
-
-// HASH_VALUE C7CC3BE0464ED819
-// INDEX 333
-uiOnChecking [EXAMINE LES FICHIERS A PATCHER...]
-
-// HASH_VALUE 3DDF0D8BBD1D3C7A
-// INDEX 348
-uiErrCantPatch [Erreur : Vous ne pouvez pas patcher car l'URL des mises à jour n'est pas configurée dans la base de données (erreur code 16).]
-
-// HASH_VALUE E1B933F053557A69
-// INDEX 349
-uiNeedToPatch [Information : Vous devez installer les mises à jour pour accéder à ce shard.]
-
-// HASH_VALUE 1CFD71DE1856F357
-// INDEX 350
-uiErrServerLost [Erreur : Perte du serveur durant la mise à jour de Ryzom.]
-
-// HASH_VALUE 0781700FFA41B8F9
-// INDEX 351
-uiPatching [MISE A JOUR EN COURS, VEUILLEZ PATIENTER]
-
-// HASH_VALUE B11FE4024EE3A1CB
-// INDEX 352
-uiErrPatchApply [Erreur : le processus de mises à jour est terminé mais les patchs n'ont pas pu être installés correctement.]
-
-// HASH_VALUE 428B3D2BDA3B2CD2
-// INDEX 353
-uiErrChecking [Erreur : Echec des fichiers de mises à jour - vérification.]
-
-// HASH_VALUE 40D0242C40D0242C
-// INDEX 354
-uiKb [Ko]
-
-// HASH_VALUE 4050243440502434
-// INDEX 355
-uiMb [Mo]
-
-// HASH_VALUE 9FA5A06DD895B637
-// INDEX 356
-uiLoginGetFile [Récupération du fichier :]
-
-// HASH_VALUE 373988CC56A4B9DB
-// INDEX 357
-uiDLFailed [Echec téléchargement à partir du serveur d'urgence, processus de patchs avorté]
-
-// HASH_VALUE 0DD314AEEB0A6833
-// INDEX 358
-uiDLURIFailed [Echec téléchargement à partir d'URI (nouvel essai) :]
-
-// HASH_VALUE 9FEF11F92FE58883
-// INDEX 359
-uiNoMoreURI [Plus de patchs URI, essayez le serveur d'urgence]
-
-// HASH_VALUE D126843FEAF6BF89
-// INDEX 360
-uiDLWithCurl [Téléchargement des fichiers via Curl:]
-
-// HASH_VALUE 5DF5B8902957A38B
-// INDEX 361
-uiDecompressing [Décompression du fichier :]
-
-// HASH_VALUE 5C24504228490833
-// INDEX 362
-uiCheckInt [Vérification de l'intégrité :]
-
-// HASH_VALUE 4C08EC7AE63A3CA8
-// INDEX 363
-uiNoVersionFound [Pas de Version trouvée]
-
-// HASH_VALUE EA9BF07087F0DE5C
-// INDEX 364
-uiVersionFound [Version trouvée :]
-
-// HASH_VALUE 6CBAA4C2CED054DA
-// INDEX 365
-uiApplyingDelta [Application du Delta :]
-
-// HASH_VALUE 6BA9B484A5229440
-// INDEX 366
-uiClientVersion [Version du Client]
-
-// HASH_VALUE 2EAADC9D27B47047
-// INDEX 367
-uiServerVersion [Version du Serveur]
-
-// HASH_VALUE A8B6FC32E686BF9C
-// INDEX 368
-uiCheckingFile [Vérification du fichier]
-
-// HASH_VALUE 6618CC5E4408BC94
-// INDEX 369
-uiNeededPatches [Patchs nécessaires :]
-
-// HASH_VALUE 57D72C08D558C375
-// INDEX 370
-uiCheckInBNP [Vérification du BNP :]
-
-// HASH_VALUE 8810F72436CBB610
-// INDEX 371
-uiSHA1Diff [Force BNP Analysée : SHA1 ne correspond pas :]
-
-// HASH_VALUE 0328885969AA93AC
-// INDEX 372
-uiCheckEndNoErr [Fin de vérification du fichier - Pas d'erreur]
-
-// HASH_VALUE 9759642196BA93B6
-// INDEX 373
-uiCheckEndWithErr [Fin de vérification du fichier - Erreur(s) :]
-
-// HASH_VALUE 03196C6669AA93A9
-// INDEX 374
-uiPatchEndNoErr [Fichier de patch terminé - Pas d'erreur]
-
-// HASH_VALUE E2A45B80D6C8F35E
-// INDEX 375
-uiPatchEndWithErr [Echec de la mise à jour !]
-
-// HASH_VALUE 97987345E8D46F43
-// INDEX 376
-uiPatchDiskFull [Disque plein !]
-
-// HASH_VALUE 67818F3F0F656F1B
-// INDEX 377
-uiPatchWriteError [Erreur d'écriture ! (disque plein ?)]
-
-// HASH_VALUE 54956061978AB897
-// INDEX 378
-uiProcessing [Traîtement des fichiers :]
-
-// HASH_VALUE D183CC5E53E4E24A
-// INDEX 379
-uiUnpack [Décompression BNP :]
-
-// HASH_VALUE 57282453CE0D24A5
-// INDEX 380
-uiUnpackErrHead [Impossible de lire l'en-tête bnp :]
-
-// HASH_VALUE 3EC17830B80D1B1D
-// INDEX 381
-uiRebootConfirm [Ryzom va être redémarré. Attendez que le jeu soit totalement relancé SVP.]
-
-// HASH_VALUE 809F582A06023625
-// INDEX 382
-uiRebootBut [CLIQUEZ ICI POUR REDEMARRER]
-
-// HASH_VALUE EA9888EBCAF59355
-// INDEX 383
-uiChangeDate [Changement du mode date :]
-
-// HASH_VALUE 4589434CDD042E75
-// INDEX 384
-uiChgDateErr [Impossible de modifier le fichier heure :]
-
-// HASH_VALUE 5BCA0C0C45A99719
-// INDEX 385
-uiNowDate [La date est :]
-
-// HASH_VALUE 485B4807F0581777
-// INDEX 386
-uiSetAttrib [Réglages attributs du fichier :]
-
-// HASH_VALUE 5EB5789353166D5E
-// INDEX 387
-uiAttribErr [Impossible d'obtenir l'accès lire/écrire :]
-
-// HASH_VALUE C2B6FF326665E080
-// INDEX 388
-uiDelFile [Suppression du fichier :]
-
-// HASH_VALUE 0D262B3499A4A35A
-// INDEX 389
-uiDelErr [Impossible de supprimer le fichier :]
-
-// HASH_VALUE C238BC781514042B
-// INDEX 390
-uiDelNoFile [Suppression du fichier (pas de fichier)]
-
-// HASH_VALUE C1B7E33CDEF4085B
-// INDEX 391
-uiRenameFile [Attribution d'un nouveau nom au fichier :]
-
-// HASH_VALUE 8DB5533699858756
-// INDEX 392
-uiRenameErr [Impossible de renommer le fichier :]
diff --git a/code/ryzom/client/patcher/ru.uxt b/code/ryzom/client/patcher/ru.uxt
deleted file mode 100644
index 048a29167..000000000
--- a/code/ryzom/client/patcher/ru.uxt
+++ /dev/null
@@ -1,191 +0,0 @@
-// HASH_VALUE 6B09AC86E0363C89
-// INDEX 0
-LanguageName [Русский]
-
-// HASH_VALUE 3259CCA76B39A0A8
-// INDEX 1
-TheSagaOfRyzom [Ризом]
-
-// HASH_VALUE C7CC3BE0464ED819
-// INDEX 333
-uiOnChecking [ПРОВЕРКА ФАЙЛОВ ИГРЫ...]
-
-// HASH_VALUE 3DDF0D8BBD1D3C7A
-// INDEX 348
-uiErrCantPatch [Ошибка : Патч невозможен, поскольку адрес получения патча не установлен (error code 16).]
-
-// HASH_VALUE E1B933F053557A69
-// INDEX 349
-uiNeedToPatch [Информация : Для подключения к этому серверу необходим патч.]
-
-// HASH_VALUE 1CFD71DE1856F357
-// INDEX 350
-uiErrServerLost [Ошибка : Потеря связи с сервером во время патча.]
-
-// HASH_VALUE 0781700FFA41B8F9
-// INDEX 351
-uiPatching [ПАТЧ В ПРОЦЕССЕ... ПОДОЖДИТЕ]
-
-// HASH_VALUE B11FE4024EE3A1CB
-// INDEX 352
-uiErrPatchApply [Ошибка : Процесс скачивания патча завершился, но патч невозможен.]
-
-// HASH_VALUE 428B3D2BDA3B2CD2
-// INDEX 353
-uiErrChecking [Ошибка : Файлы патча не соответствуют необходимым - идет проверка...]
-
-// HASH_VALUE 40D0242C40D0242C
-// INDEX 354
-uiKb [КБ]
-
-// HASH_VALUE 4050243440502434
-// INDEX 355
-uiMb [МБ]
-
-// HASH_VALUE 9FA5A06DD895B637
-// INDEX 356
-uiLoginGetFile [Получение файла :]
-
-// HASH_VALUE 373988CC56A4B9DB
-// INDEX 357
-uiDLFailed [Скачивание с экстренного сервера невозможно, патч не может быть завершен]
-
-// HASH_VALUE 0DD314AEEB0A6833
-// INDEX 358
-uiDLURIFailed [Скачивание по указанному адресу невозможно (попытки возобновятся позже) :]
-
-// HASH_VALUE 9FEF11F92FE58883
-// INDEX 359
-uiNoMoreURI [Адрес для скачивания патча недействителен, подключитесь к экстренному серверу]
-
-// HASH_VALUE D126843FEAF6BF89
-// INDEX 360
-uiDLWithCurl [Скачивание файла :]
-
-// HASH_VALUE 5DF5B8902957A38B
-// INDEX 361
-uiDecompressing [Распаковка файла :]
-
-// HASH_VALUE 5C24504228490833
-// INDEX 362
-uiCheckInt [Проверка файла :]
-
-// HASH_VALUE 4C08EC7AE63A3CA8
-// INDEX 363
-uiNoVersionFound [Версия не обнаружена]
-
-// HASH_VALUE EA9BF07087F0DE5C
-// INDEX 364
-uiVersionFound [Обнаружена версия :]
-
-// HASH_VALUE 6CBAA4C2CED054DA
-// INDEX 365
-uiApplyingDelta [Применяется Дельта :]
-
-// HASH_VALUE 6BA9B484A5229440
-// INDEX 366
-uiClientVersion [Версия клиента]
-
-// HASH_VALUE 2EAADC9D27B47047
-// INDEX 367
-uiServerVersion [Версия сервера]
-
-// HASH_VALUE A8B6FC32E686BF9C
-// INDEX 368
-uiCheckingFile [Проверка файла]
-
-// HASH_VALUE 6618CC5E4408BC94
-// INDEX 369
-uiNeededPatches [Необходимые патчи :]
-
-// HASH_VALUE 57D72C08D558C375
-// INDEX 370
-uiCheckInBNP [Проверка BNP :]
-
-// HASH_VALUE 8810F72436CBB610
-// INDEX 371
-uiSHA1Diff [Форсировать распаковку BNP : контрольные суммы не совпадают :]
-
-// HASH_VALUE 0328885969AA93AC
-// INDEX 372
-uiCheckEndNoErr [Проверка файла не выявила ошибок]
-
-// HASH_VALUE 9759642196BA93B6
-// INDEX 373
-uiCheckEndWithErr [Проверка файла выявила ошибки :]
-
-// HASH_VALUE 03196C6669AA93A9
-// INDEX 374
-uiPatchEndNoErr [Патч осуществлен без ошибок]
-
-// HASH_VALUE E2A45B80D6C8F35E
-// INDEX 375
-uiPatchEndWithErr [Патч невозможен!]
-
-// HASH_VALUE 97987345E8D46F43
-// INDEX 376
-uiPatchDiskFull [Диск переполнен!]
-
-// HASH_VALUE 67818F3F0F656F1B
-// INDEX 377
-uiPatchWriteError [Ошибка записи! (диск переполнен ?)]
-
-// HASH_VALUE 54956061978AB897
-// INDEX 378
-uiProcessing [Обработка файла :]
-
-// HASH_VALUE D183CC5E53E4E24A
-// INDEX 379
-uiUnpack [Распаковка BNP :]
-
-// HASH_VALUE 57282453CE0D24A5
-// INDEX 380
-uiUnpackErrHead [Невозможно прочесть заголовок BNP :]
-
-// HASH_VALUE 3EC17830B80D1B1D
-// INDEX 381
-uiRebootConfirm [Ризом будет перезапущен. Пожалуйста, подождите...]
-
-// HASH_VALUE 809F582A06023625
-// INDEX 382
-uiRebootBut [ПЕРЕЗАПУСТИТЬ ИГРУ]
-
-// HASH_VALUE EA9888EBCAF59355
-// INDEX 383
-uiChangeDate [Перезапись даты изменений :]
-
-// HASH_VALUE 4589434CDD042E75
-// INDEX 384
-uiChgDateErr [Невозможно изменить время файла :]
-
-// HASH_VALUE 5BCA0C0C45A99719
-// INDEX 385
-uiNowDate [Новая дата :]
-
-// HASH_VALUE 485B4807F0581777
-// INDEX 386
-uiSetAttrib [Установить свойства файла :]
-
-// HASH_VALUE 5EB5789353166D5E
-// INDEX 387
-uiAttribErr [Невозможно получить доступ к чтению/записи :]
-
-// HASH_VALUE C2B6FF326665E080
-// INDEX 388
-uiDelFile [Удалить файл :]
-
-// HASH_VALUE 0D262B3499A4A35A
-// INDEX 389
-uiDelErr [Невозможно удалить файл :]
-
-// HASH_VALUE C238BC781514042B
-// INDEX 390
-uiDelNoFile [Удалить файл (файл отсутствует)]
-
-// HASH_VALUE C1B7E33CDEF4085B
-// INDEX 391
-uiRenameFile [Переименовать файл :]
-
-// HASH_VALUE 8DB5533699858756
-// INDEX 392
-uiRenameErr [Невозможно переименовать файл :]
diff --git a/code/ryzom/client/src/login_patch_seven_zip.cpp b/code/ryzom/client/src/login_patch_seven_zip.cpp
deleted file mode 100644
index 306c0607f..000000000
--- a/code/ryzom/client/src/login_patch_seven_zip.cpp
+++ /dev/null
@@ -1,468 +0,0 @@
-// Ryzom - MMORPG Framework
-// Copyright (C) 2010 Winch Gate Property Limited
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-
-//
-// Includes
-//
-
-#include "stdpch.h"
-#include "login_patch.h"
-
-#define RZ_USE_SEVENZIP 1
-#define RZ_USE_NEW_LZMA
-
-#ifdef RZ_USE_SEVENZIP
-
-#ifdef RZ_USE_NEW_LZMA
-
-#include "seven_zip/7z.h"
-#include "seven_zip/7zAlloc.h"
-#include "seven_zip/7zBuf.h"
-#include "seven_zip/7zCrc.h"
-#include "seven_zip/7zFile.h"
-#include "seven_zip/7zVersion.h"
-#include "seven_zip/LzmaDec.h"
-
-#else
-
-#include "seven_zip/7zCrc.h"
-#include "seven_zip/7zIn.h"
-#include "seven_zip/7zExtract.h"
-#include "seven_zip/LzmaDecode.h"
-
-#endif
-
-//
-// Namespaces
-//
-
-using namespace std;
-using namespace NLMISC;
-
-
-#ifdef RZ_USE_NEW_LZMA
-
-/// Input stream class for 7zip archive
-class CNel7ZipInStream : public ISeekInStream
-{
- NLMISC::IStream *_Stream;
-
-public:
- /// Constructor, only allow file stream because 7zip will 'seek' in the stream
- CNel7ZipInStream(NLMISC::IStream *s)
- : _Stream(s)
- {
- Read = readFunc;
- Seek = seekFunc;
- }
-
- // the read function called by 7zip to read data
- static SRes readFunc(void *object, void *buffer, size_t *size)
- {
- try
- {
- CNel7ZipInStream *me = (CNel7ZipInStream*)object;
- uint len = (uint)*size;
- me->_Stream->serialBuffer((uint8*)buffer, len);
- return SZ_OK;
- }
- catch (...)
- {
- return SZ_ERROR_READ;
- }
- }
-
- // the seek function called by seven zip to seek inside stream
- static SRes seekFunc(void *object, Int64 *pos, ESzSeek origin)
- {
- try
- {
- CNel7ZipInStream *me = (CNel7ZipInStream*)object;
- sint32 offset = (sint32)*pos;
- bool ret = me->_Stream->seek(offset, (NLMISC::IStream::TSeekOrigin)origin);
-
- if (ret)
- {
- *pos = (Int64)me->_Stream->getPos();
- return SZ_OK;
- }
- }
- catch (...)
- {
- }
-
- return SZ_ERROR_READ;
- }
-};
-
-#else
-
-/// Input stream class for 7zip archive
-class CNel7ZipInStream : public _ISzInStream
-{
- NLMISC::IStream *_Stream;
-
-public:
- /// Constructor, only allow file stream because 7zip will 'seek' in the stream
- CNel7ZipInStream(NLMISC::IStream *s)
- : _Stream(s)
- {
- Read = readFunc;
- Seek = seekFunc;
- }
-
- // the read function called by 7zip to read data
- static SZ_RESULT readFunc(void *object, void *buffer, size_t size, size_t *processedSize)
- {
- try
- {
- CNel7ZipInStream *me = (CNel7ZipInStream*)object;
- me->_Stream->serialBuffer((uint8*)buffer, (uint)size);
- *processedSize = size;
- return SZ_OK;
- }
- catch (...)
- {
- return SZE_FAIL;
- }
- }
-
- // the seek function called by seven zip to seek inside stream
- static SZ_RESULT seekFunc(void *object, CFileSize pos)
- {
- try
- {
- CNel7ZipInStream *me = (CNel7ZipInStream*)object;
- bool ret= me->_Stream->seek(pos, NLMISC::IStream::begin);
- if (ret)
- return SZ_OK;
- else
- return SZE_FAIL;
- }
- catch (...)
- {
- return SZE_FAIL;
- }
- }
-};
-
-#endif
-
-#endif
-
-bool CPatchManager::unpack7Zip(const std::string &sevenZipFile, const std::string &destFileName)
-{
-#ifdef RZ_USE_SEVENZIP
- nlinfo("Uncompressing 7zip archive '%s' to '%s'", sevenZipFile.c_str(), destFileName.c_str());
-
- // init seven zip
- ISzAlloc allocImp;
- allocImp.Alloc = SzAlloc;
- allocImp.Free = SzFree;
-
- ISzAlloc allocTempImp;
- allocTempImp.Alloc = SzAllocTemp;
- allocTempImp.Free = SzFreeTemp;
-
- // wrap file in a CIFile
- CIFile input(sevenZipFile);
- CNel7ZipInStream inStr(&input);
-
-#ifdef RZ_USE_NEW_LZMA
-
- CLookToRead lookStream;
- lookStream.realStream = &inStr;
- LookToRead_CreateVTable(&lookStream, False);
- LookToRead_Init(&lookStream);
-
- CrcGenerateTable();
-
- CSzArEx db;
- SzArEx_Init(&db);
-
- // unpack the file using the 7zip API
- SRes res = SzArEx_Open(&db, &lookStream.s, &allocImp, &allocTempImp);
-
- if (res != SZ_OK)
- {
- nlerror("Failed to open archive file %s", sevenZipFile.c_str());
- return false;
- }
-
- if (db.NumFiles != 1)
- {
- nlerror("Seven zip archive with more than 1 file are unsupported");
- return false;
- }
-
- UInt32 blockIndex = 0xFFFFFFFF; /* it can have any value before first call (if outBuffer = 0) */
- Byte *outBuffer = 0; /* it must be 0 before first call for each new archive. */
- size_t outBufferSize = 0; /* it can have any value before first call (if outBuffer = 0) */
-
- size_t offset;
- size_t outSizeProcessed = 0;
-
- // get the first file
- res = SzArEx_Extract(&db, &lookStream.s, 0,
- &blockIndex, &outBuffer, &outBufferSize,
- &offset, &outSizeProcessed,
- &allocImp, &allocTempImp);
-
- // get the length of first file
- size_t nameLen = SzArEx_GetFileNameUtf16(&db, 0, NULL);
-
- ucstring filename;
- filename.resize(nameLen);
-
- // write filename into ucstring
- SzArEx_GetFileNameUtf16(&db, 0, &filename[0]);
-
- // write the extracted file
- FILE *outputHandle = fopen(destFileName.c_str(), "wb+");
-
- if (outputHandle == 0)
- {
- nlerror("Can not open output file '%s'", destFileName.c_str());
- return false;
- }
-
- UInt32 processedSize = (UInt32)fwrite(outBuffer + offset, 1, outSizeProcessed, outputHandle);
-
- if (processedSize != outSizeProcessed)
- {
- nlerror("Failed to write %u char to output file '%s'", outSizeProcessed-processedSize, destFileName.c_str());
- return false;
- }
-
- fclose(outputHandle);
-
- IAlloc_Free(&allocImp, outBuffer);
-
- // free 7z context
- SzArEx_Free(&db, &allocImp);
-
-#else
-
- InitCrcTable();
-
- CArchiveDatabaseEx db;
- SzArDbExInit(&db);
-
- // unpack the file using the 7zip API
- SZ_RESULT res = SzArchiveOpen(&inStr, &db, &allocImp, &allocTempImp);
-
- if (res != SZ_OK)
- {
- nlerror("Failed to open archive file %s", sevenZipFile.c_str());
- return false;
- }
-
- if (db.Database.NumFiles != 1)
- {
- nlerror("Seven zip archive with more than 1 file are unsupported");
- return false;
- }
-
- UInt32 blockIndex = 0xFFFFFFFF; /* it can have any value before first call (if outBuffer = 0) */
- Byte *outBuffer = 0; /* it must be 0 before first call for each new archive. */
- size_t outBufferSize = 0; /* it can have any value before first call (if outBuffer = 0) */
-
- size_t offset = 0;
- size_t outSizeProcessed = 0;
-
- // get the first file
- res = SzExtract(&inStr, &db, 0,
- &blockIndex, &outBuffer, &outBufferSize,
- &offset, &outSizeProcessed,
- &allocImp, &allocTempImp);
-
- // write the extracted file
- FILE *outputHandle = fopen(destFileName.c_str(), "wb+");
-
- if (outputHandle == 0)
- {
- nlerror("Can not open output file '%s'", destFileName.c_str());
- return false;
- }
-
- UInt32 processedSize = (UInt32)fwrite(outBuffer + offset, 1, outSizeProcessed, outputHandle);
-
- if (processedSize != outSizeProcessed)
- {
- nlerror("Failed to write %u char to output file '%s'", outSizeProcessed-processedSize, destFileName.c_str());
- return false;
- }
-
- fclose(outputHandle);
- allocImp.Free(outBuffer);
-
- // free 7z context
- SzArDbExFree(&db, allocImp.Free);
-
-#endif
-
- // ok, all is fine, file is unpacked
- return true;
-#else
- return false;
-#endif
-}
-
-bool CPatchManager::unpackLZMA(const std::string &lzmaFile, const std::string &destFileName)
-{
-#ifdef RZ_USE_SEVENZIP
- nldebug("unpackLZMA : decompression the lzma file '%s' into output file '%s", lzmaFile.c_str(), destFileName.c_str());
-
- CIFile inStream(lzmaFile);
- uint32 inSize = inStream.getFileSize();
-
-#ifdef RZ_USE_NEW_LZMA
-
- if (inSize < LZMA_PROPS_SIZE + 8)
- {
- nlwarning("Invalid file size, too small file '%s'", lzmaFile.c_str());
- return false;
- }
-
- // read the compressed file in buffer
- auto_ptr inBuffer = auto_ptr(new uint8[inSize]);
- inStream.serialBuffer(inBuffer.get(), inSize);
-
- uint8 *pos = inBuffer.get();
-
- pos += LZMA_PROPS_SIZE;
-
- // read the output file size
- size_t fileSize = 0;
-
- for (int i = 0; i < 8; ++i)
- {
- if (pos >= inBuffer.get()+inSize)
- {
- nlassert(false);
- return false;
- }
-
- fileSize |= ((UInt64)*pos++) << (8 * i);
- }
-
- // allocators
- ISzAlloc allocImp;
- allocImp.Alloc = SzAlloc;
- allocImp.Free = SzFree;
-
- CLzmaDec state;
- LzmaDec_Construct(&state);
-
- // allocate and decode props and probs
- SRes res = LzmaDec_Allocate(&state, inBuffer.get(), LZMA_PROPS_SIZE, &allocImp);
-
- if (res != 0)
- {
- nlwarning("Failed to decode lzma properies in file '%s'!", lzmaFile.c_str());
- return false;
- }
-
- // allocate the output buffer
- auto_ptr outBuffer = auto_ptr(new uint8[fileSize]);
-
- // in and out file sizes
- SizeT outProcessed = fileSize;
- SizeT inProcessed = (SizeT)(inSize-(pos-inBuffer.get()));
-
- LzmaDec_Init(&state);
-
- // decompress the file in memory
- ELzmaStatus status;
- res = LzmaDec_DecodeToBuf(&state, (Byte*)outBuffer.get(), &outProcessed, (Byte*)pos, &inProcessed, LZMA_FINISH_ANY, &status);
-
- // free memory
- LzmaDec_Free(&state, &allocImp);
-
- if (res != 0 || outProcessed != fileSize)
- {
- nlwarning("Failed to decode lzma file '%s' with status %d", lzmaFile.c_str(), (sint)status);
- return false;
- }
-
-#else
-
- auto_ptr inBuffer = auto_ptr(new uint8[inSize]);
- inStream.serialBuffer(inBuffer.get(), inSize);
-
- CLzmaDecoderState state;
-
- uint8 *pos = inBuffer.get();
-
- // read the lzma properties
- int res = LzmaDecodeProperties(&state.Properties, (unsigned char*) pos, LZMA_PROPERTIES_SIZE);
- if (res != 0)
- {
- nlwarning("Failed to decode lzma properies in file '%s'!", lzmaFile.c_str());
- return false;
- }
-
- if (inSize < LZMA_PROPERTIES_SIZE + 8)
- {
- nlwarning("Invalid file size, too small file '%s'", lzmaFile.c_str());
- return false;
- }
-
- // alloc the probs, making sure they are deleted in function exit
- size_t nbProb = LzmaGetNumProbs(&state.Properties);
- auto_ptr probs = auto_ptr(new CProb[nbProb]);
- state.Probs = probs.get();
-
- pos += LZMA_PROPERTIES_SIZE;
-
- // read the output file size
- size_t fileSize = 0;
- for (int i = 0; i < 8; i++)
- {
- if (pos >= inBuffer.get()+inSize)
- {
- nlassert(false);
- return false;
- }
- fileSize |= ((UInt64)*pos++) << (8 * i);
- }
-
- SizeT outProcessed = 0;
- SizeT inProcessed = 0;
-
- // allocate the output buffer
- auto_ptr outBuffer = auto_ptr(new uint8[fileSize]);
-
- // decompress the file in memory
- res = LzmaDecode(&state, (unsigned char*) pos, (SizeT)(inSize-(pos-inBuffer.get())), &inProcessed, (unsigned char*)outBuffer.get(), (SizeT)fileSize, &outProcessed);
-
- if (res != 0 || outProcessed != fileSize)
- {
- nlwarning("Failed to decode lzma file '%s'", lzmaFile.c_str());
- return false;
- }
-
-#endif
-
- // store on output buffer
- COFile outStream(destFileName);
- outStream.serialBuffer(outBuffer.get(), (uint)fileSize);
-
- return true;
-#else
- return false;
-#endif
-}