- added A_Explode compatibility options.

There are two options here - one only disables the vertical thrust and the other goes back fully to the original non-z-aware code.
Both options are settable through MAPINFO.
For the compatibility presets, the normal ones only disable the vertical thrust, the strict ones force use of the old code entirely.
This commit is contained in:
Christoph Oelckers 2019-03-24 09:38:26 +01:00
parent d9ac337d7a
commit dc67355e95
9 changed files with 60 additions and 22 deletions

View file

@ -563,22 +563,23 @@ CUSTOM_CVAR(Int, compatmode, 0, CVAR_ARCHIVE|CVAR_NOINITCALL)
break; break;
case 1: // Doom2.exe compatible with a few relaxed settings case 1: // Doom2.exe compatible with a few relaxed settings
v = COMPATF_SHORTTEX|COMPATF_STAIRINDEX|COMPATF_USEBLOCKING|COMPATF_NODOORLIGHT|COMPATF_SPRITESORT| v = COMPATF_SHORTTEX | COMPATF_STAIRINDEX | COMPATF_USEBLOCKING | COMPATF_NODOORLIGHT | COMPATF_SPRITESORT |
COMPATF_TRACE|COMPATF_MISSILECLIP|COMPATF_SOUNDTARGET|COMPATF_DEHHEALTH|COMPATF_CROSSDROPOFF| COMPATF_TRACE | COMPATF_MISSILECLIP | COMPATF_SOUNDTARGET | COMPATF_DEHHEALTH | COMPATF_CROSSDROPOFF |
COMPATF_LIGHT|COMPATF_MASKEDMIDTEX; COMPATF_LIGHT | COMPATF_MASKEDMIDTEX;
w= COMPATF2_FLOORMOVE; w = COMPATF2_FLOORMOVE | COMPATF2_EXPLODE1;
break; break;
case 2: // same as 1 but stricter (NO_PASSMOBJ and INVISIBILITY are also set) case 2: // same as 1 but stricter (NO_PASSMOBJ and INVISIBILITY are also set)
v = COMPATF_SHORTTEX|COMPATF_STAIRINDEX|COMPATF_USEBLOCKING|COMPATF_NODOORLIGHT|COMPATF_SPRITESORT| v = COMPATF_SHORTTEX | COMPATF_STAIRINDEX | COMPATF_USEBLOCKING | COMPATF_NODOORLIGHT | COMPATF_SPRITESORT |
COMPATF_TRACE|COMPATF_MISSILECLIP|COMPATF_SOUNDTARGET|COMPATF_NO_PASSMOBJ|COMPATF_LIMITPAIN| COMPATF_TRACE | COMPATF_MISSILECLIP | COMPATF_SOUNDTARGET | COMPATF_NO_PASSMOBJ | COMPATF_LIMITPAIN |
COMPATF_DEHHEALTH|COMPATF_INVISIBILITY|COMPATF_CROSSDROPOFF|COMPATF_CORPSEGIBS|COMPATF_HITSCAN| COMPATF_DEHHEALTH | COMPATF_INVISIBILITY | COMPATF_CROSSDROPOFF | COMPATF_CORPSEGIBS | COMPATF_HITSCAN |
COMPATF_WALLRUN|COMPATF_NOTOSSDROPS|COMPATF_LIGHT|COMPATF_MASKEDMIDTEX; COMPATF_WALLRUN | COMPATF_NOTOSSDROPS | COMPATF_LIGHT | COMPATF_MASKEDMIDTEX;
w = COMPATF2_BADANGLES|COMPATF2_FLOORMOVE|COMPATF2_POINTONLINE; w = COMPATF2_BADANGLES | COMPATF2_FLOORMOVE | COMPATF2_POINTONLINE | COMPATF2_EXPLODE2;
break; break;
case 3: // Boom compat mode case 3: // Boom compat mode
v = COMPATF_TRACE|COMPATF_SOUNDTARGET|COMPATF_BOOMSCROLL|COMPATF_MISSILECLIP|COMPATF_MASKEDMIDTEX; v = COMPATF_TRACE|COMPATF_SOUNDTARGET|COMPATF_BOOMSCROLL|COMPATF_MISSILECLIP|COMPATF_MASKEDMIDTEX;
w = COMPATF2_EXPLODE1;
break; break;
case 4: // Old ZDoom compat mode case 4: // Old ZDoom compat mode
@ -587,14 +588,15 @@ CUSTOM_CVAR(Int, compatmode, 0, CVAR_ARCHIVE|CVAR_NOINITCALL)
break; break;
case 5: // MBF compat mode case 5: // MBF compat mode
v = COMPATF_TRACE|COMPATF_SOUNDTARGET|COMPATF_BOOMSCROLL|COMPATF_MISSILECLIP|COMPATF_MUSHROOM| v = COMPATF_TRACE | COMPATF_SOUNDTARGET | COMPATF_BOOMSCROLL | COMPATF_MISSILECLIP | COMPATF_MUSHROOM |
COMPATF_MBFMONSTERMOVE|COMPATF_NOBLOCKFRIENDS|COMPATF_MASKEDMIDTEX; COMPATF_MBFMONSTERMOVE | COMPATF_NOBLOCKFRIENDS | COMPATF_MASKEDMIDTEX;
w = COMPATF2_EXPLODE1;
break; break;
case 6: // Boom with some added settings to reenable some 'broken' behavior case 6: // Boom with some added settings to reenable some 'broken' behavior
v = COMPATF_TRACE|COMPATF_SOUNDTARGET|COMPATF_BOOMSCROLL|COMPATF_MISSILECLIP|COMPATF_NO_PASSMOBJ| v = COMPATF_TRACE | COMPATF_SOUNDTARGET | COMPATF_BOOMSCROLL | COMPATF_MISSILECLIP | COMPATF_NO_PASSMOBJ |
COMPATF_INVISIBILITY|COMPATF_CORPSEGIBS|COMPATF_HITSCAN|COMPATF_WALLRUN|COMPATF_NOTOSSDROPS|COMPATF_MASKEDMIDTEX; COMPATF_INVISIBILITY | COMPATF_CORPSEGIBS | COMPATF_HITSCAN | COMPATF_WALLRUN | COMPATF_NOTOSSDROPS | COMPATF_MASKEDMIDTEX;
w = COMPATF2_POINTONLINE; w = COMPATF2_POINTONLINE | COMPATF2_EXPLODE2;
break; break;
} }
@ -642,6 +644,8 @@ CVAR (Flag, compat_multiexit, compatflags2, COMPATF2_MULTIEXIT);
CVAR (Flag, compat_teleport, compatflags2, COMPATF2_TELEPORT); CVAR (Flag, compat_teleport, compatflags2, COMPATF2_TELEPORT);
CVAR (Flag, compat_pushwindow, compatflags2, COMPATF2_PUSHWINDOW); CVAR (Flag, compat_pushwindow, compatflags2, COMPATF2_PUSHWINDOW);
CVAR (Flag, compat_checkswitchrange, compatflags2, COMPATF2_CHECKSWITCHRANGE); CVAR (Flag, compat_checkswitchrange, compatflags2, COMPATF2_CHECKSWITCHRANGE);
CVAR (Flag, compat_explode1, compatflags2, COMPATF2_EXPLODE1);
CVAR (Flag, compat_explode2, compatflags2, COMPATF2_EXPLODE2);
CVAR(Bool, vid_activeinbackground, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG) CVAR(Bool, vid_activeinbackground, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)

View file

@ -329,6 +329,8 @@ enum : unsigned int
COMPATF2_TELEPORT = 1 << 5, // Don't let indirect teleports trigger sector actions COMPATF2_TELEPORT = 1 << 5, // Don't let indirect teleports trigger sector actions
COMPATF2_PUSHWINDOW = 1 << 6, // Disable the window check in CheckForPushSpecial() COMPATF2_PUSHWINDOW = 1 << 6, // Disable the window check in CheckForPushSpecial()
COMPATF2_CHECKSWITCHRANGE = 1 << 7, // Enable buggy CheckSwitchRange behavior COMPATF2_CHECKSWITCHRANGE = 1 << 7, // Enable buggy CheckSwitchRange behavior
COMPATF2_EXPLODE1 = 1 << 8, // No vertical explosion thrust
COMPATF2_EXPLODE2 = 1 << 9 // Use original explosion code throughout.
}; };
// Emulate old bugs for select maps. These are not exposed by a cvar // Emulate old bugs for select maps. These are not exposed by a cvar

View file

@ -1642,6 +1642,8 @@ MapFlagHandlers[] =
{ "compat_teleport", MITYPE_COMPATFLAG, 0, COMPATF2_TELEPORT }, { "compat_teleport", MITYPE_COMPATFLAG, 0, COMPATF2_TELEPORT },
{ "compat_pushwindow", MITYPE_COMPATFLAG, 0, COMPATF2_PUSHWINDOW }, { "compat_pushwindow", MITYPE_COMPATFLAG, 0, COMPATF2_PUSHWINDOW },
{ "compat_checkswitchrange", MITYPE_COMPATFLAG, 0, COMPATF2_CHECKSWITCHRANGE }, { "compat_checkswitchrange", MITYPE_COMPATFLAG, 0, COMPATF2_CHECKSWITCHRANGE },
{ "compat_explode1", MITYPE_COMPATFLAG, 0, COMPATF2_EXPLODE1 },
{ "compat_explode2", MITYPE_COMPATFLAG, 0, COMPATF2_EXPLODE2 },
{ "cd_start_track", MITYPE_EATNEXT, 0, 0 }, { "cd_start_track", MITYPE_EATNEXT, 0, 0 },
{ "cd_end1_track", MITYPE_EATNEXT, 0, 0 }, { "cd_end1_track", MITYPE_EATNEXT, 0, 0 },
{ "cd_end2_track", MITYPE_EATNEXT, 0, 0 }, { "cd_end2_track", MITYPE_EATNEXT, 0, 0 },

