190 lines
7.2 KiB
Text
190 lines
7.2 KiB
Text
version "4.11"
|
|
|
|
// hack to work around the way Back to Saturn X overrides animated walls
|
|
Class BTSX_WallTexHack : LevelPostprocessor
|
|
{
|
|
protected void Apply( Name checksum, String mapname )
|
|
{
|
|
switch ( checksum )
|
|
{
|
|
case 'none':
|
|
break;
|
|
// BTSX E1
|
|
case '6B540CB40E3286392D751B864CA66887':
|
|
case '4C3BF6AF9820508EE31DF8D843F23E16':
|
|
case '71A7ACFFEB5E7C049B9BB74F2E3B5DE8':
|
|
case '029AE63B6347BF751C3DEDF66CAAD482':
|
|
case '7BA0F1B75B9F728694F1B095677996F9':
|
|
case '4F6F564DC1111B1404B2EB98592BB004':
|
|
case 'E7735454D31829FB4AB2105A555016AC':
|
|
case 'A84ADD1717510CB7938B90B63E69C079':
|
|
case '18016186740A47FBA7725665FFECE217':
|
|
case 'A3C0623D8298976A455D2352BD1D5046':
|
|
case 'C04798118FC1A201DC2432D3831A0242':
|
|
case 'CA00C348BCCE29B4B9A3D1FB607B93E4':
|
|
case 'ABA28CE49B50D37662C1F7D4384FF69B':
|
|
case 'FF9C6545037C5E5E27CE0DACD24CDD37':
|
|
case 'EE23F07016790919805B1687A48D4359':
|
|
case 'A2768BFB108BECFB2BC72F0FF451A3C5':
|
|
case '93E0BE2CEB98D3A7C894E9F7A4F529E9':
|
|
case '8EBC137AE52213631EB1AFDCC684F039':
|
|
case '9B228D89B29C58DB2EB1D4FA9A593B4E':
|
|
case '763501BA83F71F40F701AA5D0DF526B3':
|
|
case '4552A2DDB1DD3A1902D53CA0339FF511':
|
|
case '63F849809707A7EEEBF4F8D227B33E55':
|
|
case '6BCA4ED3445D671D152675A3998A3257':
|
|
case '10DCCA9E002BADF735AE1DA51A4DD0A0':
|
|
case '8EB23D513064DC25982C0EC67D6036ED':
|
|
case '41424B65373083AB23E9C935D29F5862':
|
|
case 'A7B0FCB6C5D140861438C6F29959E679':
|
|
// BTSX E2
|
|
case '067CF96073DB3CC4A8D887EE240F88DA':
|
|
case 'D6CF27C2581299B107079C3B9C58C506':
|
|
case '90D594DA59123CD8107123DB6A67780B':
|
|
case 'BEE9E633B592BC8737431F5F4162B5B2':
|
|
case '463C528B226C40E9F6BDF03B7D54774D':
|
|
case '8C018455E4096683364F7AE4C7300D13':
|
|
case '75856653D6A452FC0F36109F5C04945E':
|
|
case '0FE91CAC01D6398D8073EACE99BF5BA3':
|
|
case 'E25C9C4C4FB5F4CB92449650C13139EA':
|
|
case 'BC906AC35C21D7689FB6D4E83A6F1D8B':
|
|
case 'EB92F7955D2C5A70B92349AD4B2DA875':
|
|
case 'CFEE7DB73A1683657DC0C08E27341DB2':
|
|
case '094A256B57B8B53796F4ED399A55EAD3':
|
|
case '7CC602C4E205F2C5EB58616FD22A115A':
|
|
case '283F88B26D533288DA57E7C85FFABD2A':
|
|
case '092ADA8B2891C77AED69860C03E89F95':
|
|
case '760B1DA6C6340DE1C00063365419722A':
|
|
case '1AE9A6410A6768CD36A7E187DCC616F6':
|
|
case 'CF48593F9A638B0B610DB66A8DB79C66':
|
|
case '6E1F2B0DA00A33C8DF98F53090E52B7F':
|
|
case '246D1F31BC0AF3ECD630765429604BD1':
|
|
case '1D544F22B220EA0095C84F6642135100':
|
|
case 'D5F7C36C5A817EC4EED5452266B77681':
|
|
case '941CD50E1FE1D598095F12561ADF783F':
|
|
case '444C09AA8DA2DA763D39CBD9BDCA12ED':
|
|
case '0F8415A7FABD85145782C3337DEE4F14':
|
|
case '55F38C4344E02EC12200ED897F4522B1':
|
|
case 'BFC69170CCE3550A0A53C4A556E7FD69':
|
|
case '4D8523E2481F5D8C4E0A738BEC65DFD6':
|
|
case '7B4DD64E2C237C8C7ED6E2F481B5E45F':
|
|
// replace the following textures directly
|
|
// it'll be fine since there are no ACS scripts to
|
|
// worry about or whatever else
|
|
level.ReplaceTextures("FWATER1","swwm_wtr",0);
|
|
for ( int i=2; i<32; i++ )
|
|
level.ReplaceTextures(String.Format("FWATER%02d",i),"swwm_wtr",0);
|
|
level.ReplaceTextures("FWATER4","swwm_wtr",0);
|
|
level.ReplaceTextures("LAVA1","swwm_lav",0);
|
|
for ( int i=2; i<32; i++ )
|
|
level.ReplaceTextures(String.Format("LAVA%02d",i),"swwm_lav",0);
|
|
level.ReplaceTextures("LAVA4","swwm_lav",0);
|
|
level.ReplaceTextures("NUKAGE1","swwm_nuk",0);
|
|
for ( int i=2; i<32; i++ )
|
|
level.ReplaceTextures(String.Format("NUKE%02d",i),"swwm_nuk",0);
|
|
level.ReplaceTextures("NUKAGE3","swwm_nuk",0);
|
|
level.ReplaceTextures("SLIME01","swwm_mug",0);
|
|
for ( int i=2; i<32; i++ )
|
|
level.ReplaceTextures(String.Format("SLUDG%02d",i),"swwm_mug",0);
|
|
level.ReplaceTextures("SLIME04","swwm_mug",0);
|
|
level.ReplaceTextures("SWATER1","swwm_wtp",0);
|
|
for ( int i=2; i<32; i++ )
|
|
level.ReplaceTextures(String.Format("COOLNT%02d",i),"swwm_wtp",0);
|
|
level.ReplaceTextures("SWATER4","swwm_wtp",0);
|
|
level.ReplaceTextures("BLOOD1","swwm_bld",0);
|
|
for ( int i=2; i<32; i++ )
|
|
level.ReplaceTextures(String.Format("BLOOD%02d",i),"swwm_bld",0);
|
|
level.ReplaceTextures("BLOOD3","swwm_bld",0);
|
|
level.ReplaceTextures("WFALL1","swwm_wfl",0);
|
|
for ( int i=0x61; i<=0x66; i++ )
|
|
level.ReplaceTextures(String.Format("WFALL%c",i),"swwm_wfl",0);
|
|
level.ReplaceTextures("WFALL4","swwm_wfl",0);
|
|
level.ReplaceTextures("DBRAIN1","swwm_lfl",0);
|
|
for ( int i=2; i<8; i++ )
|
|
level.ReplaceTextures(String.Format("LFALL%d",i),"swwm_lfl",0);
|
|
level.ReplaceTextures("DBRAIN4","swwm_lfl",0);
|
|
level.ReplaceTextures("FIREBLU1","swwm_wfp",0);
|
|
for ( int i=2; i<8; i++ )
|
|
level.ReplaceTextures(String.Format("CFALL%d",i),"swwm_wfp",0);
|
|
level.ReplaceTextures("FIREBLU2","swwm_wfp",0);
|
|
level.ReplaceTextures("SFALL1","swwm_sfl",0);
|
|
for ( int i=2; i<8; i++ )
|
|
level.ReplaceTextures(String.Format("SLFALL%d",i),"swwm_sfl",0);
|
|
level.ReplaceTextures("SFALL4","swwm_sfl",0);
|
|
level.ReplaceTextures("FIREMAG1","swwm_mfg",0);
|
|
for ( int i=2; i<8; i++ )
|
|
level.ReplaceTextures(String.Format("S2FALL%d",i),"swwm_mfg",0);
|
|
level.ReplaceTextures("FIREMAG3","swwm_mfg",0);
|
|
level.ReplaceTextures("BFALL1","swwm_bfl",0);
|
|
for ( int i=2; i<8; i++ )
|
|
level.ReplaceTextures(String.Format("BLFALL%d",i),"swwm_bfl",0);
|
|
level.ReplaceTextures("BFALL4","swwm_bfl",0);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
// for Sunder maps, where waterfalls are supposed to be lava falls
|
|
// and also there's sometimes upside-down blood falls (in MAP32)
|
|
Class Sunder_FallFix : LevelPostprocessor
|
|
{
|
|
protected void Apply( Name checksum, String mapname )
|
|
{
|
|
switch ( checksum )
|
|
{
|
|
case 'none':
|
|
break;
|
|
// Sunder 2407.wad
|
|
case '3C8309EAD9332E47E3241ABCD11467FD':
|
|
case 'F75A9E66B7864BAEE0B2AC70EE839E79':
|
|
case 'D0A4705C7AFE27D69CBC6D3BB02798EF':
|
|
case '6D4B57175EB6AA9F62168FA7224ADEB4':
|
|
case '0ABB014B183D3472468268191C355901':
|
|
case 'BA66CD32E2E4C0CD770433ADED369B3F':
|
|
case '67F8B594B296EE53CED47B63161C7B87':
|
|
case '000889277FE94798E746D6BE7ED7D0F0':
|
|
case 'CE81F22E2981F4DE4E24613A8886366A':
|
|
case 'B9693AF68690F7707F7EA92F6ECABF44':
|
|
case 'F7AE15DE0B7FF163FDCC61B9B3B4BB64':
|
|
case 'D1D2EF95D5B3179CE62BEA77CA9C9115':
|
|
case '4AFFC399DA351A621BB0CD0D57B10566':
|
|
case '55605E7D28F4A0BA9A87126344C4A753':
|
|
case '965D15632E04A1CDCF53030169C446F2':
|
|
case 'B4F691EEFD4F9DE13915C0073ADD7186':
|
|
case '77DE692763B84F140B550CCD01722171':
|
|
case 'E57C25EB2DC3F6F2C6E830509B2E44D3':
|
|
case '1BE9FF4810AA25FCDDB68B76C2F439A8':
|
|
case '791FBDF257679B9A70E10DB2EBE5B425':
|
|
case 'C2DF3F5CFEFECD6319EFD7F2964D62AB':
|
|
case 'B498E843E1B6E2EFD5475EF186A8DA23':
|
|
TextureID bfallu[4];
|
|
for ( int i=0; i<4; i++ )
|
|
bfallu[i] = TexMan.CheckForTexture(String.Format("BFALL%dU",i+1));
|
|
// just flip all of these vertically, it just works™
|
|
for ( int i=0; i<level.Lines.Size(); i++ )
|
|
{
|
|
let l = level.Lines[i];
|
|
for ( int j=0; j<3; j++ ) for ( int k=0; k<4; k++ )
|
|
{
|
|
if ( l.sidedef[0].GetTexture(j) != bfallu[k] )
|
|
continue;
|
|
l.sidedef[0].MultiplyTextureYScale(j,-1.);
|
|
}
|
|
if ( !l.sidedef[1] ) continue;
|
|
for ( int j=0; j<3; j++ ) for ( int k=0; k<4; k++ )
|
|
{
|
|
if ( l.sidedef[1].GetTexture(j) != bfallu[k] )
|
|
continue;
|
|
l.sidedef[1].MultiplyTextureYScale(j,-1.);
|
|
}
|
|
}
|
|
// and now, replace the textures
|
|
for ( int i=1; i<=4; i++ )
|
|
{
|
|
level.ReplaceTextures(String.Format("WFALL%d",i),"swwm_lfl",0);
|
|
level.ReplaceTextures(String.Format("BFALL%dU",i),"swwm_bfl",0);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|