Update to ZDoom r1276:

- Added NULL checks to all places where class names are passed as DECORATE
  parameters.
- All DECORATE parameters are passed as expressions now. This change allows
  for compile time checks of all class names being used in DECORATE so many
  incorrect definitions may output warnings now.
- Changed: S_StopChannel now resets the actor's sound flags. The previous bug
  made me think that delaying this until FMod calls the end of sound callback 
  may simply be too late.
- Changed DECORATE sound and color parameters to use expressions.
- Added a proper function parser to the expression evaluator and converted
  sin/cos and action specials to use it. The old evaluator is gone now.
- fixed some GCC problems with autosegs.
- Game time is now frozen during screen wipes. This obsoletes the DEM_WIPEON
  and DEM_WIPEOFF commands. Fixes multimap demos desyncing when played back
  or recorded with wipes enabled, and prevents multiplayer games from
  starting until all players' wipes have finished.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@189 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
Christoph Oelckers 2008-10-25 21:48:56 +00:00
parent 13e83a5875
commit 32ebd96afe
36 changed files with 1942 additions and 1180 deletions

View file

@ -719,37 +719,39 @@ void D_Display ()
C_DrawConsole (hw2d); // draw console
M_Drawer (); // menu is drawn even on top of everything
FStat::PrintStat ();
screen->Update (); // page flip or blit buffer
screen->Update (); // page flip or blit buffer
}
else
{
// wipe update
int wipestart, nowtime, tics;
unsigned int wipestart, nowtime, diff;
bool done;
GSnd->SetSfxPaused(true, 1);
I_FreezeTime(true);
screen->WipeEndScreen ();
wipestart = I_GetTime (false);
Net_WriteByte (DEM_WIPEON);
NetUpdate (); // send out any new accumulation
wipestart = I_MSTime();
NetUpdate(); // send out any new accumulation
do
{
nowtime = I_WaitForTic (wipestart);
tics = nowtime - wipestart;
do
{
I_WaitVBL(2);
nowtime = I_MSTime();
diff = (nowtime - wipestart) * 40 / 1000; // Using 35 here feels too slow.
} while (diff < 1);
wipestart = nowtime;
done = screen->WipeDo (tics);
done = screen->WipeDo (1);
C_DrawConsole (hw2d); // console and
M_Drawer (); // menu are drawn even on top of wipes
screen->Update (); // page flip or blit buffer
NetUpdate ();
NetUpdate (); // [RH] not sure this is needed anymore
} while (!done);
screen->WipeCleanup();
I_FreezeTime(false);
GSnd->SetSfxPaused(false, 1);
Net_WriteByte (DEM_WIPEOFF);
}
cycles.Unclock();