Page 1 of 1

Vile Flesh - Legacy's version

Posted: Mon Sep 15, 2008 1:56
by Jive
Hi there.

Gzdoom is compatible with my version of OpenGl mode for Vile Flesh, apart the fact that there is no compatibility with the fragglescript for the lightnings.
I have no opengl lightings at all, apart the ones controlled internally by the Gzdoom engine.

http://dlw.doomwadstation.com/Best_of_1.html#vile

May I dream to have a fully Gzdoom compatibility for this megawad, making Gzdoom totally compatible with Doom Legacy?

On the screenshots, you can see "before" and "after" my work.
Playing with Gzdoom, I have the 3D structures, but no opengl lightning, like on the first screenshot.

Posted: Mon Sep 15, 2008 7:08
by wildweasel
For the lighting, are you loading the Lights.pk3 that's included with GZDoom? Are the dynamic lights enabled? If you want Legacy-style dynamic lights as well, you'll have to set it to use additive lights in the OpenGL settings.

Posted: Mon Sep 15, 2008 14:01
by Jive
thank you for your answer!!
I wasn't clear enough: I have dynamic lights, and opengl mode... when it is already coded by the engine.
In my mod, I used tricks with fragglescripts and dehacked code in order to add static opengl lightnings, like you can see it with the doom legacy engine on the 2d screenshot.
Those additive lightnings are not rendered with gzdoom. They are purely ignored.

For example, here is the script used for map26:

Code: Select all

//script by Jive
//october 10, 2004

levelname = Service Tunnels
creator = Gwyn Williams

[scripts]
include("things.h");


script 1
{
setcorona(REDSMALL_L, CORONA_OFFY, 20.0);
setcorona(REDSMALL_L, CORONA_SIZE, 220.0);
//setcorona(REDSMALL_L, LIGHT_RADIUS, 100.0);

setcorona(GREENSMALL_L, CORONA_OFFY, 20.0);
setcorona(GREENSMALL_L, CORONA_SIZE, 80.0);
setcorona(GREENSMALL_L, LIGHT_RADIUS, 100.0);

setcorona(BLUESMALL_L, CORONA_OFFY, 20.0);
setcorona(BLUESMALL_L, CORONA_SIZE, 240.0);
setcorona(BLUESMALL_L, LIGHT_RADIUS, 100.0);

setcorona(REDTALL_L, CORONA_OFFY, 30.0);
setcorona(REDTALL_L, CORONA_SIZE, 280.0);
setcorona(REDTALL_L, LIGHT_RADIUS, 100.0);

setcorona(GREENTALL_L, CORONA_OFFY, 30.0);
setcorona(GREENTALL_L, CORONA_SIZE, 80.0);
setcorona(GREENTALL_L, LIGHT_RADIUS, 100.0);

setcorona(BLUETALL_L, CORONA_OFFY, 30.0);
setcorona(BLUETALL_L, CORONA_SIZE, 280.0);
setcorona(BLUETALL_L, LIGHT_RADIUS, 100.0);

setcorona(CANDLE_L, CORONA_SIZE, 60.0);
setcorona(CANDLE_L, CORONA_OFFY, 8.0);
setcorona(CANDLE_L, CORONA_COLOR, "FFFFFFCC");
setcorona(CANDLE_L, LIGHT_RADIUS, 40.0);
setcorona(CANDLE_L, CORONA_TYPE, LIGHT_SPR);

setcorona(CANDLEABRE_L, LIGHT_COLOR, "00ffff88");
//setcorona(CANDLEABRE_L, CORONA_COLOR, "00ffff88");
setcorona(CANDLEABRE_L, CORONA_SIZE, 15.0);
setcorona(CANDLEABRE_L, CORONA_OFFY, 33.0);
//setcorona(CANDLEABRE_L, LIGHT_RADIUS, 100.0);

setcorona(BFGEXP_L, LIGHT_COLOR, "FFE4A950");

setcorona(COLUMN_L, LIGHT_COLOR, "C3E597ff");
setcorona(COLUMN_L, LIGHT_RADIUS, 100.0);
setcorona(COLUMN_L, CORONA_COLOR, "C3E597ff");
setcorona(COLUMN_L, CORONA_SIZE, 80.0);
setcorona(COLUMN_L, CORONA_TYPE, LIGHT_SPR);

setcorona(TECHLAMP_L, LIGHT_COLOR, "D2E6F2ff");
setcorona(TECHLAMP_L, LIGHT_RADIUS, 100.0);
setcorona(TECHLAMP_L, CORONA_COLOR, "D2E6F2ff");
setcorona(TECHLAMP_L, CORONA_SIZE, 80.0);
setcorona(TECHLAMP_L, CORONA_TYPE, LIGHT_SPR);

setcorona(TECHLAMP2_L, LIGHT_COLOR, "EAD0D0ff");
setcorona(TECHLAMP2_L, LIGHT_RADIUS, 100.0);
setcorona(TECHLAMP2_L, CORONA_COLOR, "EAD0D0FF");
setcorona(TECHLAMP2_L, CORONA_SIZE, 30.0);
setcorona(TECHLAMP2_L, CORONA_TYPE, LIGHT_SPR);
}
startscript(1);

Posted: Mon Sep 15, 2008 16:44
by Graf Zahl
Unfortunately I haven't found a way to translate that hack-ish code for setcorona to something usable. I know other WADs, too where it might be useful. But that particular code is classic Legacy: crude, badly designed and not well suited to be ported to other implementations.

Posted: Mon Sep 15, 2008 20:49
by Jive
That's too bad, because this megawad was downloaded 1500 times the passed year, and it's pretty the only one complete megawad for Doom II using intensively a bunch of cool tricks, making it pretty without any real interest out of Legacy, making consequently of it a darn good port!!!
I don't care to know that this particular opengl code of legacy was badly designed. The effect IS awesome, and it's the only important point for a player.
Anyway, thank you very much for your friendly answer!

Posted: Tue Sep 16, 2008 19:19
by Jive
But I perfectly understand that the translation of a badly designed code must be terrific for a coder, even particularly gifted like you (not joking, nor kidding)