- Fixed: Heretic's mace never respawned in deathmatch games.

- Fixed: At resolutions taller than 600 pixels or so, tall sky textures were
  drawn a row too low. This was quite visible on Hexen MAP06.
- Fixed: P_CheckSlopeWalk() must return false if floorsector != sector, or
  the actor will be yanked down to the floorsector by P_TryMove().
- Fixed: ClearActorInventory, GiveActorInventory, and TakeActorInventory
  only affected the first actor with the given TID.
- Fixed: The color boxes for the colorpicker menu items were drawn a little
  too low.

SVN r603 (trunk)
This commit is contained in:
Randy Heit 2007-12-18 03:25:19 +00:00
parent 4c8bf4552a
commit 1b55520a8b
6 changed files with 67 additions and 11 deletions

View file

@ -1,4 +1,13 @@
December 17, 2007 December 17, 2007
- Fixed: Heretic's mace never respawned in deathmatch games.
- Fixed: At resolutions taller than 600 pixels or so, tall sky textures were
drawn a row too low. This was quite visible on Hexen MAP06.
- Fixed: P_CheckSlopeWalk() must return false if floorsector != sector, or
the actor will be yanked down to the floorsector by P_TryMove().
- Fixed: ClearActorInventory, GiveActorInventory, and TakeActorInventory
only affected the first actor with the given TID.
- Fixed: The color boxes for the colorpicker menu items were drawn a little
too low.
- Fixed: Clean scaling at 720x480 looked borked. - Fixed: Clean scaling at 720x480 looked borked.
- New: When using the D3D9 framebuffer, palette blending is now applied only - New: When using the D3D9 framebuffer, palette blending is now applied only
to the 3D area of the screen. This means the console and (the primary to the 3D area of the screen. This means the console and (the primary

View file

@ -1096,6 +1096,8 @@ void A_SpawnMace (AActor *self)
mace->FirstSpot = firstSpot; mace->FirstSpot = firstSpot;
mace->NumMaceSpots = numspots; mace->NumMaceSpots = numspots;
mace->DoRespawn (); mace->DoRespawn ();
// We want this mace to respawn.
mace->flags &= ~MF_DROPPED;
} }
} }

View file

@ -1698,7 +1698,7 @@ void M_OptDrawer ()
{ {
int box_x, box_y; int box_x, box_y;
box_x = (CurrentMenu->indent - 35 - 160) * CleanXfac + screen->GetWidth()/2; box_x = (CurrentMenu->indent - 35 - 160) * CleanXfac + screen->GetWidth()/2;
box_y = (y - 98) * CleanYfac + screen->GetHeight()/2; box_y = (y - ((gameinfo.gametype & GAME_Raven) ? 99 : 100)) * CleanYfac + screen->GetHeight()/2;
screen->Clear (box_x, box_y, box_x + 32*CleanXfac, box_y + (fontheight-1)*CleanYfac, screen->Clear (box_x, box_y, box_x + 32*CleanXfac, box_y + (fontheight-1)*CleanYfac,
item->a.colorcvar->GetIndex()); item->a.colorcvar->GetIndex());
} }

View file

@ -4231,7 +4231,19 @@ int DLevelScript::RunScript ()
break; break;
case PCD_CLEARACTORINVENTORY: case PCD_CLEARACTORINVENTORY:
ClearInventory (SingleActorFromTID(STACK(3), NULL)); if (STACK(3) == 0)
{
ClearInventory(NULL);
}
else
{
FActorIterator it(STACK(3));
AActor *actor;
for (actor = it.Next(); actor != NULL; actor = it.Next())
{
ClearInventory(actor);
}
}
sp--; sp--;
break; break;
@ -4241,9 +4253,23 @@ int DLevelScript::RunScript ()
break; break;
case PCD_GIVEACTORINVENTORY: case PCD_GIVEACTORINVENTORY:
GiveInventory (SingleActorFromTID(STACK(3), NULL), {
FBehavior::StaticLookupString (STACK(2)), STACK(1)); const char *type = FBehavior::StaticLookupString(STACK(2));
sp -= 3; if (STACK(3) == 0)
{
GiveInventory(NULL, FBehavior::StaticLookupString(STACK(2)), STACK(1));
}
else
{
FActorIterator it(STACK(3));
AActor *actor;
for (actor = it.Next(); actor != NULL; actor = it.Next())
{
GiveInventory(actor, type, STACK(1));
}
}
sp -= 3;
}
break; break;
case PCD_GIVEINVENTORYDIRECT: case PCD_GIVEINVENTORYDIRECT:
@ -4257,9 +4283,23 @@ int DLevelScript::RunScript ()
break; break;
case PCD_TAKEACTORINVENTORY: case PCD_TAKEACTORINVENTORY:
TakeInventory (SingleActorFromTID(STACK(3), NULL), {
FBehavior::StaticLookupString (STACK(2)), STACK(1)); const char *type = FBehavior::StaticLookupString(STACK(2));
sp -= 3; if (STACK(3) == 0)
{
TakeInventory(NULL, type, STACK(1));
}
else
{
FActorIterator it(STACK(3));
AActor *actor;
for (actor = it.Next(); actor != NULL; actor = it.Next())
{
TakeInventory(actor, type, STACK(1));
}
}
sp -= 3;
}
break; break;
case PCD_TAKEINVENTORYDIRECT: case PCD_TAKEINVENTORYDIRECT:

View file

@ -2302,7 +2302,7 @@ bool P_CheckSlopeWalk (AActor *actor, fixed_t &xmove, fixed_t &ymove)
{ // Can't climb up slopes of ~45 degrees or more { // Can't climb up slopes of ~45 degrees or more
if (actor->flags & MF_NOCLIP) if (actor->flags & MF_NOCLIP)
{ {
return true; return (actor->floorsector == actor->Sector);
} }
else else
{ {
@ -2338,7 +2338,7 @@ bool P_CheckSlopeWalk (AActor *actor, fixed_t &xmove, fixed_t &ymove)
desty -= FixedMul (plane->b, t); desty -= FixedMul (plane->b, t);
xmove = destx - actor->x; xmove = destx - actor->x;
ymove = desty - actor->y; ymove = desty - actor->y;
return true; return (actor->floorsector == actor->Sector);
} }
else if (t > 0) else if (t > 0)
{ // Desired location is in front of (above) the plane { // Desired location is in front of (above) the plane
@ -2349,7 +2349,7 @@ bool P_CheckSlopeWalk (AActor *actor, fixed_t &xmove, fixed_t &ymove)
desty += FixedMul (plane->b, t); desty += FixedMul (plane->b, t);
xmove = destx - actor->x; xmove = destx - actor->x;
ymove = desty - actor->y; ymove = desty - actor->y;
return true;//(plane->c >= STEEPSLOPE); return (actor->floorsector == actor->Sector);//(plane->c >= STEEPSLOPE);
} }
} }
} }

View file

@ -97,6 +97,11 @@ void R_InitSkyMap ()
{ {
skytexturemid = 199 * skytex1->yScale; skytexturemid = 199 * skytex1->yScale;
skystretch = 0; skystretch = 0;
// At heights above 600 pixels, the sky is drawn slightly too low.
if (SCREENHEIGHT > 600)
{
skytexturemid += FRACUNIT;
}
} }
skyheight = fskyheight << skystretch; skyheight = fskyheight << skystretch;