diff --git a/language.version b/language.version index ec9b4f4c2..f1c8e7f42 100644 --- a/language.version +++ b/language.version @@ -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-"; diff --git a/vanilladoom.lst b/vanilladoom.lst new file mode 100644 index 000000000..62e9f7419 --- /dev/null +++ b/vanilladoom.lst @@ -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 diff --git a/vanillaheretic.lst b/vanillaheretic.lst new file mode 100644 index 000000000..e38f723f8 --- /dev/null +++ b/vanillaheretic.lst @@ -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 diff --git a/vanillahexen.lst b/vanillahexen.lst new file mode 100644 index 000000000..56697c571 --- /dev/null +++ b/vanillahexen.lst @@ -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 diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index 90abc6af5..60796fcff 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -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); diff --git a/zscript/utility/swwm_utility.zsc b/zscript/utility/swwm_utility.zsc index 0cd09542b..2e27e882a 100644 --- a/zscript/utility/swwm_utility.zsc +++ b/zscript/utility/swwm_utility.zsc @@ -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 list; + list.Clear(); + dat.Split(list,"\n"); + for ( int i=0; i