npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

arx-header-size

v3.1.1

Published

Returns the header size for Arx Fatalis files with dynamic headers

Downloads

304

Readme

arx-header-size

Returns the header size for Arx Fatalis files

This is needed, because the files are partially compressed and this number can be given as an offset for node-pkware

Supported formats

  • dlf (Danae Level File, contains general information about the level, used items and paths)
  • fts (FasT Scene, contains the level mesh and textures)
  • llf (Level Lighting File?, contains light entities and vertex colors)
  • ftl (?, model files for entities)
  • tea (?, animation files for entities)
  • amb (Ambience, contains a list of audio files which are played in different locations)
  • cin (Cinematics)

( https://wiki.arx-libertatis.org/Filetypes )

JS API

const rawFtsData: ArrayBuffer = ... // load the contents of an FTS file as an ArrayBuffer

const { total, header, uniqueHeaderSize, numberOfUniqueHeaders, compression } = getHeaderSize(rawFtsData)
switch (compression) {
  case 'none': {
    // file is uncompressed
    break
  }
  case 'partial': {
    // first <total> bytes are uncompressed, the rest is compressed
    break
  }
  case 'full': {
    // the whole file is compressed
    break
  }
}

CLI

npx arx-header-size "C:\arx\arx-pak-full\final\GAME\GRAPH\Levels\level8\fast.fts"

outputs 1816

npx arx-header-size fast.fts --hex

outputs 0x718

npx arx-header-size level8.dlf.unpacked.json --format=dlf

outputs 8520

cat level8.fts | arx-header-size --format=fts

Command Line Parameters

version

arx-header-size --version or arx-header-size -v

gives back the version of arx-header-size

hex

arx-header-size --hex fast.fts

gives back the header size in hexadecimal string instead of decimal with 0x prefix

verbose

arx-header-size fast.fts --verbose

prints out more details of the header

format: FTS

total uncompressed data in bytes: 1816 (0x718)

header size: 280 (0x118)
unique header size: 768 (0x300)
number of unique headers: 2

Uncompressed FTS files in Arx Libertatis 1.3

Arx Libertatis feature: setting the uncompressed bytes' size in the header of an FTS file to 0 gets interpreted as the file being uncompressed

source of discussion: https://arx-libertatis.org/irclogs/2022/%23arx.2022-09-06.log and https://arx-libertatis.org/irclogs/2022/%23arx.2022-09-07.log

implemented in: https://github.com/arx/ArxLibertatis/commit/2d2226929780b6202f54982bacc79ddf75dbec53

available in Arx Libertatis 1.3 snapshots that came after 2022-09-17 in https://arx-libertatis.org/files/snapshots/