boolean singletics = false; // debug flag to cancel adaptiveness
+/* bug compatibility with various versions of doom */
+boolean noztele;
+boolean nobounce;
//extern int soundVolume;
if (!wipe)
{
I_FinishUpdate (); // page flip or blit buffer
+ I_UpdateSound ();
return;
}
I_UpdateNoBlit ();
M_Drawer (); // menu is drawn even on top of wipes
I_FinishUpdate (); // page flip or blit buffer
+ if (!done)
+ I_UpdateSound ();
} while (!done);
}
// Update display, next frame, with current state.
D_Display ();
-
- // Sound mixing for the buffer is snychronous.
- I_UpdateSound();
-
- // Update sound output.
- I_SubmitSound();
}
}
//
void IdentifyVersion (void)
{
- char *wadfile;
+ char *wadfile, *slash;
if (M_CheckParm ("-shdev"))
{
language = french;
printf("French version\n");
D_AddFile (wadfile);
- return;
} else if ( (wadfile = I_IdentifyWAD("doom2.wad")) ) {
gamemode = commercial;
D_AddFile (wadfile);
- return;
} else if ( (wadfile = I_IdentifyWAD("plutonia.wad")) ) {
gamemode = commercial;
D_AddFile (wadfile);
- return;
} else if ( (wadfile = I_IdentifyWAD("tnt.wad")) ) {
gamemode = commercial;
D_AddFile (wadfile);
- return;
} else if ( (wadfile = I_IdentifyWAD("doomu.wad")) ) {
gamemode = retail;
D_AddFile (wadfile);
- return;
} else if ( (wadfile = I_IdentifyWAD("doom.wad")) ) {
gamemode = registered;
D_AddFile (wadfile);
- return;
} else if ( (wadfile = I_IdentifyWAD("doom1.wad")) ) {
gamemode = shareware;
D_AddFile (wadfile);
- return;
} else {
printf("Game mode indeterminate.\n");
gamemode = indetermined;
+ return;
}
+ strncpy(basedefault, wadfile, sizeof(basedefault)-5);
+ basedefault[sizeof(basedefault)-5] = '\0';
+ slash = strrchr(basedefault, '/');
+ if (slash++ == 0)
+ slash = basedefault;
+ strcpy(slash, "cfg");
}
//
respawnparm = M_CheckParm ("-respawn");
fastparm = M_CheckParm ("-fast");
devparm = M_CheckParm ("-devparm");
+ if (M_CheckParm ("-noztele") && gamemode == commercial)
+ noztele = 1;
+ if (M_CheckParm ("-nobounce") && (gamemode == commercial || gamemode == registered))
+ nobounce = 1;
if (M_CheckParm ("-altdeath"))
deathmatch = 2;
else if (M_CheckParm ("-deathmatch"))