Use list files to store vanilla map checksums.

This commit is contained in:
Marisa the Magician 2021-06-27 11:13:39 +02:00
parent 092f9cfd7f
commit f3fddfdbcf
6 changed files with 312 additions and 343 deletions

View File

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r557 \cu(Fri 25 Jun 17:48:51 CEST 2021)\c-";
SWWM_SHORTVER="\cw0.9.11b-pre r557 \cu(2021-06-25 17:48:51)\c-";
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r558 \cu(Sun 27 Jun 11:13:39 CEST 2021)\c-";
SWWM_SHORTVER="\cw0.9.11b-pre r558 \cu(2021-06-27 11:13:39)\c-";

158
vanilladoom.lst Normal file
View File

@ -0,0 +1,158 @@
# DOOM I
03026CE40DD59D8651BE0168E2BF4FEB
0352510152C1EC7410FD056AB68C22D4
04008AC301A291B4D7EB2AC2BE08176D
058FB092EA1B70DA1E3CBF501C4A91A1
100106C75157B7DECB0DCAD2A59C1919
12F312BA35EA1F4431FD67A405FCAC3A
167DB53BD6755AD0B8A2E31D7CBFB6F1
1BC04D646B32D3A3E411DAF3C1A38FF8
1D7FD0DE19BACFA1127633BCEBCE4F28
1DBF91738492FB0E29836A2D66406CF1
1EC9C5710087141F49C5F219CE61A60B
2042D7C0815982EFC992149082E45538
2B44D7016B25AAAA96EC86AA3890031B
2B65CB046EA40D2E44576949381769CA
2BAF49B4CC36155B60B5330660AC0976
2DC939E508AB8EB68AF79D5B60568711
34601B4E48CA63A69905FFEFEBEFBD44
364DEACBC4E8A316C0B6FE3026795EEC
36CF4DDCE946096D2B6A1C9167CDFF24
3838AB29292587A7EE3CA71E7040868D
3CB5FAE83B470A9ACCD9B9B2102447DF
44C443413170B85F49951BF1F05F8FA9
4B65B09DC8FEDF0D32524DB2CD5208C7
4B7AEF0D297FF38C1569EE616CEFF245
5024020F3EBC2D9D3C66A1203F87E98B
5AC51CA9F1B57D4538049422A5E37291
5B26545FF21B051CA06D389CE535684C
5FAA25F5A6AAB3409CAE0AF87F910341
62198D501F6E967E8470434A04FF73D6
65455AC523799F8DCE19F3D1968776A2
66D8E54B173041F981A11CCE766C4215
771092812F38236C9DF2CB06B2D6B24F
78556D238FFEC8058CACC48B847E1FAB
81A4CC5136CBFA49345654190A626C09
8590F489879870C098CD7029C3187159
8A6399FAAA2E68649D4E4B16642074BE
8DDEA443C7847951D44C2370F870DC51
9007F68E7F351A5758198933336F6B9F
918436B3C2D0AD4F2C108183414B4612
94D4C869A0C02EF4F7375022B36AAE45
97079958C7E89C1908890730B8B9FEB7
99C580AD8FABE923CAB485CB7F3C5E5D
A24FE135D5B6FD427FE27BEF89717A65
AA7610E65716B21BA8B99E9B95E76843
AAECADD4D97970AFF702D86FAFAC7D17
B49F7A6C519757D390D52667DB7D8793
B87D71143EFD62C23BDEC4DD19F6DC6D
BBDC4253AE277DA5FCE2F19561627496
BD9AB9C1B017AB3583B80C8A6222DCE6
BE6CA7CF3518C2E4D1CFE4A17BE42953
C2E09AB0BDD03925305A48AE935B71CA
C4A89A481A32BFEDDEB82E818F2BDEC5
C7FF2282BC606FFB28DDCB90357094E6
CAA497916BDD0804644C32454260CCA0
CBBFF61A8C231DFFC8E8A2A2BAEB77FF
D015344419CD93376A6DB1FFF7DFB77E
DA0C8281AC70EEC31127C228BCD7FE2C
E27A5638FC5047E42B38351BCC78483C
EF128313112110ED6C1549AF96AF26C9
EFFE91DF41AD41F6973C06F0AD67DDB9
F6EE16F770AD309D608EA0B1F1E249FC
F951882CB5A8DEF910F0ED966A1054C5
FB564DF28BC8D4BF70F60FB3256BCF9D
FE97DCB9E6235FB3C52AE7C143160D73
# DOOM II
0BB515B79E0A6C42C4846C4E6F5F1D73
0D491365C1B88B7D1B603890100DD03E
0E11A89BFCAA52A4981F4C20344E5985
1037366026AAB4B0CF11BAB27DB90E4E
110F84DE041052B59307FAF0293E6BC0
1A540BA717BF9EC85F8522594C352F2A
1AF4DEC2627360A55B3EB397BC15C39D
1EC0AF1E3985650F0C9000319C599D0C
20251EDA21B2F2ECF6FF5B8BBC00B26C
211E7C0E91CDEC8912C99AAA4648767F
291F24417FB3DD411339AE82EF9B3597
2DE58E4B58489F3A5B71F9013FBA18E8
34A8DB0B341A32267CB461D8C219DF0A
3C9902E376CCA1E9C3BE8763BDC21DF5
3EFF15C64A03B36E8E47926C6DF9EF70
3FF94E27423F91C1585B3396F0C03459
434575DCB650B4EFC912EFC0782C7ACC
492FEE2B2D54F79C7A23E045062770CA
4AA9B3CE449FB614497756E96509F096
55962881582C9B2B5AB88805B032230A
5BDA34DA60C0530794CC1EA2DA017976
5E8679670469F92E15CF4219B5B98FEF
5EECD88F4491F516D590CE4BBF45F532
63F25C97D5B1CC174EFEA7F6AF499960
661057B891818322F417BDD87DFD640C
66C46385EB1A23D60839D1532522076B
6B60F37B91309DFF1CDF02E5E476210D
6C620F43705BEC0ABBABBF46AC3E62D2
73D9E03CEE7BF1A97EFD2EAD86688EF8
7DEF5AB5E48D61DC5B100456E846F359
82256F04136ADB2413BFC604B5F6ADF3
84BB2C8ED2343C91136B87F1832E7CA5
8898F5EC9CBDCD98019A1BC1BF892A8A
922865ACD59F7E7DC475801ED43C2BF2
94893A0DC429A22ADC4B3A73DA537E16
98B90CA3AE69D47180DC0BD3A66D49A3
9AA7780B46EC4471F630572798943D71
9E061AD7FBCD7FAD968C976CB4AA3B9D
AA4CA3FC891D13821ACCABD836E29EB5
AB24AE6E2CB13CBDD04600A4D37F9189
AB55BFB557FA86D06F2F14D2D2ECC70C
B0F573C276A989BBCE350F5397C9830F
B5506B1E8F2FC272AD0C77B9E0DF5491
C3E95F101FA83894A5476E7B6AB929A5
C725E47120CC0BE3E3EAE73E055488C5
CEC791136A83EEC4B91D39718BDF9D82
E1CFD5C6E60C3B6C30F8B95FC287E9FE
EBDAC00E9D25D884B2C8F4B1F0390539
F2235342F1591B59154022E1DAF3EB2F
F4F2A769609988837458772AAE99008C
F610DAFA39A5FDB7F5F19DD1009B8764
F62FA69BFF7210F3515A98CBEAC169B3
FBA6547B9FD44E95671A923A066E516F
# NRFTL
047991BB81F9790B69C25B020DF8B25C
3262C22DD1532DF4DFCFEEB6AE0E11BB
3843B06A279EB9CEDC18C30CF32074C2
7E0E3D6E3643082B86C153CC04A0D1D1
7EB864A03948C3F918F9223B2D1F8911
B2C6635EC41DA8D96065166B0E14E78E
C7471AF46CFDA07BA0EB5C4D4DE2E136
FDE03D8F2D3D8E37483FC4589B3D54E9
FF635FB9A2F076566299910F8C78F707
# SIGIL
09B30C9DA9D73D3D5A709502FBB947AA
0E5E1817F2224FF0DB181474B830A5A7
2A6B4D277F526BFB3ADB122609FEEAD7
3417A4859C8FECE797C9DAA715D14D63
35AE2B748869C4158B4CFD4AE8999ABF
38028DC7E09DC5C91068AAC565A3962B
391AFD7D60F4055329141C29415A8747
3AFC7C4358D4E3AD52A616D834645C66
3D72FD17F36D2D43FD9A21E6E57EE357
4A4832BEBE16A3D56912490A4E61F59B
4E5D482364F6F787CB8EFC17BDE5D64D
5F0176109618FD804433C6292108AD2A
6EAD80DA1F30B4B3546FA294EEF9F87C
8C35EFBA700537035C84F5E1AD35C064
AEBF219BF02AAEC549BA3EF8CB3F715B
C241A25A1FDF76805C5CA4FB4702F906
C43B99F34E5211F9AF24459842852B0D
C9E4A1B09187A7C2B6AFDE0E63C3C173
D2A36970B78FB93FA6F000F7BAF51BBF
D6CC73585A54B2B9747386884867F254
E9ACCB492F095D6ABD41EF5548620E85
E9EB4D16CA7E491E98D61615E4613E70
EB984250D4935E93C265AE8C8455560F
EBCA8E5E02430E9642D24CF2ADBAE80D
ECC2BCC872F0F1C09711246B85901F1C
F930BA8E480B2A5C94829C2A2A585157
FB0369DB6D3F4E117947764CEC906C92
# TNT and Plutonia are not included, they're not part of the campaign

