- Fixed: The DECORATE expression evaluator was reading the operator token

from the wrong variable in a few places resulting in incorrect calculations.
- Fixed: MP3/OGG music always looped because the looping flag was always
  set when FMOD was called to play it.
- Removed upper limit of 1 for an actor's gravity factor.
- Fixed: A_VileTarget spawned the fire at coordinate (target->x, target->x)
  instead of (target->x, target->y). (Old vanilla bug.)


SVN r550 (trunk)
This commit is contained in:
Christoph Oelckers 2007-09-27 11:30:23 +00:00
parent f94d971c06
commit 333ef105f7
5 changed files with 15 additions and 6 deletions

View file

@ -1,3 +1,12 @@
September 27, 2007 (Changes by Graf Zahl)
- Fixed: The DECORATE expression evaluator was reading the operator token
from the wrong variable in a few places resulting in incorrect calculations.
- Fixed: MP3/OGG music always looped because the looping flag was always
set when FMOD was called to play it.
- Removed upper limit of 1 for an actor's gravity factor.
- Fixed: A_VileTarget spawned the fire at coordinate (target->x, target->x)
instead of (target->x, target->y). (Old vanilla bug.)
September 26, 2007 (Changes by Graf Zahl)
- Fixed: F_StartFinale shouldn't get the information if the game is about
to end from level.nextmap. For example, this check is wrong for a secret

View file

@ -75,7 +75,7 @@ void A_VileTarget (AActor *actor)
A_FaceTarget (actor);
fog = Spawn ("ArchvileFire", actor->target->x, actor->target->x,
fog = Spawn ("ArchvileFire", actor->target->x, actor->target->y,
actor->target->z, ALLOW_REPLACE);
actor->tracer = fog;

View file

@ -56,7 +56,7 @@ StreamSong::~StreamSong ()
StreamSong::StreamSong (const char *filename_or_data, int offset, int len)
{
m_Stream = GSnd->OpenStream (filename_or_data, SoundStream::Loop, offset, len);
m_Stream = GSnd->OpenStream (filename_or_data, m_Looping? SoundStream::Loop : 0, offset, len);
}
bool StreamSong::IsPlaying ()

View file

@ -563,7 +563,7 @@ static ExpData *ParseExpressionF (const PClass *cls)
int token = sc_TokenType;
ExpData *right = ParseExpressionE (cls);
ExpData *data = new ExpData;
data->Type = token == '<' ? EX_LT : sc_TokenType == '>' ? EX_GT : sc_TokenType == TK_Leq? EX_LE : EX_GE;
data->Type = token == '<' ? EX_LT : token == '>' ? EX_GT : token == TK_Leq? EX_LE : EX_GE;
data->Children[0] = tmp;
data->Children[1] = right;
data->EvalConst (cls);
@ -620,7 +620,7 @@ static ExpData *ParseExpressionC (const PClass *cls)
int token = sc_TokenType;
ExpData *right = ParseExpressionB (cls);
ExpData *data = new ExpData;
data->Type = token == '*'? EX_Mul : sc_TokenType == '/'? EX_Div : EX_Mod;
data->Type = token == '*'? EX_Mul : token == '/'? EX_Div : EX_Mod;
data->Children[0] = tmp;
data->Children[1] = right;
data->EvalConst (cls);

View file

@ -1647,8 +1647,8 @@ static void ActorGravity (AActor *defaults, Baggage &bag)
{
SC_MustGetFloat ();
if (sc_Float < 0.f || sc_Float > 1.f)
SC_ScriptError ("Gravity must be in the range [0,1]");
if (sc_Float < 0.f)
SC_ScriptError ("Gravity must not be negative.");
defaults->gravity = FLOAT2FIXED (sc_Float);