View file

@ -165,6 +165,8 @@ static FCompatOption Options[] =
{ "teleport", COMPATF2_TELEPORT, SLOT_COMPAT2 }, { "teleport", COMPATF2_TELEPORT, SLOT_COMPAT2 },
{ "disablepushwindowcheck", COMPATF2_PUSHWINDOW, SLOT_COMPAT2 }, { "disablepushwindowcheck", COMPATF2_PUSHWINDOW, SLOT_COMPAT2 },
{ "checkswitchrange", COMPATF2_CHECKSWITCHRANGE, SLOT_COMPAT2 }, { "checkswitchrange", COMPATF2_CHECKSWITCHRANGE, SLOT_COMPAT2 },
{ "explode1", COMPATF2_EXPLODE1, SLOT_COMPAT2 },
{ "explode2", COMPATF2_EXPLODE2, SLOT_COMPAT2 },
{ NULL, 0, 0 } { NULL, 0, 0 }
}; };

View file

@ -5889,7 +5889,8 @@ int P_RadiusAttack(AActor *bombspot, AActor *bombsource, int bombdamage, int bom
// them far too "active." BossBrains also use the old code // them far too "active." BossBrains also use the old code
// because some user levels require they have a height of 16, // because some user levels require they have a height of 16,
// which can make them near impossible to hit with the new code. // which can make them near impossible to hit with the new code.
if (((flags & RADF_NODAMAGE) || !((bombspot->flags5 | thing->flags5) & MF5_OLDRADIUSDMG)) && !(flags & RADF_OLDRADIUSDAMAGE)) if ((flags & RADF_NODAMAGE) || (!((bombspot->flags5 | thing->flags5) & MF5_OLDRADIUSDMG) &&
!(flags & RADF_OLDRADIUSDAMAGE) && !(thing->Level->i_compatflags2 & COMPATF2_EXPLODE2)))
{ {
double points = GetRadiusDamage(false, bombspot, thing, bombdamage, bombdistance, fulldamagedistance, bombsource == thing); double points = GetRadiusDamage(false, bombspot, thing, bombdamage, bombdistance, fulldamagedistance, bombsource == thing);
double check = int(points) * bombdamage; double check = int(points) * bombdamage;
@ -5939,6 +5940,8 @@ int P_RadiusAttack(AActor *bombspot, AActor *bombsource, int bombdamage, int bom
} }
thing->Thrust(bombspot->AngleTo(thing), thrust); thing->Thrust(bombspot->AngleTo(thing), thrust);
if (!(flags & RADF_NODAMAGE) || (flags & RADF_THRUSTZ)) if (!(flags & RADF_NODAMAGE) || (flags & RADF_THRUSTZ))
{
if (!(thing->Level->i_compatflags2 & COMPATF2_EXPLODE1) || (flags & RADF_THRUSTZ))
thing->Vel.Z += vz; // this really doesn't work well thing->Vel.Z += vz; // this really doesn't work well
} }
} }
@ -5946,6 +5949,7 @@ int P_RadiusAttack(AActor *bombspot, AActor *bombsource, int bombdamage, int bom
} }
} }
} }
}
else else
{ {
// [RH] Old code just for barrels // [RH] Old code just for barrels

View file

@ -1543,7 +1543,9 @@ appuyez sur une touche.",,"Non puoi caricare una partita durante una net quest!
Premi un tasto.","impossivel carregar, porque Premi un tasto.","impossivel carregar, porque
esta em partida online! esta em partida online!
aperte uma tecla.",, aperte uma tecla.","Невозможно загрузить сохранение в сетевой игре!
Нажмите любую клавишу.",
"Quicksave over your quest named "Quicksave over your quest named
'%s'? '%s'?
@ -1560,7 +1562,11 @@ Appuyez sur Y ou N.",,"Sovrascrivere il salvataggio
'%s'? '%s'?
Premi Y oppure N.",,, Premi Y oppure N.",,"Перезаписать быстрое сохранение
«%s»?
Нажмите Y или N.",
"You can't quickload during a netquest! "You can't quickload during a netquest!
Press a key.",QLOADNET,chex,,,"Du kannst während eines Netzwerkspiels nicht schnellladen. Press a key.",QLOADNET,chex,,,"Du kannst während eines Netzwerkspiels nicht schnellladen.
@ -1572,7 +1578,9 @@ vous êtes en ligne!
appuyez sur une touche.",,"Non puoi fare un quickload durante una netquest! appuyez sur une touche.",,"Non puoi fare un quickload durante una netquest!
Premi un tasto.",,, Premi un tasto.",,"Невозможно загрузить быстрое сохранение в сетевой игре!
Нажмите любую клавишу.",
"Do you want to quickload the quest named "Do you want to quickload the quest named
'%s'? '%s'?
@ -1589,7 +1597,11 @@ Appuyez sur Y ou N.",,"Vuoi fare un quickload della quest
'%s'? '%s'?
Premi Y oppure N.",,, Premi Y oppure N.",,"""Желите брзо учитавање за игру под именом
„%s“?
Притисните Y или N.""",
"You can't start a new quest "You can't start a new quest
while in a network quest. while in a network quest.
@ -1606,7 +1618,10 @@ durante una network quest.
Premi un tasto.","impossivel iniciar um novo jogo Premi un tasto.","impossivel iniciar um novo jogo
enquanto se esta online. enquanto se esta online.
aperte uma tecla.",, aperte uma tecla.","You can't start a new game
while in a network game.
Press a key.",
"Careful, this will be tough. "Careful, this will be tough.
Do you wish to continue? Do you wish to continue?
@ -2752,3 +2767,5 @@ Warning: The Vulkan renderer is highly experimental!,VK_WARNING,,,,Achtung: Der
These options will require a restart to take effect.,VK_RESTART,,,,Diese Option erfordert einen Neustart!,Estas opciones requieren reiniciar para tener efecto.,,Ces options nécessitent un redémarrage.,,Queste opzioni richiedono il riavvio per avere effetto.,,, These options will require a restart to take effect.,VK_RESTART,,,,Diese Option erfordert einen Neustart!,Estas opciones requieren reiniciar para tener efecto.,,Ces options nécessitent un redémarrage.,,Queste opzioni richiedono il riavvio per avere effetto.,,,
Select Vulkan Device,VKMNU_DEVICESELECT,,This is not yet implemented - but it is planned,,Vulkan Gerät auswählen,Seleccionar Dispositivo Vulkan,,Sélectionner périphérique Vulkan,,Seleziona il Dispositivo Vulkan,,, Select Vulkan Device,VKMNU_DEVICESELECT,,This is not yet implemented - but it is planned,,Vulkan Gerät auswählen,Seleccionar Dispositivo Vulkan,,Sélectionner périphérique Vulkan,,Seleziona il Dispositivo Vulkan,,,
Press any key or click anywhere in the window to quit.,TXT_QUITENDOOM,,,,Drücke eine Taste oder klicke mit der Maus ins Fenster zum Beenden.,Presiona una tecla o haz click en cualquier lugar de la ventana para salir.,Presiona una tecla o da click en cualquier lugar de la ventana para salir.,Appuyez sur une touche ou cliquez pour quitter.,,,,, Press any key or click anywhere in the window to quit.,TXT_QUITENDOOM,,,,Drücke eine Taste oder klicke mit der Maus ins Fenster zum Beenden.,Presiona una tecla o haz click en cualquier lugar de la ventana para salir.,Presiona una tecla o da click en cualquier lugar de la ventana para salir.,Appuyez sur une touche ou cliquez pour quitter.,,,,,
No vertical thrust from explosions,CMPTMNU_EXPLODE1,,,,Keine vertikale Bewegung durch Explosionen,,,,,,,,
Use original Doom explosion behavior,CMPTMNU_EXPLODE2,,,Use original Doom explosion behaviour,Benutze Original Doom Explosionsverhalten,,,,,,,,
1 default Identifier Filter Remarks eng enc ena enz eni ens enj enb enl ent enw de es esa esb esc esd ese esf esg esh esi esl esm esn eso esr ess esu esv esy esz fr hu it pt ru sr
1543 Advanced options SNDMNU_ADVANCED Erweiterte Optionen Opciones avanzadas Options avancées Opzioni avanzate Расширенные настройки Напредне опције
1544 Module replayer options SNDMNU_MODREPLAYER Modul-Spieler-Optionen Opc. reproductor de módulos Options lecteur de module Opzioni Module replayer Параметры воспроизведения модулей Опције модулног риплејера
1545 Midi player options SNDMNU_MIDIPLAYER MIDI-Spieler-Optionen Opc. de reproductor MIDI Option lecteur MIDI Opzioni Midi player Настройки MIDI-проигрывателя MIDI плејер опције
1546 OpenAL Options OPENALMNU_TITLE OpenAL Optionen Opciones de OpenAL Options OpenAL Opzioni OpenAL Настройки OpenAL OpenAL опције
1547 Playback device OPENALMNU_PLAYBACKDEVICE Wiedergabegerät Dispositivo de reproducción Sortie sonore Dispositivo di playback Устройство воспроизведения
1548 Enable EFX OPENALMNU_ENABLEEFX EFX aktiv Permitir EFX Activer EFX Abilita EFX Включить EFX Укључи EFX
1549 Playback device Resampler OPENALMNU_PLAYBACKDEVICE OPENALMNU_RESAMPLER Wiedergabegerät Dispositivo de reproducción Sortie sonore Dispositivo di playback Устройство воспроизведения Ресемплер Ресемплер
1550 Enable EFX Advanced Sound Options OPENALMNU_ENABLEEFX ADVSNDMNU_TITLE EFX aktiv Erweiterte Soundoptionen Permitir EFX Opciones avanzadas de sonido Activer EFX Options Sonores Avancées Abilita EFX Opzioni avanzate dei suoni Включить EFX Расширенные настройки Укључи EFX
1551 Resampler Sample rate OPENALMNU_RESAMPLER ADVSNDMNU_SAMPLERATE Samplerate Frecuencia de muestreo Cadence de Sampling Ресемплер Частота дискретизации Ресемплер Фреквенција узорковања
1562 MIDI voices GUS memory size ADVSNDMNU_MIDIVOICES ADVSNDMNU_GUSMEMSIZE MIDI Stimmen GUS Speichergröße Voces MIDI Tamaño de memoria de GUS Voix MIDI Taille mémoire GUS Voci MIDI Dimensione della memoria per GUS MIDI-голоса Размер памяти GUS MIDI гласови GUS величина памћења
1563 Read DMXGUS lumps FluidSynth ADVSNDMNU_DMXGUS ADVSNDMNU_FLUIDSYNTH Lese DMXGUS Leer archivos DMXGUS Lire fichiers DMXGUS Leggi i lump DMXGUS Читать файлы DMXGUS Читај DMXGUS лумпове FluidSynth
1564 GUS memory size Patch set ADVSNDMNU_GUSMEMSIZE ADVSNDMNU_FLUIDPATCHSET GUS Speichergröße Patch-Set Tamaño de memoria de GUS Set de parche Taille mémoire GUS Banque de Sons Dimensione della memoria per GUS Размер памяти GUS Патч-набор GUS величина памћења Печ сет
1565 FluidSynth Gain ADVSNDMNU_FLUIDSYNTH ADVSNDMNU_FLUIDGAIN Relative Lautstärke Ganancia Усиление FluidSynth Појачање
1566 Reverb ADVSNDMNU_REVERB Hall Reverberación Réverbération Реверберация Одјек
1567 Reverb Level ADVSNDMNU_REVERB_LEVEL Hallintensität Nivel de Reverberación Niveau Réverb. Уровень реверберации Ниво одјека
1568 Chorus ADVSNDMNU_CHORUS Хорус
1569 Timidity++ ADVSNDMNU_TIMIDITY
1570 Patch set ADLMidi ADVSNDMNU_FLUIDPATCHSET ADVSNDMNU_ADLMIDI Patch-Set Set de parche Banque de Sons Патч-набор Печ сет
1571 Gain OPNMidi ADVSNDMNU_FLUIDGAIN ADVSNDMNU_OPNMIDI Relative Lautstärke Ganancia Усиление Појачање
1572 Reverb Timidity config file ADVSNDMNU_REVERB ADVSNDMNU_TIMIDITYCONFIG Hall Timidity Konfigurationsdatei Reverberación Ruta al archivo config. Timidity Réverbération Fichier de config. TiMidity File Timidity config Реверберация Файл конфигурации Timidity Одјек Timidity конфигурациона датотека
1578 Timidity config file Freeverb ADVSNDMNU_TIMIDITYCONFIG ADVSNDMNU_FREEVERB Timidity Konfigurationsdatei Ruta al archivo config. Timidity Fichier de config. TiMidity File Timidity config Файл конфигурации Timidity Timidity конфигурациона датотека
1579 Relative volume Global Freeverb ADVSNDMNU_TIMIDITYVOLUME ADVSNDMNU_GLOBAL_FREEVERB Relative Lautstärke Globales Freeverb Volumen relativo Freeverb Global Volume Relatif Freeverb Global Volume relativo Freeverb globale Относительная громкость Глобальный Freeverb Релативна јачина
1580 WildMidi Advanced Resampling ADVSNDMNU_WILDMIDI ADVSNDMNU_ADVRESAMPLING Erweitertes Resampling Resampleo Avanzado Resampling Avancé Resampling avanzato Продвинутый ресемплинг
1581 WildMidi config file OPL Bank ADVSNDMNU_WILDMIDICONFIG ADVSNDMNU_OPLBANK WilfMidi Konfigurationsdatei Archivo de config. WildMidi Banco OPL Fichier config. WildMidi Banque OPL File WildMidi config Файл конфигурации WildMidi WildMidi конфигурациона датотека
1582 OPL Emulator Core ADVSNDMNU_ADLOPLCORES OPL Emulatorkern Núcleos de Emulador OPL Cœur Emulateur OPL
1583 Run emulator at PCM rate ADVSNDMNU_RUNPCMRATE Emulator benutzt PCM Samplerate Ejecutar emulador a velocidad PCM Emulateur utilise cadence PCM Esegui l'emulatore con rate PCM
1584 Select configuration Number of emulated OPL chips ADVSNDMNU_SELCONFIG ADVSNDMNU_ADLNUMCHIPS Konfiguration wählen Anzahl OPL Chips Seleccionar configuración Número de chips OPL emulados Sélectionner configuration Puces OPL émulées Seleziona la configurazione Numero di chip OPL emulati Выбор конфигурации
1585 Global Volume model ADVSNDMNU_GLOBAL ADVSNDMNU_VLMODEL Lautstärkemodell Global Modelo de Volumen Modèle de Volume Globale Modello di volume Общие
1586 Freeverb Number of emulated OPN chips ADVSNDMNU_FREEVERB ADVSNDMNU_OPNNUMCHIPS Anzahl OPN Chips Número de chip OPN emulados Puces OPN émulées Numero di chip OPN emulati
1597 Use custom WOPN bank Module Replayer Options ADVSNDMNU_OPNCUSTOMBANK MODMNU_TITLE Benutzerdefinierte WOPN Bank Modul-Spieler-Optionen Utilizar banco WOPN personalizado Opciones de reproductor de módulos Utiliser Banque WOPL perso Options Lecteur de Module Usa WOPN bank personalizzato Opzioni Module replayer Параметры воспроизведения модулей
1598 WOPN Bank file Master Volume ADVSNDMNU_OPNBANKFILE MODMNU_MASTERVOLUME WOPN Bank-Datei Grundlautstärke Archivo de banco WOPN Volumen maestro Banque WOPL Volume maître File WOPN Bank Volume master Общая громкость
1599 Auto (Use setup of bank) Quality ADLVLMODEL_AUTO MODMNU_QUALITY Auto (Benutze Einstelliung der Bank) Qualität Auto (Usar config. del banco) Calidad Auto (Utiliser paramètre banque) Qualité Automatico (Usa le impostazioni del bank) Qualità Качество
1600 Generic Volume ramping ADLVLMODEL_GENERIC MODMNU_VOLUMERAMPING Allgemein Lautstärkeverhalten Genérico Aumento gradual de Volumen Générique Rampe du volume Generico Ramping volume
1601 Chip-o-matic MODMNU_CHIPOMATIC
1602 Video Mode VIDMNU_TITLE Videomodus Modos de video Mode Vidéo Modalità video Настройки видеорежима
1603 Render Mode VIDMNU_RENDERMODE Rendermodus Modo de Renderizado Mode de Rendu Modalità motore grafico Режим рендеринга
1604 Fullscreen VIDMNU_FULLSCREEN Vollbild Pantalla completa Plein écran Schermata piena Полный экран
1605 OPL Native Retina/HiDPI support ADLVLMODEL_NATIVE VIDMNU_HIDPI OPL Nativ Retina/HDPI-Unterstützung Nativo OPL Soporte para Retina/HiDPI OPL Natif Support Retina/HiDPI Supporto Retina/HiDPi Поддержка Retina/HiDPI
1606 DMX Aspect ratio ADLVLMODEL_DMX VIDMNU_ASPECTRATIO Seitenverhältnis Relación de aspecto Rapport D'Aspect Proporzioni Соотношение сторон
1607 Apogee Force aspect ratio ADLVLMODEL_APOGEE VIDMNU_FORCEASPECT Erzwinge Seitenverhältnis Forzar relación de aspecto Forcer Rapport Forza le proporzioni Принудительное соот. сторон
1618 Aspect ratio Choose Resolution Preset VIDMNU_ASPECTRATIO VIDMNU_RESPRESET Seitenverhältnis Auflösungsvoreinstellung Relación de aspecto Seleccionar Preset de Resolución Rapport D'Aspect Choisir paramètre personalisé Proporzioni Scegli preset di risoluzione Соотношение сторон Выбор пресета разрешения
1619 Force aspect ratio Custom Resolution Presets VIDMNU_FORCEASPECT VIDMNU_RESPRESETTTL Erzwinge Seitenverhältnis Benutzerdefinierte Auflösungsvoreinstellungen Forzar relación de aspecto Seleccionar Preset de Resoluciones Forcer Rapport Résolutions Personalisée Forza le proporzioni Preset di risoluzione personalizzati Принудительное соот. сторон Пользовательские пресеты
1620 Forced ratio style Preset Resolution Modes VIDMNU_CROPASPECT VIDMNU_RESPRESETHEAD Modus für erzwungenes Seitenverhältnis Vordefinierte Auflösungsmodi Relación de aspecto forzada Modos de Preset de Resolución Style de Ratio forcé Choisir mode de Résolution Forza lo stile delle proporzioni Modalità preset di risoluzione Принудительный тип соот. Доступные разрешения
1621 Enable 5:4 aspect ratio 4:3 Aspect VIDMNU_5X4ASPECTRATIO VIDMNU_ASPECT43 Erlaube 5:4 Seitenverhältnis 4:3 Seitenverhältnis Activar relación de aspecto 5:4 Aspecto 4:3 Activer Rapport 5:4 Rapport 4:3 Abilita le proporzioni 5:4 Aspetto 4:3 Включить соотношение сторон 5:4
1622 5:4 Aspect VIDMNU_ASPECT54 5:4 Seitenverhältnis Aspecto 5:4 Rapport 5:4 Aspetto 5:4
1623 16:9 Aspect VIDMNU_ASPECT169 16:9 Seitenverhältnis Aspecto 16:9 Rapport 16:9 Aspetto 16:9
1624 16:10 Aspect VIDMNU_ASPECT1610 16.10 Seitenverhältnis Aspecto 16:10 Rapport 16:10 Aspetto 16:10
1625 Resolution scale Network Options VIDMNU_SCALEMODE NETMNU_TITLE Skalierung Netzwerkeinstellungen Escala de Resolución Opciones de Red Echelle de Résolution Options Réseau Scala di risoluzione Opzioni network Масштабирование Настройки сети
1626 Scale Factor Local options VIDMNU_SCALEFACTOR NETMNU_LOCALOPTIONS Skalierungsfaktor Lokale Einstellungen Factor de Escala Opciones locales Facteur d'échelle Options Locales Fattore di scala Opzioni locali Значение масштаба Локальные настройки
1627 Use Linear Scaling (Fullscreen) Movement prediction VIDMNU_USELINEAR NETMNU_MOVEPREDICTION Lineare Skalierung (Vollbild) Bewegungsvorausberechnung Usar Escalado Linear (Pant. Completa) Predicción de Movimiento Mise à l'échelle Linéaire (Plein écran) Prédiction de Mouvement Usa lo scaling lineare (a schermo pieno) Predizione movimenti Линейное масшт. (полный экран) Предсказание движения
2767
2768
2769
2770
2771

View file

@ -1659,6 +1659,8 @@ OptionMenu "CompatPhysicsMenu" protected
Option "$CMPTMNU_TRACE", "compat_TRACE", "YesNo" Option "$CMPTMNU_TRACE", "compat_TRACE", "YesNo"
Option "$CMPTMNU_HITSCAN", "compat_HITSCAN", "YesNo" Option "$CMPTMNU_HITSCAN", "compat_HITSCAN", "YesNo"
Option "$CMPTMNU_MISSILECLIP", "compat_MISSILECLIP", "YesNo" Option "$CMPTMNU_MISSILECLIP", "compat_MISSILECLIP", "YesNo"
Option "$CMPTMNU_EXPLODE1", "compat_explode1", "YesNo"
Option "$CMPTMNU_EXPLODE2", "compat_explode2", "YesNo"
Class "CompatibilityMenu" Class "CompatibilityMenu"
} }

View file

@ -596,6 +596,7 @@ extend class Actor
int pflags = 0; int pflags = 0;
if (flags & XF_HURTSOURCE) pflags |= RADF_HURTSOURCE; if (flags & XF_HURTSOURCE) pflags |= RADF_HURTSOURCE;
if (flags & XF_NOTMISSILE) pflags |= RADF_SOURCEISSPOT; if (flags & XF_NOTMISSILE) pflags |= RADF_SOURCEISSPOT;
if (flags & XF_THRUSTZ) pflags |= RADF_THRUSTZ;
int count = RadiusAttack (target, damage, distance, damagetype, pflags, fulldamagedistance); int count = RadiusAttack (target, damage, distance, damagetype, pflags, fulldamagedistance);
if (!(flags & XF_NOSPLASH)) CheckSplash(distance); if (!(flags & XF_NOSPLASH)) CheckSplash(distance);

View file

@ -258,6 +258,8 @@ enum EExplodeFlags
XF_NOTMISSILE = 4, XF_NOTMISSILE = 4,
XF_EXPLICITDAMAGETYPE = 8, XF_EXPLICITDAMAGETYPE = 8,
XF_NOSPLASH = 16, XF_NOSPLASH = 16,
XF_THRUSTZ = 32,
}; };
// Flags for A_RadiusThrust // Flags for A_RadiusThrust
@ -1338,4 +1340,6 @@ enum ECompatFlags
COMPATF2_TELEPORT = 1 << 5, // Don't let indirect teleports trigger sector actions COMPATF2_TELEPORT = 1 << 5, // Don't let indirect teleports trigger sector actions
COMPATF2_PUSHWINDOW = 1 << 6, // Disable the window check in CheckForPushSpecial() COMPATF2_PUSHWINDOW = 1 << 6, // Disable the window check in CheckForPushSpecial()
COMPATF2_CHECKSWITCHRANGE = 1 << 7, // Enable buggy CheckSwitchRange behavior COMPATF2_CHECKSWITCHRANGE = 1 << 7, // Enable buggy CheckSwitchRange behavior
COMPATF2_EXPLODE1 = 1 << 8, // No vertical explosion thrust
COMPATF2_EXPLODE2 = 1 << 9 // Use original explosion code throughout.
}; };