- Fixed: player.damagescreencolor was not implemented for the GL renderer.

Update to ZDoom r1190:

- Gave the PlayerPawn base class a default damage fade color instead of
  hacking it into the actor when actually used.
- Fixed: The DamageFade color was not saved in savegames.
- Added Blzut3's patch for a real Chex Quest game mode.
- Fixed: SKIP_SUPER doesn't work for inventory items so it must be
  disabled for them
- Fixed: Chex Quest doesn't have a HELP2 screen so it must not be used
  in the gameinfo.
- Fixed: Default blood color is no longer red so P_DrawSplash2 must
  get it from the gameinfo instead.
- Added new French language texts by DoomKn1ght_.
- Blood default color is set in the gameinfo now so that Chex Quest
  can default to green instead of red.
- Fixed: The version of CheckNumForFullName that checks for a specific
  WAD did not work.
- Moved MAPINFO names into gameinfo structure.
- Added Chex Quest support. Credits go to fraggle for creating a 
  Dehacked patch that does most of the work. The rest includes a new
  MAPINFO and removal of the drop items from the monsters being used.
- Added Win64 support to the crash report generator. (Pity that Win32
  cannot be as informative.)
- Added and fixed Boss death submission for random spawner.
- Added functions to FActorInfo that can set the damage factors and
  pain chances to reduce the chance of new errors when working with
  these features.
- Fixed: The handling of the deprecated FIRERESIST flag didn't work.
  There were 3 problems:
  * Actor defaults have no class information so HandleDeprecatedFlags
    needs to be passed a pointer to the ActorInfo.
  * The DamageFactors list is only created when needed so the code needs to
    check if it already exists.
  * damage factors are stored as fixed_t but this set a float.
- Fixed: Timidity::Renderer::reset_voices() must completely zero the
  voices. Because this wasn't done, note_on() could try to access
  the sample for a voice that had never been played yet and access
  random memory. There may be other places where it's a problem, but
  this is where I noticed it, by chance.
- Added a traditional Strife color set for the automap.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@166 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
Christoph Oelckers 2008-09-01 19:08:19 +00:00
parent 62fa25fd63
commit 43b83f14c9
53 changed files with 1801 additions and 214 deletions

View file

