- 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
- Fixed: The music stream needs to zero the FMOD_REVERB_CHANNELPROPERTIES
before sending it to Channel::getReverbProperties().

View file

@ -841,3 +841,45 @@ CCMD(thaw)
Net_WriteByte (DEM_GENERICCHEAT);
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.y = y;
FBoundingBox box(x, y, thing->radius);
newsec = P_PointInSector (x,y);
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;
FBoundingBox box(x, y, thing->radius);
FBlockThingsIterator it2(FBoundingBox(x, y, thing->radius));
{
FBlockThingsIterator it2(box);
AActor *th;
while ((th = it2.Next()))
{
@ -1095,6 +1095,7 @@ bool P_CheckPosition (AActor *thing, fixed_t x, fixed_t y, FCheckPosition &tm)
}
}
}
}
// check lines

View file

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

View file

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