From 3fb1c4111d5092c7e6a8564c0a3563599012780b Mon Sep 17 00:00:00 2001 From: sezero Date: Thu, 18 Feb 2010 16:55:28 +0000 Subject: [PATCH] gl_draw.c (Draw_ConbackPic): new proc for drawing the normal conback image in fitzmode mode otherwise drawing the custom QuakeSpasm conback from memory. (Draw_ConsoleBackground): use the new Draw_ConbackPic(). Makefile, Makefile.w32, Makefile.w64: added conback.c to the build. git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@53 af15c1b1-3010-417e-b628-4374ebc0bcbd --- quakespasm/Quake/Makefile | 2 +- quakespasm/Quake/Makefile.w32 | 3 ++- quakespasm/Quake/Makefile.w64 | 3 ++- quakespasm/Quake/gl_draw.c | 49 +++++++++++++++++++++++++++++++++-- 4 files changed, 52 insertions(+), 5 deletions(-) diff --git a/quakespasm/Quake/Makefile b/quakespasm/Quake/Makefile index 9715be2c..1cc5fd59 100644 --- a/quakespasm/Quake/Makefile +++ b/quakespasm/Quake/Makefile @@ -131,7 +131,7 @@ cl_main.o gl_fog.o gl_test.o main.o pr_cmds.o snd_dma.o view cl_parse.o gl_mesh.o gl_texmgr.o mathlib.o pr_edict.o snd_mem.o wad.o \ cl_tent.o gl_model.o gl_vidsdl.o menu.o pr_exec.o snd_mix.o world.o \ cmd.o gl_refrag.o gl_warp.o net_dgrm.o r_alias.o snd_sdl.o zone.o \ -common.o gl_rlight.o host_cmd.o net_loop.o r_brush.o sv_main.o +common.o gl_rlight.o host_cmd.o net_loop.o r_brush.o sv_main.o conback.o # ------------------------ # build rules for Linux diff --git a/quakespasm/Quake/Makefile.w32 b/quakespasm/Quake/Makefile.w32 index 38b84af2..b5226fef 100644 --- a/quakespasm/Quake/Makefile.w32 +++ b/quakespasm/Quake/Makefile.w32 @@ -86,7 +86,8 @@ cl_main.o gl_fog.o gl_test.o main.o pr_cmds.o snd_dma.o view cl_parse.o gl_mesh.o gl_texmgr.o mathlib.o pr_edict.o snd_mem.o wad.o \ cl_tent.o gl_model.o gl_vidsdl.o menu.o pr_exec.o snd_mix.o world.o \ cmd.o gl_refrag.o gl_warp.o net_dgrm.o r_alias.o snd_sdl.o zone.o \ -common.o gl_rlight.o host_cmd.o net_loop.o r_brush.o sv_main.o Fitzquake.res +common.o gl_rlight.o host_cmd.o net_loop.o r_brush.o sv_main.o conback.o \ +Fitzquake.res # ------------------------ # build rules for mingw : diff --git a/quakespasm/Quake/Makefile.w64 b/quakespasm/Quake/Makefile.w64 index 0db3f291..1c72af95 100644 --- a/quakespasm/Quake/Makefile.w64 +++ b/quakespasm/Quake/Makefile.w64 @@ -86,7 +86,8 @@ cl_main.o gl_fog.o gl_test.o main.o pr_cmds.o snd_dma.o view cl_parse.o gl_mesh.o gl_texmgr.o mathlib.o pr_edict.o snd_mem.o wad.o \ cl_tent.o gl_model.o gl_vidsdl.o menu.o pr_exec.o snd_mix.o world.o \ cmd.o gl_refrag.o gl_warp.o net_dgrm.o r_alias.o snd_sdl.o zone.o \ -common.o gl_rlight.o host_cmd.o net_loop.o r_brush.o sv_main.o Fitzquake.res +common.o gl_rlight.o host_cmd.o net_loop.o r_brush.o sv_main.o conback.o \ +Fitzquake.res # ------------------------ # build rules for mingw-w64 : diff --git a/quakespasm/Quake/gl_draw.c b/quakespasm/Quake/gl_draw.c index d52ffab7..42236ed2 100644 --- a/quakespasm/Quake/gl_draw.c +++ b/quakespasm/Quake/gl_draw.c @@ -273,9 +273,10 @@ qpic_t *Draw_CachePic (char *path) glpic_t *gl; for (pic=menu_cachepics, i=0 ; iname)) return &pic->pic; - + } if (menu_numcachepics == MAX_CACHED_PICS) Sys_Error ("menu_numcachepics == MAX_CACHED_PICS"); menu_numcachepics++; @@ -309,6 +310,50 @@ qpic_t *Draw_CachePic (char *path) return &pic->pic; } +/* +================ +Draw_ConbackPic -- QuakeSpasm custom conback drawing. +================ +*/ +extern char *get_conback(void); +qpic_t *Draw_ConbackPic (void) +{ + if (fitzmode) { + return Draw_CachePic ("gfx/conback.lmp"); + } else { + /* QuakeSpasm customization: */ + cachepic_t *pic; + int i; + qpic_t *dat; + glpic_t *gl; + + for (pic=menu_cachepics, i=0 ; iname)) + return &pic->pic; + } + if (menu_numcachepics == MAX_CACHED_PICS) + Sys_Error ("menu_numcachepics == MAX_CACHED_PICS"); + menu_numcachepics++; + strcpy (pic->name, "gfx/conback.lmp"); + /* load custom conback, image in memory */ + dat = (qpic_t *)get_conback (); + SwapPic (dat); + pic->pic.width = dat->width; + pic->pic.height = dat->height; + gl = (glpic_t *)pic->pic.data; + gl->gltexture = TexMgr_LoadImage (NULL, "gfx/conback.lmp", dat->width, dat->height, SRC_INDEXED, dat->data, + "", (src_offset_t)dat->data, + TEXPREF_ALPHA | TEXPREF_PAD | TEXPREF_NOPICMIP); //johnfitz -- TexMgr + gl->sl = 0; + gl->sh = (float)dat->width/(float)TexMgr_PadConditional(dat->width); //johnfitz + gl->tl = 0; + gl->th = (float)dat->height/(float)TexMgr_PadConditional(dat->height); //johnfitz + + return &pic->pic; + } /* -- QuakeSpasm */ +} + /* ================ Draw_MakePic -- johnfitz -- generate pics from internal data @@ -548,7 +593,7 @@ void Draw_ConsoleBackground (void) qpic_t *pic; float alpha; - pic = Draw_CachePic ("gfx/conback.lmp"); + pic = Draw_ConbackPic (); pic->width = vid.conwidth; pic->height = vid.conheight;