mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-11 10:40:47 +00:00
This changes the pistol's autoaim back to how it was in the DOS version of Duke3D. I suspect this behavior was changed during NAM or WW2GI development and just never noticed until now.
git-svn-id: https://svn.eduke32.com/eduke32@485 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
fd4dfeb6a5
commit
e96c05767e
7 changed files with 95 additions and 121 deletions
|
@ -1542,7 +1542,7 @@ static void ReadGamePalette()
|
|||
|
||||
static inline void _message(char message[162])
|
||||
{
|
||||
Bsprintf(getmessage,message);
|
||||
Bstrcpy(getmessage,message);
|
||||
getmessageleng = strlen(getmessage);
|
||||
getmessagetimeoff = totalclock+120*5;
|
||||
}
|
||||
|
@ -4912,8 +4912,8 @@ static void Keys2d3d(void)
|
|||
begindrawing();
|
||||
if (tempbuf[charsperline] != 0)
|
||||
{
|
||||
printext256((xdimgame>>6)+2,((i/charsperline)<<3)+(ydimgame-(ydimgame>>5))-(((getmessageleng-1)/charsperline)<<3)+2,0,-1,tempbuf,xdimgame>640?0:1);
|
||||
printext256((xdimgame>>6),((i/charsperline)<<3)+(ydimgame-(ydimgame>>5))-(((getmessageleng-1)/charsperline)<<3),whitecol,-1,tempbuf,xdimgame>640?0:1);
|
||||
printext256((xdimgame>>6)+2,((i/charsperline)<<3)+(ydimgame-(ydimgame>>3))-(((getmessageleng-1)/charsperline)<<3)+2,0,-1,tempbuf,xdimgame>640?0:1);
|
||||
printext256((xdimgame>>6),((i/charsperline)<<3)+(ydimgame-(ydimgame>>3))-(((getmessageleng-1)/charsperline)<<3),whitecol,-1,tempbuf,xdimgame>640?0:1);
|
||||
}
|
||||
enddrawing();
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ extern int conversion, shareware, gametype;
|
|||
#define BYTEVERSION_13 27
|
||||
#define BYTEVERSION_14 116
|
||||
#define BYTEVERSION_15 117
|
||||
#define BYTEVERSION_JF 171 // increase by 3, because atomic GRP adds 1, and Shareware adds 2
|
||||
#define BYTEVERSION_JF 174 // increase by 3, because atomic GRP adds 1, and Shareware adds 2
|
||||
|
||||
#define BYTEVERSION (BYTEVERSION_JF+(PLUTOPAK?1:(VOLUMEONE<<1))) // JBF 20040116: different data files give different versions
|
||||
|
||||
|
@ -843,7 +843,8 @@ enum projectileflags {
|
|||
PROJECTILE_FLAG_RANDDECALSIZE = 8192,
|
||||
PROJECTILE_FLAG_EXPLODEONTIMER = 16384,
|
||||
PROJECTILE_FLAG_RPG_IMPACT = 32768,
|
||||
PROJECTILE_FLAG_RADIUS_PICNUM = 65536
|
||||
PROJECTILE_FLAG_RADIUS_PICNUM = 65536,
|
||||
PROJECTILE_FLAG_ACCURATE_AUTOAIM = 131072
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -10267,11 +10267,7 @@ static int opendemoread(int which_demo) // 0 = mine
|
|||
OSD_Printf("ud.user_name: %s\n",ud.user_name);
|
||||
if (kread(recfilep,(int32 *)&i,sizeof(int32)) != sizeof(int32)) goto corrupt;
|
||||
|
||||
if (ver == BYTEVERSION)
|
||||
{
|
||||
if (kread(recfilep,(char *)boardfilename,sizeof(boardfilename)) != sizeof(boardfilename)) goto corrupt;
|
||||
}
|
||||
else if (kread(recfilep,(char *)boardfilename,128) != 128) goto corrupt;
|
||||
|
||||
if (boardfilename[0] != 0)
|
||||
{
|
||||
|
@ -10279,9 +10275,9 @@ static int opendemoread(int which_demo) // 0 = mine
|
|||
ud.m_volume_number = 0;
|
||||
}
|
||||
|
||||
if (kread(recfilep,(int32 *)&ud.m_noexits,sizeof(int32)) != sizeof(int32)) goto corrupt;
|
||||
|
||||
for (i=0;i<ud.multimode;i++)
|
||||
{
|
||||
if (ver == BYTEVERSION)
|
||||
{
|
||||
if (kread(recfilep,(int32 *)&ps[i].aim_mode,sizeof(int32)) != sizeof(int32)) goto corrupt;
|
||||
if (kread(recfilep,(int32 *)&ps[i].auto_aim,sizeof(int32)) != sizeof(int32)) goto corrupt; // JBF 20031126
|
||||
|
@ -10290,17 +10286,6 @@ static int opendemoread(int which_demo) // 0 = mine
|
|||
ps[i].palookup = ud.pcolor[i];
|
||||
if (kread(recfilep,(int32 *)&ud.pteam[i],sizeof(int32)) != sizeof(int32)) goto corrupt;
|
||||
ps[i].team = ud.pteam[i];
|
||||
if (kread(recfilep,(int32 *)&ud.m_noexits,sizeof(int32)) != sizeof(int32)) goto corrupt;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (kread(recfilep,(int32 *)&ps[i].aim_mode,sizeof(char)) != sizeof(char)) goto corrupt;
|
||||
OSD_Printf("aim_mode: %d\n",ps[i].aim_mode);
|
||||
ps[i].auto_aim = 1;
|
||||
ps[i].weaponswitch = 3;
|
||||
ps[i].team = 0;
|
||||
ud.m_noexits = 0;
|
||||
}
|
||||
}
|
||||
|
||||
ud.god = ud.cashman = ud.eog = ud.showallmap = 0;
|
||||
|
@ -10343,6 +10328,7 @@ void opendemowrite(void)
|
|||
fwrite((char *)&ud.user_name[0][0],sizeof(ud.user_name),1,frecfilep);
|
||||
fwrite((int32 *)&ud.auto_run,sizeof(int32),1,frecfilep);
|
||||
fwrite((char *)boardfilename,sizeof(boardfilename),1,frecfilep);
|
||||
fwrite((int32 *)&ud.m_noexits,sizeof(int32),1,frecfilep);
|
||||
|
||||
for (i=0;i<ud.multimode;i++)
|
||||
{
|
||||
|
@ -10351,7 +10337,6 @@ void opendemowrite(void)
|
|||
fwrite(&ps[i].weaponswitch,sizeof(int32),1,frecfilep);
|
||||
fwrite(&ud.pcolor[i],sizeof(int32),1,frecfilep);
|
||||
fwrite(&ud.pteam[i],sizeof(int32),1,frecfilep);
|
||||
fwrite((int32 *)&ud.m_noexits,sizeof(int32),1,frecfilep);
|
||||
}
|
||||
|
||||
totalreccnt = 0;
|
||||
|
@ -10394,18 +10379,6 @@ void closedemowrite(void)
|
|||
static int which_demo = 1;
|
||||
static int in_menu = 0;
|
||||
|
||||
#if 0
|
||||
typedef struct
|
||||
{
|
||||
signed char avel, horz;
|
||||
short fvel, svel;
|
||||
unsigned long bits;
|
||||
}
|
||||
oldinput;
|
||||
|
||||
static oldinput oldrecsync[RECSYNCBUFSIZ];
|
||||
#endif
|
||||
|
||||
// extern long syncs[];
|
||||
static long playback(void)
|
||||
{
|
||||
|
@ -10467,39 +10440,8 @@ RECHECK:
|
|||
|
||||
while (ud.reccnt > 0 || foundemo == 0)
|
||||
{
|
||||
if (foundemo) while (totalclock >= (lockclock+TICSPERFRAME))
|
||||
{
|
||||
#if 0
|
||||
if (demo_version == 116 || demo_version == 117)
|
||||
{
|
||||
if ((i == 0) || (i >= RECSYNCBUFSIZ))
|
||||
{
|
||||
i = 0;
|
||||
l = min(ud.reccnt,RECSYNCBUFSIZ);
|
||||
if (kdfread(oldrecsync,sizeof(oldinput)*ud.multimode,l/ud.multimode,recfilep) != l/ud.multimode)
|
||||
{
|
||||
OSD_Printf("Demo %d is corrupt.\n", which_demo-1);
|
||||
foundemo = 0;
|
||||
ud.reccnt = 0;
|
||||
kclose(recfilep);
|
||||
ps[myconnectindex].gm |= MODE_MENU;
|
||||
goto RECHECK;
|
||||
}
|
||||
OSD_Printf("ud.reccnt: %d\n",ud.reccnt);
|
||||
}
|
||||
|
||||
for (j=connecthead;j>=0;j=connectpoint2[j])
|
||||
{
|
||||
OSD_Printf("ud.reccnt: %d, a:%d, h:%d, s:%d, f:%d, b:%d\n",ud.reccnt,oldrecsync[i].avel,oldrecsync[i].horz,oldrecsync[i].svel,oldrecsync[i].fvel,oldrecsync[i].bits);
|
||||
clearbufbyte(&inputfifo[movefifoend[j]&(MOVEFIFOSIZ-1)][j],sizeof(input),0L);
|
||||
copybufbyte(&oldrecsync[i],&inputfifo[movefifoend[j]&(MOVEFIFOSIZ-1)][j],sizeof(oldinput));
|
||||
movefifoend[j]++;
|
||||
i++;
|
||||
ud.reccnt--;
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (foundemo)
|
||||
while (totalclock >= (lockclock+TICSPERFRAME))
|
||||
{
|
||||
if ((i == 0) || (i >= RECSYNCBUFSIZ))
|
||||
{
|
||||
|
@ -10523,7 +10465,6 @@ RECHECK:
|
|||
i++;
|
||||
ud.reccnt--;
|
||||
}
|
||||
}
|
||||
domovethings();
|
||||
}
|
||||
|
||||
|
|
|
@ -4648,7 +4648,7 @@ static int parse(void)
|
|||
case CON_EZSHOOTVAR:
|
||||
case CON_ZSHOOTVAR:
|
||||
{
|
||||
long lIn, lReturn=-1;
|
||||
long lReturn=-1;
|
||||
|
||||
insptr++;
|
||||
|
||||
|
@ -4658,10 +4658,10 @@ static int parse(void)
|
|||
if (hittype[g_i].temp_data[9] == 0)
|
||||
hittype[g_i].temp_data[9] = 1;
|
||||
}
|
||||
lIn=GetGameVarID(*insptr++, g_i, g_p);
|
||||
j=GetGameVarID(*insptr++, g_i, g_p);
|
||||
if (g_sp->sectnum >= 0 && g_sp->sectnum < MAXSECTORS)
|
||||
{
|
||||
lReturn = shoot(g_i, lIn);
|
||||
lReturn = shoot(g_i, j);
|
||||
if (tw == CON_ESHOOTVAR || tw == CON_EZSHOOTVAR)
|
||||
SetGameVarID(g_iReturnVarID, lReturn, g_i, g_p);
|
||||
}
|
||||
|
@ -4741,6 +4741,9 @@ static int parse(void)
|
|||
if (x1 > x2) swaplong(&x1,&x2);
|
||||
if (y1 > y2) swaplong(&y1,&y2);
|
||||
|
||||
if (x1 < 0 || y1 < 0 || x2 > xdim-1 || y2 > ydim-1 || x2-x1 < 1 || y2-y1 < 1)
|
||||
break;
|
||||
|
||||
#if defined(USE_OPENGL) && defined(POLYMOST)
|
||||
j = glprojectionhacks;
|
||||
glprojectionhacks = 0;
|
||||
|
|
|
@ -579,12 +579,23 @@ int shoot(int i,int atwith)
|
|||
|
||||
angRange=32;
|
||||
zRange=256;
|
||||
SetGameVarID(g_iAngRangeVarID,32, i,p);
|
||||
SetGameVarID(g_iZRangeVarID,256,i,p);
|
||||
SetGameVarID(g_iAngRangeVarID,angRange, i,p);
|
||||
SetGameVarID(g_iZRangeVarID,zRange,i,p);
|
||||
OnEvent(EVENT_GETSHOTRANGE, i,p, -1);
|
||||
angRange=GetGameVarID(g_iAngRangeVarID,i,p);
|
||||
zRange=GetGameVarID(g_iZRangeVarID,i,p);
|
||||
|
||||
if (projectile[atwith].workslike & PROJECTILE_FLAG_ACCURATE_AUTOAIM)
|
||||
{
|
||||
if (j == -1)
|
||||
{
|
||||
sa += (angRange/2)-(TRAND&(angRange-1));
|
||||
zvel = (100-ps[p].horiz-ps[p].horizoff)<<5;
|
||||
zvel += (zRange/2)-(TRAND&(zRange-1));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sa += (angRange/2)-(TRAND&(angRange-1));
|
||||
if (j == -1)
|
||||
{
|
||||
|
@ -592,6 +603,7 @@ int shoot(int i,int atwith)
|
|||
zvel = (100-ps[p].horiz-ps[p].horizoff)<<5;
|
||||
}
|
||||
zvel += (zRange/2)-(TRAND&(zRange-1));
|
||||
}
|
||||
sz -= (2<<8);
|
||||
}
|
||||
else
|
||||
|
@ -1121,12 +1133,26 @@ DOSKIPBULLETHOLE:
|
|||
|
||||
angRange=32;
|
||||
zRange=256;
|
||||
SetGameVarID(g_iAngRangeVarID,32, i,p);
|
||||
SetGameVarID(g_iZRangeVarID,256,i,p);
|
||||
|
||||
SetGameVarID(g_iAngRangeVarID,angRange, i,p);
|
||||
SetGameVarID(g_iZRangeVarID,zRange,i,p);
|
||||
|
||||
OnEvent(EVENT_GETSHOTRANGE, i,p, -1);
|
||||
|
||||
angRange=GetGameVarID(g_iAngRangeVarID,i,p);
|
||||
zRange=GetGameVarID(g_iZRangeVarID,i,p);
|
||||
|
||||
if (atwith == SHOTSPARK1__STATIC && !WW2GI && !NAM)
|
||||
{
|
||||
if (j == -1)
|
||||
{
|
||||
sa += (angRange/2)-(TRAND&(angRange-1));
|
||||
zvel = (100-ps[p].horiz-ps[p].horizoff)<<5;
|
||||
zvel += (zRange/2)-(TRAND&(zRange-1));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sa += (angRange/2)-(TRAND&(angRange-1));
|
||||
if (j == -1)
|
||||
{
|
||||
|
@ -1134,6 +1160,8 @@ DOSKIPBULLETHOLE:
|
|||
zvel = (100-ps[p].horiz-ps[p].horizoff)<<5;
|
||||
}
|
||||
zvel += (zRange/2)-(TRAND&(zRange-1));
|
||||
}
|
||||
|
||||
sz -= (2<<8);
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1550,8 +1550,7 @@ static void getlevelfromfilename(const char *fn, char *volume, char *level)
|
|||
|
||||
int enterlevel(char g)
|
||||
{
|
||||
short i;
|
||||
long l;
|
||||
int i;
|
||||
char levname[BMAX_PATH];
|
||||
|
||||
ready2send = 1; // HACK: fetch any leftover p2p sync packets
|
||||
|
@ -1688,10 +1687,10 @@ int enterlevel(char g)
|
|||
else
|
||||
{
|
||||
|
||||
l = strlen(level_file_names[(ud.volume_number*MAXLEVELS)+ud.level_number]);
|
||||
copybufbyte(level_file_names[(ud.volume_number*MAXLEVELS)+ud.level_number],&levname[0],l);
|
||||
levname[l] = 255;
|
||||
levname[l+1] = 0;
|
||||
i = strlen(level_file_names[(ud.volume_number*MAXLEVELS)+ud.level_number]);
|
||||
copybufbyte(level_file_names[(ud.volume_number*MAXLEVELS)+ud.level_number],&levname[0],i);
|
||||
levname[i] = 255;
|
||||
levname[i+1] = 0;
|
||||
|
||||
if (loadboard(levname,1,&ps[0].posx, &ps[0].posy, &ps[0].posz, &ps[0].ang,&ps[0].cursectnum) == -1)
|
||||
{
|
||||
|
|
|
@ -24,6 +24,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
|
||||
#include "duke3d.h"
|
||||
|
||||
#define BYTEVERSION_COMPAT (BYTEVERSION-3)
|
||||
|
||||
void readsavenames(void)
|
||||
{
|
||||
long dummy,j;
|
||||
|
@ -52,7 +54,7 @@ void readsavenames(void)
|
|||
Bfclose(fil);
|
||||
continue;
|
||||
}
|
||||
if (dummy != BYTEVERSION)
|
||||
if (dummy != BYTEVERSION && dummy != BYTEVERSION_COMPAT)
|
||||
{
|
||||
Bfclose(fil);
|
||||
continue;
|
||||
|
@ -89,7 +91,7 @@ int loadpheader(char spot,struct savehead *saveh)
|
|||
// AddLog(g_szBuf);
|
||||
|
||||
if (kdfread(&bv,4,1,fil) != 1) goto corrupt;
|
||||
if (bv != BYTEVERSION)
|
||||
if (bv != BYTEVERSION && bv != BYTEVERSION_COMPAT)
|
||||
{
|
||||
FTA(114,&ps[myconnectindex]);
|
||||
kclose(fil);
|
||||
|
@ -166,7 +168,7 @@ int loadplayer(signed char spot)
|
|||
// AddLog(g_szBuf);
|
||||
|
||||
if (kdfread(&bv,4,1,fil) != 1) return -1;
|
||||
if (bv != BYTEVERSION)
|
||||
if (bv != BYTEVERSION && bv != BYTEVERSION_COMPAT)
|
||||
{
|
||||
FTA(114,&ps[myconnectindex]);
|
||||
kclose(fil);
|
||||
|
|
Loading…
Reference in a new issue