Commit 1bca9ccf authored by Fabian Greffrath's avatar Fabian Greffrath

Remove all patches that were applied upstream

parent 8a13248d
Description: Fix "Conflicting types of variable inverse_mouse to cause undefined behaviour"
Bug-Debian: http://bugs.debian.org/751510
Author: Fabian Greffrath <fabian+debian@greffrath.com>
--- a/rott/rt_menu.c
+++ b/rott/rt_menu.c
@@ -5359,9 +5359,9 @@ void DrawExtOptionsMenu (void)
FlipMenuBuf();
}
-extern long inverse_mouse;
+extern int inverse_mouse;
extern boolean usemouselook;
-extern int iG_aimCross;
+extern boolean iG_aimCross;
extern boolean usejump;
extern boolean sdl_fullscreen;
Description: Fix scaling of the sky texture
Author: Fabian Greffrath <fabian+debian@greffrath.com>
--- a/rott/rt_draw.c
+++ b/rott/rt_draw.c
@@ -6009,6 +6009,7 @@ void DrawMaskedRotRow(int count, byte *
void DrawSkyPost (byte * buf, byte * src, int height)
{
+#if 0
// bna fix for missing sky by high res eg 800x600
// when sky is >400 (max skyheight) then reverse mouintain to missing spot
// there should be 200 line of mouintain (400+200) = 600 height lines
@@ -6033,13 +6034,17 @@ void DrawSkyPost (byte * buf, byte * src
}
// bna section end
}
- else {
+ else
+#endif
+ {
+ int i = 0;
+ const byte *orig_src = src;
// org code
while (height--) {
*buf = shadingtable[*src];
buf += linewidth;
- src++;
+ src = orig_src + (++i*200/iGLOBAL_SCREENHEIGHT);
}
//
}
--- a/rott/rt_floor.c
+++ b/rott/rt_floor.c
@@ -105,14 +105,15 @@ void DrawSky( void )
else
shadingtable=colormap+(1<<12);
- ofs=(((maxheight)-(player->z))>>3)+(centery-(viewheight>>1));
+ ofs=(((maxheight)-(player->z))>>3)+(centery*200/iGLOBAL_SCREENHEIGHT-((viewheight*200/iGLOBAL_SCREENHEIGHT)>>1));
+
if (ofs>centerskypost)
{
ofs=centerskypost;
}
- else if (((centerskypost-ofs)+viewheight)>1799)
+ else if (((centerskypost-ofs)+viewheight*200/iGLOBAL_SCREENHEIGHT)>1799)
{
- ofs=-(1799-(centerskypost+viewheight));
+ ofs=-(1799-(centerskypost+viewheight*200/iGLOBAL_SCREENHEIGHT));
}
//ofs=centerskypost;
#ifdef DOS
--- a/rott/_rt_floo.h
+++ b/rott/_rt_floo.h
@@ -23,6 +23,6 @@ Foundation, Inc., 59 Temple Place - Suit
//#define MAXVIEWHEIGHT MAXSCREENHEIGHT
#define MAXSKYSEGS 2048
#define MAXSKYDATA 8
-#define MINSKYHEIGHT 0//148 //bna++ sky change here
+#define MINSKYHEIGHT 148
#endif
Description: Fix missing fog on level Foggy Mountain
Light level is calsulated based on scaled texture and sprite height
and is thus resolution dependent. Fix special-casing for fog.
Author: Fabian Greffrath <fabian+debian@greffrath.com>
Bug-Debian: https://bugs.debian.org/775530
--- a/rott/rt_draw.c
+++ b/rott/rt_draw.c
@@ -1636,7 +1636,7 @@ void SetSpriteLightLevel (int x, int y,
if (fog)
{
- i=(sprite->viewheight>>normalshade)+minshade;
+ i=((sprite->viewheight*200/iGLOBAL_SCREENHEIGHT)>>normalshade)+minshade;
if (i>maxshade) i=maxshade;
sprite->colormap=colormap+(i<<8);
}
@@ -1697,7 +1697,7 @@ void SetColorLightLevel (int x, int y, v
if (fog)
{
- i=(height>>normalshade)+minshade;
+ i=((height*200/iGLOBAL_SCREENHEIGHT)>>normalshade)+minshade;
if (i>maxshade) i=maxshade;
sprite->colormap=map+(i<<8);
}
@@ -1792,7 +1792,7 @@ void SetWallLightLevel (wallcast_t * pos
}
if (fog)
{
- i =(post->wallheight>>normalshade)+minshade-lv+la;
+ i =((post->wallheight*200/iGLOBAL_SCREENHEIGHT)>>normalshade)+minshade-lv+la;
if (i>maxshade+la) i=maxshade+la;
shadingtable=colormap+(i<<8);
}
--- a/rott/rt_floor.c
+++ b/rott/rt_floor.c
@@ -527,7 +527,7 @@ void SetFCLightLevel (int height)
}
if (fog)
{
- i=(height>>normalshade)+minshade;
+ i=((height*200/iGLOBAL_SCREENHEIGHT)>>normalshade)+minshade;
if (i>maxshade) i=maxshade;
shadingtable=colormap+(i<<8);
}
--- a/rott/rt_scale.c
+++ b/rott/rt_scale.c
@@ -149,7 +149,7 @@ void SetLightLevel (int height)
}
if (fog)
{
- i=(height>>normalshade)+minshade;
+ i=((height*200/iGLOBAL_SCREENHEIGHT)>>normalshade)+minshade;
if (i>maxshade) i=maxshade;
shadingtable=colormap+(i<<8);
}
Author: Fabian Greffrath <fabian+debian@greffrath.com>
Description: Make the "registered" variant recognize all supported
multiplayer map files and set 'gamestate.Product' accordingly.
This saves us from rebuilding the SUPERROTT and SITELICENSE variants
which had their multiplayer map file names hard-coded.
--- a/rott/Makefile
+++ b/rott/Makefile
@@ -1,14 +1,8 @@
# Determine which version to build
-# Make sure only one of the following is set to 1 at once
-# Triple 0 will build the commercial/registered version
-
-SHAREWARE ?= 1
-SUPERROTT ?= 0
-SITELICENSE ?= 0
+# Leave at 0 to build the commercial/superrott/sitelicense version
+SHAREWARE ?= 0
CPPFLAGS += -DSHAREWARE=$(SHAREWARE)
-CPPFLAGS += -DSUPERROTT=$(SUPERROTT)
-CPPFLAGS += -DSITELICENSE=$(SITELICENSE)
ROTT ?= rott
--- a/rott/_rt_ted.h
+++ b/rott/_rt_ted.h
@@ -84,19 +84,6 @@ typedef struct
#define MAXSILLYSTRINGS 32
-#if (SHAREWARE==0)
- #define STANDARDGAMELEVELS (DATADIR "DARKWAR.RTL")
- #if (SUPERROTT==1)
- #define STANDARDBATTLELEVELS (DATADIR "ROTTCD.RTC")
- #elif (SITELICENSE==1)
- #define STANDARDBATTLELEVELS (DATADIR "ROTTSITE.RTC")
- #else
- #define STANDARDBATTLELEVELS (DATADIR "DARKWAR.RTC")
- #endif
-#else
- #define STANDARDGAMELEVELS (DATADIR "HUNTBGIN.RTL")
- #define STANDARDBATTLELEVELS (DATADIR "HUNTBGIN.RTC")
-#endif
--- a/rott/develop.h
+++ b/rott/develop.h
@@ -40,10 +40,10 @@ Foundation, Inc., 59 Temple Place - Suit
#define LOWCOST 0
#define BNACRASHPREVENT 1 //bna added
-// Make sure only one of the following are on at one time
-//#define SHAREWARE 1
-//#define SUPERROTT 0
-//#define SITELICENSE 0
+
+#ifndef SHAREWARE
+#define SHAREWARE 0
+#endif
// cute little dopefish thing, only works with special patch?
#define DOPEFISH 0
--- a/rott/rt_main.c
+++ b/rott/rt_main.c
@@ -179,6 +179,7 @@ extern void RecordDemoQuery ( void );
int main (int argc, char *argv[])
{
char *macwd;
+ extern char *BATTMAPS;
#ifndef DOS
_argc = argc;
_argv = argv;
@@ -214,13 +215,33 @@ int main (int argc, char *argv[])
gamestate.Version = ROTTVERSION;
#if ( SHAREWARE == 1 )
+ BATTMAPS = strdup(STANDARDBATTLELEVELS);
+ FixFilePath(BATTMAPS);
gamestate.Product = ROTT_SHAREWARE;
-#elif ( SUPERROTT == 1 )
- gamestate.Product = ROTT_SUPERCD;
-#elif ( SITELICENSE == 1 )
- gamestate.Product = ROTT_SITELICENSE;
#else
- gamestate.Product = ROTT_REGISTERED;
+ BATTMAPS = strdup(SITELICENSEBATTLELEVELS);
+ FixFilePath(BATTMAPS);
+ if (!access(BATTMAPS, R_OK))
+ {
+ gamestate.Product = ROTT_SITELICENSE;
+ }
+ else
+ {
+ free(BATTMAPS);
+ BATTMAPS = strdup(SUPERROTTBATTLELEVELS);
+ FixFilePath(BATTMAPS);
+ if (!access(BATTMAPS, R_OK))
+ {
+ gamestate.Product = ROTT_SUPERCD;
+ }
+ else
+ {
+ free(BATTMAPS);
+ BATTMAPS = strdup(STANDARDBATTLELEVELS);
+ FixFilePath(BATTMAPS);
+ gamestate.Product = ROTT_REGISTERED;
+ }
+ }
#endif
DrawRottTitle ();
--- a/rott/rt_main.h
+++ b/rott/rt_main.h
@@ -31,6 +31,16 @@ Foundation, Inc., 59 Temple Place - Suit
#include "rottnet.h"
#include "rt_battl.h"
+#if (SHAREWARE==0)
+ #define STANDARDGAMELEVELS (DATADIR "DARKWAR.RTL")
+ #define STANDARDBATTLELEVELS (DATADIR "DARKWAR.RTC")
+ #define SUPERROTTBATTLELEVELS (DATADIR "ROTTCD.RTC")
+ #define SITELICENSEBATTLELEVELS (DATADIR "ROTTSITE.RTC")
+#else
+ #define STANDARDGAMELEVELS (DATADIR "HUNTBGIN.RTL")
+ #define STANDARDBATTLELEVELS (DATADIR "HUNTBGIN.RTC")
+#endif
+
enum
{vl_low,
vl_medium,
--- a/rott/rt_ted.c
+++ b/rott/rt_ted.c
@@ -115,7 +115,7 @@ static cachetype * cachelist;
static word cacheindex;
static boolean CachingStarted=false;
static char * ROTTMAPS = STANDARDGAMELEVELS;
-static char * BATTMAPS = STANDARDBATTLELEVELS;
+char * BATTMAPS;
static char NormalWeaponTiles[ 10 ] =
{
--- a/rott/rt_actor.c
+++ b/rott/rt_actor.c
@@ -1621,11 +1621,8 @@ void SpawnStand (classtype which, int ti
#if 0
- #if (SUPERROTT == 1)
-
+ if (gamestate.Product == ROTT_SUPERCD)
ConsiderAlternateActor(new,which);
-
- #endif
#endif
StandardEnemyInit(new,dir);
@@ -1671,10 +1668,9 @@ void SpawnPatrol (classtype which, int t
{statetype *temp;
int path=PATH;
#if 0
-#if (SUPERROTT == 1)
+if (gamestate.Product == ROTT_SUPERCD)
char *altstartlabel;
#endif
-#endif
@@ -1711,10 +1707,9 @@ void SpawnPatrol (classtype which, int t
#if 0
- #if (SUPERROTT == 1)
+ if (gamestate.Product == ROTT_SUPERCD)
ConsiderAlternateActor(new,which);
#endif
- #endif
StandardEnemyInit(new,dir);
--- a/rott/rt_menu.c
+++ b/rott/rt_menu.c
@@ -7155,8 +7155,6 @@ void CP_TeamPlayErrorMessage
//
//****************************************************************************
-#if (SITELICENSE == 0)
-
#define SITELINES 8
char *sitemessage[] =
@@ -7171,8 +7169,6 @@ char *sitemessage[] =
"For more on site licenses, see ORDERING INFO."
};
-#endif
-
void CP_ModemGameMessage (int player )
{
@@ -7215,7 +7211,8 @@ void CP_ModemGameMessage (int player )
MenuBufCPrint ("Please wait while\nMaster selects\nCOMM-BAT options.");
}
-#if (SITELICENSE == 0)
+if (gamestate.Product != ROTT_SITELICENSE)
+{
if (networkgame==true)
{
for( i = 0; i < SITELINES; i++ )
@@ -7224,7 +7221,7 @@ void CP_ModemGameMessage (int player )
sitemessage[ i ] );
}
}
-#endif
+}
}
FlipMenuBuf();
--- a/README
+++ b/README
@@ -76,15 +76,16 @@ To compile the source code under Linux,
make clean
make
-The build system is setup to use shareware binaries. If you want to use the
-registered version of ROTT, compile with:
+The build system is setup to use shareware binaries. If you want to use one
+of the commercial versions of ROTT, compile with:
make SHAREWARE=0
-You may additionally append SUPERROTT=1 or SITELICENSE=1, if you want to use
-the CD version or the Site License CD version, respectively. However, make
-sure to only set one of them to 1 at once. You may want to edit rott/Makefile
-to make your changes persistent.
+This variant supports the Registered Version, the "Super ROTT" CD Version and
+the "Site License" CD Version of the game by automatically detecting and
+loading their corresponding multiplayer map files.
+
+You may want to edit rott/Makefile to make your changes persistent.
It is generally recommended to build against the most recent version of
the Simple Direct Media Layer and SDL_mixer.
r275 | fabian | 2013-02-20 20:44:37 +0100 (Wed, 20 Feb 2013) | 1 line
Fix a segfault in the Darian level, original bug report and patch by Luc Habert in Debian #700977.
--- a/rott/rt_actor.c
+++ b/rott/rt_actor.c
@@ -251,7 +251,7 @@ static int starthitpoints[4][NUME
{0,0,60,80,70,70,75,525,300,350,175,2800,3800,5900,4800,-1,350,2}};
-static statobj_t *touchsprite;
+static statobj_t *touchsprite = NULL;
static const byte dirdiff[8][8] = {{0,1,2,3,4,3,2,1},{1,0,1,2,3,4,3,2},
@@ -11070,7 +11070,7 @@ void T_Use(objtype*ob)
{
#if (SHAREWARE == 0)
case b_darianobj:
- if (!DoPanicMapping())
+ if (touchsprite && !DoPanicMapping())
touchsprite->flags |= FL_ACTIVE;
if ((!sprites[PLAYER[0]->tilex][PLAYER[0]->tiley]) && (ob->areanumber == PLAYER[0]->areanumber))
{SpawnNewObj(PLAYER[0]->tilex,PLAYER[0]->tiley,&s_dspear1,spearobj);
r276 | fabian | 2013-06-27 07:27:42 +0200 (Thu, 27 Jun 2013) | 1 line
Color crosshair by health
--- a/rott/modexlib.c
+++ b/rott/modexlib.c
@@ -39,6 +39,7 @@ Foundation, Inc., 59 Temple Place - Suit
#include "memcheck.h"
#include "rt_util.h"
#include "rt_net.h" // for GamePaused
+#include "myprint.h"
static void StretchMemPicture ();
// GLOBAL VARIABLES
@@ -796,6 +797,10 @@ int iG_playerTilt;
void DrawCenterAim ()
{
int x;
+
+ int percenthealth = (locplayerstate->health * 10) / MaxHitpointsForCharacter(locplayerstate);
+ int color = percenthealth < 3 ? egacolor[RED] : percenthealth < 4 ? egacolor[YELLOW] : egacolor[GREEN];
+
if (iG_aimCross && !GamePaused){
if (( ingame == true )&&(iGLOBAL_SCREENWIDTH>320)){
if ((iG_playerTilt <0 )||(iG_playerTilt >iGLOBAL_SCREENHEIGHT/2)){
@@ -806,22 +811,22 @@ void DrawCenterAim ()
for (x=iG_X_center-10;x<=iG_X_center-4;x++){
if ((iG_buf_center+x < bufofsTopLimit)&&(iG_buf_center+x > bufofsBottomLimit)){
- *(iG_buf_center+x) = 75;
+ *(iG_buf_center+x) = color;
}
}
for (x=iG_X_center+4;x<=iG_X_center+10;x++){
if ((iG_buf_center+x < bufofsTopLimit)&&(iG_buf_center+x > bufofsBottomLimit)){
- *(iG_buf_center+x) = 75;
+ *(iG_buf_center+x) = color;
}
}
for (x=10;x>=4;x--){
if (((iG_buf_center-(x*iGLOBAL_SCREENWIDTH)+iG_X_center) < bufofsTopLimit)&&((iG_buf_center-(x*iGLOBAL_SCREENWIDTH)+iG_X_center) > bufofsBottomLimit)){
- *(iG_buf_center-(x*iGLOBAL_SCREENWIDTH)+iG_X_center) = 75;
+ *(iG_buf_center-(x*iGLOBAL_SCREENWIDTH)+iG_X_center) = color;
}
}
for (x=4;x<=10;x++){
if (((iG_buf_center+(x*iGLOBAL_SCREENWIDTH)+iG_X_center) < bufofsTopLimit)&&((iG_buf_center+(x*iGLOBAL_SCREENWIDTH)+iG_X_center) > bufofsBottomLimit)){
- *(iG_buf_center+(x*iGLOBAL_SCREENWIDTH)+iG_X_center) = 75;
+ *(iG_buf_center+(x*iGLOBAL_SCREENWIDTH)+iG_X_center) = color;
}
}
}
10-all-variants.patch
rott-r275.diff
rott-r276.diff
conflicting_types.patch
rott-merge-commercial.patch
fogshade.patch
weaponscale.patch
drawsky.patch
Description: Fix scaling of the weapon sprite
Author: Fabian Greffrath <fabian+debian@greffrath.com>
--- a/rott/rt_scale.c
+++ b/rott/rt_scale.c
@@ -861,7 +861,7 @@ void ScaleWeapon (int xoff, int y, int s
return; // off the left side
dc_iscale=0xffffffffu/(unsigned)dc_invscale;
- dc_texturemid=(((p->origsize>>1)+p->topoffset)<<SFRACBITS)+(SFRACUNIT>>1);
+ dc_texturemid=(((p->origsize>>1)+p->topoffset)<<SFRACBITS)+(SFRACUNIT>>2);
sprtopoffset=(centeryclipped<<16) - FixedMul(dc_texturemid,dc_invscale);
//
--- a/rott/rt_view.c
+++ b/rott/rt_view.c
@@ -386,19 +386,12 @@ void SetViewSize
// SetTextMode ( );
// viewheight=viewheight;
height = viewheight;
- if ( height > 168 )
+ if ( height > 168*iGLOBAL_SCREENHEIGHT/200 )
{
// Prevent weapon from being scaled too big
- height = 168;
- if ( iGLOBAL_SCREENWIDTH == 640) {
- height = 260;
- }else if ( iGLOBAL_SCREENWIDTH == 800) {
- height = 360;
- }
+ height = 168*iGLOBAL_SCREENHEIGHT/200;
}
- if ((G_weaponscale > 150)&&(G_weaponscale <600)){height = G_weaponscale;}
- if ( iGLOBAL_SCREENWIDTH == 320) {G_weaponscale=G_weaponscale/2;}
weaponscale = ( height << 16 ) / 168;//( height << 16 ) = 170 * 65536
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment