mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-03-20 01:11:18 +00:00
first step of centerprint/finale cleanup. fixes the misplaced text for
end-of-episode text
This commit is contained in:
parent
f52b4e8aec
commit
2955fac550
10 changed files with 80 additions and 48 deletions
|
@ -49,12 +49,14 @@ void SCR_CalcRefdef (void);
|
|||
void SCR_BeginLoadingPlaque (void);
|
||||
void SCR_EndLoadingPlaque (void);
|
||||
|
||||
struct view_s;
|
||||
void SCR_DrawRam (void);
|
||||
void SCR_DrawFPS (void);
|
||||
void SCR_DrawTime (void);
|
||||
void SCR_DrawTurtle (void);
|
||||
void SCR_DrawPause (void);
|
||||
void SCR_CheckDrawCenterString (void);
|
||||
void SCR_DrawCenterString (struct view_s *view);
|
||||
void SCR_CheckDrawCenterString (struct view_s *view);
|
||||
|
||||
struct tex_s *SCR_ScreenShot (int width, int height);
|
||||
void SCR_DrawStringToSnap (const char *s, struct tex_s *tex, int x, int y);
|
||||
|
|
|
@ -51,6 +51,7 @@ void Sbar_IntermissionOverlay (void);
|
|||
// called each frame after the level has been completed
|
||||
|
||||
void Sbar_FinaleOverlay (void);
|
||||
void Sbar_DrawCenterPrint (void);
|
||||
|
||||
void Sbar_LogFrags (void);
|
||||
|
||||
|
|
|
@ -254,18 +254,9 @@ SCR_UpdateScreen (double realtime, SCR_Func *scr_funcs)
|
|||
// draw any areas not covered by the refresh
|
||||
SCR_TileClear ();
|
||||
|
||||
if (r_force_fullscreen /*FIXME better test*/ == 1 && key_dest ==
|
||||
key_game) {
|
||||
Sbar_IntermissionOverlay ();
|
||||
} else if (r_force_fullscreen /*FIXME better test*/ == 2 &&
|
||||
key_dest == key_game) {
|
||||
Sbar_FinaleOverlay ();
|
||||
SCR_CheckDrawCenterString ();
|
||||
} else {
|
||||
while (*scr_funcs) {
|
||||
(*scr_funcs)();
|
||||
scr_funcs++;
|
||||
}
|
||||
while (*scr_funcs) {
|
||||
(*scr_funcs)();
|
||||
scr_funcs++;
|
||||
}
|
||||
|
||||
if (r_speeds->int_val) {
|
||||
|
|
|
@ -47,6 +47,7 @@ static __attribute__ ((unused)) const char rcsid[] =
|
|||
#include "QF/render.h"
|
||||
#include "QF/screen.h"
|
||||
#include "QF/sys.h"
|
||||
#include "QF/view.h"
|
||||
|
||||
#include "compat.h"
|
||||
#include "r_cvar.h"
|
||||
|
@ -214,8 +215,8 @@ SCR_CenterPrint (const char *str)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
SCR_DrawCenterString (void)
|
||||
void
|
||||
SCR_DrawCenterString (view_t *view)
|
||||
{
|
||||
char *start;
|
||||
int remaining, j, l, x, y;
|
||||
|
@ -231,16 +232,16 @@ SCR_DrawCenterString (void)
|
|||
start = scr_centerstring;
|
||||
|
||||
if (scr_center_lines <= 4)
|
||||
y = vid.height * 0.35;
|
||||
y = view->yabs + view->ylen * 0.35;
|
||||
else
|
||||
y = 48;
|
||||
y = view->yabs + 48;
|
||||
|
||||
do {
|
||||
// scan the width of the line
|
||||
for (l = 0; l < 40; l++)
|
||||
if (start[l] == '\n' || !start[l])
|
||||
break;
|
||||
x = (vid.width - l * 8) / 2;
|
||||
x = view->xabs + (view->xlen - l * 8) / 2;
|
||||
for (j = 0; j < l; j++, x += 8) {
|
||||
Draw_Character (x, y, start[j]);
|
||||
if (!remaining--)
|
||||
|
@ -259,7 +260,7 @@ SCR_DrawCenterString (void)
|
|||
}
|
||||
|
||||
void
|
||||
SCR_CheckDrawCenterString (void)
|
||||
SCR_CheckDrawCenterString (view_t *view)
|
||||
{
|
||||
scr_copytop = 1;
|
||||
if (scr_center_lines > scr_erase_lines)
|
||||
|
@ -272,7 +273,7 @@ SCR_CheckDrawCenterString (void)
|
|||
if (key_dest != key_game)
|
||||
return;
|
||||
|
||||
SCR_DrawCenterString ();
|
||||
SCR_DrawCenterString (view);
|
||||
}
|
||||
|
||||
float
|
||||
|
|
|
@ -239,16 +239,9 @@ SCR_UpdateScreen (double realtime, SCR_Func *scr_funcs)
|
|||
D_EnableBackBufferAccess (); // of all overlay stuff if drawing
|
||||
// directly
|
||||
|
||||
if (r_force_fullscreen /*FIXME*/ == 1 && key_dest == key_game) {
|
||||
Sbar_IntermissionOverlay ();
|
||||
} else if (r_force_fullscreen /*FIXME*/ == 2 && key_dest == key_game) {
|
||||
Sbar_FinaleOverlay ();
|
||||
SCR_CheckDrawCenterString ();
|
||||
} else {
|
||||
while (*scr_funcs) {
|
||||
(*scr_funcs)();
|
||||
scr_funcs++;
|
||||
}
|
||||
while (*scr_funcs) {
|
||||
(*scr_funcs)();
|
||||
scr_funcs++;
|
||||
}
|
||||
|
||||
D_DisableBackBufferAccess (); // for adapters that can't stay mapped
|
||||
|
|
|
@ -260,16 +260,9 @@ SCR_UpdateScreen (double realtime, SCR_Func *scr_funcs)
|
|||
D_EnableBackBufferAccess (); // of all overlay stuff if drawing
|
||||
// directly
|
||||
|
||||
if (r_force_fullscreen /*FIXME*/ == 1 && key_dest == key_game) {
|
||||
Sbar_IntermissionOverlay ();
|
||||
} else if (r_force_fullscreen /*FIXME*/ == 2 && key_dest == key_game) {
|
||||
Sbar_FinaleOverlay ();
|
||||
SCR_CheckDrawCenterString ();
|
||||
} else {
|
||||
while (*scr_funcs) {
|
||||
(*scr_funcs)();
|
||||
scr_funcs++;
|
||||
}
|
||||
while (*scr_funcs) {
|
||||
(*scr_funcs)();
|
||||
scr_funcs++;
|
||||
}
|
||||
|
||||
D_DisableBackBufferAccess (); // for adapters that can't stay mapped
|
||||
|
|
|
@ -64,23 +64,43 @@ SCR_DrawNet (void)
|
|||
Draw_Pic (scr_vrect.x + 64, scr_vrect.y, scr_net);
|
||||
}
|
||||
|
||||
static SCR_Func scr_funcs[] = {
|
||||
static SCR_Func scr_funcs_normal[] = {
|
||||
Draw_Crosshair,
|
||||
SCR_DrawRam,
|
||||
SCR_DrawNet,
|
||||
SCR_DrawTurtle,
|
||||
SCR_DrawPause,
|
||||
SCR_CheckDrawCenterString,
|
||||
Sbar_DrawCenterPrint,
|
||||
Sbar_Draw,
|
||||
Con_DrawConsole,
|
||||
0
|
||||
};
|
||||
|
||||
static SCR_Func scr_funcs_intermission[] = {
|
||||
Sbar_IntermissionOverlay,
|
||||
0
|
||||
};
|
||||
|
||||
static SCR_Func scr_funcs_finale[] = {
|
||||
Sbar_FinaleOverlay,
|
||||
0,
|
||||
};
|
||||
|
||||
void
|
||||
CL_UpdateScreen (double realtime)
|
||||
{
|
||||
SCR_Func *scr_funcs = scr_funcs_normal;
|
||||
|
||||
cl_wateralpha = r_wateralpha->value;
|
||||
|
||||
if (r_force_fullscreen /*FIXME better test*/ == 1
|
||||
&& key_dest == key_game) {
|
||||
scr_funcs = scr_funcs_intermission;
|
||||
} else if (r_force_fullscreen /*FIXME better test*/ == 2
|
||||
&& key_dest == key_game) {
|
||||
scr_funcs = scr_funcs_finale;
|
||||
}
|
||||
|
||||
V_PrepBlend ();
|
||||
SCR_UpdateScreen (realtime, scr_funcs);
|
||||
}
|
||||
|
|
|
@ -1185,12 +1185,16 @@ Sbar_IntermissionOverlay (void)
|
|||
void
|
||||
Sbar_FinaleOverlay (void)
|
||||
{
|
||||
qpic_t *pic;
|
||||
|
||||
scr_copyeverything = 1;
|
||||
|
||||
pic = Draw_CachePic ("gfx/finale.lmp", true);
|
||||
Draw_Pic ((vid.width - pic->width) / 2, 16, pic);
|
||||
draw_cachepic (overlay_view, 0, 16, "gfx/finale.lmp", 1);
|
||||
SCR_CheckDrawCenterString (overlay_view);
|
||||
}
|
||||
|
||||
void
|
||||
Sbar_DrawCenterPrint (void)
|
||||
{
|
||||
SCR_CheckDrawCenterString (overlay_view);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -69,22 +69,34 @@ SCR_DrawNet (void)
|
|||
Draw_Pic (scr_vrect.x + 64, scr_vrect.y, scr_net);
|
||||
}
|
||||
|
||||
static SCR_Func scr_funcs[] = {
|
||||
static SCR_Func scr_funcs_normal[] = {
|
||||
Draw_Crosshair,
|
||||
SCR_DrawRam,
|
||||
SCR_DrawNet,
|
||||
CL_NetGraph,
|
||||
SCR_DrawTurtle,
|
||||
SCR_DrawPause,
|
||||
SCR_CheckDrawCenterString,
|
||||
Sbar_DrawCenterPrint,
|
||||
Sbar_Draw,
|
||||
Con_DrawConsole,
|
||||
0
|
||||
};
|
||||
|
||||
static SCR_Func scr_funcs_intermission[] = {
|
||||
Sbar_IntermissionOverlay,
|
||||
0
|
||||
};
|
||||
|
||||
static SCR_Func scr_funcs_finale[] = {
|
||||
Sbar_FinaleOverlay,
|
||||
0,
|
||||
};
|
||||
|
||||
void
|
||||
CL_UpdateScreen (double realtime)
|
||||
{
|
||||
SCR_Func *scr_funcs = scr_funcs_normal;
|
||||
|
||||
// don't allow cheats in multiplayer
|
||||
if (r_active) {
|
||||
if (cl.watervis)
|
||||
|
@ -93,6 +105,14 @@ CL_UpdateScreen (double realtime)
|
|||
cl_wateralpha = 1.0;
|
||||
}
|
||||
|
||||
if (r_force_fullscreen /*FIXME better test*/ == 1
|
||||
&& key_dest == key_game) {
|
||||
scr_funcs = scr_funcs_intermission;
|
||||
} else if (r_force_fullscreen /*FIXME better test*/ == 2
|
||||
&& key_dest == key_game) {
|
||||
scr_funcs = scr_funcs_finale;
|
||||
}
|
||||
|
||||
V_PrepBlend ();
|
||||
SCR_UpdateScreen (realtime, scr_funcs);
|
||||
}
|
||||
|
|
|
@ -1680,6 +1680,13 @@ Sbar_FinaleOverlay (void)
|
|||
scr_copyeverything = 1;
|
||||
|
||||
draw_cachepic (overlay_view, 0, 16, "gfx/finale.lmp");
|
||||
SCR_CheckDrawCenterString (overlay_view);
|
||||
}
|
||||
|
||||
void
|
||||
Sbar_DrawCenterPrint (void)
|
||||
{
|
||||
SCR_CheckDrawCenterString (overlay_view);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in a new issue