git-svn-id: https://svn.eduke32.com/eduke32@559 1a8010ca-5511-0410-912e-c29ae57300e0

This commit is contained in:
terminx 2007-08-25 01:05:00 +00:00
parent c9e97fa954
commit b5a81483f2
18 changed files with 1326 additions and 1263 deletions

View file

View file

View file

@ -1239,7 +1239,7 @@ static void movefx(void)
if (p == myconnectindex && ps[p].cursectnum == s->sectnum)
{
j = s->lotag+((unsigned)global_random%(s->hitag+1));
sound(j);
sound(j);
T5 = 26*40 + (global_random%(26*40));
}
}
@ -1272,8 +1272,8 @@ static void movefallers(void)
IFHIT
{
if (j == FIREEXT || j == RPG || j == RADIUSEXPLOSION || j == SEENINE || j == OOZFILTER)
{
if (s->extra <= 0)
{
if (s->extra <= 0)
{
T1 = 1;
j = headspritestat[12];
@ -1516,31 +1516,31 @@ static void movestandables(void)
IFHIT
{
if (s->owner == -2)
if (ps[p].on_crane == i)
ps[p].on_crane = -1;
s->owner = -1;
s->picnum = CRANE;
goto BOLT;
}
if (ps[p].on_crane == i)
ps[p].on_crane = -1;
s->owner = -1;
s->picnum = CRANE;
goto BOLT;
}
if (s->owner >= 0)
{
setsprite(s->owner,s->x,s->y,s->z);
if (s->owner >= 0)
{
setsprite(s->owner,s->x,s->y,s->z);
hittype[s->owner].bposx = s->x;
hittype[s->owner].bposy = s->y;
hittype[s->owner].bposz = s->z;
hittype[s->owner].bposx = s->x;
hittype[s->owner].bposy = s->y;
hittype[s->owner].bposz = s->z;
s->zvel = 0;
}
else if (s->owner == -2)
{
ps[p].oposx = ps[p].posx = s->x-(sintable[(ps[p].ang+512)&2047]>>6);
ps[p].oposy = ps[p].posy = s->y-(sintable[ps[p].ang&2047]>>6);
ps[p].oposz = ps[p].posz = s->z+(2<<8);
setsprite(ps[p].i,ps[p].posx,ps[p].posy,ps[p].posz);
ps[p].cursectnum = sprite[ps[p].i].sectnum;
}
s->zvel = 0;
}
else if (s->owner == -2)
{
ps[p].oposx = ps[p].posx = s->x-(sintable[(ps[p].ang+512)&2047]>>6);
ps[p].oposy = ps[p].posy = s->y-(sintable[ps[p].ang&2047]>>6);
ps[p].oposz = ps[p].posz = s->z+(2<<8);
setsprite(ps[p].i,ps[p].posx,ps[p].posy,ps[p].posz);
ps[p].cursectnum = sprite[ps[p].i].sectnum;
}
}
goto BOLT;
@ -2037,8 +2037,8 @@ DETONATE:
if (TRAND&1) s->zvel -= 256;
if (klabs(s->xvel) < 48)
s->xvel += (TRAND&3);
}
else KILLIT(i);
}
else KILLIT(i);
break;
case SIDEBOLT1__STATIC:
@ -2258,28 +2258,28 @@ CLEAR_THE_BOLT:
{
spritesound(VENT_BUST,i);
for (j=0;j<10;j++)
RANDOMSCRAP;
RANDOMSCRAP;
if (s->lotag) spawn(i,s->lotag);
KILLIT(i);
}
goto BOLT;
KILLIT(i);
}
goto BOLT;
case EXPLODINGBARREL__STATIC:
case WOODENHORSE__STATIC:
case HORSEONSIDE__STATIC:
case FLOORFLAME__STATIC:
case FIREBARREL__STATIC:
case FIREVASE__STATIC:
case NUKEBARREL__STATIC:
case NUKEBARRELDENTED__STATIC:
case NUKEBARRELLEAKED__STATIC:
case TOILETWATER__STATIC:
case RUBBERCAN__STATIC:
case STEAM__STATIC:
case CEILINGSTEAM__STATIC:
p = findplayer(s, &x);
case EXPLODINGBARREL__STATIC:
case WOODENHORSE__STATIC:
case HORSEONSIDE__STATIC:
case FLOORFLAME__STATIC:
case FIREBARREL__STATIC:
case FIREVASE__STATIC:
case NUKEBARREL__STATIC:
case NUKEBARRELDENTED__STATIC:
case NUKEBARRELLEAKED__STATIC:
case TOILETWATER__STATIC:
case RUBBERCAN__STATIC:
case STEAM__STATIC:
case CEILINGSTEAM__STATIC:
p = findplayer(s, &x);
execute(i,p,x);
goto BOLT;
case WATERBUBBLEMAKER__STATIC:
@ -3581,11 +3581,11 @@ static void moveactors(void)
{
T1++;
if (T1 > 1)
{
KILLIT(i);
}
else s->ang = (TRAND&2047);
{
KILLIT(i);
}
else s->ang = (TRAND&2047);
}
if (s->xvel < 128)
s->xvel+=2;
s->ang += (TRAND&3)-6;
@ -3745,8 +3745,8 @@ static void moveactors(void)
IFHIT
{
if (s->extra < 0 && t[0] != -1)
{
t[0] = -1;
{
t[0] = -1;
s->extra = 0;
}
spritesound(RECO_PAIN,i);
@ -3983,8 +3983,8 @@ static void moveactors(void)
for (j=16; j >= 0 ;j--)
{
k = EGS(SECT,SX,SY,SZ,GLASSPIECES+(j%3),-32,36,36,TRAND&2047,32+(TRAND&63),1024-(TRAND&1023),i,5);
sprite[k].pal = 1;
}
sprite[k].pal = 1;
}
spritesound(GLASS_BREAKING,i);
KILLIT(i);
}
@ -4116,25 +4116,25 @@ static void moveactors(void)
ps[p].actors_killed ++;
if (ps[p].somethingonplayer == i)
ps[p].somethingonplayer = -1;
ps[p].somethingonplayer = -1;
if (j == FREEZEBLAST)
{
spritesound(SOMETHINGFROZE,i);
t[0] = -5 ;
t[3] = 0 ;
goto BOLT;
}
t[0] = -5 ;
t[3] = 0 ;
goto BOLT;
}
if ((TRAND&255) < 32)
{
j = spawn(i,BLOODPOOL);
{
j = spawn(i,BLOODPOOL);
sprite[j].pal = 0;
}
for (x=0;x<8;x++)
{
j = EGS(sect,s->x,s->y,s->z-(8<<8),SCRAP3+(TRAND&3),-8,48,48,TRAND&2047,(TRAND&63)+64,-(TRAND&4095)-(s->zvel>>2),i,5);
{
j = EGS(sect,s->x,s->y,s->z-(8<<8),SCRAP3+(TRAND&3),-8,48,48,TRAND&2047,(TRAND&63)+64,-(TRAND&4095)-(s->zvel>>2),i,5);
sprite[j].pal = 6;
}
t[0] = -3;
@ -4714,16 +4714,16 @@ DETONATEB:
IFHIT
{
for (x=0;x<32;x++)
RANDOMSCRAP;
RANDOMSCRAP;
if (s->extra < 0)
t[1] = 1;
}
}
goto BOLT;
}
goto BOLT;
case CAMERA1__STATIC:
case CAMERA1__STATIC:
if (t[0] == 0)
if (t[0] == 0)
{
t[1]+=8;
if (camerashitable)
@ -4737,7 +4737,7 @@ DETONATEB:
}
}
if (s->hitag > 0)
if (s->hitag > 0)
{
if (t[1]<s->hitag)
s->ang+=8;
@ -6169,9 +6169,9 @@ static void moveeffectors(void) //STATNUM 3
{
t[3]++;
if (t[3] == 5)
{
s->zvel += 1024;
FTA(7,&ps[myconnectindex]);
{
s->zvel += 1024;
FTA(7,&ps[myconnectindex]);
}
}
@ -6793,8 +6793,8 @@ static void moveeffectors(void) //STATNUM 3
l = headspritestat[3];
while (l >= 0)
{
x = sprite[l].lotag&0x7fff;
{
x = sprite[l].lotag&0x7fff;
switch (x)
{
case 0:

View file

@ -204,7 +204,7 @@ void playanm(const char *fn,char t)
char *animbuf;
unsigned char *palptr;
long i, j, length=0, numframes=0;
#if defined(POLYMOST) && defined(USE_OPENGL)
#if defined(POLYMOST) && defined(USE_OPENGL)
int ogltexfiltermode=gltexfiltermode;
#endif
int32 handle=-1;
@ -250,7 +250,7 @@ void playanm(const char *fn,char t)
//setbrightness(ud.brightness>>2,tempbuf,2);
setgamepalette(&ps[myconnectindex],animpal,10);
#if defined(POLYMOST) && defined(USE_OPENGL)
#if defined(POLYMOST) && defined(USE_OPENGL)
gltexfiltermode = 0;
gltexapplyprops();
#endif
@ -300,10 +300,10 @@ void playanm(const char *fn,char t)
ENDOFANIMLOOP:
#if defined(POLYMOST) && defined(USE_OPENGL)
#if defined(POLYMOST) && defined(USE_OPENGL)
gltexfiltermode = ogltexfiltermode;
gltexapplyprops();
#endif
#endif
MOUSE_ClearButton(LEFT_MOUSE);
ANIM_FreeAnim();
walock[TILE_ANIM] = 1;

View file

@ -59,95 +59,95 @@ static struct strllist
#define MAXHELP2D (signed int)(sizeof(Help2d)/sizeof(Help2d[0]))
static char *Help2d[]=
{
" 'A = Autosave toggle",
" 'J = Jump to location",
" 'L = Adjust sprite/wall coords",
" 'S = Sprite size",
" '3 = Caption mode",
" '7 = Swap tags",
" 'F = Special functions",
" X = Horiz. flip selected sects",
" Y = Vert. flip selected sects",
" F5 = Item count",
" F6 = Actor count/SE help",
" F7 = Edit sector",
" F8 = Edit wall/sprite",
" F9 = Sector tag help",
" Ctrl-S = Quick save",
" Alt-F7 = Search sector lotag",
" Alt-F8 = Search wall/sprite tags",
" [ = Search forward",
" ] = Search backward",
};
{
" 'A = Autosave toggle",
" 'J = Jump to location",
" 'L = Adjust sprite/wall coords",
" 'S = Sprite size",
" '3 = Caption mode",
" '7 = Swap tags",
" 'F = Special functions",
" X = Horiz. flip selected sects",
" Y = Vert. flip selected sects",
" F5 = Item count",
" F6 = Actor count/SE help",
" F7 = Edit sector",
" F8 = Edit wall/sprite",
" F9 = Sector tag help",
" Ctrl-S = Quick save",
" Alt-F7 = Search sector lotag",
" Alt-F8 = Search wall/sprite tags",
" [ = Search forward",
" ] = Search backward",
};
static char *SpriteMode[]=
{
"NONE",
"SECTORS",
"WALLS",
"SPRITES",
"ALL",
"ITEMS ONLY",
"CURRENT SPRITE ONLY",
"ONLY SECTOREFFECTORS AND SECTORS",
"NO SECTOREFFECTORS OR SECTORS"
};
{
"NONE",
"SECTORS",
"WALLS",
"SPRITES",
"ALL",
"ITEMS ONLY",
"CURRENT SPRITE ONLY",
"ONLY SECTOREFFECTORS AND SECTORS",
"NO SECTOREFFECTORS OR SECTORS"
};
#define MAXSKILL 5
static char *SKILLMODE[MAXSKILL]=
{
"Actor skill display: PIECE OF CAKE",
"Actor skill display: LET'S ROCK",
"Actor skill display: COME GET SOME",
"Actor skill display: DAMN I'M GOOD",
"Actor skill display: ALL SKILL LEVELS"
};
{
"Actor skill display: PIECE OF CAKE",
"Actor skill display: LET'S ROCK",
"Actor skill display: COME GET SOME",
"Actor skill display: DAMN I'M GOOD",
"Actor skill display: ALL SKILL LEVELS"
};
#define MAXNOSPRITES 4
static char *SPRDSPMODE[MAXNOSPRITES]=
{
"Sprite display: DISPLAY ALL SPRITES",
"Sprite display: NO EFFECTORS",
"Sprite display: NO ACTORS",
"Sprite display: NO EFFECTORS OR ACTORS"
};
{
"Sprite display: DISPLAY ALL SPRITES",
"Sprite display: NO EFFECTORS",
"Sprite display: NO ACTORS",
"Sprite display: NO EFFECTORS OR ACTORS"
};
#define MAXHELP3D (signed int)(sizeof(Help3d)/sizeof(Help3d[0]))
static char *Help3d[]=
{
"Mapster32 3D mode help",
" ",
" F1 = TOGGLE THIS HELP DISPLAY",
" F2 = TOGGLE CLIPBOARD",
" F3 = MOUSELOOK",
" F6 = AUTOMATIC SECTOREFFECTOR HELP",
" F7 = AUTOMATIC SECTOR TAG HELP",
"",
" ' A = TOGGLE AUTOSAVE",
" ' D = CYCLE SPRITE SKILL DISPLAY",
" ' G = TOGGLE CLIPBOARD GRAPHIC DISPLAY",
" ' R = TOGGLE FRAMERATE DISPLAY",
" ' W = TOGGLE SPRITE DISPLAY",
" ' X = SPRITE SHADE PREVIEW",
" ' Y = TOGGLE PURPLE BACKGROUND",
"",
" ' T = CHANGE LOTAG",
" ' H = CHANGE HITAG",
" ' S = CHANGE SHADE",
" ' M = CHANGE EXTRA",
" ' V = CHANGE VISIBILITY",
" ' L = CHANGE OBJECT COORDINATES",
" ' C = CHANGE GLOBAL SHADE",
"",
" ' ENTER = PASTE GRAPHIC ONLY",
" ' P & ; P = PASTE PALETTE TO ALL SELECTED SECTORS",
" ; V = SET VISIBILITY ON ALL SELECTED SECTORS",
" ' DEL = CSTAT=0",
" CTRL-S = SAVE BOARD",
" HOME = PGUP/PGDN MODIFIER (256 UNITS)",
" END = PGUP/PGDN MODIFIER (512 UNITS)",
};
{
"Mapster32 3D mode help",
" ",
" F1 = TOGGLE THIS HELP DISPLAY",
" F2 = TOGGLE CLIPBOARD",
" F3 = MOUSELOOK",
" F6 = AUTOMATIC SECTOREFFECTOR HELP",
" F7 = AUTOMATIC SECTOR TAG HELP",
"",
" ' A = TOGGLE AUTOSAVE",
" ' D = CYCLE SPRITE SKILL DISPLAY",
" ' G = TOGGLE CLIPBOARD GRAPHIC DISPLAY",
" ' R = TOGGLE FRAMERATE DISPLAY",
" ' W = TOGGLE SPRITE DISPLAY",
" ' X = SPRITE SHADE PREVIEW",
" ' Y = TOGGLE PURPLE BACKGROUND",
"",
" ' T = CHANGE LOTAG",
" ' H = CHANGE HITAG",
" ' S = CHANGE SHADE",
" ' M = CHANGE EXTRA",
" ' V = CHANGE VISIBILITY",
" ' L = CHANGE OBJECT COORDINATES",
" ' C = CHANGE GLOBAL SHADE",
"",
" ' ENTER = PASTE GRAPHIC ONLY",
" ' P & ; P = PASTE PALETTE TO ALL SELECTED SECTORS",
" ; V = SET VISIBILITY ON ALL SELECTED SECTORS",
" ' DEL = CSTAT=0",
" CTRL-S = SAVE BOARD",
" HOME = PGUP/PGDN MODIFIER (256 UNITS)",
" END = PGUP/PGDN MODIFIER (512 UNITS)",
};
static CACHE1D_FIND_REC *finddirs=NULL, *findfiles=NULL, *finddirshigh=NULL, *findfileshigh=NULL;
static int numdirs=0, numfiles=0;
@ -203,7 +203,7 @@ void ExtLoadMap(const char *mapname)
{
polymost_precache(sector[j].floorpicnum,sector[j].floorpal,0);
polymost_precache(sector[j].floorpicnum,sector[j].floorpal,0);
}
}
}
for(j=0;j<numsprites;j++)
@ -3895,11 +3895,11 @@ static void Keys3d(void)
}
/* if(purpleon) {
begindrawing();
// printext256(1*4,1*8,whitecol,-1,"Purple ON",0);
begindrawing();
// printext256(1*4,1*8,whitecol,-1,"Purple ON",0);
sprintf(getmessage,"Purple ON");
message(getmessage);
enddrawing();
enddrawing();
}
*/
if (sector[cursectnum].lotag==2)
@ -5513,7 +5513,8 @@ void GAME_clearbackground(int c, int r)
}
#endif
enum {
enum
{
T_EOF = -2,
T_ERROR = -1,
T_INCLUDE = 0,
@ -5569,11 +5570,11 @@ int parsegroupfiles(scriptfile *script)
char *cmdtokptr;
tokenlist grptokens[] =
{
{ "include", T_INCLUDE },
{ "#include", T_INCLUDE },
{ "loadgrp", T_LOADGRP },
};
{
{ "include", T_INCLUDE },
{ "#include", T_INCLUDE },
{ "loadgrp", T_LOADGRP },
};
while (1)
{
@ -5655,13 +5656,13 @@ int parsetilegroups(scriptfile *script)
char *cmdtokptr;
tokenlist tgtokens[] =
{
{ "include", T_INCLUDE },
{ "#include", T_INCLUDE },
{ "define", T_DEFINE },
{ "#define", T_DEFINE },
{ "tilegroup", T_TILEGROUP },
};
{
{ "include", T_INCLUDE },
{ "#include", T_INCLUDE },
{ "define", T_DEFINE },
{ "#define", T_DEFINE },
{ "tilegroup", T_TILEGROUP },
};
while (1)
{
@ -5717,13 +5718,13 @@ int parsetilegroups(scriptfile *script)
while (script->textptr < end)
{
tokenlist tgtokens2[] =
{
{ "tilegroup", T_TILEGROUP },
{ "tile", T_TILE },
{ "tilerange", T_TILERANGE },
{ "hotkey", T_HOTKEY },
{ "tiles", T_TILES },
};
{
{ "tilegroup", T_TILEGROUP },
{ "tile", T_TILE },
{ "tilerange", T_TILERANGE },
{ "hotkey", T_HOTKEY },
{ "tiles", T_TILES },
};
int token = getatoken(script,tgtokens2,sizeof(tgtokens2)/sizeof(tokenlist));
switch (token)
@ -5903,8 +5904,10 @@ int ExtInit(void)
}
loadgroupfiles(defsfilename);
if (grps && grpstoadd > 0) {
for (i=0;i<grpstoadd;i++) {
if (grps && grpstoadd > 0)
{
for (i=0;i<grpstoadd;i++)
{
initprintf("Adding %s\n",grps[i]);
initgroupfile(grps[i]);
if (!NoAutoLoad)
@ -7287,7 +7290,8 @@ static void FuncMenu(void)
disptext[dispwidth] = 0;
if (row > rowmax) row = rowmax;
}
else */ if (col == 1)
else */
if (col == 1)
{
printext16(xpos,ypos+row*8,11,0,disptext,0);
col = 0;

View file

@ -381,7 +381,6 @@ struct player_orig {
extern char numplayersprites;
extern char picsiz[MAXTILES];
extern long fricxv,fricyv;
@ -883,7 +882,9 @@ enum logoflags {
LOGO_FLAG_TITLESCREEN = 16,
LOGO_FLAG_DUKENUKEM = 32,
LOGO_FLAG_THREEDEE = 64,
LOGO_FLAG_PLUTOPAKSPRITE = 128
LOGO_FLAG_PLUTOPAKSPRITE = 128,
LOGO_FLAG_SHAREWARESCREENS = 256,
LOGO_FLAG_TENSCREEN = 512
};
extern char numl;

View file

@ -2510,7 +2510,11 @@ void fadepal(int r, int g, int b, int start, int end, int step)
static void showtwoscreens(void)
{
if (!VOLUMEALL)
int flags = GetGameVar("LOGO_FLAGS",255, -1, -1);
MUSIC_StopSong();
if (!VOLUMEALL || flags & LOGO_FLAG_SHAREWARESCREENS)
{
setview(0,0,xdim-1,ydim-1);
flushperms();
@ -2538,6 +2542,24 @@ static void showtwoscreens(void)
getpackets();
}
}
if (flags & LOGO_FLAG_TENSCREEN)
{
setview(0,0,xdim-1,ydim-1);
flushperms();
//ps[myconnectindex].palette = palette;
setgamepalette(&ps[myconnectindex], palette, 1); // JBF 20040308
fadepal(0,0,0, 0,64,7);
KB_FlushKeyboardQueue();
rotatesprite(0,0,65536L,0,TENSCREEN,0,0,2+8+16+64, 0,0,xdim-1,ydim-1);
IFISSOFTMODE fadepal(0,0,0, 63,0,-7);
else nextpage();
while (!KB_KeyWaiting() && totalclock < 2400)
{
handleevents();
getpackets();
}
}
}
extern long qsetmode;
@ -2626,7 +2648,8 @@ static int strget_(int small,int x,int y,char *t,int dalen,int c)
{
ch = Btoupper(ch);
if (c != 997 || (ch >= '0' && ch <= '9'))
{ // JBF 20040508: so we can have numeric only if we want
{
// JBF 20040508: so we can have numeric only if we want
*(t+inputloc) = ch;
*(t+inputloc+1) = 0;
inputloc++;
@ -3930,7 +3953,8 @@ void displayrooms(int snum,long smoothratio)
else tang = 0;
if (xres <= 320 && yres <= 240)
{ // JBF 20030807: Increased tilted-screen quality
{
// JBF 20030807: Increased tilted-screen quality
tiltcs = 1;
tiltcx = 320;
tiltcy = 200;
@ -3950,7 +3974,8 @@ void displayrooms(int snum,long smoothratio)
else
setviewtotile(TILE_TILT,tiltcx>>(1-ud.detail),tiltcx>>(1-ud.detail));
if ((tang&1023) == 512)
{ //Block off unscreen section of 90ø tilted screen
{
//Block off unscreen section of 90ø tilted screen
j = ((tiltcx-(60*tiltcs))>>(1-ud.detail));
for (i=((60*tiltcs)>>(1-ud.detail))-1;i>=0;i--)
{
@ -5289,7 +5314,8 @@ int spawn(int j, int pn)
}
case WATERBUBBLEMAKER__STATIC:
if (sp->hitag && sp->picnum == WATERBUBBLEMAKER)
{ // JBF 20030913: Pisses off move(), eg. in bobsp2
{
// JBF 20030913: Pisses off move(), eg. in bobsp2
OSD_Printf("WARNING: WATERBUBBLEMAKER %d @ %d,%d with hitag!=0. Applying fixup.\n",
i,sp->x,sp->y);
sp->hitag = 0;
@ -6224,7 +6250,7 @@ void animatesprites(long x,long y,int a,long smoothratio)
//greenslime can't be handled through the dynamictostatic system due to addition on constant
if ((t->picnum >= GREENSLIME)&&(t->picnum <= GREENSLIME+7))
{}
{}
else switch (dynamictostatic[t->picnum])
{
case BLOODPOOL__STATIC:
@ -6311,7 +6337,8 @@ void animatesprites(long x,long y,int a,long smoothratio)
}
for (j=0;j < spritesortcnt; j++) //Between drawrooms() and drawmasks()
{ //is the perfect time to animate sprites
{
//is the perfect time to animate sprites
t = &tsprite[j];
i = t->owner;
s = &sprite[i];
@ -7042,35 +7069,35 @@ PALONLY:
static char terminx[64] = { "Undead TC still sucks." };
char cheatquotes[][MAXCHEATLEN] =
{
"cornholio", // 0
"stuff", // 1
"scotty###", // 2
"coords", // 3
"view", // 4
"time", // 5
"unlock", // 6
"cashman", // 7
"items", // 8
"rate", // 9
"skill#", // 10
"beta", // 11
"hyper", // 12
"monsters", // 13
"<RESERVED>", // 14
"<RESERVED>", // 15
"todd", // 16
"showmap", // 17
"kroz", // 18
"allen", // 19
"clip", // 20
"weapons", // 21
"inventory", // 22
"keys", // 23
"debug", // 24
"<RESERVED>", // 25
"sfm", // 26
};
{
"cornholio", // 0
"stuff", // 1
"scotty###", // 2
"coords", // 3
"view", // 4
"time", // 5
"unlock", // 6
"cashman", // 7
"items", // 8
"rate", // 9
"skill#", // 10
"beta", // 11
"hyper", // 12
"monsters", // 13
"<RESERVED>", // 14
"<RESERVED>", // 15
"todd", // 16
"showmap", // 17
"kroz", // 18
"allen", // 19
"clip", // 20
"weapons", // 21
"inventory", // 22
"keys", // 23
"debug", // 24
"<RESERVED>", // 25
"sfm", // 26
};
enum cheats
{
@ -7179,7 +7206,8 @@ static void cheats(void)
char consolecheat = 0; // JBF 20030914
if (osdcmd_cheatsinfo_stat.cheatnum != -1)
{ // JBF 20030914
{
// JBF 20030914
k = osdcmd_cheatsinfo_stat.cheatnum;
osdcmd_cheatsinfo_stat.cheatnum = -1;
consolecheat = 1;
@ -7420,7 +7448,8 @@ FOUNDCHEAT:
{
i = Bstrlen(cheatquotes[k])-3+VOLUMEONE;
if (!consolecheat)
{ // JBF 20030914
{
// JBF 20030914
short volnume,levnume;
if (VOLUMEALL)
{
@ -7448,7 +7477,8 @@ FOUNDCHEAT:
ud.m_level_number = ud.level_number = levnume;
}
else
{ // JBF 20030914
{
// JBF 20030914
ud.m_volume_number = ud.volume_number = osdcmd_cheatsinfo_stat.volume;
ud.m_level_number = ud.level_number = osdcmd_cheatsinfo_stat.level;
}
@ -8232,11 +8262,11 @@ static int load_rancid_net(const char *fn)
char *cmdtokptr;
tokenlist rancidtokens[] =
{
{ "interface", T_INTERFACE },
{ "mode", T_MODE },
{ "allow", T_ALLOW },
};
{
{ "interface", T_INTERFACE },
{ "mode", T_MODE },
{ "allow", T_ALLOW },
};
scriptfile *script;
@ -8450,12 +8480,12 @@ static int parsegroupfiles(scriptfile *script)
char *cmdtokptr;
tokenlist grptokens[] =
{
{ "include", T_INCLUDE },
{ "#include", T_INCLUDE },
{ "loadgrp", T_LOADGRP },
{ "cachesize", T_CACHESIZE },
};
{
{ "include", T_INCLUDE },
{ "#include", T_INCLUDE },
{ "loadgrp", T_LOADGRP },
{ "cachesize", T_CACHESIZE },
};
while (1)
{
@ -9157,7 +9187,8 @@ static void Logo(void)
}
else soundanm = 2;
if (PLUTOPAK && (logoflags & LOGO_FLAG_PLUTOPAKSPRITE))
{ // JBF 20030804
{
// JBF 20030804
if (totalclock >= 280 && totalclock < 395)
{
rotatesprite(160<<16,(151)<<16,(410-totalclock)<<12,0,PLUTOPAKSPRITE+1,0,0,2+8,0,0,xdim-1,ydim-1);
@ -9960,7 +9991,8 @@ void app_main(int argc,const char **argv)
initprintf("Using config file '%s'.\n",setupfilename);
ScanGroups();
{ // try and identify the 'defaultduke3dgrp' in the set of GRPs.
{
// try and identify the 'defaultduke3dgrp' in the set of GRPs.
// if it is found, set up the environment accordingly for the game it represents.
// if it is not found, choose the first GRP from the list of
struct grpfile *fg, *first = NULL;
@ -10026,7 +10058,7 @@ void app_main(int argc,const char **argv)
if (!NoAutoLoad)
{
getfilenames("autoload","*.grp");
while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; }
while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; }
getfilenames("autoload","*.zip");
while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; }
getfilenames("autoload","*.pk3");
@ -10294,7 +10326,8 @@ MAIN_LOOP_RESTART:
while (!(ps[myconnectindex].gm&MODE_END)) //The whole loop!!!!!!!!!!!!!!!!!!
{
if (handleevents())
{ // JBF
{
// JBF
if (quitevent)
{
KB_KeyDown[sc_Escape] = 1;
@ -10440,7 +10473,8 @@ static int opendemoread(int which_demo) // 0 = mine
if (kread(recfilep,&ver,sizeof(char)) != sizeof(char)) goto corrupt;
if (ver != BYTEVERSION /*&& ver != 116 && ver != 117*/)
{ /* old demo playback */
{
/* old demo playback */
if (ver == BYTEVERSION_JF) initprintf("Demo %s is for Regular edition.\n", d);
else if (ver == BYTEVERSION_JF+1) initprintf("Demo %s is for Atomic edition.\n", d);
else if (ver == BYTEVERSION_JF+2) initprintf("Demo %s is for Shareware version.\n", d);
@ -11149,7 +11183,8 @@ static void fakedomovethings(void)
myyvel = 0;
}
else if (syn->avel) //p->ang += syncangvel * constant
{ //ENGINE calculates angvel for you
{
//ENGINE calculates angvel for you
long tempang = syn->avel<<1;
if (psectlotag == 2)
@ -11566,22 +11601,22 @@ void dobonus(int bonusonly)
int32 playerbest = -1;
int breathe[] =
{
0, 30,VICTORY1+1,176,59,
30, 60,VICTORY1+2,176,59,
60, 90,VICTORY1+1,176,59,
90, 120,0 ,176,59
};
{
0, 30,VICTORY1+1,176,59,
30, 60,VICTORY1+2,176,59,
60, 90,VICTORY1+1,176,59,
90, 120,0 ,176,59
};
int bossmove[] =
{
0, 120,VICTORY1+3,86,59,
220, 260,VICTORY1+4,86,59,
260, 290,VICTORY1+5,86,59,
290, 320,VICTORY1+6,86,59,
320, 350,VICTORY1+7,86,59,
350, 380,VICTORY1+8,86,59
};
{
0, 120,VICTORY1+3,86,59,
220, 260,VICTORY1+4,86,59,
260, 290,VICTORY1+5,86,59,
290, 320,VICTORY1+6,86,59,
320, 350,VICTORY1+7,86,59,
350, 380,VICTORY1+8,86,59
};
if (VOLUMEALL) wm_setapptitle(HEAD2);
else wm_setapptitle(HEAD);

File diff suppressed because it is too large Load diff

View file

@ -4258,30 +4258,30 @@ static int parse(void)
j=GetGameVarID(*insptr++, g_i, g_p);
switch (tw)
{
case CON_HEADSPRITESTAT:
if (j < MAXSTATUS)
SetGameVarID(i,headspritestat[j],g_i,g_p);
break;
case CON_PREVSPRITESTAT:
if (j < MAXSPRITES)
SetGameVarID(i,prevspritestat[j],g_i,g_p);
break;
case CON_NEXTSPRITESTAT:
if (j < MAXSPRITES)
SetGameVarID(i,nextspritestat[j],g_i,g_p);
break;
case CON_HEADSPRITESECT:
if (j < MAXSECTORS)
SetGameVarID(i,headspritesect[j],g_i,g_p);
break;
case CON_PREVSPRITESECT:
if (j < MAXSPRITES)
SetGameVarID(i,prevspritesect[j],g_i,g_p);
break;
case CON_NEXTSPRITESECT:
if (j < MAXSPRITES)
SetGameVarID(i,nextspritesect[j],g_i,g_p);
break;
case CON_HEADSPRITESTAT:
if (j < MAXSTATUS)
SetGameVarID(i,headspritestat[j],g_i,g_p);
break;
case CON_PREVSPRITESTAT:
if (j < MAXSPRITES)
SetGameVarID(i,prevspritestat[j],g_i,g_p);
break;
case CON_NEXTSPRITESTAT:
if (j < MAXSPRITES)
SetGameVarID(i,nextspritestat[j],g_i,g_p);
break;
case CON_HEADSPRITESECT:
if (j < MAXSECTORS)
SetGameVarID(i,headspritesect[j],g_i,g_p);
break;
case CON_PREVSPRITESECT:
if (j < MAXSPRITES)
SetGameVarID(i,prevspritesect[j],g_i,g_p);
break;
case CON_NEXTSPRITESECT:
if (j < MAXSPRITES)
SetGameVarID(i,nextspritesect[j],g_i,g_p);
break;
}
break;
}
@ -6373,7 +6373,7 @@ static int parse(void)
adduserquote(fta_quotes[i]);
}
break;
case CON_IFINOUTERSPACE:
parseifelse(floorspace(g_sp->sectnum));
break;

View file

@ -1332,5 +1332,5 @@ static void ResetPointerVars(void)
aGameVars[GetGameID("myreturntocenter")].lValue = (long)&myreturntocenter;
aGameVars[GetGameID("display_mirror")].lValue = (long)&display_mirror;
aGameVars[GetGameID("randomseed")].lValue = (long)&randomseed;
aGameVars[GetGameID("randomseed")].lValue = (long)&randomseed;
}

View file

@ -128,23 +128,24 @@ char env_music_fn[MAXVOLUMES+1][BMAX_PATH];
char rtsplaying;
short weaponsandammosprites[15] = {
RPGSPRITE__STATIC,
CHAINGUNSPRITE__STATIC,
DEVISTATORAMMO__STATIC,
RPGAMMO__STATIC,
RPGAMMO__STATIC,
JETPACK__STATIC,
SHIELD__STATIC,
FIRSTAID__STATIC,
STEROIDS__STATIC,
RPGAMMO__STATIC,
RPGAMMO__STATIC,
RPGSPRITE__STATIC,
RPGAMMO__STATIC,
FREEZESPRITE__STATIC,
FREEZEAMMO__STATIC
};
short weaponsandammosprites[15] =
{
RPGSPRITE__STATIC,
CHAINGUNSPRITE__STATIC,
DEVISTATORAMMO__STATIC,
RPGAMMO__STATIC,
RPGAMMO__STATIC,
JETPACK__STATIC,
SHIELD__STATIC,
FIRSTAID__STATIC,
STEROIDS__STATIC,
RPGAMMO__STATIC,
RPGAMMO__STATIC,
RPGSPRITE__STATIC,
RPGAMMO__STATIC,
FREEZESPRITE__STATIC,
FREEZEAMMO__STATIC
};
long impact_damage;
int condebug;

View file

@ -9,17 +9,17 @@
#include "grpscan.h"
struct grpfile grpfiles[numgrpfiles] =
{
{ "Duke Nukem 3D", 0xBBC9CE44, 26524524, GAMEDUKE, NULL },
{ "Duke Nukem 3D: Atomic Edition", 0xF514A6AC, 44348015, GAMEDUKE, NULL },
{ "Duke Nukem 3D: Atomic Edition", 0xFD3DCFF1, 44356548, GAMEDUKE, NULL },
{ "Duke Nukem 3D Shareware", 0x983AD923, 11035779, GAMEDUKE, NULL },
{ "Duke Nukem 3D Mac Shareware", 0xC5F71561, 10444391, GAMEDUKE, NULL },
{ "Duke Nukem 3D Mac", 0x00000000, 0, GAMEDUKE, NULL },
{ "NAM", 0x75C1F07B, 43448927, GAMENAM, NULL },
{ "Napalm", 0x3DE1589A, 44365728, GAMENAM, NULL },
{ "WW2GI", 0x907B82BF, 77939508, GAMEWW2, NULL },
};
{
{ "Duke Nukem 3D", 0xBBC9CE44, 26524524, GAMEDUKE, NULL },
{ "Duke Nukem 3D: Atomic Edition", 0xF514A6AC, 44348015, GAMEDUKE, NULL },
{ "Duke Nukem 3D: Atomic Edition", 0xFD3DCFF1, 44356548, GAMEDUKE, NULL },
{ "Duke Nukem 3D Shareware", 0x983AD923, 11035779, GAMEDUKE, NULL },
{ "Duke Nukem 3D Mac Shareware", 0xC5F71561, 10444391, GAMEDUKE, NULL },
{ "Duke Nukem 3D Mac", 0x00000000, 0, GAMEDUKE, NULL },
{ "NAM", 0x75C1F07B, 43448927, GAMENAM, NULL },
{ "Napalm", 0x3DE1589A, 44365728, GAMENAM, NULL },
{ "WW2GI", 0x907B82BF, 77939508, GAMEWW2, NULL },
};
struct grpfile *foundgrps = NULL;
#define GRPCACHEFILE "grpfiles.cache"

View file

@ -726,28 +726,29 @@ void menus(void)
c = (320>>1)-120;
{
int io, ii, yy = 37, d=c+140, enabled;
char *opts[] = {
"Name",
"-",
"Color",
"-",
"Team",
"-",
"-",
"Auto aim",
"Mouse aim",
"-",
"-",
"Switch weapon on pickup",
"Switch weapon when empty",
"-",
"-",
"Network packets/sec",
"-",
"-",
"Multiplayer macros",
NULL
};
char *opts[] =
{
"Name",
"-",
"Color",
"-",
"Team",
"-",
"-",
"Auto aim",
"Mouse aim",
"-",
"-",
"Switch weapon on pickup",
"Switch weapon when empty",
"-",
"-",
"Network packets/sec",
"-",
"-",
"Multiplayer macros",
NULL
};
x = ud.color;
@ -940,7 +941,8 @@ void menus(void)
case 1:
{
char *s[] = { "Auto","","","","","","","","","Blue","Red","Green","Gray","Dark gray","Dark green","Brown",
"Dark blue","","","","","Bright red","","Yellow","","" };
"Dark blue","","","","","Bright red","","Yellow","",""
};
gametext(d-50,yy,s[ud.color],MENUHIGHLIGHT(io),2+8+16);
}
break;
@ -1248,7 +1250,7 @@ void menus(void)
current_menu = 20022;
}
else if (x == 2)
{}
{}
KB_ClearKeyDown(sc_Enter);
KB_ClearKeyDown(sc_kpad_Enter);
KB_FlushKeyboardQueue();
@ -1867,36 +1869,36 @@ cheat_for_port_credits:
gametext(160,122-l,"LICENSE AND OTHER CONTRIBUTORS",0,2+8+16);
{
const char *scroller[] =
{
"This program is distributed under the terms of the",
"GNU General Public License version 2 as published by the",
"Free Software Foundation. See GNU.TXT for details.",
"",
"Thanks to the following people for their contributions:",
"",
"Adam Fazakerley",
"Charlie Honig",
"Ed Coolidge",
"James Bentler",
"Javier Martinez",
"Jeff Hart",
"Jonathan Smith",
"Jose del Castillo",
"Lachlan McDonald",
"Matthew Palmer",
"Peter Green",
"Ryan Gordon",
"",
"EDuke originally by Matt Saettler",
"",
"--x--",
"",
"",
"",
"",
"",
""
};
{
"This program is distributed under the terms of the",
"GNU General Public License version 2 as published by the",
"Free Software Foundation. See GNU.TXT for details.",
"",
"Thanks to the following people for their contributions:",
"",
"Adam Fazakerley",
"Charlie Honig",
"Ed Coolidge",
"James Bentler",
"Javier Martinez",
"Jeff Hart",
"Jonathan Smith",
"Jose del Castillo",
"Lachlan McDonald",
"Matthew Palmer",
"Peter Green",
"Ryan Gordon",
"",
"EDuke originally by Matt Saettler",
"",
"--x--",
"",
"",
"",
"",
"",
""
};
const int numlines = sizeof(scroller)/sizeof(char *);
for (m=0,i=(totalclock/104)%numlines; m<6; m++,i++)
{
@ -2182,7 +2184,8 @@ cheat_for_port_credits:
// path
minitext(52,32,boardfilename,0,26);
{ // JBF 20040208: seek to first name matching pressed character
{
// JBF 20040208: seek to first name matching pressed character
CACHE1D_FIND_REC *seeker = currentlist ? findfiles : finddirs;
if ((KB_KeyPressed(sc_Home)|KB_KeyPressed(sc_End)) > 0)
{
@ -2418,25 +2421,26 @@ cheat_for_port_credits:
{
int io, ii, yy, d=c+160+40, enabled;
char *opts[] = {
"Widescreen",
"-",
"Anisotropic filtering",
"-",
"Hightile textures",
"Precache textures",
"GL texture compression",
"Cache textures on disk",
"Compress disk cache",
"Detail mapping",
"Glow mapping",
"-",
"Models",
"-",
"-",
"-",
NULL
};
char *opts[] =
{
"Widescreen",
"-",
"Anisotropic filtering",
"-",
"Hightile textures",
"Precache textures",
"GL texture compression",
"Cache textures on disk",
"Compress disk cache",
"Detail mapping",
"Glow mapping",
"-",
"Models",
"-",
"-",
"-",
NULL
};
yy = 37;
for (ii=io=0; opts[ii]; ii++)
@ -2554,29 +2558,30 @@ cheat_for_port_credits:
{
int io, ii, yy, d=c+160+40, enabled;
char *opts[] = {
"Crosshair",
"Level stats",
"-",
"Screen size",
"Status bar size",
"-",
"Run key style",
"-",
"Shadows",
"Screen tilting",
"-",
"Show opponent weapon",
"Demo playback cameras",
"Record demo",
"-",
"-",
"-",
"-",
"-",
"More...",
NULL
};
char *opts[] =
{
"Crosshair",
"Level stats",
"-",
"Screen size",
"Status bar size",
"-",
"Run key style",
"-",
"Shadows",
"Screen tilting",
"-",
"Show opponent weapon",
"Demo playback cameras",
"Record demo",
"-",
"-",
"-",
"-",
"-",
"More...",
NULL
};
yy = 37;
for (ii=io=0; opts[ii]; ii++)
@ -2694,7 +2699,7 @@ cheat_for_port_credits:
gametextpal(d,yy,ud.m_recstat?((ud.m_recstat && enabled && ps[myconnectindex].gm&MODE_GAME)?"Running":"On"):"Off",enabled?MENUHIGHLIGHT(io):DISABLEDMENUSHADE,enabled?0:1);
break;
case 10:
if (x==io) cmenu(201);
if (x==io) cmenu(201);
break;
default:
break;
@ -2715,35 +2720,36 @@ cheat_for_port_credits:
{
int io, ii, yy, d=c+160+40, enabled;
char *opts[] = {
"Parental lock",
"-",
"Game messages",
"HUD weapon",
"FPS counter",
"-",
"Automatic voting",
"Send MP messages to all",
"Display other player IDs",
"-",
"Show startup window",
char *opts[] =
{
"Parental lock",
"-",
"Game messages",
"HUD weapon",
"FPS counter",
"-",
"Automatic voting",
"Send MP messages to all",
"Display other player IDs",
"-",
"Show startup window",
#ifdef _WIN32
"Release notification",
"Release notification",
#else
"-",
"-",
"-",
"-",
#endif
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"Previous page",
NULL
};
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"Previous page",
NULL
};
yy = 37;
for (ii=io=0; opts[ii]; ii++)
@ -3535,22 +3541,26 @@ cheat_for_port_credits:
if (x==-1)
{
if (function == 0)
{ // mouse button
{
// mouse button
cmenu(205);
probey = whichkey;
}
else if (function == 1)
{ // mouse digital axis
{
// mouse digital axis
cmenu(212);
probey = 3+(whichkey^2);
}
else if (function == 2)
{ // joystick button/hat
{
// joystick button/hat
cmenu(207);
probey = whichkey;
}
else if (function == 3)
{ // joystick digital axis
{
// joystick digital axis
cmenu((whichkey>>2)+208);
probey = 1+((whichkey>>1)&1)*4+(whichkey&1);
}
@ -4117,7 +4127,8 @@ cheat_for_port_credits:
case 214:
case 215:
case 216:
{ // Pray this is enough pages for now :-|
{
// Pray this is enough pages for now :-|
int first,last;
rotatesprite(320<<15,19<<16,65536L,0,MENUBAR,16,0,10,0,0,xdim-1,ydim-1);
menutext(320>>1,24,0,0,"JOY DEAD ZONES");

View file

@ -600,7 +600,8 @@ static int osdcmd_exec(const osdfuncparm_t *parm)
return OSDCMD_OK;
}
enum cvartypes {
enum cvartypes
{
CVAR_INT,
CVAR_UNSIGNEDINT,
CVAR_BOOL,
@ -618,56 +619,56 @@ struct cvarmappings
int max;
}
cvar[] =
{
{ "crosshair", "crosshair: enable/disable crosshair", (void*)&ud.crosshair, CVAR_INT, 0, 0, 3 },
{
{ "crosshair", "crosshair: enable/disable crosshair", (void*)&ud.crosshair, CVAR_INT, 0, 0, 3 },
{ "cl_autoaim", "cl_autoaim: enable/disable weapon autoaim", (void*)&AutoAim, CVAR_INT|256, 0, 0, 2 },
{ "cl_automsg", "cl_automsg: enable/disable automatically sending messages to all players", (void*)&ud.automsg, CVAR_BOOL, 0, 0, 1 },
{ "cl_autovote", "cl_autovote: enable/disable automatic voting", (void*)&ud.autovote, CVAR_INT|256, 0, 0, 2 },
{ "cl_autoaim", "cl_autoaim: enable/disable weapon autoaim", (void*)&AutoAim, CVAR_INT|256, 0, 0, 2 },
{ "cl_automsg", "cl_automsg: enable/disable automatically sending messages to all players", (void*)&ud.automsg, CVAR_BOOL, 0, 0, 1 },
{ "cl_autovote", "cl_autovote: enable/disable automatic voting", (void*)&ud.autovote, CVAR_INT|256, 0, 0, 2 },
{ "cl_deathmessages", "cl_deathmessages: enable/disable multiplayer death messages", (void*)&ud.deathmsgs, CVAR_BOOL, 0, 0, 1 },
{ "cl_democams", "cl_democams: enable/disable demo playback cameras", (void*)&ud.democams, CVAR_BOOL, 0, 0, 1 },
{ "cl_drawweapon", "cl_drawweapon: enable/disable weapon drawing", (void*)&ud.drawweapon, CVAR_INT, 0, 0, 2 },
{ "cl_deathmessages", "cl_deathmessages: enable/disable multiplayer death messages", (void*)&ud.deathmsgs, CVAR_BOOL, 0, 0, 1 },
{ "cl_democams", "cl_democams: enable/disable demo playback cameras", (void*)&ud.democams, CVAR_BOOL, 0, 0, 1 },
{ "cl_drawweapon", "cl_drawweapon: enable/disable weapon drawing", (void*)&ud.drawweapon, CVAR_INT, 0, 0, 2 },
{ "cl_idplayers", "cl_idplayers: enable/disable name display when aiming at opponents", (void*)&ud.idplayers, CVAR_BOOL, 0, 0, 1 },
{ "cl_idplayers", "cl_idplayers: enable/disable name display when aiming at opponents", (void*)&ud.idplayers, CVAR_BOOL, 0, 0, 1 },
{ "cl_messagetime", "cl_messagetime: length of time to display multiplayer chat messages\n", (void*)&ud.msgdisptime, CVAR_INT, 0, 0, 3600 },
{ "cl_messagetime", "cl_messagetime: length of time to display multiplayer chat messages\n", (void*)&ud.msgdisptime, CVAR_INT, 0, 0, 3600 },
{ "cl_mousebias", "cl_mousebias: emulates the original mouse code's weighting of input towards whichever axis is moving the most at any given time\n", (void*)&MouseBias, CVAR_INT, 0, 0, 32 },
{ "cl_mousefilter", "cl_mousefilter: amount of mouse movement to filter out\n", (void*)&MouseFilter, CVAR_INT, 0, 0, 512 },
{ "cl_mousebias", "cl_mousebias: emulates the original mouse code's weighting of input towards whichever axis is moving the most at any given time\n", (void*)&MouseBias, CVAR_INT, 0, 0, 32 },
{ "cl_mousefilter", "cl_mousefilter: amount of mouse movement to filter out\n", (void*)&MouseFilter, CVAR_INT, 0, 0, 512 },
{ "cl_showcoords", "cl_showcoords: show your position in the game world", (void*)&ud.coords, CVAR_BOOL, 0, 0, 1 },
{ "cl_showfps", "cl_showfps: show the frame rate counter", (void*)&ud.tickrate, CVAR_BOOL, 0, 0, 1 },
{ "cl_smoothinput", "cl_smoothinput: enable/disable input smoothing\n", (void*)&SmoothInput, CVAR_BOOL, 0, 0, 1 },
{ "cl_showcoords", "cl_showcoords: show your position in the game world", (void*)&ud.coords, CVAR_BOOL, 0, 0, 1 },
{ "cl_showfps", "cl_showfps: show the frame rate counter", (void*)&ud.tickrate, CVAR_BOOL, 0, 0, 1 },
{ "cl_smoothinput", "cl_smoothinput: enable/disable input smoothing\n", (void*)&SmoothInput, CVAR_BOOL, 0, 0, 1 },
{ "cl_viewbob", "cl_viewbob: enable/disable player head bobbing\n", (void*)&ud.viewbob, CVAR_BOOL, 0, 0, 1 },
{ "cl_viewbob", "cl_viewbob: enable/disable player head bobbing\n", (void*)&ud.viewbob, CVAR_BOOL, 0, 0, 1 },
{ "cl_weaponsway", "cl_weaponsway: enable/disable player weapon swaying\n", (void*)&ud.weaponsway, CVAR_BOOL, 0, 0, 1 },
{ "cl_weaponswitch", "cl_weaponswitch: enable/disable auto weapon switching", (void*)&ud.weaponswitch, CVAR_INT|256, 0, 0, 3 },
{ "cl_angleinterpolation", "cl_angleinterpolation: enable/disable angle interpolation", (void*)&ud.angleinterpolation, CVAR_INT, 0, 0, 256 },
{ "cl_weaponsway", "cl_weaponsway: enable/disable player weapon swaying\n", (void*)&ud.weaponsway, CVAR_BOOL, 0, 0, 1 },
{ "cl_weaponswitch", "cl_weaponswitch: enable/disable auto weapon switching", (void*)&ud.weaponswitch, CVAR_INT|256, 0, 0, 3 },
{ "cl_angleinterpolation", "cl_angleinterpolation: enable/disable angle interpolation", (void*)&ud.angleinterpolation, CVAR_INT, 0, 0, 256 },
#if defined(POLYMOST) && defined(USE_OPENGL)
{ "r_anamorphic", "r_anamorphic: enable/disable widescreen mode", (void*)&glwidescreen, CVAR_BOOL, 0, 0, 1 },
{ "r_projectionhack", "r_projectionhack: enable/disable projection hack", (void*)&glprojectionhacks, CVAR_BOOL, 0, 0, 1 },
// polymer cvars
{ "pr_cliplanes", "pr_cliplanes: toggles clipping behind map limits (recommended yet may decrease performance in complex maps)", (void*)&pr_cliplanes, CVAR_INT, 0, 0, 1 },
{ "pr_fov", "pr_fov: sets the field of vision in build angle", (void*)&pr_fov, CVAR_INT, 0, 0, 1023},
{ "pr_showportals", "pr_showportals: toggles frustum culling (recommended)", (void*)&pr_showportals, CVAR_INT, 0, 0, 1 },
{ "pr_verbosity", "pr_verbosity: verbosity level of the polymer renderer", (void*)&pr_verbosity, CVAR_INT, 0, 0, 3 },
{ "pr_wireframe", "pr_wireframe: toggles wireframe mode", (void*)&pr_wireframe, CVAR_INT, 0, 0, 1 },
{ "r_anamorphic", "r_anamorphic: enable/disable widescreen mode", (void*)&glwidescreen, CVAR_BOOL, 0, 0, 1 },
{ "r_projectionhack", "r_projectionhack: enable/disable projection hack", (void*)&glprojectionhacks, CVAR_BOOL, 0, 0, 1 },
// polymer cvars
{ "pr_cliplanes", "pr_cliplanes: toggles clipping behind map limits (recommended yet may decrease performance in complex maps)", (void*)&pr_cliplanes, CVAR_INT, 0, 0, 1 },
{ "pr_fov", "pr_fov: sets the field of vision in build angle", (void*)&pr_fov, CVAR_INT, 0, 0, 1023},
{ "pr_showportals", "pr_showportals: toggles frustum culling (recommended)", (void*)&pr_showportals, CVAR_INT, 0, 0, 1 },
{ "pr_verbosity", "pr_verbosity: verbosity level of the polymer renderer", (void*)&pr_verbosity, CVAR_INT, 0, 0, 3 },
{ "pr_wireframe", "pr_wireframe: toggles wireframe mode", (void*)&pr_wireframe, CVAR_INT, 0, 0, 1 },
#endif
{ "r_precache", "r_precache: enable/disable the pre-level caching routine", (void*)&useprecache, CVAR_BOOL, 0, 0, 1 },
{ "r_precache", "r_precache: enable/disable the pre-level caching routine", (void*)&useprecache, CVAR_BOOL, 0, 0, 1 },
{ "snd_ambience", "snd_ambience: enables/disables ambient sounds", (void*)&AmbienceToggle, CVAR_BOOL, 0, 0, 1 },
{ "snd_duketalk", "snd_duketalk: enables/disables Duke's speech", (void*)&VoiceToggle, CVAR_INT, 0, 0, 2 },
{ "snd_fxvolume", "snd_fxvolume: volume of sound effects", (void*)&FXVolume, CVAR_INT, 0, 0, 255 },
{ "snd_mixrate", "snd_mixrate: sound mixing rate", (void*)&MixRate, CVAR_INT, 0, 0, 48000 },
{ "snd_musvolume", "snd_musvolume: volume of midi music", (void*)&MusicVolume, CVAR_INT, 0, 0, 255 },
{ "snd_numbits", "snd_numbits: sound bits", (void*)&NumBits, CVAR_INT, 0, 8, 16 },
{ "snd_numchannels", "snd_numchannels: the number of sound channels", (void*)&NumChannels, CVAR_INT, 0, 0, 2 },
{ "snd_numvoices", "snd_numvoices: the number of concurrent sounds", (void*)&NumVoices, CVAR_INT, 0, 0, 32 },
{ "snd_reversestereo", "snd_reversestereo: reverses the stereo channels", (void*)&ReverseStereo, CVAR_BOOL, 0, 0, 16 },
};
{ "snd_ambience", "snd_ambience: enables/disables ambient sounds", (void*)&AmbienceToggle, CVAR_BOOL, 0, 0, 1 },
{ "snd_duketalk", "snd_duketalk: enables/disables Duke's speech", (void*)&VoiceToggle, CVAR_INT, 0, 0, 2 },
{ "snd_fxvolume", "snd_fxvolume: volume of sound effects", (void*)&FXVolume, CVAR_INT, 0, 0, 255 },
{ "snd_mixrate", "snd_mixrate: sound mixing rate", (void*)&MixRate, CVAR_INT, 0, 0, 48000 },
{ "snd_musvolume", "snd_musvolume: volume of midi music", (void*)&MusicVolume, CVAR_INT, 0, 0, 255 },
{ "snd_numbits", "snd_numbits: sound bits", (void*)&NumBits, CVAR_INT, 0, 8, 16 },
{ "snd_numchannels", "snd_numchannels: the number of sound channels", (void*)&NumChannels, CVAR_INT, 0, 0, 2 },
{ "snd_numvoices", "snd_numvoices: the number of concurrent sounds", (void*)&NumVoices, CVAR_INT, 0, 0, 32 },
{ "snd_reversestereo", "snd_reversestereo: reverses the stereo channels", (void*)&ReverseStereo, CVAR_BOOL, 0, 0, 16 },
};
static int osdcmd_cvar_set(const osdfuncparm_t *parm)
{

View file

@ -3222,7 +3222,8 @@ static int doincrements(struct player_struct *p)
short weapon_sprites[MAX_WEAPONS] = { KNEE__STATIC, FIRSTGUNSPRITE__STATIC, SHOTGUNSPRITE__STATIC,
CHAINGUNSPRITE__STATIC, RPGSPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC, DEVISTATORSPRITE__STATIC,
TRIPBOMBSPRITE__STATIC, FREEZESPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC};
TRIPBOMBSPRITE__STATIC, FREEZESPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC
};
void checkweapons(struct player_struct *p)
{
@ -4176,7 +4177,8 @@ void processinput(int snum)
p->posyv = 0;
}
else if (sync[snum].avel) //p->ang += syncangvel * constant
{ //ENGINE calculates angvel for you
{
//ENGINE calculates angvel for you
long tempang = sync[snum].avel<<1;
if (psectlotag == 2) p->angvel =(tempang-(tempang>>3))*ksgn(doubvel);
@ -4504,7 +4506,8 @@ HORIZONLY:
}
else if (sb_snum&(1<<3))
{ // aim_up
{
// aim_up
SetGameVarID(g_iReturnVarID,0,pi,snum);
OnEvent(EVENT_AIMUP,pi,snum, -1);
if (GetGameVarID(g_iReturnVarID,pi,snum) == 0)
@ -4517,7 +4520,8 @@ HORIZONLY:
}
else if (sb_snum&(1<<4))
{ // aim_down
{
// aim_down
SetGameVarID(g_iReturnVarID,0,pi,snum);
OnEvent(EVENT_AIMDOWN,pi,snum, -1);
if (GetGameVarID(g_iReturnVarID,pi,snum) == 0)
@ -5185,21 +5189,21 @@ int getspritescore(long snum, long dapicnum)
}
static long fdmatrix[12][12] =
{
//KNEE PIST SHOT CHAIN RPG PIPE SHRI DEVI WALL FREE HAND EXPA
{ 128, -1, -1, -1, 128, -1, -1, -1, 128, -1, 128, -1 }, //KNEE
{ 1024,1024,1024,1024,2560, 128,2560,2560,1024,2560,2560,2560 }, //PIST
{ 512, 512, 512, 512,2560, 128,2560,2560,1024,2560,2560,2560 }, //SHOT
{ 512, 512, 512, 512,2560, 128,2560,2560,1024,2560,2560,2560 }, //CHAIN
{ 2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560 }, //RPG
{ 512, 512, 512, 512,2048, 512,2560,2560, 512,2560,2560,2560 }, //PIPE
{ 128, 128, 128, 128,2560, 128,2560,2560, 128, 128, 128, 128 }, //SHRI
{ 1536,1536,1536,1536,2560,1536,1536,1536,1536,1536,1536,1536 }, //DEVI
{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, //WALL
{ 128, 128, 128, 128,2560, 128,2560,2560, 128, 128, 128, 128 }, //FREE
{ 2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560 }, //HAND
{ 128, 128, 128, 128,2560, 128,2560,2560, 128, 128, 128, 128 } //EXPA
};
{
//KNEE PIST SHOT CHAIN RPG PIPE SHRI DEVI WALL FREE HAND EXPA
{ 128, -1, -1, -1, 128, -1, -1, -1, 128, -1, 128, -1 }, //KNEE
{ 1024,1024,1024,1024,2560, 128,2560,2560,1024,2560,2560,2560 }, //PIST
{ 512, 512, 512, 512,2560, 128,2560,2560,1024,2560,2560,2560 }, //SHOT
{ 512, 512, 512, 512,2560, 128,2560,2560,1024,2560,2560,2560 }, //CHAIN
{ 2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560 }, //RPG
{ 512, 512, 512, 512,2048, 512,2560,2560, 512,2560,2560,2560 }, //PIPE
{ 128, 128, 128, 128,2560, 128,2560,2560, 128, 128, 128, 128 }, //SHRI
{ 1536,1536,1536,1536,2560,1536,1536,1536,1536,1536,1536,1536 }, //DEVI
{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, //WALL
{ 128, 128, 128, 128,2560, 128,2560,2560, 128, 128, 128, 128 }, //FREE
{ 2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560,2560 }, //HAND
{ 128, 128, 128, 128,2560, 128,2560,2560, 128, 128, 128, 128 } //EXPA
};
static long goalx[MAXPLAYERS], goaly[MAXPLAYERS], goalz[MAXPLAYERS];
static long goalsect[MAXPLAYERS], goalwall[MAXPLAYERS], goalsprite[MAXPLAYERS], goalspritescore[MAXPLAYERS];

View file

@ -202,7 +202,6 @@ int loadplayer(int spot)
FX_StopAllSounds();
clearsoundlocks();
MUSIC_StopSong();
if (numplayers > 1)
{
@ -403,9 +402,13 @@ int loadplayer(int spot)
clearsoundlocks();
cacheit();
i = music_select;
music_select = (ud.volume_number*MAXLEVELS) + ud.level_number;
if (music_fn[0][(unsigned char)music_select] != NULL)
if (music_fn[0][(unsigned char)music_select] != NULL && i != music_select)
{
MUSIC_StopSong();
playmusic(&music_fn[0][(unsigned char)music_select][0]);
}
ps[myconnectindex].gm = MODE_GAME;
ud.recstat = 0;

View file

@ -30,7 +30,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "music.h"
#include "duke3d.h"
#include "util_lib.h"
#include "osd.h"
#define LOUDESTVOLUME 150
@ -164,25 +164,25 @@ unsigned char menunum=0;
void intomenusounds(void)
{
short menusnds[] =
{
LASERTRIP_EXPLODE,
DUKE_GRUNT,
DUKE_LAND_HURT,
CHAINGUN_FIRE,
SQUISHED,
KICK_HIT,
PISTOL_RICOCHET,
PISTOL_BODYHIT,
PISTOL_FIRE,
SHOTGUN_FIRE,
BOS1_WALK,
RPG_EXPLODE,
PIPEBOMB_BOUNCE,
PIPEBOMB_EXPLODE,
NITEVISION_ONOFF,
RPG_SHOOT,
SELECT_WEAPON
};
{
LASERTRIP_EXPLODE,
DUKE_GRUNT,
DUKE_LAND_HURT,
CHAINGUN_FIRE,
SQUISHED,
KICK_HIT,
PISTOL_RICOCHET,
PISTOL_BODYHIT,
PISTOL_FIRE,
SHOTGUN_FIRE,
BOS1_WALK,
RPG_EXPLODE,
PIPEBOMB_BOUNCE,
PIPEBOMB_EXPLODE,
NITEVISION_ONOFF,
RPG_SHOOT,
SELECT_WEAPON
};
sound(menusnds[menunum++]);
menunum %= 17;
}
@ -414,9 +414,9 @@ void sound(int num)
if (VoiceToggle==0 && (soundm[num]&4)) return;
if ((soundm[num]&8) && ud.lockout) return;
if (FX_VoiceAvailable(soundpr[num]) == 0) return;
if (num > NUM_SOUNDS-1 || !sounds[num])
if (num > NUM_SOUNDS-1 || !sounds[num])
{
OSD_Printf("WARNING: invalid sound #%d\n",num);
OSD_Printf("WARNING: invalid sound #%d\n",num);
return;
}

View file

@ -39,9 +39,9 @@ settings;
static HWND startupdlg = NULL;
static HWND pages[3] =
{
NULL, NULL, NULL
};
{
NULL, NULL, NULL
};
static int done = -1, mode = TAB_CONFIG;
#define POPULATE_VIDEO 1