Skip to content

Lizerium/FLResourceLibrary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

236 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

✨Dvurechensky✨

Infocard File Processor for πŸ’€ Freelancer Rebirth πŸ’€

🌐 Language: πŸ‡·πŸ‡Ί Russian | βœ… πŸ‡ΊπŸ‡Έ English (current)

Note

This project is part of the Lizerium ecosystem and belongs to the following direction:

If you are looking for related engineering and supporting tools, start there.

✨ Table of Contents


What does it do❓

πŸ’₯ Core πŸ’₯

  • Generates a FLResources export targeting .NET 3.5, compatible with Unity

    alt text

  • Main access class when integrating the library into a project: ResControl

    It provides the following API:

    • Dictionary<string, int> LoadIds(int ids)
      β†’ Input: numeric value from INI (ids_name or ids_info)
      β†’ Output: DLL file name + string index

    • StatusHandle GetData(string nameResources, int id)
      β†’ Input: RESX resource name embedded in DLL
      (OfferBribeResources_name, NameResources_name, EquipResources_name, SBM3_name, SBM2_name, SBM_name, SBM_info, EquipResources_info, MiscTextInfo2_info, InfoCards_info, MiscText_info, SBM3_info)
      β†’ Output: resource value by key from initialized RESX


  • FLGenerateLibrary generates .resx files for FLResources using data extracted from Win32 .dll files of Freelancer (2003)

    Data is ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ extracted using Resource Hacker.
    Extraction steps are described below.


  • FLEDId β€” a utility for quick conversion between ids_name / ids_info and the numeric values stored inside resource DLLs
    • Works independently of freelancer.ini structure
    • Can also resolve INI ID from DLL name + numeric identifier

🌟 Extracting files from dll using Resource Hacker 🌟

  1. Open a .dll in Resource Hacker, e.g. equipresources.dll

    • Select String Table
    • Save .rc file into the INPUT folder (located near the .exe)
    • Rename .rc β†’ data.txt
    • Remove line:
      LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
      

    alt text
    alt text
    alt text
    alt text

    [!NOTE] You have now created a file for resolving ids_name fields.


  1. If the DLL contains an HTML section:

    • Select HTML
    • Save .rc into INPUT\HTML
    • Delete the .rc file (we only need the generated .txt files for each .html)

    alt text
    alt text
    alt text

    [!NOTE] You have now created files for resolving ids_info fields.


  1. Final structure should look like:

alt text


😈 Command Shell 😈

  1. Command g [filename.ini] [field]
    β†’ Finds unique values of a field inside an INI file located in the Analis folder

    • [filename.ini] β€” must exist in Analis
    • [field] β€” field name to analyze

    Example:

    g example.ini progres_field

  1. Command c [path/to/file.resx] or clear [path/to/file.resx] β†’ Clears all resources inside a .resx file

    Example:

    c path/to/file.resx

  1. Command st [path/to/file.resx] [path/to/data.txt] β†’ Generates .resx entries from TXT data

    Example:

    st path/to/file.resx path/to/data.txt

  1. Command st [path/to/file.resx] [path/to/html] β†’ Generates .resx entries from HTML TXT files

    Example:

    st path/to/file.resx path/to/html

  1. Command import or i β†’ Copies test data into INPUT folder

    Example:

    import

  1. Command all or a β†’ Generates resource files from INPUT into OUTPUT

    Example:

    all

  1. Command rhtml β†’ Outputs processed HTML text formatted for Unity TextMeshPro

  1. Command exit / e / q β†’ Exit application

  1. Command starting with ::text β†’ Searches for matching text inside embedded data in FLResources.dll

  1. Command starting with ::489 β†’ Searches for matching identifiers inside embedded data

✨Dvurechensky✨

Releases

No releases published

Packages

 
 
 

Contributors

Languages