mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-23 04:22:34 +00:00
- 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:
parent
4c8bf4552a
commit
1b55520a8b
6 changed files with 67 additions and 11 deletions
|
@ -1,4 +1,13 @@
|
|||
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.
|
||||
- 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
|
||||
|
|
|
@ -1096,6 +1096,8 @@ void A_SpawnMace (AActor *self)
|
|||
mace->FirstSpot = firstSpot;
|
||||
mace->NumMaceSpots = numspots;
|
||||
mace->DoRespawn ();
|
||||
// We want this mace to respawn.
|
||||
mace->flags &= ~MF_DROPPED;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1698,7 +1698,7 @@ void M_OptDrawer ()
|
|||
{
|
||||
int box_x, box_y;
|
||||
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,
|
||||
item->a.colorcvar->GetIndex());
|
||||
}
|
||||
|
|
|
@ -4231,7 +4231,19 @@ int DLevelScript::RunScript ()
|
|||
break;
|
||||
|
||||
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--;
|
||||
break;
|
||||
|
||||
|
@ -4241,9 +4253,23 @@ int DLevelScript::RunScript ()
|
|||
break;
|
||||
|
||||
case PCD_GIVEACTORINVENTORY:
|
||||
GiveInventory (SingleActorFromTID(STACK(3), NULL),
|
||||
FBehavior::StaticLookupString (STACK(2)), STACK(1));
|
||||
sp -= 3;
|
||||
{
|
||||
const char *type = FBehavior::StaticLookupString(STACK(2));
|
||||
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;
|
||||
|
||||
case PCD_GIVEINVENTORYDIRECT:
|
||||
|
@ -4257,9 +4283,23 @@ int DLevelScript::RunScript ()
|
|||
break;
|
||||
|
||||
case PCD_TAKEACTORINVENTORY:
|
||||
TakeInventory (SingleActorFromTID(STACK(3), NULL),
|
||||
FBehavior::StaticLookupString (STACK(2)), STACK(1));
|
||||
sp -= 3;
|
||||
{
|
||||
const char *type = FBehavior::StaticLookupString(STACK(2));
|
||||
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;
|
||||
|
||||
case PCD_TAKEINVENTORYDIRECT:
|
||||
|
|
|
@ -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
|
||||
if (actor->flags & MF_NOCLIP)
|
||||
{
|
||||
return true;
|
||||
return (actor->floorsector == actor->Sector);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2338,7 +2338,7 @@ bool P_CheckSlopeWalk (AActor *actor, fixed_t &xmove, fixed_t &ymove)
|
|||
desty -= FixedMul (plane->b, t);
|
||||
xmove = destx - actor->x;
|
||||
ymove = desty - actor->y;
|
||||
return true;
|
||||
return (actor->floorsector == actor->Sector);
|
||||
}
|
||||
else if (t > 0)
|
||||
{ // 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);
|
||||
xmove = destx - actor->x;
|
||||
ymove = desty - actor->y;
|
||||
return true;//(plane->c >= STEEPSLOPE);
|
||||
return (actor->floorsector == actor->Sector);//(plane->c >= STEEPSLOPE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,6 +97,11 @@ void R_InitSkyMap ()
|
|||
{
|
||||
skytexturemid = 199 * skytex1->yScale;
|
||||
skystretch = 0;
|
||||
// At heights above 600 pixels, the sky is drawn slightly too low.
|
||||
if (SCREENHEIGHT > 600)
|
||||
{
|
||||
skytexturemid += FRACUNIT;
|
||||
}
|
||||
}
|
||||
skyheight = fskyheight << skystretch;
|
||||
|
||||
|
|
Loading…
Reference in a new issue