diff --git a/docs/rh-log.txt b/docs/rh-log.txt index ca3b8e8482..541b7cae86 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,3 +1,8 @@ +April 6, 2008 (Changes by Graf Zahl) +- Added a NOTIMEFREEZE flag that excludes actors from being affected by + the time freezer powerup. +- Changed: Empty pickup messages are no longer printed. + April 5, 2008 (Changes by Graf Zahl) - Changed secret sector drawing in automap so that lines with the ML_SECRET flag are only drawn as part of a secret sector if that secret has already diff --git a/src/actor.h b/src/actor.h index 92f9a4685e..212ee80f0c 100644 --- a/src/actor.h +++ b/src/actor.h @@ -299,6 +299,7 @@ enum MF5_DONTRIP = 0x00080000, // Ripping projectiles explode when hittin this actor MF5_NOINFIGHTING = 0x00100000, // This actor doesn't switch target when it's hurt MF5_NOINTERACTION = 0x00200000, // Thing is completely excluded from any gameplay related checks + MF5_NOTIMEFREEZE = 0x00400000, // Actor is not affected by time freezer // --- mobj.renderflags --- diff --git a/src/g_shared/a_pickups.cpp b/src/g_shared/a_pickups.cpp index 9ab08281c3..1e858c6068 100644 --- a/src/g_shared/a_pickups.cpp +++ b/src/g_shared/a_pickups.cpp @@ -884,7 +884,7 @@ static void PrintPickupMessage (const char *str) { str=GStrings(str+1); } - Printf (PRINT_LOW, "%s\n", str); + if (str[0] != 0) Printf (PRINT_LOW, "%s\n", str); } } diff --git a/src/p_conversation.cpp b/src/p_conversation.cpp index 28be4e88ad..ec4f86e201 100644 --- a/src/p_conversation.cpp +++ b/src/p_conversation.cpp @@ -1162,10 +1162,10 @@ void P_ConversationCommand (int player, BYTE **stream) break; case CONV_SETNULL: - players[player].ConversationFaceTalker = NULL; + players[player].ConversationFaceTalker = false; players[player].ConversationNPC = NULL; players[player].ConversationPC = NULL; - players[player].ConversationNPCAngle = NULL; + players[player].ConversationNPCAngle = 0; break; default: diff --git a/src/p_mobj.cpp b/src/p_mobj.cpp index 5ea85736db..fbc2364a9d 100644 --- a/src/p_mobj.cpp +++ b/src/p_mobj.cpp @@ -2573,16 +2573,19 @@ void AActor::Tick () return; } - //Added by MC: Freeze mode. - if (bglobal.freeze && !(player && !player->isbot)) + if (!(flags5 & MF5_NOTIMEFREEZE)) { - return; - } + //Added by MC: Freeze mode. + if (bglobal.freeze && !(player && !player->isbot)) + { + return; + } - // Apply freeze mode. - if (( level.flags & LEVEL_FROZEN ) && ( player == NULL || !( player->cheats & CF_TIMEFREEZE ))) - { - return; + // Apply freeze mode. + if (( level.flags & LEVEL_FROZEN ) && ( player == NULL || !( player->cheats & CF_TIMEFREEZE ))) + { + return; + } } if (cl_rockettrails & 2) diff --git a/src/thingdef/thingdef_properties.cpp b/src/thingdef/thingdef_properties.cpp index 8dd81fe703..ec878e8eb0 100644 --- a/src/thingdef/thingdef_properties.cpp +++ b/src/thingdef/thingdef_properties.cpp @@ -236,6 +236,7 @@ static flagdef ActorFlags[]= DEFINE_FLAG(MF5, DONTRIP, AActor, flags5), DEFINE_FLAG(MF5, NOINFIGHTING, AActor, flags5), DEFINE_FLAG(MF5, NOINTERACTION, AActor, flags5), + DEFINE_FLAG(MF5, NOTIMEFREEZE, AActor, flags5), // Effect flags DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),