资源文件

Chinese, Simplified

EDGE 游戏中有许多资源文件,里面存放了各种各样奇怪的东西。
大部分资源文件都有固定且相同的文件头与命名方式。

文件头

出处:http://will.kirk.by/labs/tt/ttdev/misc
0x00-0x07: 指定引擎版本,不过游戏通常不会识别。在 EDGE 中通常使用 0x0018000000000004(在部分较新版本中)或 0x00XX000000000003(XX表示任意位)。
0x08-0x47: 一串文本,指定了当前文件原来的文件名。
0x48-0x87: 一串文本,指定了当前文件的命名空间,通常与它所在的目录名相同。

命名方式

出处:http://will.kirk.by/labs/tt/ttdev/misc
文件名由三部分组成,第一部分为去掉扩展名后反转过的文件名的哈希值的十六进制表示(材料、非根模型与非根动画除外),第二部分为反转后的命名空间哈希值的十六进制表示,第三部分为扩展名,表示文件的类型。
哈希算法是使用了可以自定义多项式系数(大概是这么叫法)的 CRC32,其 C# 实现:CRC32.cs
哈希文件名时使用的多项式系数为标准算法所使用的 0xEDB88320,哈希命名空间时的多项式系数为前面的系数取反,即 0x12477CDF
命名空间可以是以下值之一:(主要取决于你放的文件夹名)

audio
config
default
effects.edge_effects
effects
fx.shaders
fx
images.effects
images
levels
localization
models
music
sprites
textures