From 537ad47d00bfef8c923ffa96a5ad88454ab44008 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Tue, 15 Apr 2014 22:20:13 -0400 Subject: [PATCH 1/3] Will the real 2.1.7 release please stand up? --- readme.txt | 2 +- src/sdl/macosx/Srb2mac.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/readme.txt b/readme.txt index 71aa843f..ed3c4ec5 100644 --- a/readme.txt +++ b/readme.txt @@ -1,4 +1,4 @@ -Here it is! SRB2 v2.1.6 source code! +Here it is! SRB2 v2.1.7 source code! Win32 with Visual C (6SP6+Processor Pack OR 7) diff --git a/src/sdl/macosx/Srb2mac.xcodeproj/project.pbxproj b/src/sdl/macosx/Srb2mac.xcodeproj/project.pbxproj index 16a01ee6..1704f434 100644 --- a/src/sdl/macosx/Srb2mac.xcodeproj/project.pbxproj +++ b/src/sdl/macosx/Srb2mac.xcodeproj/project.pbxproj @@ -1214,7 +1214,7 @@ C01FCF4B08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CURRENT_PROJECT_VERSION = 2.1.6; + CURRENT_PROJECT_VERSION = 2.1.7; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", NORMALSRB2, @@ -1226,7 +1226,7 @@ C01FCF4C08A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CURRENT_PROJECT_VERSION = 2.1.6; + CURRENT_PROJECT_VERSION = 2.1.7; GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_PREPROCESSOR_DEFINITIONS = ( From 5b324924ff4dcbe98326588536becd2c965577bd Mon Sep 17 00:00:00 2001 From: Sryder13 Date: Thu, 17 Apr 2014 11:57:10 +0100 Subject: [PATCH 2/3] Undo MD2 Spin Frame Interpolation Because apparently people don't like them like that. --- src/hardware/hw_md2.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/hardware/hw_md2.c b/src/hardware/hw_md2.c index b968fee0..0af7455e 100644 --- a/src/hardware/hw_md2.c +++ b/src/hardware/hw_md2.c @@ -1144,8 +1144,9 @@ void HWR_DrawMD2(gr_vissprite_t *spr) spriteframe_t *sprframe; float finalscale; - if (tics > durs) - durs = tics; + // Apparently people don't like jump frames like that, so back it goes + //if (tics > durs) + //durs = tics; if (spr->mobj->flags2 & MF2_SHADOW) { From 098eb28036db730e2762a71ba0da87d8823db1a3 Mon Sep 17 00:00:00 2001 From: Sryder13 Date: Thu, 17 Apr 2014 13:02:34 +0100 Subject: [PATCH 3/3] OpenGL Multi-Property FOF's Multi-Property FOF's have their multiple side properties display in OpenGL. --- src/hardware/hw_main.c | 58 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 10 deletions(-) diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c index fcb43964..0db3e903 100644 --- a/src/hardware/hw_main.c +++ b/src/hardware/hw_main.c @@ -1724,6 +1724,9 @@ static void HWR_StoreWallRange(double startfrac, double endfrac) ffloor_t * rover; fixed_t highcut = 0, lowcut = 0; + INT32 texnum; + line_t * newline = NULL; // Multi-Property FOF + highcut = gr_frontsector->ceilingheight < gr_backsector->ceilingheight ? gr_frontsector->ceilingheight : gr_backsector->ceilingheight; lowcut = gr_frontsector->floorheight > gr_backsector->floorheight ? gr_frontsector->floorheight : gr_backsector->floorheight; @@ -1736,6 +1739,14 @@ static void HWR_StoreWallRange(double startfrac, double endfrac) if (*rover->topheight < lowcut || *rover->bottomheight > highcut) continue; + texnum = texturetranslation[sides[rover->master->sidenum[0]].midtexture]; + + if (rover->master->flags & ML_TFERLINE) + { + size_t linenum = gr_curline->linedef-gr_backsector->lines[0]; + newline = rover->master->frontsector->lines[0] + linenum; + texnum = texturetranslation[sides[newline->sidenum[0]].midtexture]; + } h = *rover->topheight; l = *rover->bottomheight; @@ -1757,10 +1768,19 @@ static void HWR_StoreWallRange(double startfrac, double endfrac) } else if (drawtextured) { - grTex = HWR_GetTexture(texturetranslation[sides[rover->master->sidenum[0]].midtexture]); + grTex = HWR_GetTexture(texnum); + + if (newline) + { + wallVerts[3].t = wallVerts[2].t = (*rover->topheight - h + sides[newline->sidenum[0]].rowoffset) * grTex->scaleY; + wallVerts[0].t = wallVerts[1].t = (h - l + (*rover->topheight - h + sides[newline->sidenum[0]].rowoffset)) * grTex->scaleY; + } + else + { + wallVerts[3].t = wallVerts[2].t = (*rover->topheight - h + sides[rover->master->sidenum[0]].rowoffset) * grTex->scaleY; + wallVerts[0].t = wallVerts[1].t = (h - l + (*rover->topheight - h + sides[rover->master->sidenum[0]].rowoffset)) * grTex->scaleY; + } - wallVerts[3].t = wallVerts[2].t = (*rover->topheight - h + sides[rover->master->sidenum[0]].rowoffset) * grTex->scaleY; - wallVerts[0].t = wallVerts[1].t = (h - l + (*rover->topheight - h + sides[rover->master->sidenum[0]].rowoffset)) * grTex->scaleY; wallVerts[0].s = wallVerts[3].s = cliplow * grTex->scaleX; wallVerts[2].s = wallVerts[1].s = cliphigh * grTex->scaleX; } @@ -1803,11 +1823,11 @@ static void HWR_StoreWallRange(double startfrac, double endfrac) } if (gr_frontsector->numlights) - HWR_SplitWall(gr_frontsector, wallVerts, texturetranslation[sides[rover->master->sidenum[0]].midtexture], &Surf, rover->flags); + HWR_SplitWall(gr_frontsector, wallVerts, texnum, &Surf, rover->flags); else { if (blendmode != PF_Masked) - HWR_AddTransparentWall(wallVerts, &Surf, texturetranslation[sides[rover->master->sidenum[0]].midtexture], blendmode, false, lightnum, colormap); + HWR_AddTransparentWall(wallVerts, &Surf, texnum, blendmode, false, lightnum, colormap); else HWR_ProjectWall(wallVerts, &Surf, PF_Masked, lightnum, colormap); } @@ -1824,6 +1844,15 @@ static void HWR_StoreWallRange(double startfrac, double endfrac) if (*rover->topheight < lowcut || *rover->bottomheight > highcut) continue; + texnum = texturetranslation[sides[rover->master->sidenum[0]].midtexture]; + + if (rover->master->flags & ML_TFERLINE) + { + size_t linenum = gr_curline->linedef-gr_backsector->lines[0]; + newline = rover->master->frontsector->lines[0] + linenum; + texnum = texturetranslation[sides[newline->sidenum[0]].midtexture]; + } + h = *rover->topheight; l = *rover->bottomheight; if (h > highcut) @@ -1845,10 +1874,19 @@ static void HWR_StoreWallRange(double startfrac, double endfrac) } else if (drawtextured) { - grTex = HWR_GetTexture(texturetranslation[sides[rover->master->sidenum[0]].midtexture]); + grTex = HWR_GetTexture(texnum); + + if (newline) + { + wallVerts[3].t = wallVerts[2].t = (*rover->topheight - h + sides[newline->sidenum[0]].rowoffset) * grTex->scaleY; + wallVerts[0].t = wallVerts[1].t = (h - l + (*rover->topheight - h + sides[newline->sidenum[0]].rowoffset)) * grTex->scaleY; + } + else + { + wallVerts[3].t = wallVerts[2].t = (*rover->topheight - h + sides[rover->master->sidenum[0]].rowoffset) * grTex->scaleY; + wallVerts[0].t = wallVerts[1].t = (h - l + (*rover->topheight - h + sides[rover->master->sidenum[0]].rowoffset)) * grTex->scaleY; + } - wallVerts[3].t = wallVerts[2].t = (*rover->topheight - h + sides[rover->master->sidenum[0]].rowoffset) * grTex->scaleY; - wallVerts[0].t = wallVerts[1].t = (h - l + (*rover->topheight - h + sides[rover->master->sidenum[0]].rowoffset)) * grTex->scaleY; wallVerts[0].s = wallVerts[3].s = cliplow * grTex->scaleX; wallVerts[2].s = wallVerts[1].s = cliphigh * grTex->scaleX; } @@ -1891,11 +1929,11 @@ static void HWR_StoreWallRange(double startfrac, double endfrac) } if (gr_backsector->numlights) - HWR_SplitWall(gr_backsector, wallVerts, texturetranslation[sides[rover->master->sidenum[0]].midtexture], &Surf, rover->flags); + HWR_SplitWall(gr_backsector, wallVerts, texnum, &Surf, rover->flags); else { if (blendmode != PF_Masked) - HWR_AddTransparentWall(wallVerts, &Surf, texturetranslation[sides[rover->master->sidenum[0]].midtexture], blendmode, false, lightnum, colormap); + HWR_AddTransparentWall(wallVerts, &Surf, texnum, blendmode, false, lightnum, colormap); else HWR_ProjectWall(wallVerts, &Surf, PF_Masked, lightnum, colormap); }