mirror of
https://github.com/ZDoom/gzdoom-last-svn.git
synced 2025-05-30 00:41:19 +00:00
* 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:
parent
88f0ffee2d
commit
6e90487846
12 changed files with 49 additions and 44 deletions
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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++)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue