return(fourCC(name)&esm4RecnameFlag)==0?fourCC(name):throwstd::logic_error("there must be no collision between esm3 records and esm4 records");//The throw errors ensures at compile time that no collision between ESM4 and ESM3 is possible
return(recType&esm4RecnameFlag)==0?(recType|esm4RecnameFlag):throwstd::logic_error("there must be no collision between esm3 records and esm4 records");//The throw errors ensures at compile time that no collision between ESM4 and ESM3 is possible
}
enumRecNameInts:unsignedint
@ -100,87 +107,227 @@ enum RecNameInts : unsigned int
REC_INTERNAL_MARKER=1,
// format 0 / legacy
REC_ACTI=fourCC("ACTI"),
REC_ALCH=fourCC("ALCH"),
REC_APPA=fourCC("APPA"),
REC_ARMO=fourCC("ARMO"),
REC_BODY=fourCC("BODY"),
REC_BOOK=fourCC("BOOK"),
REC_BSGN=fourCC("BSGN"),
REC_CELL=fourCC("CELL"),
REC_CLAS=fourCC("CLAS"),
REC_CLOT=fourCC("CLOT"),
REC_CNTC=fourCC("CNTC"),
REC_CONT=fourCC("CONT"),
REC_CREA=fourCC("CREA"),
REC_CREC=fourCC("CREC"),
REC_DIAL=fourCC("DIAL"),
REC_DOOR=fourCC("DOOR"),
REC_ENCH=fourCC("ENCH"),
REC_FACT=fourCC("FACT"),
REC_GLOB=fourCC("GLOB"),
REC_GMST=fourCC("GMST"),
REC_INFO=fourCC("INFO"),
REC_INGR=fourCC("INGR"),
REC_LAND=fourCC("LAND"),
REC_LEVC=fourCC("LEVC"),
REC_LEVI=fourCC("LEVI"),
REC_LIGH=fourCC("LIGH"),
REC_LOCK=fourCC("LOCK"),
REC_LTEX=fourCC("LTEX"),
REC_MGEF=fourCC("MGEF"),
REC_MISC=fourCC("MISC"),
REC_NPC_=fourCC("NPC_"),
REC_NPCC=fourCC("NPCC"),
REC_PGRD=fourCC("PGRD"),
REC_PROB=fourCC("PROB"),
REC_RACE=fourCC("RACE"),
REC_REGN=fourCC("REGN"),
REC_REPA=fourCC("REPA"),
REC_SCPT=fourCC("SCPT"),
REC_SKIL=fourCC("SKIL"),
REC_SNDG=fourCC("SNDG"),
REC_SOUN=fourCC("SOUN"),
REC_SPEL=fourCC("SPEL"),
REC_SSCR=fourCC("SSCR"),
REC_STAT=fourCC("STAT"),
REC_WEAP=fourCC("WEAP"),
REC_ACTI=esm3Recname("ACTI"),
REC_ALCH=esm3Recname("ALCH"),
REC_APPA=esm3Recname("APPA"),
REC_ARMO=esm3Recname("ARMO"),
REC_BODY=esm3Recname("BODY"),
REC_BOOK=esm3Recname("BOOK"),
REC_BSGN=esm3Recname("BSGN"),
REC_CELL=esm3Recname("CELL"),
REC_CLAS=esm3Recname("CLAS"),
REC_CLOT=esm3Recname("CLOT"),
REC_CNTC=esm3Recname("CNTC"),
REC_CONT=esm3Recname("CONT"),
REC_CREA=esm3Recname("CREA"),
REC_CREC=esm3Recname("CREC"),
REC_DIAL=esm3Recname("DIAL"),
REC_DOOR=esm3Recname("DOOR"),
REC_ENCH=esm3Recname("ENCH"),
REC_FACT=esm3Recname("FACT"),
REC_GLOB=esm3Recname("GLOB"),
REC_GMST=esm3Recname("GMST"),
REC_INFO=esm3Recname("INFO"),
REC_INGR=esm3Recname("INGR"),
REC_LAND=esm3Recname("LAND"),
REC_LEVC=esm3Recname("LEVC"),
REC_LEVI=esm3Recname("LEVI"),
REC_LIGH=esm3Recname("LIGH"),
REC_LOCK=esm3Recname("LOCK"),
REC_LTEX=esm3Recname("LTEX"),
REC_MGEF=esm3Recname("MGEF"),
REC_MISC=esm3Recname("MISC"),
REC_NPC_=esm3Recname("NPC_"),
REC_NPCC=esm3Recname("NPCC"),
REC_PGRD=esm3Recname("PGRD"),
REC_PROB=esm3Recname("PROB"),
REC_RACE=esm3Recname("RACE"),
REC_REGN=esm3Recname("REGN"),
REC_REPA=esm3Recname("REPA"),
REC_SCPT=esm3Recname("SCPT"),
REC_SKIL=esm3Recname("SKIL"),
REC_SNDG=esm3Recname("SNDG"),
REC_SOUN=esm3Recname("SOUN"),
REC_SPEL=esm3Recname("SPEL"),
REC_SSCR=esm3Recname("SSCR"),
REC_STAT=esm3Recname("STAT"),
REC_WEAP=esm3Recname("WEAP"),
// format 0 - saved games
REC_SAVE=fourCC("SAVE"),
REC_JOUR_LEGACY=fourCC("\xa4UOR"),// "\xa4UOR", rather than "JOUR", little oversight when magic numbers were
REC_SAVE=esm3Recname("SAVE"),
REC_JOUR_LEGACY=esm3Recname("\xa4UOR"),// "\xa4UOR", rather than "JOUR", little oversight when magic numbers were
// calculated by hand, needs to be supported for older files now
REC_JOUR=fourCC("JOUR"),
REC_QUES=fourCC("QUES"),
REC_GSCR=fourCC("GSCR"),
REC_PLAY=fourCC("PLAY"),
REC_CSTA=fourCC("CSTA"),
REC_GMAP=fourCC("GMAP"),
REC_DIAS=fourCC("DIAS"),
REC_WTHR=fourCC("WTHR"),
REC_KEYS=fourCC("KEYS"),
REC_DYNA=fourCC("DYNA"),
REC_ASPL=fourCC("ASPL"),
REC_ACTC=fourCC("ACTC"),
REC_MPRJ=fourCC("MPRJ"),
REC_PROJ=fourCC("PROJ"),
REC_DCOU=fourCC("DCOU"),
REC_MARK=fourCC("MARK"),
REC_ENAB=fourCC("ENAB"),
REC_CAM_=fourCC("CAM_"),
REC_STLN=fourCC("STLN"),
REC_INPU=fourCC("INPU"),
REC_JOUR=esm3Recname("JOUR"),
REC_QUES=esm3Recname("QUES"),
REC_GSCR=esm3Recname("GSCR"),
REC_PLAY=esm3Recname("PLAY"),
REC_CSTA=esm3Recname("CSTA"),
REC_GMAP=esm3Recname("GMAP"),
REC_DIAS=esm3Recname("DIAS"),
REC_WTHR=esm3Recname("WTHR"),
REC_KEYS=esm3Recname("KEYS"),
REC_DYNA=esm3Recname("DYNA"),
REC_ASPL=esm3Recname("ASPL"),
REC_ACTC=esm3Recname("ACTC"),
REC_MPRJ=esm3Recname("MPRJ"),
REC_PROJ=esm3Recname("PROJ"),
REC_DCOU=esm3Recname("DCOU"),
REC_MARK=esm3Recname("MARK"),
REC_ENAB=esm3Recname("ENAB"),
REC_CAM_=esm3Recname("CAM_"),
REC_STLN=esm3Recname("STLN"),
REC_INPU=esm3Recname("INPU"),
// format 1
REC_FILT=fourCC("FILT"),
REC_DBGP=fourCC("DBGP"),///< only used in project files
REC_LUAL=fourCC("LUAL"),// LuaScriptsCfg (only in omwgame or omwaddon)
REC_FILT=esm3Recname("FILT"),
REC_DBGP=esm3Recname("DBGP"),///< only used in project files
REC_LUAL=esm3Recname("LUAL"),// LuaScriptsCfg (only in omwgame or omwaddon)
// format 16 - Lua scripts in saved games
REC_LUAM=fourCC("LUAM"),// LuaManager data
REC_LUAM=esm3Recname("LUAM"),// LuaManager data
// format 21 - Random state in saved games.
REC_RAND=fourCC("RAND"),// Random state.
REC_RAND=esm3Recname("RAND"),// Random state.
REC_AACT4=esm4Recname(ESM4::REC_AACT),// Action
REC_ACHR4=esm4Recname(ESM4::REC_ACHR),// Actor Reference