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

View file

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

View file

@ -381,7 +381,6 @@ struct player_orig {
extern char numplayersprites; extern char numplayersprites;
extern char picsiz[MAXTILES];
extern long fricxv,fricyv; extern long fricxv,fricyv;
@ -883,7 +882,9 @@ enum logoflags {
LOGO_FLAG_TITLESCREEN = 16, LOGO_FLAG_TITLESCREEN = 16,
LOGO_FLAG_DUKENUKEM = 32, LOGO_FLAG_DUKENUKEM = 32,
LOGO_FLAG_THREEDEE = 64, LOGO_FLAG_THREEDEE = 64,
LOGO_FLAG_PLUTOPAKSPRITE = 128 LOGO_FLAG_PLUTOPAKSPRITE = 128,
LOGO_FLAG_SHAREWARESCREENS = 256,
LOGO_FLAG_TENSCREEN = 512
}; };
extern char numl; 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) 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); setview(0,0,xdim-1,ydim-1);
flushperms(); flushperms();
@ -2538,6 +2542,24 @@ static void showtwoscreens(void)
getpackets(); 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; 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); ch = Btoupper(ch);
if (c != 997 || (ch >= '0' && ch <= '9')) 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) = ch;
*(t+inputloc+1) = 0; *(t+inputloc+1) = 0;
inputloc++; inputloc++;
@ -3930,7 +3953,8 @@ void displayrooms(int snum,long smoothratio)
else tang = 0; else tang = 0;
if (xres <= 320 && yres <= 240) if (xres <= 320 && yres <= 240)
{ // JBF 20030807: Increased tilted-screen quality {
// JBF 20030807: Increased tilted-screen quality
tiltcs = 1; tiltcs = 1;
tiltcx = 320; tiltcx = 320;
tiltcy = 200; tiltcy = 200;
@ -3950,7 +3974,8 @@ void displayrooms(int snum,long smoothratio)
else else
setviewtotile(TILE_TILT,tiltcx>>(1-ud.detail),tiltcx>>(1-ud.detail)); setviewtotile(TILE_TILT,tiltcx>>(1-ud.detail),tiltcx>>(1-ud.detail));
if ((tang&1023) == 512) 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)); j = ((tiltcx-(60*tiltcs))>>(1-ud.detail));
for (i=((60*tiltcs)>>(1-ud.detail))-1;i>=0;i--) for (i=((60*tiltcs)>>(1-ud.detail))-1;i>=0;i--)
{ {
@ -5289,7 +5314,8 @@ int spawn(int j, int pn)
} }
case WATERBUBBLEMAKER__STATIC: case WATERBUBBLEMAKER__STATIC:
if (sp->hitag && sp->picnum == WATERBUBBLEMAKER) 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", OSD_Printf("WARNING: WATERBUBBLEMAKER %d @ %d,%d with hitag!=0. Applying fixup.\n",
i,sp->x,sp->y); i,sp->x,sp->y);
sp->hitag = 0; 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 //greenslime can't be handled through the dynamictostatic system due to addition on constant
if ((t->picnum >= GREENSLIME)&&(t->picnum <= GREENSLIME+7)) if ((t->picnum >= GREENSLIME)&&(t->picnum <= GREENSLIME+7))
{} {}
else switch (dynamictostatic[t->picnum]) else switch (dynamictostatic[t->picnum])
{ {
case BLOODPOOL__STATIC: 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() 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]; t = &tsprite[j];
i = t->owner; i = t->owner;
s = &sprite[i]; s = &sprite[i];
@ -7042,35 +7069,35 @@ PALONLY:
static char terminx[64] = { "Undead TC still sucks." }; static char terminx[64] = { "Undead TC still sucks." };
char cheatquotes[][MAXCHEATLEN] = char cheatquotes[][MAXCHEATLEN] =
{ {
"cornholio", // 0 "cornholio", // 0
"stuff", // 1 "stuff", // 1
"scotty###", // 2 "scotty###", // 2
"coords", // 3 "coords", // 3
"view", // 4 "view", // 4
"time", // 5 "time", // 5
"unlock", // 6 "unlock", // 6
"cashman", // 7 "cashman", // 7
"items", // 8 "items", // 8
"rate", // 9 "rate", // 9
"skill#", // 10 "skill#", // 10
"beta", // 11 "beta", // 11
"hyper", // 12 "hyper", // 12
"monsters", // 13 "monsters", // 13
"<RESERVED>", // 14 "<RESERVED>", // 14
"<RESERVED>", // 15 "<RESERVED>", // 15
"todd", // 16 "todd", // 16
"showmap", // 17 "showmap", // 17
"kroz", // 18 "kroz", // 18
"allen", // 19 "allen", // 19
"clip", // 20 "clip", // 20
"weapons", // 21 "weapons", // 21
"inventory", // 22 "inventory", // 22
"keys", // 23 "keys", // 23
"debug", // 24 "debug", // 24
"<RESERVED>", // 25 "<RESERVED>", // 25
"sfm", // 26 "sfm", // 26
}; };
enum cheats enum cheats
{ {
@ -7179,7 +7206,8 @@ static void cheats(void)
char consolecheat = 0; // JBF 20030914 char consolecheat = 0; // JBF 20030914
if (osdcmd_cheatsinfo_stat.cheatnum != -1) if (osdcmd_cheatsinfo_stat.cheatnum != -1)
{ // JBF 20030914 {
// JBF 20030914
k = osdcmd_cheatsinfo_stat.cheatnum; k = osdcmd_cheatsinfo_stat.cheatnum;
osdcmd_cheatsinfo_stat.cheatnum = -1; osdcmd_cheatsinfo_stat.cheatnum = -1;
consolecheat = 1; consolecheat = 1;
@ -7420,7 +7448,8 @@ FOUNDCHEAT:
{ {
i = Bstrlen(cheatquotes[k])-3+VOLUMEONE; i = Bstrlen(cheatquotes[k])-3+VOLUMEONE;
if (!consolecheat) if (!consolecheat)
{ // JBF 20030914 {
// JBF 20030914
short volnume,levnume; short volnume,levnume;
if (VOLUMEALL) if (VOLUMEALL)
{ {
@ -7448,7 +7477,8 @@ FOUNDCHEAT:
ud.m_level_number = ud.level_number = levnume; ud.m_level_number = ud.level_number = levnume;
} }
else else
{ // JBF 20030914 {
// JBF 20030914
ud.m_volume_number = ud.volume_number = osdcmd_cheatsinfo_stat.volume; ud.m_volume_number = ud.volume_number = osdcmd_cheatsinfo_stat.volume;
ud.m_level_number = ud.level_number = osdcmd_cheatsinfo_stat.level; 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; char *cmdtokptr;
tokenlist rancidtokens[] = tokenlist rancidtokens[] =
{ {
{ "interface", T_INTERFACE }, { "interface", T_INTERFACE },
{ "mode", T_MODE }, { "mode", T_MODE },
{ "allow", T_ALLOW }, { "allow", T_ALLOW },
}; };
scriptfile *script; scriptfile *script;
@ -8450,12 +8480,12 @@ static int parsegroupfiles(scriptfile *script)
char *cmdtokptr; char *cmdtokptr;
tokenlist grptokens[] = tokenlist grptokens[] =
{ {
{ "include", T_INCLUDE }, { "include", T_INCLUDE },
{ "#include", T_INCLUDE }, { "#include", T_INCLUDE },
{ "loadgrp", T_LOADGRP }, { "loadgrp", T_LOADGRP },
{ "cachesize", T_CACHESIZE }, { "cachesize", T_CACHESIZE },
}; };
while (1) while (1)
{ {
@ -9157,7 +9187,8 @@ static void Logo(void)
} }
else soundanm = 2; else soundanm = 2;
if (PLUTOPAK && (logoflags & LOGO_FLAG_PLUTOPAKSPRITE)) if (PLUTOPAK && (logoflags & LOGO_FLAG_PLUTOPAKSPRITE))
{ // JBF 20030804 {
// JBF 20030804
if (totalclock >= 280 && totalclock < 395) 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); 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); initprintf("Using config file '%s'.\n",setupfilename);
ScanGroups(); 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 found, set up the environment accordingly for the game it represents.
// if it is not found, choose the first GRP from the list of // if it is not found, choose the first GRP from the list of
struct grpfile *fg, *first = NULL; struct grpfile *fg, *first = NULL;
@ -10026,7 +10058,7 @@ void app_main(int argc,const char **argv)
if (!NoAutoLoad) if (!NoAutoLoad)
{ {
getfilenames("autoload","*.grp"); 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"); getfilenames("autoload","*.zip");
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","*.pk3"); getfilenames("autoload","*.pk3");
@ -10294,7 +10326,8 @@ MAIN_LOOP_RESTART:
while (!(ps[myconnectindex].gm&MODE_END)) //The whole loop!!!!!!!!!!!!!!!!!! while (!(ps[myconnectindex].gm&MODE_END)) //The whole loop!!!!!!!!!!!!!!!!!!
{ {
if (handleevents()) if (handleevents())
{ // JBF {
// JBF
if (quitevent) if (quitevent)
{ {
KB_KeyDown[sc_Escape] = 1; 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 (kread(recfilep,&ver,sizeof(char)) != sizeof(char)) goto corrupt;
if (ver != BYTEVERSION /*&& ver != 116 && ver != 117*/) 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); 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+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); 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; myyvel = 0;
} }
else if (syn->avel) //p->ang += syncangvel * constant else if (syn->avel) //p->ang += syncangvel * constant
{ //ENGINE calculates angvel for you {
//ENGINE calculates angvel for you
long tempang = syn->avel<<1; long tempang = syn->avel<<1;
if (psectlotag == 2) if (psectlotag == 2)
@ -11566,22 +11601,22 @@ void dobonus(int bonusonly)
int32 playerbest = -1; int32 playerbest = -1;
int breathe[] = int breathe[] =
{ {
0, 30,VICTORY1+1,176,59, 0, 30,VICTORY1+1,176,59,
30, 60,VICTORY1+2,176,59, 30, 60,VICTORY1+2,176,59,
60, 90,VICTORY1+1,176,59, 60, 90,VICTORY1+1,176,59,
90, 120,0 ,176,59 90, 120,0 ,176,59
}; };
int bossmove[] = int bossmove[] =
{ {
0, 120,VICTORY1+3,86,59, 0, 120,VICTORY1+3,86,59,
220, 260,VICTORY1+4,86,59, 220, 260,VICTORY1+4,86,59,
260, 290,VICTORY1+5,86,59, 260, 290,VICTORY1+5,86,59,
290, 320,VICTORY1+6,86,59, 290, 320,VICTORY1+6,86,59,
320, 350,VICTORY1+7,86,59, 320, 350,VICTORY1+7,86,59,
350, 380,VICTORY1+8,86,59 350, 380,VICTORY1+8,86,59
}; };
if (VOLUMEALL) wm_setapptitle(HEAD2); if (VOLUMEALL) wm_setapptitle(HEAD2);
else wm_setapptitle(HEAD); 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); j=GetGameVarID(*insptr++, g_i, g_p);
switch (tw) switch (tw)
{ {
case CON_HEADSPRITESTAT: case CON_HEADSPRITESTAT:
if (j < MAXSTATUS) if (j < MAXSTATUS)
SetGameVarID(i,headspritestat[j],g_i,g_p); SetGameVarID(i,headspritestat[j],g_i,g_p);
break; break;
case CON_PREVSPRITESTAT: case CON_PREVSPRITESTAT:
if (j < MAXSPRITES) if (j < MAXSPRITES)
SetGameVarID(i,prevspritestat[j],g_i,g_p); SetGameVarID(i,prevspritestat[j],g_i,g_p);
break; break;
case CON_NEXTSPRITESTAT: case CON_NEXTSPRITESTAT:
if (j < MAXSPRITES) if (j < MAXSPRITES)
SetGameVarID(i,nextspritestat[j],g_i,g_p); SetGameVarID(i,nextspritestat[j],g_i,g_p);
break; break;
case CON_HEADSPRITESECT: case CON_HEADSPRITESECT:
if (j < MAXSECTORS) if (j < MAXSECTORS)
SetGameVarID(i,headspritesect[j],g_i,g_p); SetGameVarID(i,headspritesect[j],g_i,g_p);
break; break;
case CON_PREVSPRITESECT: case CON_PREVSPRITESECT:
if (j < MAXSPRITES) if (j < MAXSPRITES)
SetGameVarID(i,prevspritesect[j],g_i,g_p); SetGameVarID(i,prevspritesect[j],g_i,g_p);
break; break;
case CON_NEXTSPRITESECT: case CON_NEXTSPRITESECT:
if (j < MAXSPRITES) if (j < MAXSPRITES)
SetGameVarID(i,nextspritesect[j],g_i,g_p); SetGameVarID(i,nextspritesect[j],g_i,g_p);
break; break;
} }
break; break;
} }

View file

@ -1332,5 +1332,5 @@ static void ResetPointerVars(void)
aGameVars[GetGameID("myreturntocenter")].lValue = (long)&myreturntocenter; aGameVars[GetGameID("myreturntocenter")].lValue = (long)&myreturntocenter;
aGameVars[GetGameID("display_mirror")].lValue = (long)&display_mirror; 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; char rtsplaying;
short weaponsandammosprites[15] = { short weaponsandammosprites[15] =
RPGSPRITE__STATIC, {
CHAINGUNSPRITE__STATIC, RPGSPRITE__STATIC,
DEVISTATORAMMO__STATIC, CHAINGUNSPRITE__STATIC,
RPGAMMO__STATIC, DEVISTATORAMMO__STATIC,
RPGAMMO__STATIC, RPGAMMO__STATIC,
JETPACK__STATIC, RPGAMMO__STATIC,
SHIELD__STATIC, JETPACK__STATIC,
FIRSTAID__STATIC, SHIELD__STATIC,
STEROIDS__STATIC, FIRSTAID__STATIC,
RPGAMMO__STATIC, STEROIDS__STATIC,
RPGAMMO__STATIC, RPGAMMO__STATIC,
RPGSPRITE__STATIC, RPGAMMO__STATIC,
RPGAMMO__STATIC, RPGSPRITE__STATIC,
FREEZESPRITE__STATIC, RPGAMMO__STATIC,
FREEZEAMMO__STATIC FREEZESPRITE__STATIC,
}; FREEZEAMMO__STATIC
};
long impact_damage; long impact_damage;
int condebug; int condebug;

View file

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

View file

@ -726,28 +726,29 @@ void menus(void)
c = (320>>1)-120; c = (320>>1)-120;
{ {
int io, ii, yy = 37, d=c+140, enabled; int io, ii, yy = 37, d=c+140, enabled;
char *opts[] = { char *opts[] =
"Name", {
"-", "Name",
"Color", "-",
"-", "Color",
"Team", "-",
"-", "Team",
"-", "-",
"Auto aim", "-",
"Mouse aim", "Auto aim",
"-", "Mouse aim",
"-", "-",
"Switch weapon on pickup", "-",
"Switch weapon when empty", "Switch weapon on pickup",
"-", "Switch weapon when empty",
"-", "-",
"Network packets/sec", "-",
"-", "Network packets/sec",
"-", "-",
"Multiplayer macros", "-",
NULL "Multiplayer macros",
}; NULL
};
x = ud.color; x = ud.color;
@ -940,7 +941,8 @@ void menus(void)
case 1: case 1:
{ {
char *s[] = { "Auto","","","","","","","","","Blue","Red","Green","Gray","Dark gray","Dark green","Brown", 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); gametext(d-50,yy,s[ud.color],MENUHIGHLIGHT(io),2+8+16);
} }
break; break;
@ -1248,7 +1250,7 @@ void menus(void)
current_menu = 20022; current_menu = 20022;
} }
else if (x == 2) else if (x == 2)
{} {}
KB_ClearKeyDown(sc_Enter); KB_ClearKeyDown(sc_Enter);
KB_ClearKeyDown(sc_kpad_Enter); KB_ClearKeyDown(sc_kpad_Enter);
KB_FlushKeyboardQueue(); KB_FlushKeyboardQueue();
@ -1867,36 +1869,36 @@ cheat_for_port_credits:
gametext(160,122-l,"LICENSE AND OTHER CONTRIBUTORS",0,2+8+16); gametext(160,122-l,"LICENSE AND OTHER CONTRIBUTORS",0,2+8+16);
{ {
const char *scroller[] = const char *scroller[] =
{ {
"This program is distributed under the terms of the", "This program is distributed under the terms of the",
"GNU General Public License version 2 as published by the", "GNU General Public License version 2 as published by the",
"Free Software Foundation. See GNU.TXT for details.", "Free Software Foundation. See GNU.TXT for details.",
"", "",
"Thanks to the following people for their contributions:", "Thanks to the following people for their contributions:",
"", "",
"Adam Fazakerley", "Adam Fazakerley",
"Charlie Honig", "Charlie Honig",
"Ed Coolidge", "Ed Coolidge",
"James Bentler", "James Bentler",
"Javier Martinez", "Javier Martinez",
"Jeff Hart", "Jeff Hart",
"Jonathan Smith", "Jonathan Smith",
"Jose del Castillo", "Jose del Castillo",
"Lachlan McDonald", "Lachlan McDonald",
"Matthew Palmer", "Matthew Palmer",
"Peter Green", "Peter Green",
"Ryan Gordon", "Ryan Gordon",
"", "",
"EDuke originally by Matt Saettler", "EDuke originally by Matt Saettler",
"", "",
"--x--", "--x--",
"", "",
"", "",
"", "",
"", "",
"", "",
"" ""
}; };
const int numlines = sizeof(scroller)/sizeof(char *); const int numlines = sizeof(scroller)/sizeof(char *);
for (m=0,i=(totalclock/104)%numlines; m<6; m++,i++) for (m=0,i=(totalclock/104)%numlines; m<6; m++,i++)
{ {
@ -2182,7 +2184,8 @@ cheat_for_port_credits:
// path // path
minitext(52,32,boardfilename,0,26); 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; CACHE1D_FIND_REC *seeker = currentlist ? findfiles : finddirs;
if ((KB_KeyPressed(sc_Home)|KB_KeyPressed(sc_End)) > 0) 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; int io, ii, yy, d=c+160+40, enabled;
char *opts[] = { char *opts[] =
"Widescreen", {
"-", "Widescreen",
"Anisotropic filtering", "-",
"-", "Anisotropic filtering",
"Hightile textures", "-",
"Precache textures", "Hightile textures",
"GL texture compression", "Precache textures",
"Cache textures on disk", "GL texture compression",
"Compress disk cache", "Cache textures on disk",
"Detail mapping", "Compress disk cache",
"Glow mapping", "Detail mapping",
"-", "Glow mapping",
"Models", "-",
"-", "Models",
"-", "-",
"-", "-",
NULL "-",
}; NULL
};
yy = 37; yy = 37;
for (ii=io=0; opts[ii]; ii++) for (ii=io=0; opts[ii]; ii++)
@ -2554,29 +2558,30 @@ cheat_for_port_credits:
{ {
int io, ii, yy, d=c+160+40, enabled; int io, ii, yy, d=c+160+40, enabled;
char *opts[] = { char *opts[] =
"Crosshair", {
"Level stats", "Crosshair",
"-", "Level stats",
"Screen size", "-",
"Status bar size", "Screen size",
"-", "Status bar size",
"Run key style", "-",
"-", "Run key style",
"Shadows", "-",
"Screen tilting", "Shadows",
"-", "Screen tilting",
"Show opponent weapon", "-",
"Demo playback cameras", "Show opponent weapon",
"Record demo", "Demo playback cameras",
"-", "Record demo",
"-", "-",
"-", "-",
"-", "-",
"-", "-",
"More...", "-",
NULL "More...",
}; NULL
};
yy = 37; yy = 37;
for (ii=io=0; opts[ii]; ii++) 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); 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; break;
case 10: case 10:
if (x==io) cmenu(201); if (x==io) cmenu(201);
break; break;
default: default:
break; break;
@ -2715,35 +2720,36 @@ cheat_for_port_credits:
{ {
int io, ii, yy, d=c+160+40, enabled; int io, ii, yy, d=c+160+40, enabled;
char *opts[] = { char *opts[] =
"Parental lock", {
"-", "Parental lock",
"Game messages", "-",
"HUD weapon", "Game messages",
"FPS counter", "HUD weapon",
"-", "FPS counter",
"Automatic voting", "-",
"Send MP messages to all", "Automatic voting",
"Display other player IDs", "Send MP messages to all",
"-", "Display other player IDs",
"Show startup window", "-",
"Show startup window",
#ifdef _WIN32 #ifdef _WIN32
"Release notification", "Release notification",
#else #else
"-", "-",
"-", "-",
#endif #endif
"-", "-",
"-", "-",
"-", "-",
"-", "-",
"-", "-",
"-", "-",
"-", "-",
"-", "-",
"Previous page", "Previous page",
NULL NULL
}; };
yy = 37; yy = 37;
for (ii=io=0; opts[ii]; ii++) for (ii=io=0; opts[ii]; ii++)
@ -3535,22 +3541,26 @@ cheat_for_port_credits:
if (x==-1) if (x==-1)
{ {
if (function == 0) if (function == 0)
{ // mouse button {
// mouse button
cmenu(205); cmenu(205);
probey = whichkey; probey = whichkey;
} }
else if (function == 1) else if (function == 1)
{ // mouse digital axis {
// mouse digital axis
cmenu(212); cmenu(212);
probey = 3+(whichkey^2); probey = 3+(whichkey^2);
} }
else if (function == 2) else if (function == 2)
{ // joystick button/hat {
// joystick button/hat
cmenu(207); cmenu(207);
probey = whichkey; probey = whichkey;
} }
else if (function == 3) else if (function == 3)
{ // joystick digital axis {
// joystick digital axis
cmenu((whichkey>>2)+208); cmenu((whichkey>>2)+208);
probey = 1+((whichkey>>1)&1)*4+(whichkey&1); probey = 1+((whichkey>>1)&1)*4+(whichkey&1);
} }
@ -4117,7 +4127,8 @@ cheat_for_port_credits:
case 214: case 214:
case 215: case 215:
case 216: case 216:
{ // Pray this is enough pages for now :-| {
// Pray this is enough pages for now :-|
int first,last; int first,last;
rotatesprite(320<<15,19<<16,65536L,0,MENUBAR,16,0,10,0,0,xdim-1,ydim-1); 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"); 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; return OSDCMD_OK;
} }
enum cvartypes { enum cvartypes
{
CVAR_INT, CVAR_INT,
CVAR_UNSIGNEDINT, CVAR_UNSIGNEDINT,
CVAR_BOOL, CVAR_BOOL,
@ -618,56 +619,56 @@ struct cvarmappings
int max; int max;
} }
cvar[] = 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_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_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_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_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_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_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_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_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_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_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_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_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_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_angleinterpolation", "cl_angleinterpolation: enable/disable angle interpolation", (void*)&ud.angleinterpolation, CVAR_INT, 0, 0, 256 },
#if defined(POLYMOST) && defined(USE_OPENGL) #if defined(POLYMOST) && defined(USE_OPENGL)
{ "r_anamorphic", "r_anamorphic: enable/disable widescreen mode", (void*)&glwidescreen, CVAR_BOOL, 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 }, { "r_projectionhack", "r_projectionhack: enable/disable projection hack", (void*)&glprojectionhacks, CVAR_BOOL, 0, 0, 1 },
// polymer cvars // 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_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_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_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_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 }, { "pr_wireframe", "pr_wireframe: toggles wireframe mode", (void*)&pr_wireframe, CVAR_INT, 0, 0, 1 },
#endif #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_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_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_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_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_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_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_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_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_reversestereo", "snd_reversestereo: reverses the stereo channels", (void*)&ReverseStereo, CVAR_BOOL, 0, 0, 16 },
}; };
static int osdcmd_cvar_set(const osdfuncparm_t *parm) 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, short weapon_sprites[MAX_WEAPONS] = { KNEE__STATIC, FIRSTGUNSPRITE__STATIC, SHOTGUNSPRITE__STATIC,
CHAINGUNSPRITE__STATIC, RPGSPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC, DEVISTATORSPRITE__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) void checkweapons(struct player_struct *p)
{ {
@ -4176,7 +4177,8 @@ void processinput(int snum)
p->posyv = 0; p->posyv = 0;
} }
else if (sync[snum].avel) //p->ang += syncangvel * constant 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; long tempang = sync[snum].avel<<1;
if (psectlotag == 2) p->angvel =(tempang-(tempang>>3))*ksgn(doubvel); if (psectlotag == 2) p->angvel =(tempang-(tempang>>3))*ksgn(doubvel);
@ -4504,7 +4506,8 @@ HORIZONLY:
} }
else if (sb_snum&(1<<3)) else if (sb_snum&(1<<3))
{ // aim_up {
// aim_up
SetGameVarID(g_iReturnVarID,0,pi,snum); SetGameVarID(g_iReturnVarID,0,pi,snum);
OnEvent(EVENT_AIMUP,pi,snum, -1); OnEvent(EVENT_AIMUP,pi,snum, -1);
if (GetGameVarID(g_iReturnVarID,pi,snum) == 0) if (GetGameVarID(g_iReturnVarID,pi,snum) == 0)
@ -4517,7 +4520,8 @@ HORIZONLY:
} }
else if (sb_snum&(1<<4)) else if (sb_snum&(1<<4))
{ // aim_down {
// aim_down
SetGameVarID(g_iReturnVarID,0,pi,snum); SetGameVarID(g_iReturnVarID,0,pi,snum);
OnEvent(EVENT_AIMDOWN,pi,snum, -1); OnEvent(EVENT_AIMDOWN,pi,snum, -1);
if (GetGameVarID(g_iReturnVarID,pi,snum) == 0) if (GetGameVarID(g_iReturnVarID,pi,snum) == 0)
@ -5185,21 +5189,21 @@ int getspritescore(long snum, long dapicnum)
} }
static long fdmatrix[12][12] = static long fdmatrix[12][12] =
{ {
//KNEE PIST SHOT CHAIN RPG PIPE SHRI DEVI WALL FREE HAND 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 { 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 { 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 }, //SHOT
{ 512, 512, 512, 512,2560, 128,2560,2560,1024,2560,2560,2560 }, //CHAIN { 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 { 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 { 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 { 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 { 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 { -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 { 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 { 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 { 128, 128, 128, 128,2560, 128,2560,2560, 128, 128, 128, 128 } //EXPA
}; };
static long goalx[MAXPLAYERS], goaly[MAXPLAYERS], goalz[MAXPLAYERS]; static long goalx[MAXPLAYERS], goaly[MAXPLAYERS], goalz[MAXPLAYERS];
static long goalsect[MAXPLAYERS], goalwall[MAXPLAYERS], goalsprite[MAXPLAYERS], goalspritescore[MAXPLAYERS]; static long goalsect[MAXPLAYERS], goalwall[MAXPLAYERS], goalsprite[MAXPLAYERS], goalspritescore[MAXPLAYERS];

View file

@ -202,7 +202,6 @@ int loadplayer(int spot)
FX_StopAllSounds(); FX_StopAllSounds();
clearsoundlocks(); clearsoundlocks();
MUSIC_StopSong();
if (numplayers > 1) if (numplayers > 1)
{ {
@ -403,9 +402,13 @@ int loadplayer(int spot)
clearsoundlocks(); clearsoundlocks();
cacheit(); cacheit();
i = music_select;
music_select = (ud.volume_number*MAXLEVELS) + ud.level_number; 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]); playmusic(&music_fn[0][(unsigned char)music_select][0]);
}
ps[myconnectindex].gm = MODE_GAME; ps[myconnectindex].gm = MODE_GAME;
ud.recstat = 0; 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 "music.h"
#include "duke3d.h" #include "duke3d.h"
#include "util_lib.h" #include "util_lib.h"
#include "osd.h"
#define LOUDESTVOLUME 150 #define LOUDESTVOLUME 150
@ -164,25 +164,25 @@ unsigned char menunum=0;
void intomenusounds(void) void intomenusounds(void)
{ {
short menusnds[] = short menusnds[] =
{ {
LASERTRIP_EXPLODE, LASERTRIP_EXPLODE,
DUKE_GRUNT, DUKE_GRUNT,
DUKE_LAND_HURT, DUKE_LAND_HURT,
CHAINGUN_FIRE, CHAINGUN_FIRE,
SQUISHED, SQUISHED,
KICK_HIT, KICK_HIT,
PISTOL_RICOCHET, PISTOL_RICOCHET,
PISTOL_BODYHIT, PISTOL_BODYHIT,
PISTOL_FIRE, PISTOL_FIRE,
SHOTGUN_FIRE, SHOTGUN_FIRE,
BOS1_WALK, BOS1_WALK,
RPG_EXPLODE, RPG_EXPLODE,
PIPEBOMB_BOUNCE, PIPEBOMB_BOUNCE,
PIPEBOMB_EXPLODE, PIPEBOMB_EXPLODE,
NITEVISION_ONOFF, NITEVISION_ONOFF,
RPG_SHOOT, RPG_SHOOT,
SELECT_WEAPON SELECT_WEAPON
}; };
sound(menusnds[menunum++]); sound(menusnds[menunum++]);
menunum %= 17; menunum %= 17;
} }
@ -414,9 +414,9 @@ void sound(int num)
if (VoiceToggle==0 && (soundm[num]&4)) return; if (VoiceToggle==0 && (soundm[num]&4)) return;
if ((soundm[num]&8) && ud.lockout) return; if ((soundm[num]&8) && ud.lockout) return;
if (FX_VoiceAvailable(soundpr[num]) == 0) 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; return;
} }

View file

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