mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-28 06:53:58 +00:00
- Added Skulltag's REDMAP and GREENMAP.
- Fixed: The PlayerSpeedTrail must copy the player's scaling information (from Skulltag) - Added r_maxparticles CVAR from Skulltag. - Changed PCX loader so that it always loads the last 768 bytes of 8 bit graphics as a palette SVN r447 (trunk)
This commit is contained in:
parent
82ba0fb189
commit
1cd8370327
10 changed files with 115 additions and 9 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
January 9, 2007 (Changes by Graf Zahl)
|
||||||
|
- Added Skulltag's REDMAP and GREENMAP.
|
||||||
|
- Fixed: The PlayerSpeedTrail must copy the player's scaling information
|
||||||
|
(from Skulltag)
|
||||||
|
- Added r_maxparticles CVAR from Skulltag.
|
||||||
|
- Changed PCX loader so that it always loads the last 768 bytes of 8 bit graphics
|
||||||
|
as a palette
|
||||||
|
|
||||||
January 8, 2007
|
January 8, 2007
|
||||||
- Added escape code support to the echo CCMD, so you can use colors with it.
|
- Added escape code support to the echo CCMD, so you can use colors with it.
|
||||||
- Changed the color scheme for the startup log to light text on a dark
|
- Changed the color scheme for the startup log to light text on a dark
|
||||||
|
|
|
@ -99,11 +99,27 @@ void APowerup::Tick ()
|
||||||
|
|
||||||
if (EffectTics > BLINKTHRESHOLD || (EffectTics & 8))
|
if (EffectTics > BLINKTHRESHOLD || (EffectTics & 8))
|
||||||
{
|
{
|
||||||
if (BlendColor == INVERSECOLOR) Owner->player->fixedcolormap = INVERSECOLORMAP;
|
if (BlendColor == INVERSECOLOR)
|
||||||
else if (BlendColor == GOLDCOLOR) Owner->player->fixedcolormap = GOLDCOLORMAP;
|
{
|
||||||
|
Owner->player->fixedcolormap = INVERSECOLORMAP;
|
||||||
|
}
|
||||||
|
else if (BlendColor == GOLDCOLOR)
|
||||||
|
{
|
||||||
|
Owner->player->fixedcolormap = GOLDCOLORMAP;
|
||||||
|
}
|
||||||
|
else if (BlendColor == REDCOLOR)
|
||||||
|
{
|
||||||
|
Owner->player->fixedcolormap = REDCOLORMAP;
|
||||||
|
}
|
||||||
|
else if (BlendColor == GREENCOLOR)
|
||||||
|
{
|
||||||
|
Owner->player->fixedcolormap = GREENCOLORMAP;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if ((BlendColor == INVERSECOLOR && Owner->player->fixedcolormap == INVERSECOLORMAP) ||
|
else if ((BlendColor == INVERSECOLOR && Owner->player->fixedcolormap == INVERSECOLORMAP) ||
|
||||||
(BlendColor == GOLDCOLOR && Owner->player->fixedcolormap == GOLDCOLORMAP))
|
(BlendColor == GOLDCOLOR && Owner->player->fixedcolormap == GOLDCOLORMAP) ||
|
||||||
|
(BlendColor == REDCOLOR && Owner->player->fixedcolormap == REDCOLORMAP) ||
|
||||||
|
(BlendColor == GREENCOLOR && Owner->player->fixedcolormap == GREENCOLORMAP))
|
||||||
{
|
{
|
||||||
Owner->player->fixedcolormap = 0;
|
Owner->player->fixedcolormap = 0;
|
||||||
}
|
}
|
||||||
|
@ -138,7 +154,11 @@ PalEntry APowerup::GetBlend ()
|
||||||
if (EffectTics <= BLINKTHRESHOLD && !(EffectTics & 8))
|
if (EffectTics <= BLINKTHRESHOLD && !(EffectTics & 8))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (BlendColor == INVERSECOLOR || BlendColor == GOLDCOLOR)
|
if (BlendColor == INVERSECOLOR ||
|
||||||
|
BlendColor == GOLDCOLOR ||
|
||||||
|
// [BC] HAX!
|
||||||
|
BlendColor == REDCOLOR ||
|
||||||
|
BlendColor == GREENCOLOR)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return BlendColor;
|
return BlendColor;
|
||||||
|
@ -1024,6 +1044,11 @@ void APowerSpeed::DoEffect ()
|
||||||
speedMo->sprite = Owner->sprite;
|
speedMo->sprite = Owner->sprite;
|
||||||
speedMo->frame = Owner->frame;
|
speedMo->frame = Owner->frame;
|
||||||
speedMo->floorclip = Owner->floorclip;
|
speedMo->floorclip = Owner->floorclip;
|
||||||
|
|
||||||
|
// [BC] Also get the scale from the owner.
|
||||||
|
speedMo->scaleX = Owner->scaleX;
|
||||||
|
speedMo->scaleY = Owner->scaleY;
|
||||||
|
|
||||||
if (Owner == players[consoleplayer].camera &&
|
if (Owner == players[consoleplayer].camera &&
|
||||||
!(Owner->player->cheats & CF_CHASECAM))
|
!(Owner->player->cheats & CF_CHASECAM))
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,6 +7,10 @@
|
||||||
#define INVERSECOLOR 0x00345678
|
#define INVERSECOLOR 0x00345678
|
||||||
#define GOLDCOLOR 0x009abcde
|
#define GOLDCOLOR 0x009abcde
|
||||||
|
|
||||||
|
// [BC] More hacks!
|
||||||
|
#define REDCOLOR 0x00beefee
|
||||||
|
#define GREENCOLOR 0x00beefad
|
||||||
|
|
||||||
#define STREAM_ENUM(e) \
|
#define STREAM_ENUM(e) \
|
||||||
inline FArchive &operator<< (FArchive &arc, e &i) \
|
inline FArchive &operator<< (FArchive &arc, e &i) \
|
||||||
{ \
|
{ \
|
||||||
|
|
|
@ -1160,6 +1160,14 @@ void R_SetupFrame (AActor *actor)
|
||||||
fixedcolormap = InverseColormap;
|
fixedcolormap = InverseColormap;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case REDCOLORMAP:
|
||||||
|
fixedcolormap = RedColormap;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GREENCOLORMAP:
|
||||||
|
fixedcolormap = GreenColormap;
|
||||||
|
break;
|
||||||
|
|
||||||
case GOLDCOLORMAP:
|
case GOLDCOLORMAP:
|
||||||
fixedcolormap = GoldColormap;
|
fixedcolormap = GoldColormap;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -91,6 +91,8 @@ extern bool r_dontmaplines;
|
||||||
|
|
||||||
#define INVERSECOLORMAP 32
|
#define INVERSECOLORMAP 32
|
||||||
#define GOLDCOLORMAP 33
|
#define GOLDCOLORMAP 33
|
||||||
|
#define REDCOLORMAP 34
|
||||||
|
#define GREENCOLORMAP 35
|
||||||
|
|
||||||
// The size of a single colormap, in bits
|
// The size of a single colormap, in bits
|
||||||
#define COLORMAPSHIFT 8
|
#define COLORMAPSHIFT 8
|
||||||
|
|
|
@ -2119,15 +2119,34 @@ void R_DrawMasked (void)
|
||||||
// [RH] Particle functions
|
// [RH] Particle functions
|
||||||
//
|
//
|
||||||
|
|
||||||
|
// [BC] Allow the maximum number of particles to be specified by a cvar (so people
|
||||||
|
// with lots of nice hardware can have lots of particles!).
|
||||||
|
CUSTOM_CVAR( Int, r_maxparticles, 4000, CVAR_ARCHIVE )
|
||||||
|
{
|
||||||
|
if ( self == 0 )
|
||||||
|
self = 4000;
|
||||||
|
else if ( self < 100 )
|
||||||
|
self = 100;
|
||||||
|
|
||||||
|
if ( gamestate != GS_STARTUP )
|
||||||
|
{
|
||||||
|
R_DeinitParticles( );
|
||||||
|
R_InitParticles( );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void R_InitParticles ()
|
void R_InitParticles ()
|
||||||
{
|
{
|
||||||
char *i;
|
char *i;
|
||||||
|
|
||||||
if ((i = Args.CheckValue ("-numparticles")))
|
if ((i = Args.CheckValue ("-numparticles")))
|
||||||
NumParticles = atoi (i);
|
NumParticles = atoi (i);
|
||||||
if (NumParticles == 0)
|
// [BC] Use r_maxparticles now.
|
||||||
NumParticles = 4000;
|
else
|
||||||
else if (NumParticles < 100)
|
NumParticles = r_maxparticles;
|
||||||
|
|
||||||
|
// This should be good, but eh...
|
||||||
|
if ( NumParticles < 100 )
|
||||||
NumParticles = 100;
|
NumParticles = 100;
|
||||||
|
|
||||||
Particles = new particle_t[NumParticles];
|
Particles = new particle_t[NumParticles];
|
||||||
|
|
|
@ -360,8 +360,9 @@ void FPCXTexture::MakeTexture()
|
||||||
BYTE c;
|
BYTE c;
|
||||||
lump.Seek(-769, SEEK_END);
|
lump.Seek(-769, SEEK_END);
|
||||||
lump >> c;
|
lump >> c;
|
||||||
if (c !=0x0c) memcpy(PaletteMap, GrayMap, 256); // Fallback for files without palette
|
//if (c !=0x0c) memcpy(PaletteMap, GrayMap, 256); // Fallback for files without palette
|
||||||
else for(int i=0;i<256;i++)
|
//else
|
||||||
|
for(int i=0;i<256;i++)
|
||||||
{
|
{
|
||||||
BYTE r,g,b;
|
BYTE r,g,b;
|
||||||
lump >> r >> g >> b;
|
lump >> r >> g >> b;
|
||||||
|
|
|
@ -3716,6 +3716,17 @@ static void PowerupColor (APowerupGiver *defaults, Baggage &bag)
|
||||||
defaults->BlendColor = GOLDCOLOR;
|
defaults->BlendColor = GOLDCOLOR;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// [BC] Yay, more hacks.
|
||||||
|
else if ( SC_Compare( "REDMAP" ))
|
||||||
|
{
|
||||||
|
defaults->BlendColor = REDCOLOR;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if ( SC_Compare( "GREENMAP" ))
|
||||||
|
{
|
||||||
|
defaults->BlendColor = GREENCOLOR;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int c = V_GetColor(NULL, sc_String);
|
int c = V_GetColor(NULL, sc_String);
|
||||||
r=RPART(c);
|
r=RPART(c);
|
||||||
|
|
|
@ -61,6 +61,9 @@ FDynamicColormap NormalLight;
|
||||||
FPalette GPalette;
|
FPalette GPalette;
|
||||||
BYTE InverseColormap[NUMCOLORMAPS*256];
|
BYTE InverseColormap[NUMCOLORMAPS*256];
|
||||||
BYTE GoldColormap[NUMCOLORMAPS*256];
|
BYTE GoldColormap[NUMCOLORMAPS*256];
|
||||||
|
// [BC] New Skulltag colormaps.
|
||||||
|
BYTE RedColormap[NUMCOLORMAPS*256];
|
||||||
|
BYTE GreenColormap[NUMCOLORMAPS*256];
|
||||||
int Near255;
|
int Near255;
|
||||||
|
|
||||||
static void FreeSpecialLights();;
|
static void FreeSpecialLights();;
|
||||||
|
@ -410,6 +413,28 @@ void InitPalette ()
|
||||||
*shade++ = ColorMatcher.Pick (
|
*shade++ = ColorMatcher.Pick (
|
||||||
MIN (255, (intensity+intensity/2)>>8), intensity>>8, 0);
|
MIN (255, (intensity+intensity/2)>>8), intensity>>8, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// [BC] Build the Doomsphere colormap. It is red!
|
||||||
|
shade = RedColormap;
|
||||||
|
for (c = 0; c < 256; c++)
|
||||||
|
{
|
||||||
|
intensity = ((GPalette.BaseColors[c].r * 77 +
|
||||||
|
GPalette.BaseColors[c].g * 143 +
|
||||||
|
GPalette.BaseColors[c].b * 37));
|
||||||
|
*shade++ = ColorMatcher.Pick (
|
||||||
|
MIN( 255, ( intensity + ( intensity / 2 )) >> 8 ), 0, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
// [BC] Build the Guardsphere colormap. It's a greenish-white kind of thing.
|
||||||
|
shade = GreenColormap;
|
||||||
|
for (c = 0; c < 256; c++)
|
||||||
|
{
|
||||||
|
intensity = GPalette.BaseColors[c].r * 77 +
|
||||||
|
GPalette.BaseColors[c].g * 143 +
|
||||||
|
GPalette.BaseColors[c].b * 37;
|
||||||
|
*shade++ = ColorMatcher.Pick (
|
||||||
|
MIN( 255, ( intensity + ( intensity / 2 )) >> 8 ), MIN( 255, ( intensity + ( intensity / 2 )) >> 8 ), intensity>>8 );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
|
|
|
@ -81,6 +81,9 @@ struct FDynamicColormap
|
||||||
|
|
||||||
extern BYTE InverseColormap[NUMCOLORMAPS*256];
|
extern BYTE InverseColormap[NUMCOLORMAPS*256];
|
||||||
extern BYTE GoldColormap[NUMCOLORMAPS*256];
|
extern BYTE GoldColormap[NUMCOLORMAPS*256];
|
||||||
|
// [BC] New Skulltag colormaps.
|
||||||
|
extern BYTE RedColormap[NUMCOLORMAPS*256];
|
||||||
|
extern BYTE GreenColormap[NUMCOLORMAPS*256];
|
||||||
extern FPalette GPalette;
|
extern FPalette GPalette;
|
||||||
extern "C" {
|
extern "C" {
|
||||||
extern FDynamicColormap NormalLight;
|
extern FDynamicColormap NormalLight;
|
||||||
|
|
Loading…
Reference in a new issue