- Fixed: FBlockThingsIterator didn't set the current block coordinates if

they were outside the blockmap. This could cause extreme delays if an
  iteration started outside the valid boundaries.
- added nextmap and nextsecret CCMDs.


SVN r924 (trunk)
This commit is contained in:
Christoph Oelckers 2008-04-19 00:55:55 +00:00
parent eb1e17db06
commit 48d8881065
5 changed files with 92 additions and 44 deletions

View file

@ -1,3 +1,8 @@
April 18, 2008 (Changes by Graf Zahl)
- Fixed: FBlockThingsIterator didn't set the current block coordinates if
they were outside the blockmap. This could cause extreme delays if an
iteration started outside the valid boundaries.
April 17, 2008 April 17, 2008
- Fixed: The music stream needs to zero the FMOD_REVERB_CHANNELPROPERTIES - Fixed: The music stream needs to zero the FMOD_REVERB_CHANNELPROPERTIES
before sending it to Channel::getReverbProperties(). before sending it to Channel::getReverbProperties().

View file

@ -841,3 +841,45 @@ CCMD(thaw)
Net_WriteByte (DEM_GENERICCHEAT); Net_WriteByte (DEM_GENERICCHEAT);
Net_WriteByte (CHT_CLEARFROZENPROPS); Net_WriteByte (CHT_CLEARFROZENPROPS);
} }
//-----------------------------------------------------------------------------
//
//
//
//-----------------------------------------------------------------------------
CCMD(nextmap)
{
char * next=NULL;
if (*level.nextmap) next = level.nextmap;
if (next != NULL && strncmp(next, "enDSeQ", 6))
{
G_InitNew(next, false);
}
else
{
Printf("no next map!\n");
}
}
//-----------------------------------------------------------------------------
//
//
//
//-----------------------------------------------------------------------------
CCMD(nextsecret)
{
char * next=NULL;
if (*level.secretmap) next = level.secretmap;
if (next != NULL && strncmp(next, "enDSeQ", 6))
{
G_InitNew(next, false);
}
else
{
Printf("no next secret map!\n");
}
}

View file

@ -1008,8 +1008,6 @@ bool P_CheckPosition (AActor *thing, fixed_t x, fixed_t y, FCheckPosition &tm)
tm.x = x; tm.x = x;
tm.y = y; tm.y = y;
FBoundingBox box(x, y, thing->radius);
newsec = P_PointInSector (x,y); newsec = P_PointInSector (x,y);
tm.ceilingline = thing->BlockingLine = NULL; tm.ceilingline = thing->BlockingLine = NULL;
@ -1047,8 +1045,10 @@ bool P_CheckPosition (AActor *thing, fixed_t x, fixed_t y, FCheckPosition &tm)
} }
tm.stepthing = NULL; tm.stepthing = NULL;
FBoundingBox box(x, y, thing->radius);
FBlockThingsIterator it2(FBoundingBox(x, y, thing->radius)); {
FBlockThingsIterator it2(box);
AActor *th; AActor *th;
while ((th = it2.Next())) while ((th = it2.Next()))
{ {
@ -1095,6 +1095,7 @@ bool P_CheckPosition (AActor *thing, fixed_t x, fixed_t y, FCheckPosition &tm)
} }
} }
} }
}
// check lines // check lines

View file

@ -804,10 +804,10 @@ FBlockThingsIterator::~FBlockThingsIterator()
void FBlockThingsIterator::StartBlock(int x, int y) void FBlockThingsIterator::StartBlock(int x, int y)
{ {
if (x >= 0 && y >= 0 && x < bmapwidth && y <bmapheight)
{
curx = x; curx = x;
cury = y; cury = y;
if (x >= 0 && y >= 0 && x < bmapwidth && y <bmapheight)
{
block = blocklinks[y*bmapwidth + x]; block = blocklinks[y*bmapwidth + x];
} }
else else

View file

@ -75,7 +75,7 @@
// SAVESIG should match SAVEVER. // SAVESIG should match SAVEVER.
// MINSAVEVER is the minimum level snapshot version that can be loaded. // MINSAVEVER is the minimum level snapshot version that can be loaded.
#define MINSAVEVER 894 #define MINSAVEVER 922
#if SVN_REVISION_NUMBER < MINSAVEVER #if SVN_REVISION_NUMBER < MINSAVEVER
// Never write a savegame with a version lower than what we need // Never write a savegame with a version lower than what we need