50
vanillaheretic.lst Normal file
View File

@ -0,0 +1,50 @@
# Heretic
# Doesn't include episode 6, those aren't even part of the campaign
006DEAB129C225F3ED4BF70F67A122F9
17654C1688AB18D046F3B30292EE144F
196810E6877808E5D665644A6B0B7519
2225DE84BFDD74E984C39022E6499834
27639D04F8090D57A47D354992435893
2C9F8F32D6D5713F57A79279718EB30A
30D1480A6D4F3A3153739D4CCF659C4E
397A0E17A39542E4E8294E156FAB0502
41C5437160F07D607AF413C7742DE70C
4719C2C71EF28F52310B889DD5A9778B
5158C22A0F30CE5E558FD2A05D67685E
5800D43560330827E05F9BB7068DB8D8
5E3FCFDE78310BB89F92B1626A47D0AD
641362D6DCBFD40BEF31627AC36B3F37
674196BE64A0EDA97BA7916962C20D16
7285877BB9726C7B934C28F7E733C28B
84CA1839049B7A3266EE3CFE78874AF1
84EC63F1412348F3275075489713478C
85AC7D20D18F9BC49B9696CC2E67F029
85C8DD2C557A490D571FDD44B3963EA3
882CBA8401C29488DF07DC93792995B2
916318D8B06DAC2D83424B23E4B66531
9299AC9604195379F01BA27D43468464
9BD531882129C4366845EC1877A46283
9DBC65690993F7988BAAC71D35F2AC4F
A6A0E37C60C04E88BD4B03D26EA171F7
A7DBAB356525123955A31806CA7E244E
A94561FF9BC91BC28305627CF3BCE856
AD3687E5984C0F03D9CC38920EB775A1
ADD0FAC41AFB0B3C9B9F3C0006F93805
ADEA9DE9E47202E1C4038ACFA6ED7B85
B43106250033C9C3C7BEAE4D55E44A2D
B7FDAB05B21AF564BC9552676F695213
BF320F2055DCA06C7BECBD7BA8389736
BF863A89DE2108FC24979D0565F2F65E
CA3773ED313E8899311F3DD0CA195A68
CAB396CF990DE6B4FF5CF3C60FB2BABF
D4C44A46DAAB28BD7935D1CD9E96BBF7
D94587625BA779644D58151A87897CF1
DB4716B9A4860C8EBC3CD90CCF58CC5B
DC15D3AFB78CACC98C8855C07702038F
DF1DC38BF77A1CD1653718DB51CEE9DA
EB08016DFFC6C5505DF29EE350762F12
EBDF3D5C49B057C24279002461AD2066
F73033F55D3F63DA6B5EAE4CCA4F5BD8
FA52AA4AC70FB6E699DCC09C8D241F85
FAA0550BE9923B3A3332B4F7DB897A4A
FF6C17C38044E1EDACF96F4F4FCF4806

