mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-28 23:02:07 +00:00
SVN r657 (trunk)
This commit is contained in:
parent
6872bcd3ef
commit
68e2134f70
5 changed files with 158 additions and 98 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
December 29, 2007 (Changes by Graf Zahl)
|
||||||
|
- Changed the FStatusBarTexture for Doom so that it can create a true color
|
||||||
|
image.
|
||||||
|
|
||||||
December 28, 2007
|
December 28, 2007
|
||||||
- Fixed position of the Doom HUD selectbox as per SnowKate709's guidance.
|
- Fixed position of the Doom HUD selectbox as per SnowKate709's guidance.
|
||||||
|
|
||||||
|
|
|
@ -129,9 +129,8 @@ public:
|
||||||
FBaseStatusBar::MultiplayerChanged ();
|
FBaseStatusBar::MultiplayerChanged ();
|
||||||
if (multiplayer)
|
if (multiplayer)
|
||||||
{
|
{
|
||||||
// draw face background
|
// set face background color
|
||||||
StatusBarTex.DrawToBar ("STFBANY", 143, 1,
|
StatusBarTex.SetPlayerRemap(translationtables[TRANSLATION_Players][int(CPlayer - players)]);
|
||||||
translationtables[TRANSLATION_Players][int(CPlayer - players)]->Remap);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,9 +145,8 @@ public:
|
||||||
}
|
}
|
||||||
if (multiplayer)
|
if (multiplayer)
|
||||||
{
|
{
|
||||||
// draw face background
|
// set face background color
|
||||||
StatusBarTex.DrawToBar ("STFBANY", 143, 1,
|
StatusBarTex.SetPlayerRemap(translationtables[TRANSLATION_Players][int(CPlayer - players)]);
|
||||||
translationtables[TRANSLATION_Players][int(CPlayer - players)]->Remap);
|
|
||||||
}
|
}
|
||||||
bEvilGrin = false;
|
bEvilGrin = false;
|
||||||
}
|
}
|
||||||
|
@ -198,19 +196,29 @@ public:
|
||||||
private:
|
private:
|
||||||
struct FDoomStatusBarTexture : public FTexture
|
struct FDoomStatusBarTexture : public FTexture
|
||||||
{
|
{
|
||||||
|
void DrawToBar (const char *name, int x, int y, const BYTE *colormap_in = NULL);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FDoomStatusBarTexture ();
|
FDoomStatusBarTexture ();
|
||||||
const BYTE *GetColumn (unsigned int column, const Span **spans_out);
|
const BYTE *GetColumn (unsigned int column, const Span **spans_out);
|
||||||
const BYTE *GetPixels ();
|
const BYTE *GetPixels ();
|
||||||
void Unload ();
|
void Unload ();
|
||||||
~FDoomStatusBarTexture ();
|
~FDoomStatusBarTexture ();
|
||||||
void DrawToBar (const char *name, int x, int y, const BYTE *colormap_in = NULL);
|
void SetPlayerRemap(FRemapTable *remap);
|
||||||
|
int CopyTrueColorPixels(BYTE *buffer, int buf_pitch, int buf_height, int x, int y);
|
||||||
|
|
||||||
|
FTextureFormat GetFormat()
|
||||||
|
{
|
||||||
|
return TEX_RGB;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void MakeTexture ();
|
void MakeTexture ();
|
||||||
|
|
||||||
FTexture *BaseTexture;
|
FTexture *BaseTexture;
|
||||||
BYTE *Pixels;
|
BYTE *Pixels;
|
||||||
|
FRemapTable *STBFremap;
|
||||||
}
|
}
|
||||||
StatusBarTex;
|
StatusBarTex;
|
||||||
|
|
||||||
|
@ -239,13 +247,6 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
StatusBarTex.Unload ();
|
StatusBarTex.Unload ();
|
||||||
if (!deathmatch)
|
|
||||||
{
|
|
||||||
StatusBarTex.DrawToBar ("STARMS", 104, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
StatusBarTex.DrawToBar ("STTPRCNT", 90, 3); // Health %
|
|
||||||
StatusBarTex.DrawToBar ("STTPRCNT", 221, 3); // Armor %
|
|
||||||
|
|
||||||
SB_state = screen->GetPageCount ();
|
SB_state = screen->GetPageCount ();
|
||||||
FaceLastAttackDown = -1;
|
FaceLastAttackDown = -1;
|
||||||
|
@ -1053,6 +1054,7 @@ FDoomStatusBar::FDoomStatusBarTexture::FDoomStatusBarTexture ()
|
||||||
// now copy all the properties from the base texture
|
// now copy all the properties from the base texture
|
||||||
CopySize(BaseTexture);
|
CopySize(BaseTexture);
|
||||||
Pixels = NULL;
|
Pixels = NULL;
|
||||||
|
STBFremap = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const BYTE *FDoomStatusBar::FDoomStatusBarTexture::GetColumn (unsigned int column, const Span **spans_out)
|
const BYTE *FDoomStatusBar::FDoomStatusBarTexture::GetColumn (unsigned int column, const Span **spans_out)
|
||||||
|
@ -1095,18 +1097,50 @@ void FDoomStatusBar::FDoomStatusBarTexture::MakeTexture ()
|
||||||
Pixels = new BYTE[Width*Height];
|
Pixels = new BYTE[Width*Height];
|
||||||
const BYTE *pix = BaseTexture->GetPixels();
|
const BYTE *pix = BaseTexture->GetPixels();
|
||||||
memcpy(Pixels, pix, Width*Height);
|
memcpy(Pixels, pix, Width*Height);
|
||||||
|
if (!deathmatch) DrawToBar("STARMS", 104, 0, NULL);
|
||||||
|
DrawToBar("STTPRCNT", 90, 3, NULL);
|
||||||
|
DrawToBar("STTPRCNT", 221, 3, NULL);
|
||||||
|
if (multiplayer) DrawToBar("STFBANY", 143, 1, STBFremap? STBFremap->Remap : NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int FDoomStatusBar::FDoomStatusBarTexture::CopyTrueColorPixels(BYTE *buffer, int buf_pitch, int buf_height, int x, int y)
|
||||||
|
{
|
||||||
|
FTexture *tex;
|
||||||
|
|
||||||
|
BaseTexture->CopyTrueColorPixels(buffer, buf_pitch, buf_height, x, y);
|
||||||
|
if (!deathmatch)
|
||||||
|
{
|
||||||
|
tex = TexMan["STARMS"];
|
||||||
|
if (tex != NULL)
|
||||||
|
{
|
||||||
|
tex->CopyTrueColorPixels(buffer, buf_pitch, buf_height, x+104, y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tex = TexMan["STTPRCNT"];
|
||||||
|
if (tex != NULL)
|
||||||
|
{
|
||||||
|
tex->CopyTrueColorPixels(buffer, buf_pitch, buf_height, x+90, y+3);
|
||||||
|
tex->CopyTrueColorPixels(buffer, buf_pitch, buf_height, x+221, y+3);
|
||||||
|
}
|
||||||
|
if (multiplayer)
|
||||||
|
{
|
||||||
|
tex = TexMan["STFBANY"];
|
||||||
|
if (tex != NULL)
|
||||||
|
{
|
||||||
|
tex->CopyTrueColorTranslated(buffer, buf_pitch, buf_height, x+143, y+1, STBFremap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void FDoomStatusBar::FDoomStatusBarTexture::DrawToBar (const char *name, int x, int y, const BYTE *colormap_in)
|
void FDoomStatusBar::FDoomStatusBarTexture::DrawToBar (const char *name, int x, int y, const BYTE *colormap_in)
|
||||||
{
|
{
|
||||||
FTexture *pic;
|
FTexture *pic;
|
||||||
BYTE colormap[256];
|
BYTE colormap[256];
|
||||||
|
|
||||||
if (Pixels == NULL)
|
|
||||||
{
|
|
||||||
MakeTexture ();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (colormap_in != NULL)
|
if (colormap_in != NULL)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 256; ++i)
|
for (int i = 0; i < 256; ++i)
|
||||||
|
@ -1131,6 +1165,13 @@ void FDoomStatusBar::FDoomStatusBarTexture::DrawToBar (const char *name, int x,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FDoomStatusBar::FDoomStatusBarTexture::SetPlayerRemap(FRemapTable *remap)
|
||||||
|
{
|
||||||
|
Unload();
|
||||||
|
KillNative();
|
||||||
|
STBFremap = remap;
|
||||||
|
}
|
||||||
|
|
||||||
FBaseStatusBar *CreateDoomStatusBar ()
|
FBaseStatusBar *CreateDoomStatusBar ()
|
||||||
{
|
{
|
||||||
return new FDoomStatusBar;
|
return new FDoomStatusBar;
|
||||||
|
|
|
@ -92,6 +92,7 @@ class player_s;
|
||||||
//
|
//
|
||||||
class DSectorEffect;
|
class DSectorEffect;
|
||||||
struct sector_t;
|
struct sector_t;
|
||||||
|
struct FRemapTable;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -666,6 +667,7 @@ public:
|
||||||
virtual const BYTE *GetPixels () = 0;
|
virtual const BYTE *GetPixels () = 0;
|
||||||
|
|
||||||
virtual int CopyTrueColorPixels(BYTE *buffer, int buf_pitch, int buf_height, int x, int y);
|
virtual int CopyTrueColorPixels(BYTE *buffer, int buf_pitch, int buf_height, int x, int y);
|
||||||
|
int CopyTrueColorTranslated(BYTE *buffer, int buf_pitch, int buf_height, int x, int y, FRemapTable *remap);
|
||||||
virtual bool UseBasePalette();
|
virtual bool UseBasePalette();
|
||||||
virtual int GetSourceLump() { return -1; }
|
virtual int GetSourceLump() { return -1; }
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
#include "r_data.h"
|
#include "r_data.h"
|
||||||
#include "templates.h"
|
#include "templates.h"
|
||||||
#include "i_system.h"
|
#include "i_system.h"
|
||||||
|
#include "r_translate.h"
|
||||||
|
|
||||||
typedef bool (*CheckFunc)(FileReader & file);
|
typedef bool (*CheckFunc)(FileReader & file);
|
||||||
typedef FTexture * (*CreateFunc)(FileReader & file, int lumpnum);
|
typedef FTexture * (*CreateFunc)(FileReader & file, int lumpnum);
|
||||||
|
@ -493,6 +494,18 @@ int FTexture::CopyTrueColorPixels(BYTE *buffer, int buf_pitch, int buf_height, i
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int FTexture::CopyTrueColorTranslated(BYTE *buffer, int buf_pitch, int buf_height, int x, int y, FRemapTable *remap)
|
||||||
|
{
|
||||||
|
PalEntry *palette = remap->Palette;
|
||||||
|
palette[0].a=255; // temporarily modify the first color's alpha
|
||||||
|
screen->CopyPixelData(buffer, buf_pitch, buf_height, x, y,
|
||||||
|
GetPixels(), Width, Height, Height, 1,
|
||||||
|
palette);
|
||||||
|
|
||||||
|
palette[0].a=0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
bool FTexture::UseBasePalette()
|
bool FTexture::UseBasePalette()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="8.00"
|
Version="8,00"
|
||||||
Name="updaterevision"
|
Name="updaterevision"
|
||||||
ProjectGUID="{6077B7D6-349F-4077-B552-3BC302EF5859}"
|
ProjectGUID="{6077B7D6-349F-4077-B552-3BC302EF5859}"
|
||||||
RootNamespace="updaterevision"
|
RootNamespace="updaterevision"
|
||||||
|
@ -95,82 +95,6 @@
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
|
||||||
Name="Debug|x64"
|
|
||||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
|
||||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
|
||||||
ConfigurationType="1"
|
|
||||||
CharacterSet="1"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
TargetEnvironment="3"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
|
||||||
MinimalRebuild="true"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="3"
|
|
||||||
UsePrecompiledHeader="0"
|
|
||||||
WarningLevel="3"
|
|
||||||
Detect64BitPortabilityProblems="true"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
LinkIncremental="2"
|
|
||||||
GenerateDebugInformation="true"
|
|
||||||
SubSystem="1"
|
|
||||||
TargetMachine="17"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCALinkTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManifestTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXDCMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCFxCopTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAppVerifierTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"
|
|
||||||
/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
|
@ -248,6 +172,82 @@
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Debug|x64"
|
||||||
|
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
CharacterSet="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
TargetEnvironment="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="0"
|
||||||
|
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||||
|
MinimalRebuild="true"
|
||||||
|
BasicRuntimeChecks="3"
|
||||||
|
RuntimeLibrary="3"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
Detect64BitPortabilityProblems="true"
|
||||||
|
DebugInformationFormat="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
LinkIncremental="2"
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
SubSystem="1"
|
||||||
|
TargetMachine="17"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebDeploymentTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||||
|
|
Loading…
Reference in a new issue