* Updated to ZDoom 4055:

- Fixed: Lost Souls spawned by Pain Elementals were not killed by DF2_KILLBOSSMONST.
- Reorder the althud level time map entries to match their displayed order.
- Use "Map time color" for single maps, whether in a hub or not. Only use "Hub time color" for hub times.
- Removed the netdemo flag, because it's redundant with (netgame && demoplayback).
- Fixed: The string displayed when attempting to start a new game during a netgame is "NEWGAME", not "NETGAME".
- Fixed: The menu treated netdemos as actual netgames.
- Fixed: Floor_RaiseAndCrush is not Floor_RaiseToLowestCeilingAndCrush.
- Revert r4043: WRF_NoFire is two bits, not just one.
- Fixed: A_Lower needs to check player->cheats for WF_INSTANTWEAPSWITCH, not player->WeaponState.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1512 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
gez 2013-01-27 23:45:12 +00:00
parent 88f0ffee2d
commit 6e90487846
12 changed files with 49 additions and 44 deletions

View file

@ -158,7 +158,6 @@ EXTERN_CVAR (Bool, sv_unlimited_pickup)
extern int testingmode;
extern bool setmodeneeded;
extern bool netdemo;
extern int NewWidth, NewHeight, NewBits, DisplayBits;
EXTERN_CVAR (Bool, st_scale)
extern bool gameisdead;

View file

@ -79,16 +79,22 @@ DEFINE_ACTION_FUNCTION(AActor, A_BrainDie)
// New dmflag: Kill all boss spawned monsters before ending the level.
if (dmflags2 & DF2_KILLBOSSMONST)
{
TThinkerIterator<AActor> it;
AActor *mo;
while ((mo = it.Next()))
int count; // Repeat until we have no more boss-spawned monsters.
do // (e.g. Pain Elementals can spawn more to kill upon death.)
{
if (mo->flags4 & MF4_BOSSSPAWNED)
TThinkerIterator<AActor> it;
AActor *mo;
count = 0;
while ((mo = it.Next()))
{
P_DamageMobj(mo, self, self, mo->health, NAME_None,
DMG_NO_ARMOR|DMG_FORCED|DMG_THRUSTLESS|DMG_NO_FACTOR);
if (mo->health > 0 && mo->flags4 & MF4_BOSSSPAWNED)
{
P_DamageMobj(mo, self, self, mo->health, NAME_None,
DMG_NO_ARMOR|DMG_FORCED|DMG_THRUSTLESS|DMG_NO_FACTOR);
count++;
}
}
}
} while (count != 0);
}
G_ExitLevel (0, false);

View file

