|
|
|
@ -1331,3 +1331,217 @@ inline void CheckEnderalNPCs() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
inline void CheckEnderalActivators() |
|
|
|
|
{ |
|
|
|
|
// Base forms of Enderal activators, having collisions with Skyrim
|
|
|
|
|
uint32_t formids[46] = { |
|
|
|
|
0x20A1C, |
|
|
|
|
0x23AB1, |
|
|
|
|
0x36739, |
|
|
|
|
0x3BCA5, |
|
|
|
|
0x3BCB3, |
|
|
|
|
0x3C570, |
|
|
|
|
0x3C57F, |
|
|
|
|
0x43BEB, |
|
|
|
|
0x43BEE, |
|
|
|
|
0x447D3, |
|
|
|
|
0x469F6, |
|
|
|
|
0x469F8, |
|
|
|
|
0x469FA, |
|
|
|
|
0x469FC, |
|
|
|
|
0x46ADE, |
|
|
|
|
0x46AEA, |
|
|
|
|
0x69F89, |
|
|
|
|
0x69F8C, |
|
|
|
|
0x6A00D, |
|
|
|
|
0x6A00E, |
|
|
|
|
0x6A00F, |
|
|
|
|
0x6A010, |
|
|
|
|
0x6A011, |
|
|
|
|
0x6A013, |
|
|
|
|
0x6A016, |
|
|
|
|
0x6A024, |
|
|
|
|
0x6A025, |
|
|
|
|
0x6A026, |
|
|
|
|
0x6A027, |
|
|
|
|
0x6A029, |
|
|
|
|
0x6A02A, |
|
|
|
|
0x6A02B, |
|
|
|
|
0x6A02C, |
|
|
|
|
0x6A02D, |
|
|
|
|
0x6A02E, |
|
|
|
|
0x6A030, |
|
|
|
|
0x6A032, |
|
|
|
|
0x6A033, |
|
|
|
|
0x77358, |
|
|
|
|
0xADC71, |
|
|
|
|
0xB35AB, |
|
|
|
|
0xB35B4, |
|
|
|
|
0xB35B5, |
|
|
|
|
0xB6282, |
|
|
|
|
0x106644, |
|
|
|
|
0x1080DA |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 46; i++) { |
|
|
|
|
const auto* form = RE::TESForm::LookupByID(formids[i]); |
|
|
|
|
if (!form || !form->Is(RE::FormType::Activator)) { |
|
|
|
|
logger::warn("Detected invalid activator: {:08X}", formids[i]); |
|
|
|
|
NotifyInvalidForm(form); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
inline void CheckEnderalStatics() |
|
|
|
|
{ |
|
|
|
|
// Base forms of Enderal statics, having collisions with Skyrim
|
|
|
|
|
uint32_t formids[138] = { |
|
|
|
|
0x15C6F, |
|
|
|
|
0x1725C, |
|
|
|
|
0x20BC9, |
|
|
|
|
0x20BDF, |
|
|
|
|
0x23E46, |
|
|
|
|
0x2E6F8, |
|
|
|
|
0x2EC26, |
|
|
|
|
0x2EE3F, |
|
|
|
|
0x31949, |
|
|
|
|
0x3194B, |
|
|
|
|
0x3195B, |
|
|
|
|
0x31974, |
|
|
|
|
0x327AD, |
|
|
|
|
0x328D7, |
|
|
|
|
0x33F45, |
|
|
|
|
0x34944, |
|
|
|
|
0x34946, |
|
|
|
|
0x34BCD, |
|
|
|
|
0x36747, |
|
|
|
|
0x36775, |
|
|
|
|
0x36779, |
|
|
|
|
0x3700B, |
|
|
|
|
0x3742A, |
|
|
|
|
0x37667, |
|
|
|
|
0x37668, |
|
|
|
|
0x37C01, |
|
|
|
|
0x3A1C2, |
|
|
|
|
0x3BCE3, |
|
|
|
|
0x3BCE7, |
|
|
|
|
0x3C58A, |
|
|
|
|
0x3ECAA, |
|
|
|
|
0x41449, |
|
|
|
|
0x4B258, |
|
|
|
|
0x4B25A, |
|
|
|
|
0x565F0, |
|
|
|
|
0x6717B, |
|
|
|
|
0x6717C, |
|
|
|
|
0x6717D, |
|
|
|
|
0x69524, |
|
|
|
|
0x69525, |
|
|
|
|
0x69526, |
|
|
|
|
0x69527, |
|
|
|
|
0x6A034, |
|
|
|
|
0x6A035, |
|
|
|
|
0x6A036, |
|
|
|
|
0x6A037, |
|
|
|
|
0x6A038, |
|
|
|
|
0x6A039, |
|
|
|
|
0x6A03A, |
|
|
|
|
0x6A03B, |
|
|
|
|
0x6A03C, |
|
|
|
|
0x6A03D, |
|
|
|
|
0x6A03E, |
|
|
|
|
0x6A03F, |
|
|
|
|
0x6A040, |
|
|
|
|
0x6A041, |
|
|
|
|
0x6A042, |
|
|
|
|
0x6A045, |
|
|
|
|
0x6A046, |
|
|
|
|
0x6A047, |
|
|
|
|
0x6A048, |
|
|
|
|
0x6A049, |
|
|
|
|
0x6A04A, |
|
|
|
|
0x6A04B, |
|
|
|
|
0x6A04C, |
|
|
|
|
0x6A04D, |
|
|
|
|
0x6A04F, |
|
|
|
|
0x6A050, |
|
|
|
|
0x6A051, |
|
|
|
|
0x6A052, |
|
|
|
|
0x6A053, |
|
|
|
|
0x6A054, |
|
|
|
|
0x6A057, |
|
|
|
|
0x6A058, |
|
|
|
|
0x6A059, |
|
|
|
|
0x6A05A, |
|
|
|
|
0x6A094, |
|
|
|
|
0x6D230, |
|
|
|
|
0x6D233, |
|
|
|
|
0x6D235, |
|
|
|
|
0x6D23F, |
|
|
|
|
0x6D24D, |
|
|
|
|
0x6D253, |
|
|
|
|
0x6D257, |
|
|
|
|
0x6FEEA, |
|
|
|
|
0x6FEED, |
|
|
|
|
0x6FEEE, |
|
|
|
|
0x6FEEF, |
|
|
|
|
0x6FEF0, |
|
|
|
|
0x6FEF1, |
|
|
|
|
0x6FEF2, |
|
|
|
|
0x6FEF3, |
|
|
|
|
0x6FEF4, |
|
|
|
|
0x6FEF5, |
|
|
|
|
0x6FEF6, |
|
|
|
|
0x6FEF7, |
|
|
|
|
0x6FEF8, |
|
|
|
|
0x6FEF9, |
|
|
|
|
0x6FEFA, |
|
|
|
|
0x6FEFD, |
|
|
|
|
0x904B1, |
|
|
|
|
0x904B2, |
|
|
|
|
0x904B3, |
|
|
|
|
0x904B4, |
|
|
|
|
0x904B5, |
|
|
|
|
0x904B6, |
|
|
|
|
0x904B7, |
|
|
|
|
0x904B8, |
|
|
|
|
0x904B9, |
|
|
|
|
0x904BA, |
|
|
|
|
0x904BB, |
|
|
|
|
0x904BC, |
|
|
|
|
0x904BD, |
|
|
|
|
0x904BE, |
|
|
|
|
0x904BF, |
|
|
|
|
0x904C0, |
|
|
|
|
0xDAAF3, |
|
|
|
|
0xDAAF5, |
|
|
|
|
0xDAAF8, |
|
|
|
|
0xDAAFC, |
|
|
|
|
0xDAAFE, |
|
|
|
|
0xDAB01, |
|
|
|
|
0xE49F3, |
|
|
|
|
0xE4A12, |
|
|
|
|
0xE77BF, |
|
|
|
|
0xE77C0, |
|
|
|
|
0xE77C1, |
|
|
|
|
0xE77C2, |
|
|
|
|
0xE77C3, |
|
|
|
|
0xE77C4, |
|
|
|
|
0xE77C5, |
|
|
|
|
0xE77C6, |
|
|
|
|
0xE77C7, |
|
|
|
|
0xE77C8, |
|
|
|
|
0xE77C9, |
|
|
|
|
0xE77CA, |
|
|
|
|
0xE77CB, |
|
|
|
|
0xE77CF |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 138; i++) { |
|
|
|
|
const auto* form = RE::TESForm::LookupByID(formids[i]); |
|
|
|
|
if (!form || !form->Is(RE::FormType::Static)) { |
|
|
|
|
logger::warn("Detected invalid static: {:08X}", formids[i]); |
|
|
|
|
NotifyInvalidForm(form); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|