Current time: 28.04.2024, 23:41 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Новая реализация виртуальной файловой системы
» Тестирование
Author Message
Berserker Offline
Administrators

Posts: 16497
Post: #39

Проверил и отладил работу потока слежения за изменениями в VFS, например, создаваемыми и редактируемыми скриптами, картами и другими ресурсами, которые разработчики любят менять при запущенных приложениях. Поскольку теперь VFS держит весь кэш в памяти (слепок иерархии папок с атрибутами), то такое обновление позволяет предотвращать программные ошибки, когда файл в реальной папке имеет актуальные имя, размер, атрибуты, а в виртуальной — устаревшие.

Обновлённая DLL: http://rgho.st/64PdyF6Kf

type
    (*
    Specifies the order, in which files from different mapped directories will be listed in virtual directory.
    Virtual directory sorting is performed by priorities firstly and lexicographically secondly.
    SORT_FIFO - Items of the first mapped directory will be listed before the second mapped directory items.
    SORT_LIFO - Items of The last mapped directory will be listed before all other mapped directory items.
    *)
    TDirListingSortType = (SORT_FIFO = 0, SORT_LIFO = 1);

(* Loads mod list from file and maps each mod directory to specified root directory.
    File with mod list is treated as (BOM or BOM-less) UTF-8 plain text file, where each mod name is separated
    from another one via Line Feed (#10) character. Each mod named is trimmed, converted to UCS16 and validated before
    adding to list. Invalid or empty mods will be skipped. Mods are mapped in reverse order, as compared to their order in file.
    Returns true if root and mods directory existed and file with mod list was loaded successfully *)
function MapModsFromList (const RootDir, ModsDir, ModListFile: PWideChar; Flags: integer = 0): LONGBOOL; stdcall; external 'vfs.dll';

(* Runs all VFS subsystems, unless VFS is already running *)
function RunVfs (DirListingOrder: TDirListingSortType): LONGBOOL; stdcall; external 'vfs.dll';

(* Spawns separate thread, which starts recursive monitoring for changes in specified directory.
    VFS will be fully refreshed or smartly updated on any change. Debounce interval specifies
    time in msec to wait after last change before running full VFS rescanning routine *)
function RunWatcher (const WatchDir: PWideChar; DebounceInterval: integer): LONGBOOL; stdcall; external 'vfs.dll';

(* Allocates console and install logger, writing messages to console *)
procedure InstallConsoleLogger; stdcall; external 'vfs.dll';

Пример чернового использования в любом проекте:
Code:
MapModsFromList('D:\Heroes 3', 'D:\Heroes 3\Mods', 'D:\Heroes 3\Mods\list.txt');
RunVfs(SORT_FIFO);
RunWatcher('D:\Heroes 3\Mods', 250);
Теперь файл с модами в кодировке UTF-8. Для латинских названий ничего не изменилось. Поток наблюдателя обновляет ВФС в фоне, если ресурсы изменяются. Задержка полного рескана — 250 мс.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
25.05.2019 23:00
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
Новая реализация виртуальной файловой системы - Berserker - 09.05.2019, 01:27
RE: Новая реализация виртуальной файловой системы - Algor - 09.05.2019, 02:26
RE: Новая реализация виртуальной файловой системы - fireman - 09.05.2019, 05:43
RE: Новая реализация виртуальной файловой системы - daemon_n - 09.05.2019, 08:22
RE: Новая реализация виртуальной файловой системы - wessonsm - 09.05.2019, 10:12
RE: Новая реализация виртуальной файловой системы - daemon_n - 09.05.2019, 13:29
RE: Новая реализация виртуальной файловой системы - PerryR - 09.05.2019, 10:19
RE: Новая реализация виртуальной файловой системы - Elmore - 09.05.2019, 14:25
RE: Новая реализация виртуальной файловой системы - Berserker - 09.05.2019, 15:20
RE: Новая реализация виртуальной файловой системы - wessonsm - 09.05.2019, 19:16
RE: Новая реализация виртуальной файловой системы - igrik - 09.05.2019, 15:31
RE: Новая реализация виртуальной файловой системы - XEPOMAHT - 09.05.2019, 16:04
RE: Новая реализация виртуальной файловой системы - Algor - 09.05.2019, 18:37
RE: Новая реализация виртуальной файловой системы - daemon_n - 09.05.2019, 20:02
RE: Новая реализация виртуальной файловой системы - Berserker - 09.05.2019, 22:45
RE: Новая реализация виртуальной файловой системы - Algor - 10.05.2019, 14:23
RE: Новая реализация виртуальной файловой системы - igrik - 10.05.2019, 14:05
RE: Новая реализация виртуальной файловой системы - Berserker - 10.05.2019, 17:36
RE: Новая реализация виртуальной файловой системы - igrik - 11.05.2019, 03:28
RE: Новая реализация виртуальной файловой системы - igrik - 10.05.2019, 18:16
RE: Новая реализация виртуальной файловой системы - Berserker - 11.05.2019, 03:08
RE: Новая реализация виртуальной файловой системы - Berserker - 11.05.2019, 04:44
RE: Новая реализация виртуальной файловой системы - Berserker - 11.05.2019, 17:45
RE: Новая реализация виртуальной файловой системы - Berserker - 12.05.2019, 02:57
RE: Новая реализация виртуальной файловой системы - SyDr - 12.05.2019, 11:30
RE: Новая реализация виртуальной файловой системы - Berserker - 12.05.2019, 14:14
RE: Новая реализация виртуальной файловой системы - Berserker - 12.05.2019, 15:42
RE: Новая реализация виртуальной файловой системы - SyDr - 12.05.2019, 20:06
RE: Новая реализация виртуальной файловой системы - Berserker - 13.05.2019, 01:32
RE: Новая реализация виртуальной файловой системы - Berserker - 14.05.2019, 19:47
RE: Новая реализация виртуальной файловой системы - wessonsm - 15.05.2019, 07:54
RE: Новая реализация виртуальной файловой системы - Berserker - 15.05.2019, 14:51
RE: Новая реализация виртуальной файловой системы - AlexeevAV - 22.05.2019, 11:46
RE: Новая реализация виртуальной файловой системы - Berserker - 22.05.2019, 14:48
RE: Новая реализация виртуальной файловой системы - Berserker - 24.05.2019, 14:28
RE: Новая реализация виртуальной файловой системы - Berserker - 25.05.2019, 19:22
RE: Новая реализация виртуальной файловой системы - daemon_n - 25.05.2019, 21:01
RE: Новая реализация виртуальной файловой системы - Berserker - 25.05.2019, 21:42
RE: Новая реализация виртуальной файловой системы - Berserker - 25.05.2019 23:00
RE: Новая реализация виртуальной файловой системы - Berserker - 26.05.2019, 15:54
RE: Новая реализация виртуальной файловой системы - Berserker - 26.05.2019, 17:09
RE: Новая реализация виртуальной файловой системы - Berserker - 26.05.2019, 17:21
RE: Новая реализация виртуальной файловой системы - daemon_n - 26.05.2019, 19:56
RE: Новая реализация виртуальной файловой системы - Berserker - 26.05.2019, 20:29
RE: Новая реализация виртуальной файловой системы - RDV - 02.12.2019, 19:54
RE: Новая реализация виртуальной файловой системы - Berserker - 02.12.2019, 20:56
RE: Новая реализация виртуальной файловой системы - RDV - 02.12.2019, 21:14
RE: Новая реализация виртуальной файловой системы - Berserker - 02.12.2019, 21:33
RE: Новая реализация виртуальной файловой системы - XEPOMAHT - 22.11.2021, 13:57
RE: Новая реализация виртуальной файловой системы - Berserker - 22.11.2021, 15:47
RE: Новая реализация виртуальной файловой системы - RoseKavalier - 22.11.2021, 16:28

Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group