Reformatting.

This commit is contained in:
2022-09-06 18:45:31 +10:00
parent 7063f4b763
commit 5471bcf102
5 changed files with 960 additions and 955 deletions

View File

@@ -26,7 +26,7 @@
#include <stdint.h> #include <stdint.h>
#include "msh.h" #include "msh.h"
// Guards for C++ usage // Guards for C++ usage
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@@ -52,9 +52,9 @@ extern "C" {
#define GTS_SIZE 10 #define GTS_SIZE 10
// //
// === FORWARD DEFS === // === FORWARD DEFS ===
// //
typedef union type4 Type4; typedef union type4 Type4;
typedef struct timestamp Timestamp; typedef struct timestamp Timestamp;
@@ -62,11 +62,10 @@ extern "C" {
typedef struct record Record; typedef struct record Record;
typedef struct field Field; typedef struct field Field;
// //
// === SIMPLE TYPES === // === SIMPLE TYPES ===
// //
// Basic types
typedef uint32_t formid; typedef uint32_t formid;
// char[4] with uint32_t access // char[4] with uint32_t access
@@ -78,9 +77,9 @@ extern "C" {
// indexed by flag bit // indexed by flag bit
typedef const char *const rfs_inner[RFS_INNER_SIZE]; typedef const char *const rfs_inner[RFS_INNER_SIZE];
// //
// === ENUMS === // === ENUMS ===
// //
// Tag for generic node tagged union // Tag for generic node tagged union
enum node_type { // NT_ prefix enum node_type { // NT_ prefix
@@ -90,7 +89,6 @@ extern "C" {
// Record type enum // Record type enum
enum record_type { enum record_type {
_NONE,
AACT, ACHR, ACTI, ADDN, ALCH, AMMO, AACT, ACHR, ACTI, ADDN, ALCH, AMMO,
ANIO, APPA, ARMA, ARMO, ARTO, ASPC, ANIO, APPA, ARMA, ARMO, ARTO, ASPC,
ASTP, AVIF, BOOK, BPTD, CAMS, CELL, ASTP, AVIF, BOOK, BPTD, CAMS, CELL,
@@ -129,9 +127,9 @@ extern "C" {
GT_CELL_TEMPORARY_CHILDREN = 9, GT_CELL_TEMPORARY_CHILDREN = 9,
}; };
// //
// === COMPOSITE TYPES === // === COMPOSITE TYPES ===
// //
// Generic node // Generic node
typedef struct node Node; typedef struct node Node;
@@ -158,9 +156,9 @@ extern "C" {
void *data; void *data;
}; };
// //
// === BINARY DATA OVERLAYS === // === BINARY DATA OVERLAYS ===
// //
#pragma pack(push, 1) #pragma pack(push, 1)
@@ -200,9 +198,9 @@ extern "C" {
#pragma pack(pop) #pragma pack(pop)
// //
// === LUTs === // === LUTs ===
// //
// record type enum to fourcc value // record type enum to fourcc value
extern const uint32_t rt[RT_SIZE]; extern const uint32_t rt[RT_SIZE];
@@ -224,10 +222,9 @@ extern "C" {
// Printable strings for group types // Printable strings for group types
extern const char *const group_type_strings[GTS_SIZE]; extern const char *const group_type_strings[GTS_SIZE];
//
// // === FUNCTIONS ===
// === FUNCTIONS === //
//
// hashes type value into RT_ hash value // hashes type value into RT_ hash value
inline uint32_t rt_hash(uint32_t type) { inline uint32_t rt_hash(uint32_t type) {

View File

@@ -36,48 +36,48 @@ const enum record_type group_order[GO_SIZE] = {
// record type to record type value // record type to record type value
const uint32_t rt[RT_SIZE] = { const uint32_t rt[RT_SIZE] = {
[AACT] = LE('AACT'), [ACHR] = LE('ACHR'), [ACTI] = LE('ACTI'), [AACT] = LE('AACT'),[ACHR] = LE('ACHR'),[ACTI] = LE('ACTI'),
[ADDN] = LE('ADDN'), [ALCH] = LE('ALCH'), [AMMO] = LE('AMMO'), [ADDN] = LE('ADDN'),[ALCH] = LE('ALCH'),[AMMO] = LE('AMMO'),
[ANIO] = LE('ANIO'), [APPA] = LE('APPA'), [ARMA] = LE('ARMA'), [ANIO] = LE('ANIO'),[APPA] = LE('APPA'),[ARMA] = LE('ARMA'),
[ARMO] = LE('ARMO'), [ARTO] = LE('ARTO'), [ASPC] = LE('ASPC'), [ARMO] = LE('ARMO'),[ARTO] = LE('ARTO'),[ASPC] = LE('ASPC'),
[ASTP] = LE('ASTP'), [AVIF] = LE('AVIF'), [BOOK] = LE('BOOK'), [ASTP] = LE('ASTP'),[AVIF] = LE('AVIF'),[BOOK] = LE('BOOK'),
[BPTD] = LE('BPTD'), [CAMS] = LE('CAMS'), [CELL] = LE('CELL'), [BPTD] = LE('BPTD'),[CAMS] = LE('CAMS'),[CELL] = LE('CELL'),
[CLAS] = LE('CLAS'), [CLDC] = LE('CLDC'), [CLFM] = LE('CLFM'), [CLAS] = LE('CLAS'),[CLDC] = LE('CLDC'),[CLFM] = LE('CLFM'),
[CLMT] = LE('CLMT'), [COBJ] = LE('COBJ'), [COLL] = LE('COLL'), [CLMT] = LE('CLMT'),[COBJ] = LE('COBJ'),[COLL] = LE('COLL'),
[CONT] = LE('CONT'), [CPTH] = LE('CPTH'), [CSTY] = LE('CSTY'), [CONT] = LE('CONT'),[CPTH] = LE('CPTH'),[CSTY] = LE('CSTY'),
[DEBR] = LE('DEBR'), [DIAL] = LE('DIAL'), [DLBR] = LE('DLBR'), [DEBR] = LE('DEBR'),[DIAL] = LE('DIAL'),[DLBR] = LE('DLBR'),
[DLVW] = LE('DLVW'), [DOBJ] = LE('DOBJ'), [DOOR] = LE('DOOR'), [DLVW] = LE('DLVW'),[DOBJ] = LE('DOBJ'),[DOOR] = LE('DOOR'),
[DUAL] = LE('DUAL'), [ECZN] = LE('ECZN'), [EFSH] = LE('EFSH'), [DUAL] = LE('DUAL'),[ECZN] = LE('ECZN'),[EFSH] = LE('EFSH'),
[ENCH] = LE('ENCH'), [EQUP] = LE('EQUP'), [EXPL] = LE('EXPL'), [ENCH] = LE('ENCH'),[EQUP] = LE('EQUP'),[EXPL] = LE('EXPL'),
[EYES] = LE('EYES'), [FACT] = LE('FACT'), [FLOR] = LE('FLOR'), [EYES] = LE('EYES'),[FACT] = LE('FACT'),[FLOR] = LE('FLOR'),
[FLST] = LE('FLST'), [FSTP] = LE('FSTP'), [FSTS] = LE('FSTS'), [FLST] = LE('FLST'),[FSTP] = LE('FSTP'),[FSTS] = LE('FSTS'),
[FURN] = LE('FURN'), [GLOB] = LE('GLOB'), [GMST] = LE('GMST'), [FURN] = LE('FURN'),[GLOB] = LE('GLOB'),[GMST] = LE('GMST'),
[GRAS] = LE('GRAS'), [GRUP] = LE('GRUP'), [HAIR] = LE('HAIR'), [GRAS] = LE('GRAS'),[GRUP] = LE('GRUP'),[HAIR] = LE('HAIR'),
[HAZD] = LE('HAZD'), [HDPT] = LE('HDPT'), [IDLE] = LE('IDLE'), [HAZD] = LE('HAZD'),[HDPT] = LE('HDPT'),[IDLE] = LE('IDLE'),
[IDLM] = LE('IDLM'), [IMAD] = LE('IMAD'), [IMGS] = LE('IMGS'), [IDLM] = LE('IDLM'),[IMAD] = LE('IMAD'),[IMGS] = LE('IMGS'),
[INFO] = LE('INFO'), [INGR] = LE('INGR'), [IPCT] = LE('IPCT'), [INFO] = LE('INFO'),[INGR] = LE('INGR'),[IPCT] = LE('IPCT'),
[IPDS] = LE('IPDS'), [KEYM] = LE('KEYM'), [KYWD] = LE('KYWD'), [IPDS] = LE('IPDS'),[KEYM] = LE('KEYM'),[KYWD] = LE('KYWD'),
[LAND] = LE('LAND'), [LCRT] = LE('LCRT'), [LCTN] = LE('LCTN'), [LAND] = LE('LAND'),[LCRT] = LE('LCRT'),[LCTN] = LE('LCTN'),
[LGTM] = LE('LGTM'), [LIGH] = LE('LIGH'), [LSCR] = LE('LSCR'), [LGTM] = LE('LGTM'),[LIGH] = LE('LIGH'),[LSCR] = LE('LSCR'),
[LTEX] = LE('LTEX'), [LVLI] = LE('LVLI'), [LVLN] = LE('LVLN'), [LTEX] = LE('LTEX'),[LVLI] = LE('LVLI'),[LVLN] = LE('LVLN'),
[LVSP] = LE('LVSP'), [MATO] = LE('MATO'), [MATT] = LE('MATT'), [LVSP] = LE('LVSP'),[MATO] = LE('MATO'),[MATT] = LE('MATT'),
[MESG] = LE('MESG'), [MGEF] = LE('MGEF'), [MISC] = LE('MISC'), [MESG] = LE('MESG'),[MGEF] = LE('MGEF'),[MISC] = LE('MISC'),
[MOVT] = LE('MOVT'), [MSTT] = LE('MSTT'), [MUSC] = LE('MUSC'), [MOVT] = LE('MOVT'),[MSTT] = LE('MSTT'),[MUSC] = LE('MUSC'),
[MUST] = LE('MUST'), [NAVI] = LE('NAVI'), [NAVM] = LE('NAVM'), [MUST] = LE('MUST'),[NAVI] = LE('NAVI'),[NAVM] = LE('NAVM'),
[NOTE] = LE('NOTE'), [NPC_] = LE('NPC_'), [OTFT] = LE('OTFT'), [NOTE] = LE('NOTE'),[NPC_] = LE('NPC_'),[OTFT] = LE('OTFT'),
[PACK] = LE('PACK'), [PERK] = LE('PERK'), [PGRE] = LE('PGRE'), [PACK] = LE('PACK'),[PERK] = LE('PERK'),[PGRE] = LE('PGRE'),
[PHZD] = LE('PHZD'), [PROJ] = LE('PROJ'), [PWAT] = LE('PWAT'), [PHZD] = LE('PHZD'),[PROJ] = LE('PROJ'),[PWAT] = LE('PWAT'),
[QUST] = LE('QUST'), [RACE] = LE('RACE'), [REFR] = LE('REFR'), [QUST] = LE('QUST'),[RACE] = LE('RACE'),[REFR] = LE('REFR'),
[REGN] = LE('REGN'), [RELA] = LE('RELA'), [REVB] = LE('REVB'), [REGN] = LE('REGN'),[RELA] = LE('RELA'),[REVB] = LE('REVB'),
[RFCT] = LE('RFCT'), [RGDL] = LE('RGDL'), [SCEN] = LE('SCEN'), [RFCT] = LE('RFCT'),[RGDL] = LE('RGDL'),[SCEN] = LE('SCEN'),
[SCOL] = LE('SCOL'), [SCPT] = LE('SCPT'), [SCRL] = LE('SCRL'), [SCOL] = LE('SCOL'),[SCPT] = LE('SCPT'),[SCRL] = LE('SCRL'),
[SHOU] = LE('SHOU'), [SLGM] = LE('SLGM'), [SMBN] = LE('SMBN'), [SHOU] = LE('SHOU'),[SLGM] = LE('SLGM'),[SMBN] = LE('SMBN'),
[SMEN] = LE('SMEN'), [SMQN] = LE('SMQN'), [SNCT] = LE('SNCT'), [SMEN] = LE('SMEN'),[SMQN] = LE('SMQN'),[SNCT] = LE('SNCT'),
[SNDR] = LE('SNDR'), [SOPM] = LE('SOPM'), [SOUN] = LE('SOUN'), [SNDR] = LE('SNDR'),[SOPM] = LE('SOPM'),[SOUN] = LE('SOUN'),
[SPEL] = LE('SPEL'), [SPGD] = LE('SPGD'), [STAT] = LE('STAT'), [SPEL] = LE('SPEL'),[SPGD] = LE('SPGD'),[STAT] = LE('STAT'),
[TACT] = LE('TACT'), [TES4] = LE('TES4'), [TREE] = LE('TREE'), [TACT] = LE('TACT'),[TES4] = LE('TES4'),[TREE] = LE('TREE'),
[TXST] = LE('TXST'), [VTYP] = LE('VTYP'), [WATR] = LE('WATR'), [TXST] = LE('TXST'),[VTYP] = LE('VTYP'),[WATR] = LE('WATR'),
[WEAP] = LE('WEAP'), [WOOP] = LE('WOOP'), [WRLD] = LE('WRLD'), [WEAP] = LE('WEAP'),[WOOP] = LE('WOOP'),[WRLD] = LE('WRLD'),
[WTHR] = LE('WTHR'), [WTHR] = LE('WTHR'),
}; };
@@ -477,49 +477,49 @@ rfs_inner _wrld = {
}; };
rfs_inner *const rfs[RT_HASH_SIZE] = { rfs_inner *const rfs[RT_HASH_SIZE] = {
[RT_AACT] = CP( NULL), [RT_ACHR] = CP(_achr), [RT_ACTI] = CP(_acti), [RT_AACT] = CP(NULL ),[RT_ACHR] = CP(_achr),[RT_ACTI] = CP(_acti),
[RT_ADDN] = CP( NULL), [RT_ALCH] = CP(_alch), [RT_AMMO] = CP(_ammo), [RT_ADDN] = CP(NULL ),[RT_ALCH] = CP(_alch),[RT_AMMO] = CP(_ammo),
[RT_ANIO] = CP(_anio), [RT_APPA] = CP( NULL), [RT_ARMA] = CP( NULL), [RT_ANIO] = CP(_anio),[RT_APPA] = CP(NULL ),[RT_ARMA] = CP(NULL ),
[RT_ARMO] = CP(_armo), [RT_ARTO] = CP( NULL), [RT_ASPC] = CP( NULL), [RT_ARMO] = CP(_armo),[RT_ARTO] = CP(NULL ),[RT_ASPC] = CP(NULL ),
[RT_ASTP] = CP( NULL), [RT_AVIF] = CP( NULL), [RT_BOOK] = CP( NULL), [RT_ASTP] = CP(NULL ),[RT_AVIF] = CP(NULL ),[RT_BOOK] = CP(NULL ),
[RT_BPTD] = CP( NULL), [RT_CAMS] = CP( NULL), [RT_CELL] = CP(_cell), [RT_BPTD] = CP(NULL ),[RT_CAMS] = CP(NULL ),[RT_CELL] = CP(_cell),
[RT_CLAS] = CP( NULL), [RT_CLDC] = CP( NULL), [RT_CLFM] = CP(_clfm), [RT_CLAS] = CP(NULL ),[RT_CLDC] = CP(NULL ),[RT_CLFM] = CP(_clfm),
[RT_CLMT] = CP( NULL), [RT_COBJ] = CP( NULL), [RT_COLL] = CP( NULL), [RT_CLMT] = CP(NULL ),[RT_COBJ] = CP(NULL ),[RT_COLL] = CP(NULL ),
[RT_CONT] = CP(_cont), [RT_CPTH] = CP( NULL), [RT_CSTY] = CP(_csty), [RT_CONT] = CP(_cont),[RT_CPTH] = CP(NULL ),[RT_CSTY] = CP(_csty),
[RT_DEBR] = CP( NULL), [RT_DIAL] = CP( NULL), [RT_DLBR] = CP( NULL), [RT_DEBR] = CP(NULL ),[RT_DIAL] = CP(NULL ),[RT_DLBR] = CP(NULL ),
[RT_DLVW] = CP( NULL), [RT_DOBJ] = CP( NULL), [RT_DOOR] = CP(_door), [RT_DLVW] = CP(NULL ),[RT_DOBJ] = CP(NULL ),[RT_DOOR] = CP(_door),
[RT_DUAL] = CP( NULL), [RT_ECZN] = CP( NULL), [RT_EFSH] = CP( NULL), [RT_DUAL] = CP(NULL ),[RT_ECZN] = CP(NULL ),[RT_EFSH] = CP(NULL ),
[RT_ENCH] = CP( NULL), [RT_EQUP] = CP( NULL), [RT_EXPL] = CP( NULL), [RT_ENCH] = CP(NULL ),[RT_EQUP] = CP(NULL ),[RT_EXPL] = CP(NULL ),
[RT_EYES] = CP(_eyes), [RT_FACT] = CP( NULL), [RT_FLOR] = CP( NULL), [RT_EYES] = CP(_eyes),[RT_FACT] = CP(NULL ),[RT_FLOR] = CP(NULL ),
[RT_FLST] = CP( NULL), [RT_FSTP] = CP( NULL), [RT_FSTS] = CP( NULL), [RT_FLST] = CP(NULL ),[RT_FSTP] = CP(NULL ),[RT_FSTS] = CP(NULL ),
[RT_FURN] = CP(_furn), [RT_GLOB] = CP(_glob), [RT_GMST] = CP( NULL), [RT_FURN] = CP(_furn),[RT_GLOB] = CP(_glob),[RT_GMST] = CP(NULL ),
[RT_GRAS] = CP( NULL), [RT_GRUP] = CP( NULL), [RT_HAIR] = CP( NULL), [RT_GRAS] = CP(NULL ),[RT_GRUP] = CP(NULL ),[RT_HAIR] = CP(NULL ),
[RT_HAZD] = CP( NULL), [RT_HDPT] = CP(_hdpt), [RT_IDLE] = CP( NULL), [RT_HAZD] = CP(NULL ),[RT_HDPT] = CP(_hdpt),[RT_IDLE] = CP(NULL ),
[RT_IDLM] = CP(_idlm), [RT_IMAD] = CP( NULL), [RT_IMGS] = CP( NULL), [RT_IDLM] = CP(_idlm),[RT_IMAD] = CP(NULL ),[RT_IMGS] = CP(NULL ),
[RT_INFO] = CP(_info), [RT_INGR] = CP( NULL), [RT_IPCT] = CP( NULL), [RT_INFO] = CP(_info),[RT_INGR] = CP(NULL ),[RT_IPCT] = CP(NULL ),
[RT_IPDS] = CP( NULL), [RT_KEYM] = CP(_keym), [RT_KYWD] = CP( NULL), [RT_IPDS] = CP(NULL ),[RT_KEYM] = CP(_keym),[RT_KYWD] = CP(NULL ),
[RT_LAND] = CP(_land), [RT_LCRT] = CP( NULL), [RT_LCTN] = CP( NULL), [RT_LAND] = CP(_land),[RT_LCRT] = CP(NULL ),[RT_LCTN] = CP(NULL ),
[RT_LGTM] = CP( NULL), [RT_LIGH] = CP(_ligh), [RT_LSCR] = CP(_lscr), [RT_LGTM] = CP(NULL ),[RT_LIGH] = CP(_ligh),[RT_LSCR] = CP(_lscr),
[RT_LTEX] = CP( NULL), [RT_LVLI] = CP( NULL), [RT_LVLN] = CP( NULL), [RT_LTEX] = CP(NULL ),[RT_LVLI] = CP(NULL ),[RT_LVLN] = CP(NULL ),
[RT_LVSP] = CP( NULL), [RT_MATO] = CP( NULL), [RT_MATT] = CP( NULL), [RT_LVSP] = CP(NULL ),[RT_MATO] = CP(NULL ),[RT_MATT] = CP(NULL ),
[RT_MESG] = CP( NULL), [RT_MGEF] = CP( NULL), [RT_MISC] = CP(_misc), [RT_MESG] = CP(NULL ),[RT_MGEF] = CP(NULL ),[RT_MISC] = CP(_misc),
[RT_MOVT] = CP( NULL), [RT_MSTT] = CP(_mstt), [RT_MUSC] = CP( NULL), [RT_MOVT] = CP(NULL ),[RT_MSTT] = CP(_mstt),[RT_MUSC] = CP(NULL ),
[RT_MUST] = CP( NULL), [RT_NAVI] = CP( NULL), [RT_NAVM] = CP(_navm), [RT_MUST] = CP(NULL ),[RT_NAVI] = CP(NULL ),[RT_NAVM] = CP(_navm),
[RT_NOTE] = CP( NULL), [RT_NPC_] = CP(_npc_), [RT_OTFT] = CP( NULL), [RT_NOTE] = CP(NULL ),[RT_NPC_] = CP(_npc_),[RT_OTFT] = CP(NULL ),
[RT_PACK] = CP( NULL), [RT_PERK] = CP(_perk), [RT_PGRE] = CP(_pgre), [RT_PACK] = CP(NULL ),[RT_PERK] = CP(_perk),[RT_PGRE] = CP(_pgre),
[RT_PHZD] = CP(_phzd), [RT_PROJ] = CP( NULL), [RT_PWAT] = CP( NULL), [RT_PHZD] = CP(_phzd),[RT_PROJ] = CP(NULL ),[RT_PWAT] = CP(NULL ),
[RT_QUST] = CP( NULL), [RT_RACE] = CP(_race), [RT_REFR] = CP(_refr), [RT_QUST] = CP(NULL ),[RT_RACE] = CP(_race),[RT_REFR] = CP(_refr),
[RT_REGN] = CP(_regn), [RT_RELA] = CP(_rela), [RT_REVB] = CP( NULL), [RT_REGN] = CP(_regn),[RT_RELA] = CP(_rela),[RT_REVB] = CP(NULL ),
[RT_RFCT] = CP( NULL), [RT_RGDL] = CP( NULL), [RT_SCEN] = CP( NULL), [RT_RFCT] = CP(NULL ),[RT_RGDL] = CP(NULL ),[RT_SCEN] = CP(NULL ),
[RT_SCOL] = CP( NULL), [RT_SCPT] = CP( NULL), [RT_SCRL] = CP( NULL), [RT_SCOL] = CP(NULL ),[RT_SCPT] = CP(NULL ),[RT_SCRL] = CP(NULL ),
[RT_SHOU] = CP(_shou), [RT_SLGM] = CP(_slgm), [RT_SMBN] = CP( NULL), [RT_SHOU] = CP(_shou),[RT_SLGM] = CP(_slgm),[RT_SMBN] = CP(NULL ),
[RT_SMEN] = CP( NULL), [RT_SMQN] = CP( NULL), [RT_SNCT] = CP( NULL), [RT_SMEN] = CP(NULL ),[RT_SMQN] = CP(NULL ),[RT_SNCT] = CP(NULL ),
[RT_SNDR] = CP( NULL), [RT_SOPM] = CP( NULL), [RT_SOUN] = CP( NULL), [RT_SNDR] = CP(NULL ),[RT_SOPM] = CP(NULL ),[RT_SOUN] = CP(NULL ),
[RT_SPEL] = CP( NULL), [RT_SPGD] = CP( NULL), [RT_STAT] = CP(_stat), [RT_SPEL] = CP(NULL ),[RT_SPGD] = CP(NULL ),[RT_STAT] = CP(_stat),
[RT_TACT] = CP(_tact), [RT_TES4] = CP(_tes4), [RT_TREE] = CP(_tree), [RT_TACT] = CP(_tact),[RT_TES4] = CP(_tes4),[RT_TREE] = CP(_tree),
[RT_TXST] = CP( NULL), [RT_VTYP] = CP( NULL), [RT_WATR] = CP( NULL), [RT_TXST] = CP(NULL ),[RT_VTYP] = CP(NULL ),[RT_WATR] = CP(NULL ),
[RT_WEAP] = CP(_weap), [RT_WOOP] = CP( NULL), [RT_WRLD] = CP(_wrld), [RT_WEAP] = CP(_weap),[RT_WOOP] = CP(NULL ),[RT_WRLD] = CP(_wrld),
[RT_WTHR] = CP( NULL), [RT_WTHR] = CP(NULL ),
}; };
// REFR flags depend on what its NAME field references // REFR flags depend on what its NAME field references
@@ -631,48 +631,48 @@ rfs_inner _refr_slgm = REFR_GROUP2;
rfs_inner _refr_weap = REFR_GROUP2; rfs_inner _refr_weap = REFR_GROUP2;
rfs_inner *const rfs_refr[RT_HASH_SIZE] = { rfs_inner *const rfs_refr[RT_HASH_SIZE] = {
[RT_AACT] = CP(NULL ), [RT_ACHR] = CP(NULL ), [RT_ACTI] = CP(_refr_acti), [RT_AACT] = CP(NULL ),[RT_ACHR] = CP(NULL ),[RT_ACTI] = CP(_refr_acti),
[RT_ADDN] = CP(_refr_addn), [RT_ALCH] = CP(_refr_alch), [RT_AMMO] = CP(_refr_ammo), [RT_ADDN] = CP(_refr_addn),[RT_ALCH] = CP(_refr_alch),[RT_AMMO] = CP(_refr_ammo),
[RT_ANIO] = CP(NULL ), [RT_APPA] = CP(NULL ), [RT_ARMA] = CP(NULL ), [RT_ANIO] = CP(NULL ),[RT_APPA] = CP(NULL ),[RT_ARMA] = CP(NULL ),
[RT_ARMO] = CP(_refr_armo), [RT_ARTO] = CP(NULL ), [RT_ASPC] = CP(NULL ), [RT_ARMO] = CP(_refr_armo),[RT_ARTO] = CP(NULL ),[RT_ASPC] = CP(NULL ),
[RT_ASTP] = CP(NULL ), [RT_AVIF] = CP(NULL ), [RT_BOOK] = CP(NULL ), [RT_ASTP] = CP(NULL ),[RT_AVIF] = CP(NULL ),[RT_BOOK] = CP(NULL ),
[RT_BPTD] = CP(NULL ), [RT_CAMS] = CP(NULL ), [RT_CELL] = CP(NULL ), [RT_BPTD] = CP(NULL ),[RT_CAMS] = CP(NULL ),[RT_CELL] = CP(NULL ),
[RT_CLAS] = CP(NULL ), [RT_CLDC] = CP(NULL ), [RT_CLFM] = CP(NULL ), [RT_CLAS] = CP(NULL ),[RT_CLDC] = CP(NULL ),[RT_CLFM] = CP(NULL ),
[RT_CLMT] = CP(NULL ), [RT_COBJ] = CP(NULL ), [RT_COLL] = CP(NULL ), [RT_CLMT] = CP(NULL ),[RT_COBJ] = CP(NULL ),[RT_COLL] = CP(NULL ),
[RT_CONT] = CP(_refr_cont), [RT_CPTH] = CP(NULL ), [RT_CSTY] = CP(NULL ), [RT_CONT] = CP(_refr_cont),[RT_CPTH] = CP(NULL ),[RT_CSTY] = CP(NULL ),
[RT_DEBR] = CP(NULL ), [RT_DIAL] = CP(NULL ), [RT_DLBR] = CP(NULL ), [RT_DEBR] = CP(NULL ),[RT_DIAL] = CP(NULL ),[RT_DLBR] = CP(NULL ),
[RT_DLVW] = CP(NULL ), [RT_DOBJ] = CP(NULL ), [RT_DOOR] = CP(_refr_door), [RT_DLVW] = CP(NULL ),[RT_DOBJ] = CP(NULL ),[RT_DOOR] = CP(_refr_door),
[RT_DUAL] = CP(NULL ), [RT_ECZN] = CP(NULL ), [RT_EFSH] = CP(NULL ), [RT_DUAL] = CP(NULL ),[RT_ECZN] = CP(NULL ),[RT_EFSH] = CP(NULL ),
[RT_ENCH] = CP(NULL ), [RT_EQUP] = CP(NULL ), [RT_EXPL] = CP(NULL ), [RT_ENCH] = CP(NULL ),[RT_EQUP] = CP(NULL ),[RT_EXPL] = CP(NULL ),
[RT_EYES] = CP(NULL ), [RT_FACT] = CP(NULL ), [RT_FLOR] = CP(_refr_flor), [RT_EYES] = CP(NULL ),[RT_FACT] = CP(NULL ),[RT_FLOR] = CP(_refr_flor),
[RT_FLST] = CP(NULL ), [RT_FSTP] = CP(NULL ), [RT_FSTS] = CP(NULL ), [RT_FLST] = CP(NULL ),[RT_FSTP] = CP(NULL ),[RT_FSTS] = CP(NULL ),
[RT_FURN] = CP(NULL ), [RT_GLOB] = CP(NULL ), [RT_GMST] = CP(NULL ), [RT_FURN] = CP(NULL ),[RT_GLOB] = CP(NULL ),[RT_GMST] = CP(NULL ),
[RT_GRAS] = CP(NULL ), [RT_GRUP] = CP(NULL ), [RT_HAIR] = CP(NULL ), [RT_GRAS] = CP(NULL ),[RT_GRUP] = CP(NULL ),[RT_HAIR] = CP(NULL ),
[RT_HAZD] = CP(NULL ), [RT_HDPT] = CP(NULL ), [RT_IDLE] = CP(NULL ), [RT_HAZD] = CP(NULL ),[RT_HDPT] = CP(NULL ),[RT_IDLE] = CP(NULL ),
[RT_IDLM] = CP(NULL ), [RT_IMAD] = CP(NULL ), [RT_IMGS] = CP(NULL ), [RT_IDLM] = CP(NULL ),[RT_IMAD] = CP(NULL ),[RT_IMGS] = CP(NULL ),
[RT_INFO] = CP(NULL ), [RT_INGR] = CP(_refr_ingr), [RT_IPCT] = CP(NULL ), [RT_INFO] = CP(NULL ),[RT_INGR] = CP(_refr_ingr),[RT_IPCT] = CP(NULL ),
[RT_IPDS] = CP(NULL ), [RT_KEYM] = CP(_refr_keym), [RT_KYWD] = CP(NULL ), [RT_IPDS] = CP(NULL ),[RT_KEYM] = CP(_refr_keym),[RT_KYWD] = CP(NULL ),
[RT_LAND] = CP(NULL ), [RT_LCRT] = CP(NULL ), [RT_LCTN] = CP(NULL ), [RT_LAND] = CP(NULL ),[RT_LCRT] = CP(NULL ),[RT_LCTN] = CP(NULL ),
[RT_LGTM] = CP(NULL ), [RT_LIGH] = CP(_refr_ligh), [RT_LSCR] = CP(NULL ), [RT_LGTM] = CP(NULL ),[RT_LIGH] = CP(_refr_ligh),[RT_LSCR] = CP(NULL ),
[RT_LTEX] = CP(NULL ), [RT_LVLI] = CP(NULL ), [RT_LVLN] = CP(NULL ), [RT_LTEX] = CP(NULL ),[RT_LVLI] = CP(NULL ),[RT_LVLN] = CP(NULL ),
[RT_LVSP] = CP(NULL ), [RT_MATO] = CP(NULL ), [RT_MATT] = CP(NULL ), [RT_LVSP] = CP(NULL ),[RT_MATO] = CP(NULL ),[RT_MATT] = CP(NULL ),
[RT_MESG] = CP(NULL ), [RT_MGEF] = CP(NULL ), [RT_MISC] = CP(_refr_misc), [RT_MESG] = CP(NULL ),[RT_MGEF] = CP(NULL ),[RT_MISC] = CP(_refr_misc),
[RT_MOVT] = CP(NULL ), [RT_MSTT] = CP(_refr_mstt), [RT_MUSC] = CP(NULL ), [RT_MOVT] = CP(NULL ),[RT_MSTT] = CP(_refr_mstt),[RT_MUSC] = CP(NULL ),
[RT_MUST] = CP(NULL ), [RT_NAVI] = CP(NULL ), [RT_NAVM] = CP(NULL ), [RT_MUST] = CP(NULL ),[RT_NAVI] = CP(NULL ),[RT_NAVM] = CP(NULL ),
[RT_NOTE] = CP(NULL ), [RT_NPC_] = CP(NULL ), [RT_OTFT] = CP(NULL ), [RT_NOTE] = CP(NULL ),[RT_NPC_] = CP(NULL ),[RT_OTFT] = CP(NULL ),
[RT_PACK] = CP(NULL ), [RT_PERK] = CP(NULL ), [RT_PGRE] = CP(NULL ), [RT_PACK] = CP(NULL ),[RT_PERK] = CP(NULL ),[RT_PGRE] = CP(NULL ),
[RT_PHZD] = CP(NULL ), [RT_PROJ] = CP(NULL ), [RT_PWAT] = CP(NULL ), [RT_PHZD] = CP(NULL ),[RT_PROJ] = CP(NULL ),[RT_PWAT] = CP(NULL ),
[RT_QUST] = CP(NULL ), [RT_RACE] = CP(NULL ), [RT_REFR] = CP(NULL ), [RT_QUST] = CP(NULL ),[RT_RACE] = CP(NULL ),[RT_REFR] = CP(NULL ),
[RT_REGN] = CP(NULL ), [RT_RELA] = CP(NULL ), [RT_REVB] = CP(NULL ), [RT_REGN] = CP(NULL ),[RT_RELA] = CP(NULL ),[RT_REVB] = CP(NULL ),
[RT_RFCT] = CP(NULL ), [RT_RGDL] = CP(NULL ), [RT_SCEN] = CP(NULL ), [RT_RFCT] = CP(NULL ),[RT_RGDL] = CP(NULL ),[RT_SCEN] = CP(NULL ),
[RT_SCOL] = CP(NULL ), [RT_SCPT] = CP(NULL ), [RT_SCRL] = CP(_refr_scrl), [RT_SCOL] = CP(NULL ),[RT_SCPT] = CP(NULL ),[RT_SCRL] = CP(_refr_scrl),
[RT_SHOU] = CP(NULL ), [RT_SLGM] = CP(_refr_slgm), [RT_SMBN] = CP(NULL ), [RT_SHOU] = CP(NULL ),[RT_SLGM] = CP(_refr_slgm),[RT_SMBN] = CP(NULL ),
[RT_SMEN] = CP(NULL ), [RT_SMQN] = CP(NULL ), [RT_SNCT] = CP(NULL ), [RT_SMEN] = CP(NULL ),[RT_SMQN] = CP(NULL ),[RT_SNCT] = CP(NULL ),
[RT_SNDR] = CP(NULL ), [RT_SOPM] = CP(NULL ), [RT_SOUN] = CP(NULL ), [RT_SNDR] = CP(NULL ),[RT_SOPM] = CP(NULL ),[RT_SOUN] = CP(NULL ),
[RT_SPEL] = CP(NULL ), [RT_SPGD] = CP(NULL ), [RT_STAT] = CP(_refr_stat), [RT_SPEL] = CP(NULL ),[RT_SPGD] = CP(NULL ),[RT_STAT] = CP(_refr_stat),
[RT_TACT] = CP(NULL ), [RT_TES4] = CP(NULL ), [RT_TREE] = CP(_refr_tree), [RT_TACT] = CP(NULL ),[RT_TES4] = CP(NULL ),[RT_TREE] = CP(_refr_tree),
[RT_TXST] = CP(NULL ), [RT_VTYP] = CP(NULL ), [RT_WATR] = CP(NULL ), [RT_TXST] = CP(NULL ),[RT_VTYP] = CP(NULL ),[RT_WATR] = CP(NULL ),
[RT_WEAP] = CP(_refr_weap), [RT_WOOP] = CP(NULL ), [RT_WRLD] = CP(NULL ), [RT_WEAP] = CP(_refr_weap),[RT_WOOP] = CP(NULL ),[RT_WRLD] = CP(NULL ),
[RT_WTHR] = CP(NULL ), [RT_WTHR] = CP(NULL ),
}; };

View File

@@ -65,7 +65,10 @@ void asserts(void) {
assert(sizeof(Group) == 24); // Group struct incorrect size assert(sizeof(Group) == 24); // Group struct incorrect size
assert(sizeof((Group) { 0 }.label) == 4); // Label union in group struct incorrect size assert(sizeof((Group) { 0 }.label) == 4); // Label union in group struct incorrect size
assert(sizeof(Field) == 6); // Field struct incorrect size assert(sizeof(Field) == 6); // Field struct incorrect size
assert(sizeof(uLongf) == sizeof(uint32_t)); // zlib compatability
// zlib compatability
assert(sizeof(uLongf) == sizeof(uint32_t));
assert(sizeof(Bytef) == sizeof(char));
} }
void espr_walk(char *data, size_t size, struct walker_callbacks cb) { void espr_walk(char *data, size_t size, struct walker_callbacks cb) {
@@ -124,7 +127,8 @@ void dc_size_cb(Node n, void *data, void **carry_out) {
if (n.header.record->flags & COMPRESSED_FLAG) { if (n.header.record->flags & COMPRESSED_FLAG) {
// Read decompressed size // Read decompressed size
*dc_size += *((uint32_t *)n.data); *dc_size += *((uint32_t *)n.data);
} else }
else
*dc_size += n.header.record->size; *dc_size += n.header.record->size;
break; break;
default: default:
@@ -379,7 +383,8 @@ void print_record_flags(Record *header) {
// TODO // TODO
// REFR requires FormID lookup // REFR requires FormID lookup
flags = 0; flags = 0;
} else { }
else {
rfs_inner *const flag_lut = rfs[rt_hash(type)]; rfs_inner *const flag_lut = rfs[rt_hash(type)];
if (flag_lut) { if (flag_lut) {
while (flags != 0) { while (flags != 0) {
@@ -390,7 +395,8 @@ void print_record_flags(Record *header) {
if (str) { if (str) {
printf(" - %s\n", str); printf(" - %s\n", str);
flags -= ((uint32_t)1) << highest; flags -= ((uint32_t)1) << highest;
} else }
else
break; break;
} }
} }
@@ -433,6 +439,6 @@ Timestamp convert_ts(uint16_t ts) {
const uint8_t month = ((hb - 1) % 12) + 1; const uint8_t month = ((hb - 1) % 12) + 1;
const uint8_t year = ((hb - 1) / 12 + 3) % 10; const uint8_t year = ((hb - 1) / 12 + 3) % 10;
return (Timestamp){ year, month, day }; return (Timestamp) { year, month, day };
} }

View File

@@ -46,7 +46,8 @@ int main() {
} }
clash = true; clash = true;
break; break;
} else { }
else {
buf[index] = true; buf[index] = true;
} }
} }
@@ -73,7 +74,8 @@ int main() {
printf(" "); printf(" ");
printf("RT_%s = %3u,", name, index); printf("RT_%s = %3u,", name, index);
} }
} else { }
else {
printf("Seed not found. Max: %llu\n", max); printf("Seed not found. Max: %llu\n", max);
} }