mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-23 12:32: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
|
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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
|
@ -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));
|
||||||
|
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;
|
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));
|
||||||
|
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;
|
sp -= 3;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PCD_TAKEINVENTORYDIRECT:
|
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
|
{ // 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue