From eac73d9eba02f6e314a0ae5753f7a5a9137ab255 Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Thu, 16 Mar 2023 23:49:33 +0100 Subject: [PATCH] Re-enable corona support --- src/playsim/a_corona.cpp | 2 -- src/playsim/a_corona.h | 2 -- src/playsim/actor.h | 2 +- src/rendering/hwrenderer/scene/hw_drawinfo.cpp | 8 ++------ src/rendering/hwrenderer/scene/hw_drawinfo.h | 2 +- src/rendering/hwrenderer/scene/hw_sprites.cpp | 2 -- wadsrc/static/language.0 | 1 + wadsrc/static/language.csv | 1 + wadsrc/static/menudef.txt | 2 +- wadsrc/static/zscript/actors/shared/corona.zs | 4 ++-- 10 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/playsim/a_corona.cpp b/src/playsim/a_corona.cpp index edeba7566..0e0cb4a98 100644 --- a/src/playsim/a_corona.cpp +++ b/src/playsim/a_corona.cpp @@ -24,11 +24,9 @@ #include "a_corona.h" #include "a_dynlight.h" -#if 0 IMPLEMENT_CLASS(ACorona, false, false) void ACorona::Tick() { Super::Tick(); } -#endif \ No newline at end of file diff --git a/src/playsim/a_corona.h b/src/playsim/a_corona.h index c1863f8a2..2c66f0a20 100644 --- a/src/playsim/a_corona.h +++ b/src/playsim/a_corona.h @@ -27,7 +27,6 @@ EXTERN_CVAR(Bool, gl_coronas) class AActor; -#if 0 class ACorona : public AActor { DECLARE_CLASS(ACorona, AActor) @@ -37,4 +36,3 @@ public: float CoronaFade = 0.0f; }; -#endif \ No newline at end of file diff --git a/src/playsim/actor.h b/src/playsim/actor.h index 5db2754df..06f2c8196 100644 --- a/src/playsim/actor.h +++ b/src/playsim/actor.h @@ -726,7 +726,7 @@ public: const double MinVel = EQUAL_EPSILON; // Map Object definition. -class AActor final : public DThinker +class AActor : public DThinker { DECLARE_CLASS_WITH_META (AActor, DThinker, PClassActor) HAS_OBJECT_POINTERS diff --git a/src/rendering/hwrenderer/scene/hw_drawinfo.cpp b/src/rendering/hwrenderer/scene/hw_drawinfo.cpp index 82db443b2..d629bc3a8 100644 --- a/src/rendering/hwrenderer/scene/hw_drawinfo.cpp +++ b/src/rendering/hwrenderer/scene/hw_drawinfo.cpp @@ -582,7 +582,6 @@ void HWDrawInfo::RenderPortal(HWPortal *p, FRenderState &state, bool usestencil) void HWDrawInfo::DrawCorona(FRenderState& state, ACorona* corona, double dist) { -#if 0 spriteframe_t* sprframe = &SpriteFrames[sprites[corona->sprite].spriteframes + (size_t)corona->SpawnState->GetFrame()]; FTextureID patch = sprframe->Texture[0]; if (!patch.isValid()) return; @@ -644,7 +643,6 @@ void HWDrawInfo::DrawCorona(FRenderState& state, ACorona* corona, double dist) vp[3].Set(x1, y1, 1.0f, u1, v1); state.Draw(DT_TriangleStrip, vertexindex, 4); -#endif } static ETraceStatus CheckForViewpointActor(FTraceResults& res, void* userdata) @@ -672,7 +670,6 @@ void HWDrawInfo::DrawCoronas(FRenderState& state) float timeElapsed = (screen->FrameTime - LastFrameTime) / 1000.0f; LastFrameTime = screen->FrameTime; -#if 0 for (ACorona* corona : Coronas) { auto cPos = corona->Vec3Offset(0., 0., corona->Height * 0.5); @@ -699,7 +696,6 @@ void HWDrawInfo::DrawCoronas(FRenderState& state) if (corona->CoronaFade > 0.0f) DrawCorona(state, corona, dist); } -#endif state.SetTextureMode(TM_NORMAL); screen->mViewpoints->Bind(state, vpIndex); @@ -719,10 +715,10 @@ void HWDrawInfo::EndDrawScene(sector_t * viewsector, FRenderState &state) { state.EnableFog(false); - /*if (gl_coronas && Coronas.Size() > 0) + if (gl_coronas && Coronas.Size() > 0) { DrawCoronas(state); - }*/ + } // [BB] HUD models need to be rendered here. const bool renderHUDModel = IsHUDModelForPlayerAvailable(players[consoleplayer].camera->player); diff --git a/src/rendering/hwrenderer/scene/hw_drawinfo.h b/src/rendering/hwrenderer/scene/hw_drawinfo.h index 68afcb246..c24f7c0ca 100644 --- a/src/rendering/hwrenderer/scene/hw_drawinfo.h +++ b/src/rendering/hwrenderer/scene/hw_drawinfo.h @@ -151,7 +151,7 @@ struct HWDrawInfo TArray Portals; TArray Decals[2]; // the second slot is for mirrors which get rendered in a separate pass. TArray hudsprites; // These may just be stored by value. - //TArray Coronas; + TArray Coronas; uint64_t LastFrameTime = 0; TArray MissingUpperTextures; diff --git a/src/rendering/hwrenderer/scene/hw_sprites.cpp b/src/rendering/hwrenderer/scene/hw_sprites.cpp index 1cf27bbfe..ab4c3b2e8 100644 --- a/src/rendering/hwrenderer/scene/hw_sprites.cpp +++ b/src/rendering/hwrenderer/scene/hw_sprites.cpp @@ -707,13 +707,11 @@ void HWSprite::Process(HWDrawInfo *di, AActor* thing, sector_t * sector, area_t return; } -#if 0 if (thing->IsKindOf(NAME_Corona)) { di->Coronas.Push(static_cast(thing)); return; } -#endif const auto &vp = di->Viewpoint; AActor *camera = vp.camera; diff --git a/wadsrc/static/language.0 b/wadsrc/static/language.0 index 57079b4ba..fde9221b8 100644 --- a/wadsrc/static/language.0 +++ b/wadsrc/static/language.0 @@ -819,6 +819,7 @@ Only modified,OPTVAL_ONLYMODIFIED,,,,Pouze upravené,Kun ændret,Nur modfizierte Line alpha,AUTOMAPMNU_LINEALPHA,,,,Průhlednost čar,Linje alfa,Alpha für Linien,,Travidebleca de linio,Transparencia de línea,,Viivan alpha,Translucidité des lignes,Vonal áttetszóség,Traslucenza delle linee,,,Doorschijnendheid van lijnen,Przezroczystość Linii,Transparência da linha,,Transparență linii,Прозрачность линий,Транслуценција линија, Line thickness,AUTOMAPMNU_LINETHICKNESS,,,,Tloušťka čar,Linjetykkelse,Dicke der Linien,,Dikeca de linio,Grosor de línea,,Viivan paksuus,Épaisseur des lignes,Vonal vastagság,Spessore delle linee,,,Dikte van lijnen,Grubość Linii,Espessura da linha,,Grosime linii,Толщина линий,Дебљина линија, Rendering quality,GLPREFMNU_RENDERQUALITY,,,,Kvalita vykreslování,Renderingskvalitet,Renderqualität,,Kvalito de bildigado,Calidad de renderizado,,Hahmonnuslaatu,Qualité du rendu,Renderelés minősége,Qualità resa grafica,レンダリング品質,렌더링 품질,Het teruggeven van kwaliteit,Jakość Renderowania,Qualidade de renderização,,Calitate video,Качество отображения,Квалитет рендовања, +Coronas,GLPREFMNU_CORONAS,,,,,,,,,,,,,,,,,,,,,,,, Speed,OPTVAL_SPEED,,,,Rychlost,Hastighed,Geschwindigkeit,Ταχύτητα,Rapido,Velocidad,,Nopeus,Vitesse,Sebesség,Prestazioni,速度寄り,성능,Snelheid,Szybkość,Velocidade,,Viteză,Скорость,Брзина, Quality,OPTVAL_QUALITY,,,,Kvalita,Kvalitet,Qualität,Ποιότητα,Kvalito,Calidad,,Laatu,Qualité,Minőség,Qualità,品質寄り,고품질,Kwaliteit,Jakość,Qualidade,,Calitate,Качество,Квалитет, Sector light mode,GLPREFMNU_SECLIGHTMODE,,,,Režim osvětlení sektorů,Sektorlystilstand,Sektorlichtmodus,,Reĝimo de sektorlumo,Modo de luz de sector,,Sektorivalojen tila,Mode de lumière Secteur,Szektor fény mód,Modalità luce di settore,セクターライトモード,섹터 조명 모드,Sector lichte wijze,Tryb oświetlenia sektorów,Modo de luz de setor,,Mod iluminare sectorială,Режим освещения секторов,Секторско светло мод, diff --git a/wadsrc/static/language.csv b/wadsrc/static/language.csv index c98e6d88e..6765b9800 100644 --- a/wadsrc/static/language.csv +++ b/wadsrc/static/language.csv @@ -3064,6 +3064,7 @@ Sprite billboard,GLPREFMNU_SPRBILLBOARD,,,,Orientace spritů,,Spriteausrichtung, Sprites face camera,GLPREFMNU_SPRBILLFACECAMERA,,,,Sprity čelí kameře,Sprites vender mod kameraet,Sprites zur Kamera ausrichten,,Spritoj alfronti kameraon,Los sprites miran a la cámara,,Spritet suuntaavat kameraan,Sprites font face à la caméra,Sprite alapú kamera,Gli sprite sono rivolti alla telecamera.,スプライトのフェイスカメラ,카메라를 향한 스프라이트,Sprites gezicht camera,Sprite'y skierowane w kamerę,Sprites de frente pra câmera,,Sprite-urile privesc înspre cameră,Спрайты направлены к камере,Спрајт камера фаце Particle style,GLPREFMNU_PARTICLESTYLE,,,,Styl částic,Partikelstil,Partikelstil,,Partikla stilo,Estilo de partículas,,Hiukkastyyli,Style de particules,Részecske stílusa,Stile particelle,パーティクル スタイル,입자 스타일,Deeltjes stijl,Styl Cząsteczek,Tipo de partícula,,Stil particule,Тип частиц,Честице стајл Rendering quality,GLPREFMNU_RENDERQUALITY,,,,Kvalita vykreslování,Renderingskvalitet,Renderqualität,,Kvalito de bildigado,Calidad de Renderizado,,Hahmonnuslaatu,Qualité du rendu,Renderelés minősége,Qualità resa grafica,レンダリング品質,렌더링 품질,Het teruggeven van kwaliteit,Jakość Renderowania,Qualidade de renderização,,Calitate video,Качество рендеринга,Квалитет рендовања +Coronas,GLPREFMNU_CORONAS,,,,,,,,,,,,,,,,,,,,,,,, Stereo 3D VR,GLPREFMNU_VRMODE,,,,,,,,Duvida 3D VR,Modo Stereo 3D VR,,,3D VR Stéréo,,,ステレオ3DのVR,VR 입체 스테레오 사용,,,3D Estéreo (VR),,Mod VR,VR-режим,Стереотоно 3D VR Enable Quad Stereo,GLPREFMNU_VRQUADSTEREO,,,,Povolit Quad Stereo,Aktiver Quad Stereo,Quad Stereo aktivieren,,Ŝalti Kvaroblo-Stereon,Activar Quad Stereo,,Ota käyttöön Quad Stereo,Activer Quad Stereo,Quad Sztereó bekapcsolása,Abilita il Quad Stereo,クァッドステレオを有効,쿼드 스테레오 사용,Quad Stereo inschakelen,Włącz Poczwórne Stereo,Habilitar Quad Stereo,Permitir Quad Stereo,Activare Quad Stereo,Четырёхкратный стереорежим,Омогући четвороструки стерео Banded SW Lightmode,GLPREFMNU_SWLMBANDED,,,,Režim pruhovaného SW osvětlení,Båndede SW-lystilstand,Gebänderter SW-Lichtmodus,,Reĝimo de Bendiga Lumo de Programbildigo,Modo de luz por bandas de SW,,Kaistoitettu ohjelmistoväritila,Lumière bandées en Software,,Lightmode software bandata,バンデドSWライトモード,단결된 SW 라이트 모드,SW-lichtmodus met banden,Naznaczony Tryb Oświetlenia Oprogramowania,Modo de luz por bandas em software,,Mod limitat de iluminare Software,Ограниченный программный режим освещения,Повезани SW режим осветљења diff --git a/wadsrc/static/menudef.txt b/wadsrc/static/menudef.txt index 096216177..5f4cb0de3 100644 --- a/wadsrc/static/menudef.txt +++ b/wadsrc/static/menudef.txt @@ -2640,7 +2640,7 @@ OptionMenu "OpenGLOptions" protected Option "$GLPREFMNU_SPRBILLFACECAMERA", gl_billboard_faces_camera, "OnOff" Option "$GLPREFMNU_PARTICLESTYLE", gl_particles_style, "Particles" Option "$GLPREFMNU_RENDERQUALITY", gl_seamless, "Precision" - //Option "$GLPREFMNU_CORONAS", gl_coronas, "OnOff" + Option "$GLPREFMNU_CORONAS", gl_coronas, "OnOff" StaticText " " Slider "$GLPREFMNU_MENUBLUR", gl_menu_blur, 0, 5.0, 0.5, 2 StaticText " " diff --git a/wadsrc/static/zscript/actors/shared/corona.zs b/wadsrc/static/zscript/actors/shared/corona.zs index 996921f82..0516c6c17 100644 --- a/wadsrc/static/zscript/actors/shared/corona.zs +++ b/wadsrc/static/zscript/actors/shared/corona.zs @@ -1,4 +1,4 @@ -/*class Corona : Actor native +class Corona : Actor native { Default { @@ -7,4 +7,4 @@ +NOINTERACTION +FORCEXYBILLBOARD } -}*/ +}