mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-27 04:00:42 +00:00
- avoid using global palette settings when drawing 2D content with a custom palette.
Instead pass the palette info with the render call to avoid stale global state.
This commit is contained in:
parent
57efff200a
commit
b971bc2717
26 changed files with 139 additions and 184 deletions
|
@ -856,7 +856,7 @@ void videoClearScreen(int32_t dacol);
|
|||
void renderDrawMapView(int32_t dax, int32_t day, int32_t zoome, int16_t ang);
|
||||
void rotatesprite_(int32_t sx, int32_t sy, int32_t z, int16_t a, int16_t picnum,
|
||||
int8_t dashade, uint8_t dapalnum, int32_t dastat, uint8_t daalpha, uint8_t dablend,
|
||||
int32_t cx1, int32_t cy1, int32_t cx2, int32_t cy2, FTexture *pic = nullptr);
|
||||
int32_t cx1, int32_t cy1, int32_t cx2, int32_t cy2, FTexture *pic = nullptr, int basepal = 0);
|
||||
void renderDrawLine(int32_t x1, int32_t y1, int32_t x2, int32_t y2, uint8_t col);
|
||||
void drawlinergb(int32_t x1, int32_t y1, int32_t x2, int32_t y2, palette_t p);
|
||||
void drawlinergb(int32_t x1, int32_t y1, int32_t x2, int32_t y2, PalEntry p);
|
||||
|
@ -864,15 +864,15 @@ void drawlinergb(int32_t x1, int32_t y1, int32_t x2, int32_t y2, PalEntry p);
|
|||
////////// specialized rotatesprite wrappers for (very) often used cases //////////
|
||||
static FORCE_INLINE void rotatesprite(int32_t sx, int32_t sy, int32_t z, int16_t a, int16_t picnum,
|
||||
int8_t dashade, uint8_t dapalnum, int32_t dastat,
|
||||
int32_t cx1, int32_t cy1, int32_t cx2, int32_t cy2, FTexture* pic = nullptr)
|
||||
int32_t cx1, int32_t cy1, int32_t cx2, int32_t cy2, FTexture* pic = nullptr, int basepal = 0)
|
||||
{
|
||||
rotatesprite_(sx, sy, z, a, picnum, dashade, dapalnum, dastat, 0, 0, cx1, cy1, cx2, cy2, pic);
|
||||
rotatesprite_(sx, sy, z, a, picnum, dashade, dapalnum, dastat, 0, 0, cx1, cy1, cx2, cy2, pic, basepal);
|
||||
}
|
||||
// Don't clip at all, i.e. the whole screen real estate is available:
|
||||
static FORCE_INLINE void rotatesprite_fs(int32_t sx, int32_t sy, int32_t z, int16_t a, int16_t picnum,
|
||||
int8_t dashade, uint8_t dapalnum, int32_t dastat, FTexture* pic = nullptr)
|
||||
int8_t dashade, uint8_t dapalnum, int32_t dastat, FTexture* pic = nullptr, int basepal = 0)
|
||||
{
|
||||
rotatesprite_(sx, sy, z, a, picnum, dashade, dapalnum, dastat, 0, 0, 0,0,xdim-1,ydim-1, pic);
|
||||
rotatesprite_(sx, sy, z, a, picnum, dashade, dapalnum, dastat, 0, 0, 0,0,xdim-1,ydim-1, pic, basepal);
|
||||
}
|
||||
|
||||
static FORCE_INLINE void rotatesprite_fs_alpha(int32_t sx, int32_t sy, int32_t z, int16_t a, int16_t picnum,
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
|
||||
#include "renderstyle.h"
|
||||
#include "filesystem.h"
|
||||
#include "zstring.h"
|
||||
#include "palentry.h"
|
||||
#include "templates.h"
|
||||
|
||||
#define MAXBASEPALS 256
|
||||
#define MAXPALOOKUPS 256
|
||||
|
@ -32,6 +35,7 @@ enum
|
|||
};
|
||||
|
||||
extern uint8_t curbasepal;
|
||||
extern int32_t r_scenebrightness;
|
||||
|
||||
extern uint8_t PaletteIndexFullbrights[32];
|
||||
|
||||
|
@ -65,11 +69,13 @@ void paletteFreeLookupTable(int32_t palnum);
|
|||
enum ESetPalFlag
|
||||
{
|
||||
Pal_DontResetFade = 1,
|
||||
Pal_SceneBrightness = 2,
|
||||
Pal_Fullscreen = 4,
|
||||
Pal_2D = 8,
|
||||
};
|
||||
|
||||
inline void videoSetBrightness(int brightness)
|
||||
{
|
||||
r_scenebrightness = clamp(brightness, 0, 15);
|
||||
}
|
||||
|
||||
typedef TFlags<ESetPalFlag> ESetPalFlags;
|
||||
DEFINE_TFLAGS_OPERATORS(ESetPalFlags)
|
||||
|
||||
|
|
|
@ -5002,7 +5002,7 @@ void renderSetAspect(int32_t daxrange, int32_t daaspect)
|
|||
//
|
||||
void rotatesprite_(int32_t sx, int32_t sy, int32_t z, int16_t a, int16_t picnum,
|
||||
int8_t dashade, uint8_t dapalnum, int32_t dastat, uint8_t daalpha, uint8_t dablend,
|
||||
int32_t cx1, int32_t cy1, int32_t cx2, int32_t cy2, FTexture *tex)
|
||||
int32_t cx1, int32_t cy1, int32_t cx2, int32_t cy2, FTexture *tex, int basepal)
|
||||
{
|
||||
if (!tex && (unsigned)picnum >= MAXTILES)
|
||||
return;
|
||||
|
@ -5028,7 +5028,7 @@ void rotatesprite_(int32_t sx, int32_t sy, int32_t z, int16_t a, int16_t picnum,
|
|||
}
|
||||
|
||||
// We must store all calls in the 2D drawer so that the backend can operate on a clean 3D view.
|
||||
twod->rotatesprite(sx, sy, z, a, picnum, dashade, dapalnum, dastat, daalpha, dablend, cx1, cy1, cx2, cy2, tex);
|
||||
twod->rotatesprite(sx, sy, z, a, picnum, dashade, dapalnum, dastat, daalpha, dablend, cx1, cy1, cx2, cy2, tex, basepal);
|
||||
|
||||
// RS_PERM code was removed because the current backend supports only one page that needs to be redrawn each frame in which case the perm list was skipped anyway.
|
||||
}
|
||||
|
|
|
@ -569,23 +569,12 @@ void paletteMakeLookupTable(int32_t palnum, const char *remapbuf, uint8_t r, uin
|
|||
// 4: don't calc curbrightness from dabrightness, DON'T USE THIS FLAG!
|
||||
// 8: don't gltexinvalidate8()
|
||||
// 16: don't reset palfade*
|
||||
// 32: apply brightness to scene in OpenGL
|
||||
void videoSetPalette(int dabrightness, int dapalid, ESetPalFlags flags)
|
||||
{
|
||||
if (GPalette.GetTranslation(Translation_BasePalettes, dapalid) == nullptr)
|
||||
dapalid = 0;
|
||||
curbasepal = dapalid;
|
||||
|
||||
// In-scene brightness mode for RR's thunderstorm. This shouldn't affect the global gamma ramp.
|
||||
if ((videoGetRenderMode() >= REND_POLYMOST) && (flags & Pal_SceneBrightness))
|
||||
{
|
||||
r_scenebrightness = clamp(dabrightness, 0, 15);
|
||||
}
|
||||
else
|
||||
{
|
||||
r_scenebrightness = 0;
|
||||
}
|
||||
|
||||
if ((flags & Pal_DontResetFade) == 0)
|
||||
{
|
||||
palfadergb.r = palfadergb.g = palfadergb.b = 0;
|
||||
|
|
|
@ -142,16 +142,21 @@ enum ERenderFlags
|
|||
STYLEF_FadeToBlack = 64,
|
||||
};
|
||||
|
||||
union FRenderStyle
|
||||
struct FRenderStyle
|
||||
{
|
||||
struct
|
||||
union
|
||||
{
|
||||
uint8_t BlendOp; // Of ERenderOp type
|
||||
uint8_t SrcAlpha; // Of ERenderAlpha type
|
||||
uint8_t DestAlpha; // Of ERenderAlpha type
|
||||
uint8_t Flags;
|
||||
struct
|
||||
{
|
||||
uint8_t BlendOp; // Of ERenderOp type
|
||||
uint8_t SrcAlpha; // Of ERenderAlpha type
|
||||
uint8_t DestAlpha; // Of ERenderAlpha type
|
||||
uint8_t Flags;
|
||||
};
|
||||
uint32_t AsDWORD;
|
||||
};
|
||||
uint32_t AsDWORD;
|
||||
|
||||
FRenderStyle() = default;
|
||||
|
||||
inline FRenderStyle &operator= (ERenderStyle legacy);
|
||||
bool operator==(const FRenderStyle &o) const { return AsDWORD == o.AsDWORD; }
|
||||
|
@ -181,4 +186,3 @@ inline FRenderStyle &FRenderStyle::operator= (ERenderStyle legacy)
|
|||
*this = LegacyRenderStyles[legacy];
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
|
@ -628,7 +628,7 @@ static int32_t dorotspr_handle_bit2(int32_t* sxptr, int32_t* syptr, int32_t* z,
|
|||
|
||||
void F2DDrawer::rotatesprite(int32_t sx, int32_t sy, int32_t z, int16_t a, int16_t picnum,
|
||||
int8_t dashade, uint8_t dapalnum, int32_t dastat, uint8_t daalpha, uint8_t dablend,
|
||||
int32_t clipx1, int32_t clipy1, int32_t clipx2, int32_t clipy2, FTexture *pic)
|
||||
int32_t clipx1, int32_t clipy1, int32_t clipx2, int32_t clipy2, FTexture *pic, int basepal)
|
||||
{
|
||||
RenderCommand dg = {};
|
||||
int method = 0;
|
||||
|
@ -659,7 +659,7 @@ void F2DDrawer::rotatesprite(int32_t sx, int32_t sy, int32_t z, int16_t a, int16
|
|||
|
||||
PalEntry p = 0xffffffff;
|
||||
dg.mTexture = pic? pic : TileFiles.tiles[picnum];
|
||||
dg.mRemapIndex = dapalnum | (dashade << 16);
|
||||
dg.mRemapIndex = dapalnum | (basepal << 8) | (dashade << 16);
|
||||
dg.mVertCount = 4;
|
||||
dg.mVertIndex = (int)mVertices.Reserve(4);
|
||||
auto ptr = &mVertices[dg.mVertIndex];
|
||||
|
|
|
@ -142,7 +142,7 @@ public:
|
|||
|
||||
void rotatesprite(int32_t sx, int32_t sy, int32_t z, int16_t a, int16_t picnum,
|
||||
int8_t dashade, uint8_t dapalnum, int32_t dastat, uint8_t daalpha, uint8_t dablend,
|
||||
int32_t cx1, int32_t cy1, int32_t cx2, int32_t cy2, FTexture *pic);
|
||||
int32_t cx1, int32_t cy1, int32_t cx2, int32_t cy2, FTexture *pic = nullptr, int basepal = 0);
|
||||
|
||||
void Clear();
|
||||
|
||||
|
|
|
@ -432,10 +432,7 @@ void OpenGLFrameBuffer::Draw2D()
|
|||
GLRenderer->mBuffers->BindCurrentFB();
|
||||
::DrawFullscreenBlends();
|
||||
DrawRateStuff();
|
||||
auto savepal = curbasepal;
|
||||
if (!(curpaletteflags & (Pal_Fullscreen|Pal_2D))) curbasepal = 0;
|
||||
GLInterface.Draw2D(&twodgen);
|
||||
curbasepal = savepal;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ struct FWriter;
|
|||
struct FReader;
|
||||
class FFont;
|
||||
class FSoundID;
|
||||
union FRenderStyle;
|
||||
struct FRenderStyle;
|
||||
|
||||
inline bool nullcmp(const void *buffer, size_t length)
|
||||
{
|
||||
|
|
|
@ -1624,12 +1624,12 @@ static void Net_SyncPlayer(ENetEvent *event)
|
|||
|
||||
static void display_betascreen(void)
|
||||
{
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536, 0, BETASCREEN, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536, 0, BETASCREEN, 0, 0, 2 + 8 + 64 + BGSTRETCH, nullptr, TITLEPAL);
|
||||
|
||||
rotatesprite_fs(160 << 16, (104) << 16, 60 << 10, 0, DUKENUKEM, 0, 0, 2 + 8);
|
||||
rotatesprite_fs(160 << 16, (129) << 16, 30 << 11, 0, THREEDEE, 0, 0, 2 + 8);
|
||||
rotatesprite_fs(160 << 16, (104) << 16, 60 << 10, 0, DUKENUKEM, 0, 0, 2 + 8, nullptr, TITLEPAL);
|
||||
rotatesprite_fs(160 << 16, (129) << 16, 30 << 11, 0, THREEDEE, 0, 0, 2 + 8, nullptr, TITLEPAL);
|
||||
if (PLUTOPAK) // JBF 20030804
|
||||
rotatesprite_fs(160 << 16, (151) << 16, 30 << 11, 0, PLUTOPAKSPRITE + 1, 0, 0, 2 + 8);
|
||||
rotatesprite_fs(160 << 16, (151) << 16, 30 << 11, 0, PLUTOPAKSPRITE + 1, 0, 0, 2 + 8, nullptr, TITLEPAL);
|
||||
}
|
||||
|
||||
|
||||
|
@ -4696,8 +4696,6 @@ void Net_WaitForServer(void)
|
|||
if (numplayers < 2 || g_netServer)
|
||||
return;
|
||||
|
||||
P_SetGamePalette(g_player[myconnectindex].ps, TITLEPAL, Pal_2D);
|
||||
|
||||
do
|
||||
{
|
||||
if (G_FPSLimit())
|
||||
|
|
|
@ -1045,7 +1045,7 @@ void fadepal(int32_t r, int32_t g, int32_t b, int32_t start, int32_t end, int32_
|
|||
}
|
||||
|
||||
// START and END limits are always inclusive!
|
||||
static void fadepaltile(int32_t r, int32_t g, int32_t b, int32_t start, int32_t end, int32_t step, int32_t tile)
|
||||
static void fadepaltile(int32_t r, int32_t g, int32_t b, int32_t start, int32_t end, int32_t step, int32_t tile, int basepal)
|
||||
{
|
||||
if (ud.screenfade == 0)
|
||||
return;
|
||||
|
@ -1064,7 +1064,7 @@ static void fadepaltile(int32_t r, int32_t g, int32_t b, int32_t start, int32_t
|
|||
return;
|
||||
}
|
||||
|
||||
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, tile, 0, 0, 2+8+64+BGSTRETCH);
|
||||
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, tile, 0, 0, 2+8+64+BGSTRETCH, nullptr, basepal);
|
||||
G_FadePalette(r, g, b, start);
|
||||
start += step;
|
||||
} while (start != end+step);
|
||||
|
@ -1091,11 +1091,11 @@ void gameDisplayTENScreen()
|
|||
inputState.ClearAllInput();
|
||||
totalclock = 0;
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, TENSCREEN, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, TENSCREEN);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, TENSCREEN, BASEPAL);
|
||||
while (!inputState.CheckAllInput() && totalclock < 2400)
|
||||
gameHandleEvents();
|
||||
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, TENSCREEN);
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, TENSCREEN, BASEPAL);
|
||||
inputState.ClearAllInput();
|
||||
#ifdef __ANDROID__
|
||||
inExtraScreens = 0;
|
||||
|
@ -1114,14 +1114,14 @@ void gameDisplaySharewareScreens()
|
|||
fadepal(0, 0, 0, 0, 252, 28);
|
||||
inputState.ClearAllInput();
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, 3291, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, 3291);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, 3291, BASEPAL);
|
||||
while (!inputState.CheckAllInput())
|
||||
gameHandleEvents();
|
||||
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, 3291);
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, 3291, BASEPAL);
|
||||
inputState.ClearAllInput();
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, 3290, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, 3290);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, 3290, BASEPAL);
|
||||
while (!inputState.CheckAllInput())
|
||||
gameHandleEvents();
|
||||
|
||||
|
@ -1158,12 +1158,11 @@ void gameDisplay3DRScreen()
|
|||
{
|
||||
videoClearScreen(0);
|
||||
|
||||
P_SetGamePalette(g_player[myconnectindex].ps, DREALMSPAL, Pal_Fullscreen); // JBF 20040308
|
||||
fadepal(0, 0, 0, 0, 252, 28);
|
||||
renderFlushPerms();
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, DREALMS, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, DREALMS, 0, 0, 2 + 8 + 64 + BGSTRETCH, nullptr, DREALMSPAL);
|
||||
videoNextPage();
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, DREALMS);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, DREALMS, DREALMSPAL);
|
||||
totalclock = 0;
|
||||
|
||||
while (totalclock < (120 * 7) && !inputState.CheckAllInput())
|
||||
|
@ -1171,13 +1170,13 @@ void gameDisplay3DRScreen()
|
|||
if (G_FPSLimit())
|
||||
{
|
||||
videoClearScreen(0);
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, DREALMS, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, DREALMS, 0, 0, 2 + 8 + 64 + BGSTRETCH, nullptr, DREALMSPAL);
|
||||
gameHandleEvents();
|
||||
videoNextPage();
|
||||
}
|
||||
}
|
||||
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, DREALMS);
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, DREALMS, DREALMSPAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1189,12 +1188,9 @@ void gameDisplayTitleScreen(void)
|
|||
|
||||
videoClearScreen(0);
|
||||
|
||||
// g_player[myconnectindex].ps->palette = titlepal;
|
||||
P_SetGamePalette(g_player[myconnectindex].ps, TITLEPAL, Pal_2D); // JBF 20040308
|
||||
renderFlushPerms();
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, BETASCREEN, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, BETASCREEN, 0, 0, 2 + 8 + 64 + BGSTRETCH, nullptr, TITLEPAL);
|
||||
inputState.keyFlushChars();
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, BETASCREEN);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, BETASCREEN, TITLEPAL);
|
||||
totalclock = 0;
|
||||
|
||||
while (
|
||||
|
@ -1206,7 +1202,7 @@ void gameDisplayTitleScreen(void)
|
|||
if (G_FPSLimit())
|
||||
{
|
||||
videoClearScreen(0);
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, BETASCREEN, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, BETASCREEN, 0, 0, 2 + 8 + 64 + BGSTRETCH, nullptr, TITLEPAL);
|
||||
if (logoflags & LOGO_DUKENUKEM)
|
||||
{
|
||||
if (totalclock > 120 && totalclock < (120 + 60))
|
||||
|
@ -1216,10 +1212,10 @@ void gameDisplayTitleScreen(void)
|
|||
titlesound++;
|
||||
S_PlaySound(PIPEBOMB_EXPLODE, CHAN_AUTO, CHANF_UI);
|
||||
}
|
||||
rotatesprite_fs(160 << 16, 104 << 16, ((int32_t) totalclock - 120) << 10, 0, DUKENUKEM, 0, 0, 2 + 8);
|
||||
rotatesprite_fs(160 << 16, 104 << 16, ((int32_t) totalclock - 120) << 10, 0, DUKENUKEM, 0, 0, 2 + 8, nullptr, TITLEPAL);
|
||||
}
|
||||
else if (totalclock >= (120 + 60))
|
||||
rotatesprite_fs(160 << 16, (104) << 16, 60 << 10, 0, DUKENUKEM, 0, 0, 2 + 8);
|
||||
rotatesprite_fs(160 << 16, (104) << 16, 60 << 10, 0, DUKENUKEM, 0, 0, 2 + 8, nullptr, TITLEPAL);
|
||||
}
|
||||
else
|
||||
titlesound++;
|
||||
|
@ -1234,11 +1230,11 @@ void gameDisplayTitleScreen(void)
|
|||
S_PlaySound(PIPEBOMB_EXPLODE, CHAN_AUTO, CHANF_UI);
|
||||
}
|
||||
|
||||
rotatesprite_fs(160 << 16, (104) << 16, 60 << 10, 0, DUKENUKEM, 0, 0, 2 + 8);
|
||||
rotatesprite_fs(160 << 16, (129) << 16, ((int32_t) totalclock - 220) << 11, 0, THREEDEE, 0, 0, 2 + 8);
|
||||
rotatesprite_fs(160 << 16, (104) << 16, 60 << 10, 0, DUKENUKEM, 0, 0, 2 + 8, nullptr, TITLEPAL);
|
||||
rotatesprite_fs(160 << 16, (129) << 16, ((int32_t) totalclock - 220) << 11, 0, THREEDEE, 0, 0, 2 + 8, nullptr, TITLEPAL);
|
||||
}
|
||||
else if (totalclock >= (220 + 30))
|
||||
rotatesprite_fs(160 << 16, (129) << 16, 30 << 11, 0, THREEDEE, 0, 0, 2 + 8);
|
||||
rotatesprite_fs(160 << 16, (129) << 16, 30 << 11, 0, THREEDEE, 0, 0, 2 + 8, nullptr, TITLEPAL);
|
||||
}
|
||||
else
|
||||
titlesound++;
|
||||
|
@ -1249,7 +1245,7 @@ void gameDisplayTitleScreen(void)
|
|||
if (totalclock >= 280 && totalclock < 395)
|
||||
{
|
||||
rotatesprite_fs(160 << 16, (151) << 16, (410 - (int32_t) totalclock) << 12, 0, PLUTOPAKSPRITE + 1,
|
||||
(sintable[((int32_t) totalclock << 4) & 2047] >> 11), 0, 2 + 8);
|
||||
(sintable[((int32_t) totalclock << 4) & 2047] >> 11), 0, 2 + 8, nullptr, TITLEPAL);
|
||||
if (titlesound == 2)
|
||||
{
|
||||
titlesound++;
|
||||
|
@ -1264,21 +1260,12 @@ void gameDisplayTitleScreen(void)
|
|||
S_PlaySound(PIPEBOMB_EXPLODE, CHAN_AUTO, CHANF_UI);
|
||||
}
|
||||
rotatesprite_fs(160 << 16, (151) << 16, 30 << 11, 0, PLUTOPAKSPRITE + 1, (sintable[((int32_t) totalclock << 4) & 2047] >> 11), 0,
|
||||
2 + 8);
|
||||
2 + 8, nullptr, TITLEPAL);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef LUNATIC
|
||||
g_elEventError = 0;
|
||||
#endif
|
||||
VM_OnEvent(EVENT_LOGO, -1, screenpeek);
|
||||
|
||||
videoNextPage();
|
||||
|
||||
#ifdef LUNATIC
|
||||
if (g_elEventError)
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
gameHandleEvents();
|
||||
|
@ -1418,9 +1405,8 @@ static void G_BonusCutscenes(void)
|
|||
350, 380, VICTORY1+8, 86, 59 // duplicate row to alleviate overflow in the for loop below "boss"
|
||||
};
|
||||
|
||||
P_SetGamePalette(g_player[myconnectindex].ps, ENDINGPAL, Pal_Fullscreen); // JBF 20040308
|
||||
videoClearScreen(0L);
|
||||
rotatesprite_fs(0, 50<<16, 65536L, 0, VICTORY1, 0, 0, 2+8+16+64+128+BGSTRETCH);
|
||||
rotatesprite_fs(0, 50 << 16, 65536L, 0, VICTORY1, 0, 0, 2 + 8 + 16 + 64 + 128 + BGSTRETCH, nullptr, ENDINGPAL);
|
||||
videoNextPage();
|
||||
fadepal(0, 0, 0, 252, 0, -4);
|
||||
|
||||
|
@ -1432,7 +1418,7 @@ static void G_BonusCutscenes(void)
|
|||
if (G_FPSLimit())
|
||||
{
|
||||
videoClearScreen(0L);
|
||||
rotatesprite_fs(0, 50<<16, 65536L, 0, VICTORY1, 0, 0, 2+8+16+64+128+BGSTRETCH);
|
||||
rotatesprite_fs(0, 50<<16, 65536L, 0, VICTORY1, 0, 0, 2+8+16+64+128+BGSTRETCH, nullptr, ENDINGPAL);
|
||||
|
||||
// boss
|
||||
if (totalclock > 390 && totalclock < 780)
|
||||
|
@ -1444,7 +1430,7 @@ static void G_BonusCutscenes(void)
|
|||
S_PlaySound(SQUISHED, CHAN_AUTO, CHANF_UI);
|
||||
bonuscnt++;
|
||||
}
|
||||
rotatesprite_fs(bossmove[t+3]<<16, bossmove[t+4]<<16, 65536L, 0, bossmove[t+2], 0, 0, 2+8+16+64+128+BGSTRETCH);
|
||||
rotatesprite_fs(bossmove[t+3]<<16, bossmove[t+4]<<16, 65536L, 0, bossmove[t+2], 0, 0, 2+8+16+64+128+BGSTRETCH, nullptr, ENDINGPAL);
|
||||
}
|
||||
|
||||
// Breathe
|
||||
|
@ -1460,7 +1446,7 @@ static void G_BonusCutscenes(void)
|
|||
|
||||
if (totalclock >= 750)
|
||||
{
|
||||
rotatesprite_fs(86<<16, 59<<16, 65536L, 0, VICTORY1+8, 0, 0, 2+8+16+64+128+BGSTRETCH);
|
||||
rotatesprite_fs(86<<16, 59<<16, 65536L, 0, VICTORY1+8, 0, 0, 2+8+16+64+128+BGSTRETCH, nullptr, ENDINGPAL);
|
||||
if (totalclock >= 750 && bonuscnt == 2)
|
||||
{
|
||||
S_PlaySound(DUKETALKTOBOSS, CHAN_AUTO, CHANF_UI);
|
||||
|
@ -1476,7 +1462,7 @@ static void G_BonusCutscenes(void)
|
|||
S_PlaySound(BOSSTALKTODUKE, CHAN_AUTO, CHANF_UI);
|
||||
bonuscnt++;
|
||||
}
|
||||
rotatesprite_fs(breathe[t+3]<<16, breathe[t+4]<<16, 65536L, 0, breathe[t+2], 0, 0, 2+8+16+64+128+BGSTRETCH);
|
||||
rotatesprite_fs(breathe[t+3]<<16, breathe[t+4]<<16, 65536L, 0, breathe[t+2], 0, 0, 2+8+16+64+128+BGSTRETCH, nullptr, ENDINGPAL);
|
||||
}
|
||||
}
|
||||
videoNextPage();
|
||||
|
|
|
@ -56,7 +56,7 @@ inline int Cos(int angle)
|
|||
}
|
||||
|
||||
int movesprite(short spritenum, int dx, int dy, int dz, int ceildist, int flordist, unsigned int clipmask);
|
||||
void overwritesprite(int thex, int they, short tilenum, signed char shade, char stat, char dapalnum);
|
||||
void overwritesprite(int thex, int they, short tilenum, signed char shade, char stat, char dapalnum, int basepal = 0);
|
||||
void precache();
|
||||
void resettiming();
|
||||
void printext(int x, int y, const char* buffer, short tilenum, char invisiblecol);
|
||||
|
|
|
@ -27,7 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
BEGIN_PS_NS
|
||||
|
||||
|
||||
void overwritesprite(int thex, int they, short tilenum, signed char shade, char stat, char dapalnum)
|
||||
void overwritesprite(int thex, int they, short tilenum, signed char shade, char stat, char dapalnum, int basepal)
|
||||
{
|
||||
#if 0
|
||||
rotatesprite(thex << 16, they << 16, 0x10000, (short)((flags & 8) << 7), tilenum, shade, dapalnum,
|
||||
|
@ -55,7 +55,7 @@ void overwritesprite(int thex, int they, short tilenum, signed char shade, char
|
|||
they += offy;
|
||||
rotatesprite(thex << 16, they << 16, 65536L, (stat & 8) << 7, tilenum, shade, dapalnum,
|
||||
16 + (stat & 2) + ((stat & 4) >> 2) + (((stat & 16) >> 2) ^ ((stat & 8) >> 1)),
|
||||
windowxy1.x, windowxy1.y, windowxy2.x, windowxy2.y);
|
||||
windowxy1.x, windowxy1.y, windowxy2.x, windowxy2.y, nullptr, basepal);
|
||||
picanm[tilenum].sf = animbak;
|
||||
}
|
||||
|
||||
|
|
|
@ -2507,25 +2507,20 @@ void KeyFn1()
|
|||
videoNextPage();
|
||||
}
|
||||
|
||||
extern int currentCinemaPalette;
|
||||
void DoGameOverScene()
|
||||
{
|
||||
FadeOut(0);
|
||||
inputState.ClearAllInput();
|
||||
|
||||
if (LoadCinemaPalette(16) < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
SetOverscan(ANIMPAL);
|
||||
NoClip();
|
||||
overwritesprite(0, 0, kTile3591, 0, 2, kPalNormal);
|
||||
overwritesprite(0, 0, kTile3591, 0, 2, kPalNormal, 16);
|
||||
Clip();
|
||||
videoNextPage();
|
||||
CinemaFadeIn();
|
||||
PlayGameOverSound();
|
||||
WaitAnyKey(3);
|
||||
FadeOut(0);
|
||||
SetOverscan(BASEPAL);
|
||||
}
|
||||
|
||||
void DoTitle()
|
||||
|
@ -2739,7 +2734,7 @@ int CopyCharToBitmap(char nChar, int nTile, int xPos, int yPos)
|
|||
}
|
||||
|
||||
// Note: strings passed should be uppercase
|
||||
int myprintext(int x, int y, const char *str, int shade)
|
||||
int myprintext(int x, int y, const char *str, int shade, int basepal)
|
||||
{
|
||||
if (y < -15 || y >= 200)
|
||||
return x;
|
||||
|
@ -2749,7 +2744,7 @@ int myprintext(int x, int y, const char *str, int shade)
|
|||
while (*c != '\0')
|
||||
{
|
||||
int nTile = seq_GetSeqPicnum(kSeqFont2, 0, (*c) - 32);
|
||||
overwritesprite(x, y, nTile, shade, 2, kPalNormal);
|
||||
overwritesprite(x, y, nTile, shade, 2, kPalNormal, basepal);
|
||||
|
||||
int tileWidth = tilesiz[nTile].x;
|
||||
|
||||
|
|
|
@ -192,7 +192,7 @@ void WaitTicks(int nTicks);
|
|||
void FadeIn();
|
||||
void FadeOut(int bFadeMusic);
|
||||
|
||||
int myprintext(int x, int y, const char *str, int shade);
|
||||
int myprintext(int x, int y, const char *str, int shade, int basepal = 0);
|
||||
int MyGetStringWidth(const char *str);
|
||||
|
||||
void mychangespritesect(int nSprite, int nSector);
|
||||
|
|
|
@ -52,6 +52,7 @@ enum
|
|||
kTagRamses = 61,
|
||||
};
|
||||
|
||||
void uploadCinemaPalettes();
|
||||
ClockTicks ototalclock = 0;
|
||||
|
||||
int initx, inity, initz;
|
||||
|
@ -216,7 +217,7 @@ void InstallEngine()
|
|||
{
|
||||
G_FatalEngineError();
|
||||
}
|
||||
|
||||
uploadCinemaPalettes();
|
||||
LoadPaletteLookups();
|
||||
V_Init2();
|
||||
|
||||
|
|
|
@ -93,9 +93,6 @@ int LoadPaletteLookups()
|
|||
}
|
||||
|
||||
hFile.Read(buffer, 256*64);
|
||||
// TODO: dumb hack
|
||||
if (lookuptables[i])
|
||||
ALIGNED_FREE_AND_NULL(lookuptables[i]);
|
||||
paletteSetLookupTable(i, buffer);
|
||||
|
||||
bGreenPal = 0;
|
||||
|
|
|
@ -64,7 +64,6 @@ uint8_t * PlasmaBuffer;
|
|||
|
||||
uint8_t energytile[66 * 66] = {0};
|
||||
|
||||
uint8_t cinemapal[768];
|
||||
short nLeft[50] = {0};
|
||||
int line;
|
||||
|
||||
|
@ -991,30 +990,21 @@ int nextclock;
|
|||
short nHeight;
|
||||
short nCrawlY;
|
||||
short cinematile;
|
||||
int currentCinemaPalette;
|
||||
|
||||
|
||||
// TODO - moveme
|
||||
int LoadCinemaPalette(int nPal)
|
||||
void uploadCinemaPalettes()
|
||||
{
|
||||
nPal--;
|
||||
|
||||
if (nPal < 0 || nPal >= kMaxCinemaPals) {
|
||||
return -2;
|
||||
for (int i = 0; i < countof(cinpalfname); i++)
|
||||
{
|
||||
uint8_t palette[768] = {};
|
||||
auto hFile = fileSystem.OpenFileReader(cinpalfname[i]);
|
||||
if (hFile.isOpen())
|
||||
hFile.Read(palette, 768);
|
||||
for (auto& c : palette)
|
||||
c <<= 2;
|
||||
paletteSetColorTable(ANIMPAL+i, palette);
|
||||
}
|
||||
|
||||
// original code strcpy'd into a buffer first...
|
||||
|
||||
auto hFile = fileSystem.OpenFileReader(cinpalfname[nPal]);
|
||||
if (!hFile.isOpen()) {
|
||||
return -2;
|
||||
}
|
||||
|
||||
hFile.Read(cinemapal, sizeof(cinemapal));
|
||||
|
||||
for (auto &c : cinemapal)
|
||||
c <<= 2;
|
||||
|
||||
return nPal;
|
||||
}
|
||||
|
||||
//int IncrementCinemaFadeIn()
|
||||
|
@ -1053,8 +1043,7 @@ void CinemaFadeIn()
|
|||
{
|
||||
BlackOut();
|
||||
|
||||
paletteSetColorTable(ANIMPAL, cinemapal);
|
||||
videoSetPalette(0, ANIMPAL, Pal_Fullscreen);
|
||||
//videoSetPalette(0, ANIMPAL, Pal_Fullscreen);
|
||||
|
||||
#ifdef USE_OPENGL
|
||||
if (videoGetRenderMode() >= REND_POLYMOST)
|
||||
|
@ -1135,7 +1124,7 @@ bool AdvanceCinemaText()
|
|||
while (i < linecount && y <= 199)
|
||||
{
|
||||
if (y >= -10) {
|
||||
myprintext(nLeft[i], y, gString[line + i], 0);
|
||||
myprintext(nLeft[i], y, gString[line + i], 0, currentCinemaPalette);
|
||||
}
|
||||
|
||||
i++;
|
||||
|
@ -1171,7 +1160,7 @@ void DoCinemaText(short nVal)
|
|||
|
||||
while (bContinue)
|
||||
{
|
||||
overwritesprite(0, 0, cinematile, 0, 2, kPalNormal);
|
||||
overwritesprite(0, 0, cinematile, 0, 2, kPalNormal, currentCinemaPalette);
|
||||
|
||||
bContinue = AdvanceCinemaText();
|
||||
|
||||
|
@ -1191,53 +1180,47 @@ void GoToTheCinema(int nVal)
|
|||
|
||||
case 0:
|
||||
{
|
||||
LoadCinemaPalette(1);
|
||||
cinematile = 3454;
|
||||
break;
|
||||
}
|
||||
|
||||
case 1:
|
||||
{
|
||||
LoadCinemaPalette(2);
|
||||
cinematile = 3452;
|
||||
break;
|
||||
}
|
||||
|
||||
case 2:
|
||||
{
|
||||
LoadCinemaPalette(3);
|
||||
cinematile = 3449;
|
||||
break;
|
||||
}
|
||||
|
||||
case 3:
|
||||
{
|
||||
LoadCinemaPalette(4);
|
||||
cinematile = 3445;
|
||||
break;
|
||||
}
|
||||
|
||||
case 4:
|
||||
{
|
||||
LoadCinemaPalette(5);
|
||||
cinematile = 3451;
|
||||
break;
|
||||
}
|
||||
|
||||
case 5:
|
||||
{
|
||||
LoadCinemaPalette(6);
|
||||
cinematile = 3448;
|
||||
break;
|
||||
}
|
||||
|
||||
case 6:
|
||||
{
|
||||
LoadCinemaPalette(7);
|
||||
cinematile = 3446;
|
||||
break;
|
||||
}
|
||||
}
|
||||
currentCinemaPalette = nVal;
|
||||
|
||||
#if 0
|
||||
if (ISDEMOVER) {
|
||||
|
@ -1251,12 +1234,12 @@ void GoToTheCinema(int nVal)
|
|||
StopAllSounds();
|
||||
NoClip();
|
||||
|
||||
overwritesprite(0, 0, kMovieTile, 100, 2, kPalNormal);
|
||||
overwritesprite(0, 0, kMovieTile, 100, 2, kPalNormal, currentCinemaPalette);
|
||||
videoNextPage();
|
||||
|
||||
// int386(16, (const union REGS *)&val, (union REGS *)&val)
|
||||
|
||||
overwritesprite(0, 0, cinematile, 0, 2, kPalNormal);
|
||||
overwritesprite(0, 0, cinematile, 0, 2, kPalNormal, currentCinemaPalette);
|
||||
videoNextPage();
|
||||
|
||||
CinemaFadeIn();
|
||||
|
@ -1321,7 +1304,7 @@ void GoToTheCinema(int nVal)
|
|||
|
||||
FadeOut(kTrue);
|
||||
|
||||
overwritesprite(0, 0, kMovieTile, 100, 2, kPalNormal);
|
||||
overwritesprite(0, 0, kMovieTile, 100, 2, kPalNormal, currentCinemaPalette);
|
||||
videoNextPage();
|
||||
|
||||
GrabPalette();
|
||||
|
|
|
@ -605,8 +605,6 @@ bool GameInterface::GenerateSavePic()
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void NoClip()
|
||||
{
|
||||
videoSetViewableArea(0, 0, xdim - 1, ydim - 1);
|
||||
|
|
|
@ -296,7 +296,7 @@ int PaletteManager::LookupPalette(int palette, int palswap, bool brightmap, bool
|
|||
PaletteData* paldata = &palettes[realpal];
|
||||
PalswapData* swapdata = &palswaps[realswap];
|
||||
PalEntry swappedpalette[256];
|
||||
int end = nontransparent255 ? 256 : 255;
|
||||
int end = paldata->colors[255].a == 255 ? 256 : 255;
|
||||
if (!brightmap)
|
||||
{
|
||||
for (int i = 0; i < end; i++)
|
||||
|
@ -331,7 +331,7 @@ int PaletteManager::LookupPalette(int palette, int palswap, bool brightmap, bool
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
if (!nontransparent255) swappedpalette[255] = 0;
|
||||
if (end == 255) swappedpalette[255] = 0;
|
||||
int palid = FindPalette((uint8_t*)swappedpalette);
|
||||
swappedpalmap.Insert(combined, palid);
|
||||
return palid;
|
||||
|
|
|
@ -201,7 +201,7 @@ bool GLInstance::SetTextureInternal(int picnum, FTexture* tex, int palette, int
|
|||
applytint = true;
|
||||
if (!(h.f & HICTINT_APPLYOVERPALSWAP)) usepalswap = 0;
|
||||
}
|
||||
lookuppal = palmanager.LookupPalette(usepalette, usepalswap, false,fixpalette < 0? !!(curpaletteflags & Pal_Fullscreen) : 0);
|
||||
lookuppal = palmanager.LookupPalette(usepalette, usepalswap, false, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -286,7 +286,7 @@ bool GLInstance::SetTextureInternal(int picnum, FTexture* tex, int palette, int
|
|||
}
|
||||
}
|
||||
#if 1
|
||||
if (!(tex->PicAnim.sf & PICANM_NOFULLBRIGHT_BIT) && !(globalflags & GLOBAL_NO_GL_FULLBRIGHT) && !tex->NoBrightmapFlag[usepalswap] && !(curpaletteflags & (Pal_Fullscreen|Pal_2D)))
|
||||
if (!(tex->PicAnim.sf & PICANM_NOFULLBRIGHT_BIT) && !(globalflags & GLOBAL_NO_GL_FULLBRIGHT) && !tex->NoBrightmapFlag[usepalswap])
|
||||
{
|
||||
if (TextureType == TT_HICREPLACE)
|
||||
{
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include "v_draw.h"
|
||||
#include "palette.h"
|
||||
#include "flatvertices.h"
|
||||
#include "build.h"
|
||||
|
||||
extern int16_t numshades;
|
||||
extern TArray<VSMatrix> matrixArray;
|
||||
|
@ -173,7 +174,13 @@ void GLInstance::Draw2D(F2DDrawer *drawer)
|
|||
// todo: Set up hictinting. (broken as the feature is...)
|
||||
SetShade(cmd.mRemapIndex >> 16, numshades);
|
||||
SetFadeDisable(false);
|
||||
SetTexture(0, tex, cmd.mRemapIndex & 0xffff, 4/*DAMETH_CLAMPED*/, cmd.mFlags & F2DDrawer::DTF_Wrap ? SamplerRepeat : SamplerClampXY);
|
||||
auto saved = curbasepal; // screw Build's dependencies on global state variables. We only need to change this for the following SetTexture call.
|
||||
curbasepal = (cmd.mRemapIndex >> 8) & 0xff;
|
||||
auto savedf = globalflags;
|
||||
if (curbasepal > 0) globalflags |= GLOBAL_NO_GL_FULLBRIGHT; // temp. hack to disable brightmaps.
|
||||
SetTexture(0, tex, cmd.mRemapIndex & 0xff, 4/*DAMETH_CLAMPED*/, cmd.mFlags & F2DDrawer::DTF_Wrap ? SamplerRepeat : SamplerClampXY);
|
||||
curbasepal = saved;
|
||||
globalflags = savedf;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -132,12 +132,12 @@ void Net_SyncPlayer(ENetEvent *event)
|
|||
|
||||
static void display_betascreen(void)
|
||||
{
|
||||
rotatesprite_fs(160<<16,100<<16,65536,0,BETASCREEN,0,0,2+8+64+BGSTRETCH);
|
||||
rotatesprite_fs(160<<16,100<<16,65536,0,BETASCREEN,0,0,2+8+64+BGSTRETCH, nullptr, TITLEPAL);
|
||||
|
||||
rotatesprite_fs(160<<16,(104)<<16,60<<10,0,DUKENUKEM,0,0,2+8);
|
||||
rotatesprite_fs(160<<16,(129)<<16,30<<11,0,THREEDEE,0,0,2+8);
|
||||
rotatesprite_fs(160<<16,(104)<<16,60<<10,0,DUKENUKEM,0,0,2+8, nullptr, TITLEPAL);
|
||||
rotatesprite_fs(160<<16,(129)<<16,30<<11,0,THREEDEE,0,0,2+8, nullptr, TITLEPAL);
|
||||
if (PLUTOPAK) // JBF 20030804
|
||||
rotatesprite_fs(160<<16,(151)<<16,30<<11,0,PLUTOPAKSPRITE+1,0,0,2+8);
|
||||
rotatesprite_fs(160<<16,(151)<<16,30<<11,0,PLUTOPAKSPRITE+1,0,0,2+8, nullptr, TITLEPAL);
|
||||
}
|
||||
|
||||
void faketimerhandler(void)
|
||||
|
@ -166,8 +166,6 @@ void Net_WaitForEverybody(void)
|
|||
}
|
||||
|
||||
|
||||
P_SetGamePalette(g_player[myconnectindex].ps, TITLEPAL, Pal_2D);
|
||||
|
||||
do
|
||||
{
|
||||
if (G_FPSLimit())
|
||||
|
|
|
@ -1010,7 +1010,7 @@ void fadepal(int32_t r, int32_t g, int32_t b, int32_t start, int32_t end, int32_
|
|||
}
|
||||
|
||||
// START and END limits are always inclusive!
|
||||
static void fadepaltile(int32_t r, int32_t g, int32_t b, int32_t start, int32_t end, int32_t step, int32_t tile)
|
||||
static void fadepaltile(int32_t r, int32_t g, int32_t b, int32_t start, int32_t end, int32_t step, int32_t tile, int basepal)
|
||||
{
|
||||
if (ud.screenfade == 0)
|
||||
return;
|
||||
|
@ -1028,7 +1028,7 @@ static void fadepaltile(int32_t r, int32_t g, int32_t b, int32_t start, int32_t
|
|||
videoFadePalette(r, g, b, end); // have to set to end fade value if we break!
|
||||
return;
|
||||
}
|
||||
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, tile, 0, 0, 2+8+64+BGSTRETCH);
|
||||
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, tile, 0, 0, 2+8+64+BGSTRETCH, nullptr, basepal);
|
||||
G_FadePalette(r, g, b, start);
|
||||
|
||||
start += step;
|
||||
|
@ -1051,13 +1051,13 @@ void G_DisplayExtraScreens(void)
|
|||
fadepal(0, 0, 0, 0, 252, 28);
|
||||
inputState.ClearAllInput();
|
||||
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, 3291, 0, 0, 2+8+64+BGSTRETCH);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, 3291);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, 3291, BASEPAL);
|
||||
while (!inputState.CheckAllInput())
|
||||
G_HandleAsync();
|
||||
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, 3291);
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, 3291, BASEPAL);
|
||||
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, 3290, 0, 0, 2+8+64+BGSTRETCH);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, 3290);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, 3290, BASEPAL);
|
||||
while (!inputState.CheckAllInput())
|
||||
G_HandleAsync();
|
||||
|
||||
|
@ -1073,11 +1073,11 @@ void G_DisplayExtraScreens(void)
|
|||
inputState.ClearAllInput();
|
||||
totalclock = 0;
|
||||
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, TENSCREEN, 0, 0, 2+8+64+BGSTRETCH);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, TENSCREEN);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, TENSCREEN, BASEPAL);
|
||||
while (!inputState.CheckAllInput() && totalclock < 2400)
|
||||
G_HandleAsync();
|
||||
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, TENSCREEN);
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, TENSCREEN, BASEPAL);
|
||||
inputState.ClearAllInput();
|
||||
}
|
||||
}
|
||||
|
@ -1113,7 +1113,7 @@ void G_DisplayLogo(void)
|
|||
renderFlushPerms();
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, 7106, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
videoNextPage();
|
||||
fadepaltile(0, 0, 0, 252, 0, -4, 7106);
|
||||
fadepaltile(0, 0, 0, 252, 0, -4, 7106, BASEPAL);
|
||||
totalclock = 0;
|
||||
|
||||
while (totalclock < (120 * 3) && !inputState.CheckAllInput())
|
||||
|
@ -1133,7 +1133,7 @@ void G_DisplayLogo(void)
|
|||
}
|
||||
}
|
||||
|
||||
fadepaltile(0, 0, 0, 0, 252, 4, 7106);
|
||||
fadepaltile(0, 0, 0, 0, 252, 4, 7106, BASEPAL);
|
||||
}
|
||||
|
||||
videoClearScreen(0L);
|
||||
|
@ -1158,7 +1158,7 @@ void G_DisplayLogo(void)
|
|||
renderFlushPerms();
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, 7107, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
videoNextPage();
|
||||
fadepaltile(0, 0, 0, 252, 0, -4, 7107);
|
||||
fadepaltile(0, 0, 0, 252, 0, -4, 7107, BASEPAL);
|
||||
totalclock = 0;
|
||||
|
||||
while (totalclock < (120 * 3) && !inputState.CheckAllInput())
|
||||
|
@ -1178,7 +1178,7 @@ void G_DisplayLogo(void)
|
|||
}
|
||||
}
|
||||
|
||||
fadepaltile(0, 0, 0, 0, 252, 4, 7107);
|
||||
fadepaltile(0, 0, 0, 0, 252, 4, 7107, BASEPAL);
|
||||
}
|
||||
|
||||
inputState.ClearAllInput();
|
||||
|
@ -1285,12 +1285,11 @@ void G_DisplayLogo(void)
|
|||
{
|
||||
videoClearScreen(0);
|
||||
|
||||
P_SetGamePalette(g_player[myconnectindex].ps, DREALMSPAL, Pal_Fullscreen); // JBF 20040308
|
||||
fadepal(0, 0, 0, 0, 252, 28);
|
||||
renderFlushPerms();
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, DREALMS, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, DREALMS, 0, 0, 2 + 8 + 64 + BGSTRETCH, nullptr, DREALMSPAL);
|
||||
videoNextPage();
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, DREALMS);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, DREALMS, DREALMSPAL);
|
||||
totalclock = 0;
|
||||
|
||||
while (totalclock < (120 * 7) && !inputState.CheckAllInput())
|
||||
|
@ -1298,13 +1297,13 @@ void G_DisplayLogo(void)
|
|||
if (G_FPSLimit())
|
||||
{
|
||||
videoClearScreen(0);
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, DREALMS, 0, 0, 2 + 8 + 64 + BGSTRETCH);
|
||||
rotatesprite_fs(160 << 16, 100 << 16, 65536L, 0, DREALMS, 0, 0, 2 + 8 + 64 + BGSTRETCH, nullptr, DREALMSPAL);
|
||||
G_HandleAsync();
|
||||
videoNextPage();
|
||||
}
|
||||
}
|
||||
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, DREALMS);
|
||||
fadepaltile(0, 0, 0, 0, 252, 28, DREALMS, DREALMSPAL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1319,11 +1318,10 @@ void G_DisplayLogo(void)
|
|||
videoClearScreen(0);
|
||||
|
||||
//g_player[myconnectindex].ps->palette = titlepal;
|
||||
P_SetGamePalette(g_player[myconnectindex].ps, TITLEPAL, Pal_2D); // JBF 20040308
|
||||
renderFlushPerms();
|
||||
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, BETASCREEN, 0, 0, 2+8+64+BGSTRETCH);
|
||||
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, BETASCREEN, 0, 0, 2+8+64+BGSTRETCH, nullptr, TITLEPAL);
|
||||
inputState.keyFlushChars();
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, BETASCREEN);
|
||||
fadepaltile(0, 0, 0, 252, 0, -28, BETASCREEN, TITLEPAL);
|
||||
totalclock = 0;
|
||||
|
||||
while (
|
||||
|
@ -1333,7 +1331,7 @@ void G_DisplayLogo(void)
|
|||
if (G_FPSLimit())
|
||||
{
|
||||
videoClearScreen(0);
|
||||
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, BETASCREEN, 0, 0, 2+8+64+BGSTRETCH);
|
||||
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, BETASCREEN, 0, 0, 2+8+64+BGSTRETCH, nullptr, TITLEPAL);
|
||||
|
||||
if (totalclock > 120 && totalclock < (120+60))
|
||||
{
|
||||
|
@ -1342,10 +1340,10 @@ void G_DisplayLogo(void)
|
|||
soundanm++;
|
||||
S_PlaySound(PIPEBOMB_EXPLODE, CHAN_AUTO, CHANF_UI);
|
||||
}
|
||||
rotatesprite_fs(160<<16, 104<<16, ((int32_t) totalclock-120)<<10, 0, DUKENUKEM, 0, 0, 2+8);
|
||||
rotatesprite_fs(160<<16, 104<<16, ((int32_t) totalclock-120)<<10, 0, DUKENUKEM, 0, 0, 2+8, nullptr, TITLEPAL);
|
||||
}
|
||||
else if (totalclock >= (120+60))
|
||||
rotatesprite_fs(160<<16, (104)<<16, 60<<10, 0, DUKENUKEM, 0, 0, 2+8);
|
||||
rotatesprite_fs(160<<16, (104)<<16, 60<<10, 0, DUKENUKEM, 0, 0, 2+8, nullptr, TITLEPAL);
|
||||
|
||||
if (totalclock > 220 && totalclock < (220+30))
|
||||
{
|
||||
|
@ -1355,18 +1353,18 @@ void G_DisplayLogo(void)
|
|||
S_PlaySound(PIPEBOMB_EXPLODE, CHAN_AUTO, CHANF_UI);
|
||||
}
|
||||
|
||||
rotatesprite_fs(160<<16, (104)<<16, 60<<10, 0, DUKENUKEM, 0, 0, 2+8);
|
||||
rotatesprite_fs(160<<16, (129)<<16, ((int32_t) totalclock - 220)<<11, 0, THREEDEE, 0, 0, 2+8);
|
||||
rotatesprite_fs(160<<16, (104)<<16, 60<<10, 0, DUKENUKEM, 0, 0, 2+8, nullptr, TITLEPAL);
|
||||
rotatesprite_fs(160<<16, (129)<<16, ((int32_t) totalclock - 220)<<11, 0, THREEDEE, 0, 0, 2+8, nullptr, TITLEPAL);
|
||||
}
|
||||
else if (totalclock >= (220+30))
|
||||
rotatesprite_fs(160<<16, (129)<<16, 30<<11, 0, THREEDEE, 0, 0, 2+8);
|
||||
rotatesprite_fs(160<<16, (129)<<16, 30<<11, 0, THREEDEE, 0, 0, 2+8, nullptr, TITLEPAL);
|
||||
|
||||
if (PLUTOPAK)
|
||||
{
|
||||
// JBF 20030804
|
||||
if (totalclock >= 280 && totalclock < 395)
|
||||
{
|
||||
rotatesprite_fs(160<<16, (151)<<16, (410-(int32_t) totalclock)<<12, 0, PLUTOPAKSPRITE+1, (sintable[((int32_t) totalclock<<4)&2047]>>11), 0, 2+8);
|
||||
rotatesprite_fs(160<<16, (151)<<16, (410-(int32_t) totalclock)<<12, 0, PLUTOPAKSPRITE+1, (sintable[((int32_t) totalclock<<4)&2047]>>11), 0, 2+8, nullptr, TITLEPAL);
|
||||
if (soundanm == 2)
|
||||
{
|
||||
soundanm++;
|
||||
|
@ -1380,7 +1378,7 @@ void G_DisplayLogo(void)
|
|||
soundanm++;
|
||||
S_PlaySound(PIPEBOMB_EXPLODE, CHAN_AUTO, CHANF_UI);
|
||||
}
|
||||
rotatesprite_fs(160<<16, (151)<<16, 30<<11, 0, PLUTOPAKSPRITE+1, (sintable[((int32_t) totalclock<<4)&2047]>>11), 0, 2+8);
|
||||
rotatesprite_fs(160<<16, (151)<<16, 30<<11, 0, PLUTOPAKSPRITE+1, (sintable[((int32_t) totalclock<<4)&2047]>>11), 0, 2+8, nullptr, TITLEPAL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1509,9 +1507,8 @@ static void G_BonusCutscenes(void)
|
|||
350, 380, VICTORY1+8, 86, 59 // duplicate row to alleviate overflow in the for loop below "boss"
|
||||
};
|
||||
|
||||
P_SetGamePalette(g_player[myconnectindex].ps, ENDINGPAL, Pal_Fullscreen); // JBF 20040308
|
||||
videoClearScreen(0L);
|
||||
rotatesprite_fs(0, 50<<16, 65536L, 0, VICTORY1, 0, 0, 2+8+16+64+128+BGSTRETCH);
|
||||
rotatesprite_fs(0, 50<<16, 65536L, 0, VICTORY1, 0, 0, 2+8+16+64+128+BGSTRETCH, nullptr, ENDINGPAL);
|
||||
videoNextPage();
|
||||
fadepal(0, 0, 0, 252, 0, -4);
|
||||
|
||||
|
@ -1523,7 +1520,7 @@ static void G_BonusCutscenes(void)
|
|||
if (G_FPSLimit())
|
||||
{
|
||||
videoClearScreen(0L);
|
||||
rotatesprite_fs(0, 50<<16, 65536L, 0, VICTORY1, 0, 0, 2+8+16+64+128+BGSTRETCH);
|
||||
rotatesprite_fs(0, 50 << 16, 65536L, 0, VICTORY1, 0, 0, 2 + 8 + 16 + 64 + 128 + BGSTRETCH, nullptr, ENDINGPAL);
|
||||
|
||||
// boss
|
||||
if (totalclock > 390 && totalclock < 780)
|
||||
|
@ -1535,7 +1532,7 @@ static void G_BonusCutscenes(void)
|
|||
S_PlaySound(SQUISHED, CHAN_AUTO, CHANF_UI);
|
||||
bonuscnt++;
|
||||
}
|
||||
rotatesprite_fs(bossmove[t+3]<<16, bossmove[t+4]<<16, 65536L, 0, bossmove[t+2], 0, 0, 2+8+16+64+128+BGSTRETCH);
|
||||
rotatesprite_fs(bossmove[t+3]<<16, bossmove[t+4]<<16, 65536L, 0, bossmove[t+2], 0, 0, 2+8+16+64+128+BGSTRETCH, nullptr, ENDINGPAL);
|
||||
}
|
||||
|
||||
// Breathe
|
||||
|
@ -1551,7 +1548,7 @@ static void G_BonusCutscenes(void)
|
|||
|
||||
if (totalclock >= 750)
|
||||
{
|
||||
rotatesprite_fs(86<<16, 59<<16, 65536L, 0, VICTORY1+8, 0, 0, 2+8+16+64+128+BGSTRETCH);
|
||||
rotatesprite_fs(86<<16, 59<<16, 65536L, 0, VICTORY1+8, 0, 0, 2+8+16+64+128+BGSTRETCH, nullptr, ENDINGPAL);
|
||||
if (totalclock >= 750 && bonuscnt == 2)
|
||||
{
|
||||
S_PlaySound(DUKETALKTOBOSS, CHAN_AUTO, CHANF_UI);
|
||||
|
@ -1567,7 +1564,7 @@ static void G_BonusCutscenes(void)
|
|||
S_PlaySound(BOSSTALKTODUKE, CHAN_AUTO, CHANF_UI);
|
||||
bonuscnt++;
|
||||
}
|
||||
rotatesprite_fs(breathe[t+3]<<16, breathe[t+4]<<16, 65536L, 0, breathe[t+2], 0, 0, 2+8+16+64+128+BGSTRETCH);
|
||||
rotatesprite_fs(breathe[t+3]<<16, breathe[t+4]<<16, 65536L, 0, breathe[t+2], 0, 0, 2+8+16+64+128+BGSTRETCH, nullptr, ENDINGPAL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5270,7 +5270,7 @@ void G_Thunder(void)
|
|||
{
|
||||
brightness = 0;
|
||||
g_thunderFlash = 0;
|
||||
videoSetPalette(0,g_player[screenpeek].ps->palette,Pal_SceneBrightness);
|
||||
videoSetBrightness(0);
|
||||
g_visibility = g_player[screenpeek].ps->visibility;
|
||||
}
|
||||
}
|
||||
|
@ -5313,7 +5313,7 @@ void G_Thunder(void)
|
|||
g_visibility = 2048;
|
||||
if (brightness > 8)
|
||||
brightness = 0;
|
||||
videoSetPalette(brightness,g_player[screenpeek].ps->palette,Pal_SceneBrightness);
|
||||
videoSetBrightness(brightness);
|
||||
}
|
||||
if (g_winderFlash == 1)
|
||||
{
|
||||
|
|
|
@ -1417,7 +1417,6 @@ void LogoLevel(void)
|
|||
DSPRINTF(ds,"LogoLevel...");
|
||||
MONO_PRINT(ds);
|
||||
|
||||
videoSetPalette(0, DREALMSPAL, Pal_Fullscreen);
|
||||
MONO_PRINT(ds);
|
||||
|
||||
//FadeOut(0, 0);
|
||||
|
@ -1434,7 +1433,7 @@ void LogoLevel(void)
|
|||
while (TRUE)
|
||||
{
|
||||
twod->ClearScreen();
|
||||
rotatesprite(0, 0, RS_SCALE, 0, THREED_REALMS_PIC, 0, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1);
|
||||
rotatesprite(0, 0, RS_SCALE, 0, THREED_REALMS_PIC, 0, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1, nullptr, DREALMSPAL);
|
||||
videoNextPage();
|
||||
|
||||
handleevents();
|
||||
|
|
Loading…
Reference in a new issue