- shareware screens

This commit is contained in:
Christoph Oelckers 2020-06-30 00:15:48 +02:00
parent 7253b4eb74
commit e92ca71fe5
5 changed files with 50 additions and 74 deletions

View file

@ -785,6 +785,39 @@ void ShowMPBonusScreen_d(int pws, CompletionFunc completion)
RunScreenJob(&job, 1, completion);
}
//---------------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------------
void showtwoscreens(CompletionFunc completion)
{
JobDesc jobs[2];
int job = 0;
jobs[job++] = { Create<DImageScreen>(3291), nullptr };
jobs[job++] = { Create<DImageScreen>(3290), nullptr };
RunScreenJob(jobs, job, completion);
}
void doorders(CompletionFunc completion)
{
JobDesc jobs[2];
int job = 0;
for(int i=0;i<4;i++)
jobs[job++] = { Create<DImageScreen>(ORDERING+i), nullptr };
RunScreenJob(jobs, job, completion);
}
//---------------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------------
#if 1
CCMD(testbonus)

View file

@ -38,8 +38,6 @@ source as it is released.
BEGIN_DUKE_NS
int16_t max_ammo_amount[MAX_WEAPONS];
//---------------------------------------------------------------------------
//
// setpal

View file

@ -20,10 +20,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
//-------------------------------------------------------------------------
#include "screenjob.h"
BEGIN_DUKE_NS
extern void G_DisplayExtraScreens(void);
extern void G_DoOrderScreen(void);
extern void showtwoscreens(CompletionFunc func);
extern void doorders(CompletionFunc func);
#ifdef DEBUGGINGAIDS
typedef struct {

View file

@ -47,6 +47,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "mapinfo.h"
#include "v_video.h"
#include "glbackend/glbackend.h"
#include "st_start.h"
#include "i_interface.h"
// Uncomment to prevent anything except mirrors from drawing. It is sensible to
// also uncomment ENGINE_CLEAR_SCREEN in build/src/engine_priv.h.
@ -60,6 +62,8 @@ BEGIN_DUKE_NS
void SetDispatcher();
void checkcommandline();
int16_t max_ammo_amount[MAX_WEAPONS];
uint8_t shadedsector[MAXSECTORS];
int32_t g_fakeMultiMode = 0;
@ -191,8 +195,8 @@ void G_GameExit(const char *msg)
}
// shareware and TEN screens
if (*msg != 0 && *(msg+1) != 'V' && *(msg+1) != 'Y')
G_DisplayExtraScreens();
if (*msg != 0 && *(msg+1) != 'V' && *(msg+1) != 'Y' && !VOLUMEALL && !RR)
showtwoscreens([](bool) {});
}
if (*msg != 0)
@ -202,7 +206,12 @@ void G_GameExit(const char *msg)
I_Error("%s", msg);
}
}
throw CExitEvent(0);
if (!RR)
{
endoomName = VOLUMEALL ? "duke3d.bin" : "dukesw.bin";
ST_Endoom();
}
else throw CExitEvent(0);
}
@ -1801,7 +1810,7 @@ static int G_EndOfLevel(void)
if ((!g_netServer && ud.multimode < 2))
{
if (!VOLUMEALL)
G_DoOrderScreen();
doorders([](bool) {});
g_player[myconnectindex].ps->gm = 0;
return 2;
}

View file

@ -1009,72 +1009,6 @@ static void fadepaltile(int32_t r, int32_t g, int32_t b, int32_t start, int32_t
} while (start != end+step);
}
void G_DisplayExtraScreens(void)
{
Mus_Stop();
FX_StopAllSounds();
if (RR)
return;
if (!VOLUMEALL)
{
videoSetViewableArea(0, 0, xdim-1, ydim-1);
renderFlushPerms();
//g_player[myconnectindex].ps->palette = palette;
P_SetGamePalette(g_player[myconnectindex].ps, BASEPAL, 0); // JBF 20040308
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, BASEPAL);
while (!inputState.CheckAllInput())
G_HandleAsync();
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, BASEPAL);
while (!inputState.CheckAllInput())
G_HandleAsync();
}
if (0)
{
videoSetViewableArea(0, 0, xdim-1, ydim-1);
renderFlushPerms();
//g_player[myconnectindex].ps->palette = palette;
P_SetGamePalette(g_player[myconnectindex].ps, BASEPAL, 0); // JBF 20040308
fadepal(0, 0, 0, 0, 252, 28);
inputState.ClearAllInput();
totalclock = 0;
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, TILE_TENSCREEN, 0, 0, 2+8+64+BGSTRETCH);
fadepaltile(0, 0, 0, 252, 0, -28, TILE_TENSCREEN, BASEPAL);
while (!inputState.CheckAllInput() && totalclock < 2400)
G_HandleAsync();
fadepaltile(0, 0, 0, 0, 252, 28, TILE_TENSCREEN, BASEPAL);
inputState.ClearAllInput();
}
}
void G_DoOrderScreen(void)
{
int32_t i;
videoSetViewableArea(0, 0, xdim-1, ydim-1);
P_SetGamePalette(g_player[myconnectindex].ps, BASEPAL, 0); // JBF 20040308
for (i=0; i<4; i++)
{
fadepal(0, 0, 0, 0, 252, 28);
inputState.ClearAllInput();
rotatesprite_fs(160<<16, 100<<16, 65536L, 0, TILE_ORDERING+i, 0, 0, 2+8+64+BGSTRETCH);
fadepal(0, 0, 0, 252, 0, -28);
while (!inputState.CheckAllInput())
G_HandleAsync();
}
}
void bonussequence_d(int num, CompletionFunc completion);
void bonussequence_r(int num, CompletionFunc completion);