@ -111,6 +111,8 @@ void A_PainShootSkull (AActor *self, angle_t angle, const PClass *spawntype, int
other = Spawn (spawntype, x, y, z, ALLOW_REPLACE);
// Transfer boss-spawned flag
other->flags4 |= self->flags4 & MF4_BOSSSPAWNED;
// Check to see if the new Lost Soul's z value is above the
// ceiling of its new sector, or below the floor. If so, kill it.

View file

@ -164,7 +164,6 @@ CVAR(Bool, demo_compress, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG);
FString demoname;
bool demorecording;
bool demoplayback;
bool netdemo;
bool demonew; // [RH] Only used around G_InitNew for demos
int demover;
BYTE* demobuffer;
@ -1131,7 +1130,7 @@ void G_Ticker ()
Printf ("%s is turbo!\n", players[i].userinfo.netname);
}
if (netgame && !players[i].isbot && !netdemo && (gametic%ticdup) == 0)
if (netgame && !players[i].isbot && !demoplayback && (gametic%ticdup) == 0)
{
//players[i].inconsistant = 0;
if (gametic > BACKUPTICS*ticdup && consistancy[i][buf] != cmd->consistancy)
@ -2503,7 +2502,7 @@ bool G_ProcessIFFDemo (char *mapname)
}
if (numPlayers > 1)
multiplayer = netgame = netdemo = true;
multiplayer = netgame = true;
if (uncompSize > 0)
{
@ -2641,7 +2640,6 @@ bool G_CheckDemoStatus (void)
P_SetupWeapons_ntohton();
demoplayback = false;
netdemo = false;
netgame = false;
multiplayer = false;
singletics = false;

View file

@ -114,7 +114,6 @@ extern bool timingdemo;
int starttime;
extern bool netdemo;
extern FString BackupSaveName;
bool savegamerestore;
@ -230,7 +229,6 @@ void G_NewInit ()
G_ClearSnapshots ();
SB_state = screen->GetPageCount ();
netgame = false;
netdemo = false;
multiplayer = false;
if (demoplayback)
{

View file

@ -899,18 +899,18 @@ void DrawHUD()
if (am_showtime)
{
seconds = level.time /TICRATE;
mysnprintf(printstr, countof(printstr), "%02i:%02i:%02i", seconds/3600, (seconds%3600)/60, seconds%60);
DrawHudText(SmallFont, hudcolor_time, printstr, hudwidth-length, bottom, FRACUNIT);
bottom -= fonth;
// Single level time for hubs
if (level.clusterflags&CLUSTER_HUB)
{
seconds= level.maptime /TICRATE;
seconds = level.time /TICRATE;
mysnprintf(printstr, countof(printstr), "%02i:%02i:%02i", seconds/3600, (seconds%3600)/60, seconds%60);
DrawHudText(SmallFont, hudcolor_ltim, printstr, hudwidth-length, bottom, FRACUNIT);
DrawHudText(SmallFont, hudcolor_time, printstr, hudwidth-length, bottom, FRACUNIT);
bottom -= fonth;
}
// Single level time for hubs
seconds= level.maptime /TICRATE;
mysnprintf(printstr, countof(printstr), "%02i:%02i:%02i", seconds/3600, (seconds%3600)/60, seconds%60);
DrawHudText(SmallFont, hudcolor_ltim, printstr, hudwidth-length, bottom, FRACUNIT);
}
ST_FormatMapName(mapname);

View file

@ -409,7 +409,7 @@ void M_SetMenu(FName menu, int param)
FMenuDescriptor **desc = MenuDescriptors.CheckKey(menu);
if (desc != NULL)
{
if ((*desc)->mNetgameMessage.IsNotEmpty() && netgame)
if ((*desc)->mNetgameMessage.IsNotEmpty() && netgame && !demoplayback)
{
M_StartMessage((*desc)->mNetgameMessage, 1);
return;

View file

@ -1135,7 +1135,7 @@ static void BuildPlayerclassMenu()
od->mScrollTop = 0;
od->mIndent = 160;
od->mDontDim = false;
od->mNetgameMessage = "$NETGAME";
od->mNetgameMessage = "$NEWGAME";
for (unsigned i = 0; i < PlayerClasses.Size (); i++)
{

View file

@ -373,18 +373,13 @@ manual_floor:
floor->m_Direction = (floor->m_FloorDestDist > sec->floorplane.d) ? -1 : 1;
break;
case DFloor::floorRaiseAndCrush:
floor->m_Crush = crush;
case DFloor::floorRaiseToLowestCeiling:
floor->m_Direction = 1;
newheight = sec->FindLowestCeilingSurrounding (&spot);
if (floortype == DFloor::floorRaiseAndCrush)
newheight -= 8 * FRACUNIT;
ceilingheight = sec->FindLowestCeilingPoint (&spot2);
floor->m_FloorDestDist = sec->floorplane.PointToDist (spot, newheight);
if (sec->floorplane.ZatPointDist (spot2, floor->m_FloorDestDist) > ceilingheight)
floor->m_FloorDestDist = sec->floorplane.PointToDist (spot2,
floortype == DFloor::floorRaiseAndCrush ? ceilingheight - 8*FRACUNIT : ceilingheight);
floor->m_FloorDestDist = sec->floorplane.PointToDist (spot2, ceilingheight);
break;
case DFloor::floorRaiseToHighest:
@ -405,6 +400,13 @@ manual_floor:
floor->m_FloorDestDist = sec->floorplane.PointToDist (spot, newheight);
break;
case DFloor::floorRaiseAndCrush:
floor->m_Crush = crush;
floor->m_Direction = 1;
newheight = sec->FindLowestCeilingPoint (&spot) - 8*FRACUNIT;
floor->m_FloorDestDist = sec->floorplane.PointToDist (spot, newheight);
break;
case DFloor::floorRaiseToCeiling:
floor->m_Direction = 1;
newheight = sec->FindLowestCeilingPoint (&spot);

View file

@ -552,10 +552,10 @@ void DoReadyWeapon(AActor * self)
enum EWRF_Options
{
WRF_NoBob = 1,
WRF_NoFire = 12,
WRF_NoSwitch = 2,
WRF_NoPrimary = 4,
WRF_NoSecondary = 8,
WRF_NoFire = WRF_NoPrimary + WRF_NoSecondary,
WRF_AllowReload = 16,
WRF_AllowZoom = 32,
};
@ -565,11 +565,11 @@ DEFINE_ACTION_FUNCTION_PARAMS(AInventory, A_WeaponReady)
ACTION_PARAM_START(1);
ACTION_PARAM_INT(paramflags, 0);
if (!(paramflags & WRF_NoSwitch)) DoReadyWeaponToSwitch(self);
if (!(paramflags & WRF_NoFire)) DoReadyWeaponToFire(self, !(paramflags & WRF_NoPrimary), !(paramflags & WRF_NoSecondary));
if (!(paramflags & WRF_NoBob)) DoReadyWeaponToBob(self);
if ((paramflags & WRF_AllowReload)) DoReadyWeaponToReload(self);
if ((paramflags & WRF_AllowZoom)) DoReadyWeaponToZoom(self);
if (!(paramflags & WRF_NoSwitch)) DoReadyWeaponToSwitch(self);
if ((paramflags & WRF_NoFire) != WRF_NoFire) DoReadyWeaponToFire(self, !(paramflags & WRF_NoPrimary), !(paramflags & WRF_NoSecondary));
if (!(paramflags & WRF_NoBob)) DoReadyWeaponToBob(self);
if ((paramflags & WRF_AllowReload)) DoReadyWeaponToReload(self);
if ((paramflags & WRF_AllowZoom)) DoReadyWeaponToZoom(self);
}
//---------------------------------------------------------------------------
@ -779,7 +779,7 @@ DEFINE_ACTION_FUNCTION(AInventory, A_Lower)
return;
}
psp = &player->psprites[ps_weapon];
if (player->morphTics || player->WeaponState & CF_INSTANTWEAPSWITCH)
if (player->morphTics || player->cheats & CF_INSTANTWEAPSWITCH)
{
psp->sy = WEAPONBOTTOM;
}

View file

@ -3,5 +3,5 @@
// This file was automatically generated by the
// updaterevision tool. Do not edit by hand.
#define ZD_SVN_REVISION_STRING "4045"
#define ZD_SVN_REVISION_NUMBER 4045
#define ZD_SVN_REVISION_STRING "4055"
#define ZD_SVN_REVISION_NUMBER 4055

View file

@ -117,11 +117,11 @@ ListMenu "PlayerclassMenu"
{
IfGame(Doom, Heretic, Hexen, Strife)
{
NetgameMessage "$NETGAME"
NetgameMessage "$NEWGAME"
}
IfGame(Chex)
{
NetgameMessage "$CNETGAME"
NetgameMessage "$CNEWGAME"
}
IfGame(Doom, Strife, Chex)
@ -159,11 +159,11 @@ ListMenu "EpisodeMenu"
{
IfGame(Doom, Heretic, Hexen, Strife)
{
NetgameMessage "$NETGAME"
NetgameMessage "$NEWGAME"
}
IfGame(Chex)
{
NetgameMessage "$CNETGAME"
NetgameMessage "$CNEWGAME"
}
IfGame(Doom, Chex)
@ -802,8 +802,8 @@ OptionMenu "AltHUDOptions"
StaticText " "
StaticText "Alternative Automap HUD", 1
option "Map title color", "hudcolor_titl", "TextColors"
option "Hub time color", "hudcolor_time", "TextColors"
option "Map time color", "hudcolor_ltim", "TextColors"
option "Hub time color", "hudcolor_time", "TextColors"
option "Total time color", "hudcolor_ttim", "TextColors"
option "Coordinate color", "hudcolor_xyco", "TextColors"
option "Coordinate mode", "map_point_coordinates", "AMCoordinates"