@ -926,7 +926,7 @@ void M_NotifyNewSave (const char *file, const char *title, bool okForQuicksave)
//
void M_DrawLoad (void)
{
if (gameinfo.gametype & (GAME_Doom|GAME_Strife))
if (gameinfo.gametype & (GAME_DoomStrifeChex))
{
FTexture *title = TexMan["M_LOADG"];
screen->DrawTexture (title,
@ -952,7 +952,7 @@ void M_DrawLoad (void)
//
void M_DrawSaveLoadBorder (int x, int y, int len)
{
if (gameinfo.gametype & (GAME_Doom|GAME_Strife))
if (gameinfo.gametype & (GAME_DoomStrifeChex))
{
int i;
@ -1272,7 +1272,10 @@ void M_LoadGame (int choice)
{
if (netgame)
{
M_StartMessage (GStrings("LOADNET"), NULL, false);
if(gameinfo.gametype == GAME_Chex)
M_StartMessage (GStrings("CLOADNET"), NULL, false);
else
M_StartMessage (GStrings("LOADNET"), NULL, false);
return;
}
@ -1289,7 +1292,7 @@ void M_LoadGame (int choice)
//
void M_DrawSave()
{
if (gameinfo.gametype & (GAME_Doom|GAME_Strife))
if (gameinfo.gametype & (GAME_DoomStrifeChex))
{
FTexture *title = TexMan["M_SAVEG"];
screen->DrawTexture (title,
@ -1401,7 +1404,10 @@ void M_QuickSave ()
M_SaveGame (0);
return;
}
mysnprintf (tempstring, countof(tempstring), GStrings("QSPROMPT"), quickSaveSlot->Title);
if(gameinfo.gametype == GAME_Chex)
mysnprintf (tempstring, countof(tempstring), GStrings("CQSPROMPT"), quickSaveSlot->Title);
else
mysnprintf (tempstring, countof(tempstring), GStrings("QSPROMPT"), quickSaveSlot->Title);
strcpy (savegamestring, quickSaveSlot->Title);
M_StartMessage (tempstring, M_QuickSaveResponse, true);
}
@ -1425,7 +1431,10 @@ void M_QuickLoad ()
{
if (netgame)
{
M_StartMessage (GStrings("QLOADNET"), NULL, false);
if(gameinfo.gametype == GAME_Chex)
M_StartMessage (GStrings("CQLOADNET"), NULL, false);
else
M_StartMessage (GStrings("QLOADNET"), NULL, false);
return;
}
@ -1437,7 +1446,10 @@ void M_QuickLoad ()
M_LoadGame (0);
return;
}
mysnprintf (tempstring, countof(tempstring), GStrings("QLPROMPT"), quickSaveSlot->Title);
if(gameinfo.gametype == GAME_Chex)
mysnprintf (tempstring, countof(tempstring), GStrings("CQLPROMPT"), quickSaveSlot->Title);
else
mysnprintf (tempstring, countof(tempstring), GStrings("QLPROMPT"), quickSaveSlot->Title);
M_StartMessage (tempstring, M_QuickLoadResponse, true);
}
@ -1499,7 +1511,7 @@ void M_DrawReadThis ()
//
void M_DrawMainMenu (void)
{
if (gameinfo.gametype == GAME_Doom)
if (gameinfo.gametype & GAME_DoomChex)
{
screen->DrawTexture (TexMan["M_DOOM"], 94, 2, DTA_Clean, true, TAG_DONE);
}
@ -1542,9 +1554,9 @@ void M_DrawHereticMainMenu ()
//
void M_DrawNewGame(void)
{
if (gameinfo.gametype & (GAME_Doom|GAME_Strife))
if (gameinfo.gametype & (GAME_DoomStrifeChex))
{
screen->DrawTexture (TexMan[gameinfo.gametype == GAME_Doom ? "M_NEWG" : "M_NGAME"], 96, 14, DTA_Clean, true, TAG_DONE);
screen->DrawTexture (TexMan[gameinfo.gametype & GAME_DoomChex ? "M_NEWG" : "M_NGAME"], 96, 14, DTA_Clean, true, TAG_DONE);
screen->DrawTexture (TexMan["M_SKILL"], 54, 38, DTA_Clean, true, TAG_DONE);
}
}
@ -1553,12 +1565,15 @@ void M_NewGame(int choice)
{
if (netgame && !demoplayback)
{
M_StartMessage (GStrings("NEWGAME"), NULL, false);
if(gameinfo.gametype == GAME_Chex)
M_StartMessage (GStrings("CNEWGAME"), NULL, false);
else
M_StartMessage (GStrings("NEWGAME"), NULL, false);
return;
}
// Set up episode menu positioning
if (gameinfo.gametype & (GAME_Doom|GAME_Strife))
if (gameinfo.gametype & (GAME_DoomStrifeChex))
{
EpiDef.x = 48;
EpiDef.y = 63;
@ -1679,7 +1694,7 @@ static void M_DrawClassMenu ()
if (ClassMenuDef.numitems > 4 && gameinfo.gametype & GAME_Raven)
tit_y = 2;
screen->DrawText (gameinfo.gametype == GAME_Doom ? CR_RED : CR_UNTRANSLATED,
screen->DrawText (gameinfo.gametype & GAME_DoomChex ? CR_RED : CR_UNTRANSLATED,
160 - BigFont->StringWidth (text)/2,
tit_y,
text, DTA_Clean, true, TAG_DONE);
@ -1738,7 +1753,7 @@ static void DrawHexenSkillMenu()
//
void M_DrawEpisode ()
{
if (gameinfo.gametype & (GAME_Doom|GAME_Strife))
if (gameinfo.gametype & (GAME_DoomStrifeChex))
{
screen->DrawTexture (TexMan["M_EPISOD"], 54, 38, DTA_Clean, true, TAG_DONE);
}
@ -1790,6 +1805,10 @@ void M_Episode (int choice)
M_StartMessage(GStrings("SWSTRING"),NULL,false);
//M_SetupNextMenu(&ReadDef);
}
else if (gameinfo.gametype == GAME_Chex)
{
M_StartMessage(GStrings("CSWSTRING"),NULL,false);
}
else
{
showSharewareMessage = 3*TICRATE;
@ -1818,7 +1837,10 @@ static void SCClass (int option)
{
if (netgame)
{
M_StartMessage (GStrings("NEWGAME"), NULL, false);
if(gameinfo.gametype == GAME_Chex)
M_StartMessage (GStrings("CNEWGAME"), NULL, false);
else
M_StartMessage (GStrings("NEWGAME"), NULL, false);
return;
}
@ -1846,7 +1868,10 @@ static void M_ChooseClass (int choice)
{
if (netgame)
{
M_StartMessage (GStrings("NEWGAME"), NULL, false);
if(gameinfo.gametype == GAME_Chex)
M_StartMessage (GStrings("CNEWGAME"), NULL, false);
else
M_StartMessage (GStrings("NEWGAME"), NULL, false);
return;
}
@ -1899,11 +1924,17 @@ void M_EndGame(int choice)
if (netgame)
{
M_StartMessage(GStrings("NETEND"),NULL,false);
if(gameinfo.gametype == GAME_Chex)
M_StartMessage(GStrings("CNETEND"),NULL,false);
else
M_StartMessage(GStrings("NETEND"),NULL,false);
return;
}
M_StartMessage(GStrings("ENDGAME"),M_EndGameResponse,true);
if(gameinfo.gametype == GAME_Chex)
M_StartMessage(GStrings("CENDGAME"),M_EndGameResponse,true);
else
M_StartMessage(GStrings("ENDGAME"),M_EndGameResponse,true);
}
@ -1966,12 +1997,19 @@ void M_QuitGame (int choice)
{
// We pick index 0 which is language sensitive,
// or one at random, between 1 and maximum number.
if (gameinfo.gametype & (GAME_Doom|GAME_Strife))
if (gameinfo.gametype & (GAME_DoomStrifeChex))
{
int quitmsg = gametic % (gameinfo.gametype == GAME_Doom ? NUM_QUITDOOMMESSAGES : NUM_QUITSTRIFEMESSAGES - 1);
if (quitmsg != 0 || gameinfo.gametype == GAME_Strife)
int quitmsg = 0;
if (gameinfo.gametype == GAME_Doom)
quitmsg = gametic % NUM_QUITDOOMMESSAGES;
else if (gameinfo.gametype == GAME_Strife)
quitmsg = gametic % NUM_QUITSTRIFEMESSAGES - 1;
else //Chex quest has 2 messages but one is more likely to show
quitmsg = (gametic % NUM_QUITCHEXMESSAGES + 6) > NUM_QUITCHEXMESSAGES ? NUM_QUITCHEXMESSAGES - 1 : (gametic % NUM_QUITCHEXMESSAGES + 6);
if (quitmsg != 0 || gameinfo.gametype == GAME_Strife || gameinfo.gametype == GAME_Chex)
{
EndString.Format("QUITMSG%d", quitmsg + (gameinfo.gametype == GAME_Doom ? 0 : NUM_QUITDOOMMESSAGES + 1));
EndString.Format("QUITMSG%d", quitmsg + (gameinfo.gametype == GAME_Doom ? 0 : (gameinfo.gametype == GAME_Chex ? NUM_QUITDOOMMESSAGES + NUM_QUITSTRIFEMESSAGES : NUM_QUITDOOMMESSAGES + 1)));
EndString.Format("%s\n\n%s", GStrings(EndString), GStrings("DOSY"));
}
else
@ -2061,7 +2099,7 @@ static void M_PlayerSetupDrawer ()
EColorRange label, value;
DWORD color;
if (!(gameinfo.gametype & (GAME_Doom|GAME_Strife)))
if (!(gameinfo.gametype & (GAME_DoomStrifeChex)))
{
xo = 5;
yo = 5;
@ -2077,7 +2115,7 @@ static void M_PlayerSetupDrawer ()
// Draw title
const char * text = GStrings("MNU_PLAYERSETUP");
screen->DrawText (gameinfo.gametype == GAME_Doom ? CR_RED : CR_UNTRANSLATED,
screen->DrawText (gameinfo.gametype & GAME_DoomChex ? CR_RED : CR_UNTRANSLATED,
160 - BigFont->StringWidth (text)/2,
15,
text, DTA_Clean, true, TAG_DONE);
@ -3210,7 +3248,7 @@ void M_Drawer ()
if (color == CR_UNTRANSLATED)
{
// The default DBIGFONT is white but Doom's default should be red.
if (gameinfo.gametype == GAME_Doom)
if (gameinfo.gametype & GAME_DoomChex)
{
color = CR_RED;
}
@ -3241,12 +3279,12 @@ void M_Drawer ()
screen->SetFont (ConFont);
screen->DrawText (CR_RED, x - 16,
currentMenu->y + itemOn*LINEHEIGHT +
(!(gameinfo.gametype & (GAME_Doom|GAME_Strife)) ? 6 : -1), "\xd",
(!(gameinfo.gametype & (GAME_DoomStrifeChex)) ? 6 : -1), "\xd",
DTA_Clean, true, TAG_DONE);
screen->SetFont (SmallFont);
}
}
else if (gameinfo.gametype == GAME_Doom)
else if (gameinfo.gametype & GAME_DoomChex)
{
screen->DrawTexture (TexMan[skullName[whichSkull]],
x + SKULLXOFF, currentMenu->y - 5 + itemOn*LINEHEIGHT,
@ -3398,7 +3436,7 @@ void M_Init (void)
atterm (M_Deinit);
if (gameinfo.gametype & (GAME_Doom|GAME_Strife))
if (gameinfo.gametype & (GAME_DoomStrifeChex))
{
TopLevelMenu = currentMenu = &MainDef;
if (gameinfo.gametype == GAME_Strife)
@ -3429,10 +3467,10 @@ void M_Init (void)
lastSaveSlot = NULL;
strcpy (NewSaveNode.Title, "<New Save Game>");
underscore[0] = (gameinfo.gametype & (GAME_Doom|GAME_Strife)) ? '_' : '[';
underscore[0] = (gameinfo.gametype & (GAME_DoomStrifeChex)) ? '_' : '[';
underscore[1] = '\0';
if (gameinfo.gametype == GAME_Doom)
if (gameinfo.gametype & GAME_DoomChex)
{
LINEHEIGHT = 16;
}
@ -3494,7 +3532,7 @@ void M_Init (void)
ClassMenuDef.numitems = 1;
}
if (gameinfo.gametype & (GAME_Doom|GAME_Strife))
if (gameinfo.gametype & (GAME_DoomStrifeChex))
{
ClassMenuDef.x = 48;
ClassMenuDef.y = 63;