diff --git a/source/sw/src/game.cpp b/source/sw/src/game.cpp index 3cb9c0a8d..a07b02303 100644 --- a/source/sw/src/game.cpp +++ b/source/sw/src/game.cpp @@ -370,6 +370,11 @@ void InitLevel(MapRecord *maprec) // clear accidental one-sided flag off yet another key card. if (sprite[333].picnum == 1774 && sprite[333].cstat == 81) sprite[333].cstat &= ~64; } + if (!maprec->labelName.CompareNoCase("$outpost") && !maprec->name.CompareNoCase("$TXTS_MAP09")) + { + // clear accidental one-sided flag off yet another key card. + if (sprite[442].picnum == ST1 && sprite[442].hitag == 1002 && sprite[442].lotag == 31) sprite[442].lotag = -1; + } SECRET_SetMapName(currentLevel->DisplayName(), currentLevel->name); STAT_NewLevel(currentLevel->fileName); Player[0].angle.ang = buildang(ang); diff --git a/source/sw/src/sounds.cpp b/source/sw/src/sounds.cpp index 85afbfdc3..6fdbcc90b 100644 --- a/source/sw/src/sounds.cpp +++ b/source/sw/src/sounds.cpp @@ -249,8 +249,11 @@ void InitAmbient(int num, SPRITEp sp) // Ambient sounds need special treatment if (num < 0 || num > MAX_AMBIENT_SOUNDS) { - sprintf(ds, "Invalid or out of range ambient sound number %d\n", num); - PutStringInfo(Player + screenpeek, ds); + if (num != -1) // skip message for -1 to allow using it for silencing buggy ambient sound sprites (there is one in SW level 9.) + { + sprintf(ds, "Invalid or out of range ambient sound number %d\n", num); + PutStringInfo(Player + screenpeek, ds); + } return; } auto vnum = ambarray[num].diginame;