84
vanillahexen.lst Normal file
View File

@ -0,0 +1,84 @@
# Hexen
008227FE7A5E78F0F04C6C7009CF17AC
0396DC9B793ADDB0D8805B8BCA22AFA0
056A5796E924774FE19E9CB7924712C6
088ECE0E0F3E68448FA1D901001A0084
0B64298B66E94FE2D8118D5CF911AEAA
112599C94EB03328D217233D4CB65A70
19CC8ACB7BB48F0F504B7D4AE27A5168
1B6DF1FD51FDC3D882009D287B5A28C6
1C5DE5A921DEE405E98E7E09D9829387
2639C89B8B7052E2CE4CB9CFC63F4C53
2805AB25F19F719C8E228A5239E0565D
28F6766308D3B39EC5E662FF7156C6C5
297C0350ACF8BFFF59D5B3679F5F7756
2A6C4235B942467D25FD50D5B313E67A
33752742BCA8E539A6EE3E5D0FDA8744
339B4B50B615BE6E1D8454F6C605A97C
3FFAF2F624C1B4BB6F581DCF7B99CBA7
441BF111747671066A10A146C03EEFC4
4799E1FDB5A3C0E3AD650B5AC215A737
4A4436544EBFA930AE3C4C8C2409FD6E
4E1C251C44ED29E1255E0FA137B1542A
50876E46C80CC47F1EFC9CE52F4836A0
55E321849F3699655D7E062C90682F63
56CD5E4B6EF14229EED260BB452D47CD
580E1113B36E1F7A2BFD0C4F5B20B228
5B29D0889DF09A8250D62FA09EB2B452
5C63A02B0B04D9AE95CA51687DC3406F
5C8C5FC89623C9EF22C5F47F79B28590
65EFFD49449AD3FD32A6EB347C6D923B
66342E4468E151FB418F30989A1C78F5
6CDA2721AA1076F063557CF89D88E92B
712BF1DF1B88C6DA0016E5917F4B65BE
7729174BAA658C8FD86CF8290422F512
7E806D0A625D59A6AC2CDF2C869D26F5
91AD797F95CC4C6D6AE33B21F664C60B
9A72B693E38944F710870185E50777DB
9B51526171228EB2FEB413BA6814A9A1
A3597A7946669B5010D3E0B8CED21565
AB1830A7BF82824EA2021CF3AB22EDC8
AE1A5B740FF2D40527116FF80F9DB6A8
B54010961D93072ED4A3271F264859F8
B74233898DCAB205A315FE96C8A31253
BFDC70A9D445EA5B9010ABB133253D6F
C1341C297526B8F87C6B0EFE90F35C70
C5311C5F10A3000130C5977A62029629
CA332333A50FC7AEF4C82D0403A91594
CBDE77E3ACB4B166D53C1812E5C72F54
CC90EAF7131A1CA59F8322735C92899C
D3C5FA777BA52264546E6569F167AF0D
D48508B92843539B4464235C2B355CC3
DD91E89C70E1C43D610BFC10D1FE1CA2
DFDED622F689CC39CA16BFAD8AE6CF56
E1B55285AA0157A2AF1396DA2576B57F
E89CCC7E155F1032F693359CC219BE6C
E8FAA643CCB5E52AA7B1282DA88D1DDF
EC5A1B294CC7FB822A6C913F811797C4
F1266156AF93C0CADFF31EFD5EB12BDD
F8DFDCBAA677F83E2CD2409F5C00505F
FC5967D5FDE49566E84801DA1081B16B
FC73BFC52F7D29344848FBFD51A0B554
FC832437D7A2B7094A9B56C3909773D9
FDC90F44C65A71E0901C1B9FFFCF3D02
# Deathkings (sans DM maps)
0487193FFC57884EDB053F3E9148C534
11A83AAE9F747E1BA649F52D6C2DDB3A
15FC0991D975325556EFF71F241A4458
2945EDC2A9D7222AE54F0C68E1EA79FC
2FAD54B58487884F06EAFA507B553921
6C886A3E37410C6FC83ED87BB6E9864F
6FAFFEAAE301FD341169A3CC63CBE183
7721B620EA970DF48FF4A18489822F6C
7C28FD1ED662667FC54CDA123CF0614A
7DC65D5029DD834481CD716B3D71388A
90B4951F996BA30096F2D4238EEC39CA
A5F820CB016DE3D9A402C0173E7F9998
B0ADDB295A3ACCE43978AAC91FB8C58A
B295A2FBB187A1DC8AEFDE825DFB084A
B77D810C972976C54A694C62361FFF9D
C35F7CB2E9F93BB331FFCEB6622ABD64
CA7825F84BC08E76C6C85A41AEFE4370
CB0334184147FF565F6EF437F316B3EB
E2B5D1400279335811C1C1C0B437D9C8
E3EFB0156A20ADF2DF00915A0EA85DF5

View File

@ -423,7 +423,7 @@ Class Demolitionist : PlayerPawn
DualExplodiumGun(eg.SisterWeapon).chambered = true;
player.ReadyWeapon = player.PendingWeapon = eg;
// in hexdd, we start with the chaos sphere in our grasp
if ( SWWMUtility.IsDeathkings() && SWWMUtility.IsVanillaHexenMap() )
if ( SWWMUtility.IsDeathkings() && SWWMUtility.CheckMD5List("vanillahexen.list") )
{
let cs = Inventory(Spawn('SWWMChaosSphere'));
cs.AttachToOwner(self);

View File

@ -1431,11 +1431,11 @@ Class SWWMUtility
// shorthand for some of these checks (these are generally used by the mission briefing system)
static bool IsKnownMap()
{
if ( (gameinfo.gametype&GAME_DOOM) && (IsKnownCustomWAD() || IsVanillaDoomMap()) )
if ( (gameinfo.gametype&GAME_DOOM) && (IsKnownCustomWAD() || CheckMD5List("vanilladoom.list")) )
return true;
if ( (gameinfo.gametype&GAME_HERETIC) && IsVanillaHereticMap() )
if ( (gameinfo.gametype&GAME_HERETIC) && CheckMD5List("vanillaheretic.list") )
return true;
if ( (gameinfo.gametype&GAME_HEXEN) && IsVanillaHexenMap() )
if ( (gameinfo.gametype&GAME_HEXEN) && CheckMD5List("vanillahexen.list") )
return true;
return false;
}
@ -1490,345 +1490,22 @@ Class SWWMUtility
}
// detect vanilla maps (across all IWAD versions)
static bool IsVanillaDoomMap()
static bool CheckMD5List( String fname )
{
String csum = level.GetChecksum();
if ( (csum ~== "0BB515B79E0A6C42C4846C4E6F5F1D73")
|| (csum ~== "0D491365C1B88B7D1B603890100DD03E")
|| (csum ~== "0E11A89BFCAA52A4981F4C20344E5985")
|| (csum ~== "A24FE135D5B6FD427FE27BEF89717A65")
|| (csum ~== "AA4CA3FC891D13821ACCABD836E29EB5")
|| (csum ~== "AA7610E65716B21BA8B99E9B95E76843")
|| (csum ~== "AAECADD4D97970AFF702D86FAFAC7D17")
|| (csum ~== "AB24AE6E2CB13CBDD04600A4D37F9189")
|| (csum ~== "AB55BFB557FA86D06F2F14D2D2ECC70C")
|| (csum ~== "B0F573C276A989BBCE350F5397C9830F")
|| (csum ~== "B49F7A6C519757D390D52667DB7D8793")
|| (csum ~== "B5506B1E8F2FC272AD0C77B9E0DF5491")
|| (csum ~== "B87D71143EFD62C23BDEC4DD19F6DC6D")
|| (csum ~== "BBDC4253AE277DA5FCE2F19561627496")
|| (csum ~== "BD9AB9C1B017AB3583B80C8A6222DCE6")
|| (csum ~== "BE6CA7CF3518C2E4D1CFE4A17BE42953")
|| (csum ~== "C2E09AB0BDD03925305A48AE935B71CA")
|| (csum ~== "C3E95F101FA83894A5476E7B6AB929A5")
|| (csum ~== "C4A89A481A32BFEDDEB82E818F2BDEC5")
|| (csum ~== "C725E47120CC0BE3E3EAE73E055488C5")
|| (csum ~== "C7FF2282BC606FFB28DDCB90357094E6")
|| (csum ~== "CAA497916BDD0804644C32454260CCA0")
|| (csum ~== "CBAB28B15E38C5CB20A1C0B800218677")
|| (csum ~== "CBBFF61A8C231DFFC8E8A2A2BAEB77FF")
|| (csum ~== "CEC791136A83EEC4B91D39718BDF9D82")
|| (csum ~== "D015344419CD93376A6DB1FFF7DFB77E")
|| (csum ~== "D8B3AE3B0D04B523DD7128BE87192A89")
|| (csum ~== "D98B2AC8DE02BAB888F80D708A99B4F2")
|| (csum ~== "DA0C8281AC70EEC31127C228BCD7FE2C")
|| (csum ~== "E1CFD5C6E60C3B6C30F8B95FC287E9FE")
|| (csum ~== "E27A5638FC5047E42B38351BCC78483C")
|| (csum ~== "EBDAC00E9D25D884B2C8F4B1F0390539")
|| (csum ~== "EF128313112110ED6C1549AF96AF26C9")
|| (csum ~== "EFFE91DF41AD41F6973C06F0AD67DDB9")
|| (csum ~== "F2235342F1591B59154022E1DAF3EB2F")
|| (csum ~== "F4F2A769609988837458772AAE99008C")
|| (csum ~== "F610DAFA39A5FDB7F5F19DD1009B8764")
|| (csum ~== "F62FA69BFF7210F3515A98CBEAC169B3")
|| (csum ~== "F6EE16F770AD309D608EA0B1F1E249FC")
|| (csum ~== "F951882CB5A8DEF910F0ED966A1054C5")
|| (csum ~== "FB564DF28BC8D4BF70F60FB3256BCF9D")
|| (csum ~== "FBA6547B9FD44E95671A923A066E516F")
|| (csum ~== "FE97DCB9E6235FB3C52AE7C143160D73")
|| (csum ~== "1A540BA717BF9EC85F8522594C352F2A")
|| (csum ~== "1AF4DEC2627360A55B3EB397BC15C39D")
|| (csum ~== "1BC04D646B32D3A3E411DAF3C1A38FF8")
|| (csum ~== "1C46D128868ECEF6C8D48C2963775780")
|| (csum ~== "1D60EBE11BA774D9B890B04DC573C80F")
|| (csum ~== "1D7FD0DE19BACFA1127633BCEBCE4F28")
|| (csum ~== "1DBF91738492FB0E29836A2D66406CF1")
|| (csum ~== "1EC0AF1E3985650F0C9000319C599D0C")
|| (csum ~== "1EC9C5710087141F49C5F219CE61A60B")
|| (csum ~== "2B44D7016B25AAAA96EC86AA3890031B")
|| (csum ~== "2B65CB046EA40D2E44576949381769CA")
|| (csum ~== "2BAF49B4CC36155B60B5330660AC0976")
|| (csum ~== "2DC939E508AB8EB68AF79D5B60568711")
|| (csum ~== "2DE58E4B58489F3A5B71F9013FBA18E8")
|| (csum ~== "3C9902E376CCA1E9C3BE8763BDC21DF5")
|| (csum ~== "3CB5FAE83B470A9ACCD9B9B2102447DF")
|| (csum ~== "3EFF15C64A03B36E8E47926C6DF9EF70")
|| (csum ~== "3FF94E27423F91C1585B3396F0C03459")
|| (csum ~== "4AA9B3CE449FB614497756E96509F096")
|| (csum ~== "4B65B09DC8FEDF0D32524DB2CD5208C7")
|| (csum ~== "4B7AEF0D297FF38C1569EE616CEFF245")
|| (csum ~== "5AC51CA9F1B57D4538049422A5E37291")
|| (csum ~== "5B26545FF21B051CA06D389CE535684C")
|| (csum ~== "5BDA34DA60C0530794CC1EA2DA017976")
|| (csum ~== "5E8679670469F92E15CF4219B5B98FEF")
|| (csum ~== "5EECD88F4491F516D590CE4BBF45F532")
|| (csum ~== "5FAA25F5A6AAB3409CAE0AF87F910341")
|| (csum ~== "6B60F37B91309DFF1CDF02E5E476210D")
|| (csum ~== "6C620F43705BEC0ABBABBF46AC3E62D2")
|| (csum ~== "7DEF5AB5E48D61DC5B100456E846F359")
|| (csum ~== "8A6399FAAA2E68649D4E4B16642074BE")
|| (csum ~== "8DDEA443C7847951D44C2370F870DC51")
|| (csum ~== "9AA7780B46EC4471F630572798943D71")
|| (csum ~== "9E061AD7FBCD7FAD968C976CB4AA3B9D")
|| (csum ~== "12F312BA35EA1F4431FD67A405FCAC3A")
|| (csum ~== "34A8DB0B341A32267CB461D8C219DF0A")
|| (csum ~== "36CF4DDCE946096D2B6A1C9167CDFF24")
|| (csum ~== "44C443413170B85F49951BF1F05F8FA9")
|| (csum ~== "058FB092EA1B70DA1E3CBF501C4A91A1")
|| (csum ~== "63F25C97D5B1CC174EFEA7F6AF499960")
|| (csum ~== "66C46385EB1A23D60839D1532522076B")
|| (csum ~== "66D8E54B173041F981A11CCE766C4215")
|| (csum ~== "73D9E03CEE7BF1A97EFD2EAD86688EF8")
|| (csum ~== "81A4CC5136CBFA49345654190A626C09")
|| (csum ~== "84BB2C8ED2343C91136B87F1832E7CA5")
|| (csum ~== "94D4C869A0C02EF4F7375022B36AAE45")
|| (csum ~== "98B90CA3AE69D47180DC0BD3A66D49A3")
|| (csum ~== "99C580AD8FABE923CAB485CB7F3C5E5D")
|| (csum ~== "110F84DE041052B59307FAF0293E6BC0")
|| (csum ~== "167DB53BD6755AD0B8A2E31D7CBFB6F1")
|| (csum ~== "211E7C0E91CDEC8912C99AAA4648767F")
|| (csum ~== "291F24417FB3DD411339AE82EF9B3597")
|| (csum ~== "364DEACBC4E8A316C0B6FE3026795EEC")
|| (csum ~== "492FEE2B2D54F79C7A23E045062770CA")
|| (csum ~== "941E21C5C30E2BF92FFAD047CDFF5CA0")
|| (csum ~== "2042D7C0815982EFC992149082E45538")
|| (csum ~== "03026CE40DD59D8651BE0168E2BF4FEB")
|| (csum ~== "3838AB29292587A7EE3CA71E7040868D")
|| (csum ~== "04008AC301A291B4D7EB2AC2BE08176D")
|| (csum ~== "8590F489879870C098CD7029C3187159")
|| (csum ~== "8898F5EC9CBDCD98019A1BC1BF892A8A")
|| (csum ~== "9007F68E7F351A5758198933336F6B9F")
|| (csum ~== "20251EDA21B2F2ECF6FF5B8BBC00B26C")
|| (csum ~== "34601B4E48CA63A69905FFEFEBEFBD44")
|| (csum ~== "36699F787D4D9365FEFB4441624CC48B")
|| (csum ~== "62198D501F6E967E8470434A04FF73D6")
|| (csum ~== "65455AC523799F8DCE19F3D1968776A2")
|| (csum ~== "78556D238FFEC8058CACC48B847E1FAB")
|| (csum ~== "82256F04136ADB2413BFC604B5F6ADF3")
|| (csum ~== "94500F4B006B316FE03AC46865AEABF8")
|| (csum ~== "94893A0DC429A22ADC4B3A73DA537E16")
|| (csum ~== "100106C75157B7DECB0DCAD2A59C1919")
|| (csum ~== "434575DCB650B4EFC912EFC0782C7ACC")
|| (csum ~== "661057B891818322F417BDD87DFD640C")
|| (csum ~== "915409A89746D6BFD92C7956BE6A0A2D")
|| (csum ~== "918436B3C2D0AD4F2C108183414B4612")
|| (csum ~== "922865ACD59F7E7DC475801ED43C2BF2")
|| (csum ~== "5024020F3EBC2D9D3C66A1203F87E98B")
|| (csum ~== "97079958C7E89C1908890730B8B9FEB7")
|| (csum ~== "0352510152C1EC7410FD056AB68C22D4")
|| (csum ~== "589627883DA0AFFEF9AF365203512A5F")
|| (csum ~== "771092812F38236C9DF2CB06B2D6B24F")
|| (csum ~== "1037366026AAB4B0CF11BAB27DB90E4E")
|| (csum ~== "55962881582C9B2B5AB88805B032230A")
// NRFTL
|| (csum ~== "B2C6635EC41DA8D96065166B0E14E78E")
|| (csum ~== "C7471AF46CFDA07BA0EB5C4D4DE2E136")
|| (csum ~== "FDE03D8F2D3D8E37483FC4589B3D54E9")
|| (csum ~== "FF635FB9A2F076566299910F8C78F707")
|| (csum ~== "7E0E3D6E3643082B86C153CC04A0D1D1")
|| (csum ~== "7EB864A03948C3F918F9223B2D1F8911")
|| (csum ~== "3262C22DD1532DF4DFCFEEB6AE0E11BB")
|| (csum ~== "3843B06A279EB9CEDC18C30CF32074C2")
|| (csum ~== "047991BB81F9790B69C25B020DF8B25C")
// SIGIL (1.21 only)
|| (csum ~== "AEBF219BF02AAEC549BA3EF8CB3F715B")
|| (csum ~== "EB984250D4935E93C265AE8C8455560F")
|| (csum ~== "2A6B4D277F526BFB3ADB122609FEEAD7")
|| (csum ~== "4A4832BEBE16A3D56912490A4E61F59B")
|| (csum ~== "4E5D482364F6F787CB8EFC17BDE5D64D")
|| (csum ~== "6EAD80DA1F30B4B3546FA294EEF9F87C")
|| (csum ~== "8C35EFBA700537035C84F5E1AD35C064")
|| (csum ~== "3417A4859C8FECE797C9DAA715D14D63")
|| (csum ~== "38028DC7E09DC5C91068AAC565A3962B") )
return true;
// no TNT / Plutonia (non-canon Demolitionist appearance)
return false;
}
static bool IsVanillaHereticMap()
{
String csum = level.GetChecksum();
if ( (csum ~== "A6A0E37C60C04E88BD4B03D26EA171F7")
|| (csum ~== "A7DBAB356525123955A31806CA7E244E")
|| (csum ~== "A94561FF9BC91BC28305627CF3BCE856")
|| (csum ~== "AD3687E5984C0F03D9CC38920EB775A1")
|| (csum ~== "ADD0FAC41AFB0B3C9B9F3C0006F93805")
|| (csum ~== "ADEA9DE9E47202E1C4038ACFA6ED7B85")
|| (csum ~== "B43106250033C9C3C7BEAE4D55E44A2D")
|| (csum ~== "B7FDAB05B21AF564BC9552676F695213")
|| (csum ~== "BF320F2055DCA06C7BECBD7BA8389736")
|| (csum ~== "BF863A89DE2108FC24979D0565F2F65E")
|| (csum ~== "CA3773ED313E8899311F3DD0CA195A68")
|| (csum ~== "CAB396CF990DE6B4FF5CF3C60FB2BABF")
|| (csum ~== "D4C44A46DAAB28BD7935D1CD9E96BBF7")
|| (csum ~== "D94587625BA779644D58151A87897CF1")
|| (csum ~== "DB4716B9A4860C8EBC3CD90CCF58CC5B")
|| (csum ~== "DC15D3AFB78CACC98C8855C07702038F")
|| (csum ~== "DF1DC38BF77A1CD1653718DB51CEE9DA")
|| (csum ~== "EB08016DFFC6C5505DF29EE350762F12")
|| (csum ~== "EBDF3D5C49B057C24279002461AD2066")
|| (csum ~== "EF0C8A7C9E3574AAB5C70C390849078D")
|| (csum ~== "F73033F55D3F63DA6B5EAE4CCA4F5BD8")
|| (csum ~== "FA52AA4AC70FB6E699DCC09C8D241F85")
|| (csum ~== "FAA0550BE9923B3A3332B4F7DB897A4A")
|| (csum ~== "FF6C17C38044E1EDACF96F4F4FCF4806")
|| (csum ~== "2C9F8F32D6D5713F57A79279718EB30A")
|| (csum ~== "5E3FCFDE78310BB89F92B1626A47D0AD")
|| (csum ~== "006DEAB129C225F3ED4BF70F67A122F9")
|| (csum ~== "9BD531882129C4366845EC1877A46283")
|| (csum ~== "9DBC65690993F7988BAAC71D35F2AC4F")
|| (csum ~== "30D1480A6D4F3A3153739D4CCF659C4E")
|| (csum ~== "41C5437160F07D607AF413C7742DE70C")
|| (csum ~== "84CA1839049B7A3266EE3CFE78874AF1")
|| (csum ~== "84EC63F1412348F3275075489713478C")
|| (csum ~== "85AC7D20D18F9BC49B9696CC2E67F029")
|| (csum ~== "85C8DD2C557A490D571FDD44B3963EA3")
|| (csum ~== "397A0E17A39542E4E8294E156FAB0502")
|| (csum ~== "882CBA8401C29488DF07DC93792995B2")
|| (csum ~== "2225DE84BFDD74E984C39022E6499834")
|| (csum ~== "4719C2C71EF28F52310B889DD5A9778B")
|| (csum ~== "5158C22A0F30CE5E558FD2A05D67685E")
|| (csum ~== "5800D43560330827E05F9BB7068DB8D8")
|| (csum ~== "9299AC9604195379F01BA27D43468464")
|| (csum ~== "17654C1688AB18D046F3B30292EE144F")
|| (csum ~== "27639D04F8090D57A47D354992435893")
|| (csum ~== "196810E6877808E5D665644A6B0B7519")
|| (csum ~== "641362D6DCBFD40BEF31627AC36B3F37")
|| (csum ~== "674196BE64A0EDA97BA7916962C20D16")
|| (csum ~== "916318D8B06DAC2D83424B23E4B66531")
|| (csum ~== "7285877BB9726C7B934C28F7E733C28B") )
return true;
// no episode 6 (these wouldn't have mission data anyway)
return false;
}
static bool IsVanillaHexenMap()
{
String csum = level.GetChecksum();
if ( (csum ~== "0B64298B66E94FE2D8118D5CF911AEAA")
|| (csum ~== "A3597A7946669B5010D3E0B8CED21565")
|| (csum ~== "A3D86F121B41320BFD1EB747D9133EF2")
|| (csum ~== "A713FF5CE4B03BD757ADD5BD8B4DFF0B")
|| (csum ~== "AB1830A7BF82824EA2021CF3AB22EDC8")
|| (csum ~== "ACE533627DE4DE4D2418E225D680203C")
|| (csum ~== "AE1A5B740FF2D40527116FF80F9DB6A8")
|| (csum ~== "B121AD73F325F8DEF61A42AF2AC94D5B")
|| (csum ~== "B2A1B321E56494081085E51931EB3158")
|| (csum ~== "B54010961D93072ED4A3271F264859F8")
|| (csum ~== "B74233898DCAB205A315FE96C8A31253")
|| (csum ~== "BBE51852736AC479B58490A28F904629")
|| (csum ~== "BF9DFE95D9351AA3A65666185BFC921C")
|| (csum ~== "BFDC70A9D445EA5B9010ABB133253D6F")
|| (csum ~== "C1341C297526B8F87C6B0EFE90F35C70")
|| (csum ~== "C43B64E1E738FFF4FE4AF81C484A3D68")
|| (csum ~== "C4C4687AA51129F98A24B1B27D8F51A9")
|| (csum ~== "C5311C5F10A3000130C5977A62029629")
|| (csum ~== "CA332333A50FC7AEF4C82D0403A91594")
|| (csum ~== "CBA787EA6C4C3468D3228C143B8AB780")
|| (csum ~== "CBDE77E3ACB4B166D53C1812E5C72F54")
|| (csum ~== "CC90EAF7131A1CA59F8322735C92899C")
|| (csum ~== "D3C5FA777BA52264546E6569F167AF0D")
|| (csum ~== "D48508B92843539B4464235C2B355CC3")
|| (csum ~== "D6601C3470A525B9959708CA7C662ABA")
|| (csum ~== "DD91E89C70E1C43D610BFC10D1FE1CA2")
|| (csum ~== "DFDED622F689CC39CA16BFAD8AE6CF56")
|| (csum ~== "E1B55285AA0157A2AF1396DA2576B57F")
|| (csum ~== "E3B06F44DBF6F7E7754D7B1DAEF707E4")
|| (csum ~== "E89CCC7E155F1032F693359CC219BE6C")
|| (csum ~== "E8FAA643CCB5E52AA7B1282DA88D1DDF")
|| (csum ~== "E95A9756CB46D94CB9F40BDF2B91384D")
|| (csum ~== "EC5A1B294CC7FB822A6C913F811797C4")
|| (csum ~== "EFAFE59092DE5E613562ACF52B86C37F")
|| (csum ~== "F1266156AF93C0CADFF31EFD5EB12BDD")
|| (csum ~== "F37211DDAE80CBFA9DE2ED26CAA69946")
|| (csum ~== "F390EA69FF255D9D3DD9FD32CC448B8F")
|| (csum ~== "F8DFDCBAA677F83E2CD2409F5C00505F")
|| (csum ~== "FC5967D5FDE49566E84801DA1081B16B")
|| (csum ~== "FC73BFC52F7D29344848FBFD51A0B554")
|| (csum ~== "FC832437D7A2B7094A9B56C3909773D9")
|| (csum ~== "FDC90F44C65A71E0901C1B9FFFCF3D02")
|| (csum ~== "FDD5934796B91BDE46F85D834DFEEAC0")
|| (csum ~== "FEA83EE6BCFC899F06CBE394DFBE6707")
|| (csum ~== "1B6DF1FD51FDC3D882009D287B5A28C6")
|| (csum ~== "1C5DE5A921DEE405E98E7E09D9829387")
|| (csum ~== "1C620C0BED075E218DB93236E0887A8C")
|| (csum ~== "2A6C4235B942467D25FD50D5B313E67A")
|| (csum ~== "2B41CC6721D76DCBD8F5713A84443236")
|| (csum ~== "2CF971EECD6B790782DB44B0E917B5B2")
|| (csum ~== "3BF62E4F9FB3CF9AF267421CE2D5F348")
|| (csum ~== "3FFAF2F624C1B4BB6F581DCF7B99CBA7")
|| (csum ~== "4A4436544EBFA930AE3C4C8C2409FD6E")
|| (csum ~== "4A53211E319B98F6C7AC5D00099FC28C")
|| (csum ~== "4E1C251C44ED29E1255E0FA137B1542A")
|| (csum ~== "5B29D0889DF09A8250D62FA09EB2B452")
|| (csum ~== "5C63A02B0B04D9AE95CA51687DC3406F")
|| (csum ~== "5C8C5FC89623C9EF22C5F47F79B28590")
|| (csum ~== "6CDA2721AA1076F063557CF89D88E92B")
|| (csum ~== "7E806D0A625D59A6AC2CDF2C869D26F5")
|| (csum ~== "9A72B693E38944F710870185E50777DB")
|| (csum ~== "9B51526171228EB2FEB413BA6814A9A1")
|| (csum ~== "19CC8ACB7BB48F0F504B7D4AE27A5168")
|| (csum ~== "28F6766308D3B39EC5E662FF7156C6C5")
|| (csum ~== "35F42514BFE6C9E41A376D4049ED4555")
|| (csum ~== "47DDDC8ACBA6CC30D135AC05915621D1")
|| (csum ~== "55E321849F3699655D7E062C90682F63")
|| (csum ~== "056A5796E924774FE19E9CB7924712C6")
|| (csum ~== "56CD5E4B6EF14229EED260BB452D47CD")
|| (csum ~== "61F80F4A1684D62A4FBEFA241EABEB11")
|| (csum ~== "65EFFD49449AD3FD32A6EB347C6D923B")
|| (csum ~== "70F1D5ECDB77B6C39F6413724BB58EFF")
|| (csum ~== "088ECE0E0F3E68448FA1D901001A0084")
|| (csum ~== "89C4CD26EF05E2577B10CAFE56226662")
|| (csum ~== "91AD797F95CC4C6D6AE33B21F664C60B")
|| (csum ~== "188B1B4244BD8DA501D8532696EC8654")
|| (csum ~== "297C0350ACF8BFFF59D5B3679F5F7756")
|| (csum ~== "339B4B50B615BE6E1D8454F6C605A97C")
|| (csum ~== "0396DC9B793ADDB0D8805B8BCA22AFA0")
|| (csum ~== "0437C4DFACE5D1A6ED43C8512A322364")
|| (csum ~== "441BF111747671066A10A146C03EEFC4")
|| (csum ~== "515EA2EECD0845BDEC35C29930CCC0E5")
|| (csum ~== "580E1113B36E1F7A2BFD0C4F5B20B228")
|| (csum ~== "614B1674A664AEEE38EF886008DBB04B")
|| (csum ~== "712BF1DF1B88C6DA0016E5917F4B65BE")
|| (csum ~== "2639C89B8B7052E2CE4CB9CFC63F4C53")
|| (csum ~== "2805AB25F19F719C8E228A5239E0565D")
|| (csum ~== "4444C95C2029DA6EECAC92DAA31CE665")
|| (csum ~== "4799E1FDB5A3C0E3AD650B5AC215A737")
|| (csum ~== "5405DD7C3CDB6AE032529083DA6B6615")
|| (csum ~== "6357A782528F44EAF8758E51DC516B77")
|| (csum ~== "008227FE7A5E78F0F04C6C7009CF17AC")
|| (csum ~== "50876E46C80CC47F1EFC9CE52F4836A0")
|| (csum ~== "66342E4468E151FB418F30989A1C78F5")
|| (csum ~== "78979A583B1E30D94C9DAE2BCFA9A18D")
|| (csum ~== "112599C94EB03328D217233D4CB65A70")
|| (csum ~== "7729174BAA658C8FD86CF8290422F512")
|| (csum ~== "33752742BCA8E539A6EE3E5D0FDA8744")
// Deathkings
|| (csum ~== "0C7B62B11C7970DAAF66F9084C8E408E")
|| (csum ~== "A5F820CB016DE3D9A402C0173E7F9998")
|| (csum ~== "B0ADDB295A3ACCE43978AAC91FB8C58A")
|| (csum ~== "B295A2FBB187A1DC8AEFDE825DFB084A")
|| (csum ~== "B77D810C972976C54A694C62361FFF9D")
|| (csum ~== "C35E3C2727CCD7EF7793230AEF6255E7")
|| (csum ~== "C35F7CB2E9F93BB331FFCEB6622ABD64")
|| (csum ~== "CA7825F84BC08E76C6C85A41AEFE4370")
|| (csum ~== "CB0334184147FF565F6EF437F316B3EB")
|| (csum ~== "E2B5D1400279335811C1C1C0B437D9C8")
|| (csum ~== "E3EFB0156A20ADF2DF00915A0EA85DF5")
|| (csum ~== "2FAD54B58487884F06EAFA507B553921")
|| (csum ~== "3BB1724A4B66E85E2431110E4D7C4B76")
|| (csum ~== "6C886A3E37410C6FC83ED87BB6E9864F")
|| (csum ~== "6FAFFEAAE301FD341169A3CC63CBE183")
|| (csum ~== "7C28FD1ED662667FC54CDA123CF0614A")
|| (csum ~== "7DC65D5029DD834481CD716B3D71388A")
|| (csum ~== "11A83AAE9F747E1BA649F52D6C2DDB3A")
|| (csum ~== "15FC0991D975325556EFF71F241A4458")
|| (csum ~== "56D7CFFF0440328ADB20521ED70C739A")
|| (csum ~== "90B4951F996BA30096F2D4238EEC39CA")
|| (csum ~== "2945EDC2A9D7222AE54F0C68E1EA79FC")
|| (csum ~== "4482A52290F42C50D6F80A0D4751A0E4")
|| (csum ~== "4945FC07392AF9D2F1FABDD471C691A5")
|| (csum ~== "7721B620EA970DF48FF4A18489822F6C")
|| (csum ~== "0487193FFC57884EDB053F3E9148C534") )
return true;
let lmp = Wads.FindLump(fname);
if ( lmp == -1 ) return false;
String dat = Wads.ReadLump(lmp);
Array<String> list;
list.Clear();
dat.Split(list,"\n");
for ( int i=0; i<list.Size(); i++ )
{
if ( (list[i].Length() == 0) || (list[i].Left(1) == "#") || (list[i].Left(1) == "") )
continue;
if ( csum ~== list[i] )
return true;
}
return false;
}