- Fixed: Using printinv before starting a game crashed.

- Fixed: DMover::MovePlane() would not stop moving the plane when it exactly
  reached its target height unless it was a floor moving down.
- Fixed: Actors that can't attack should not be valid haters for Thing_Hate.
- Fixed: AArtiBlastRadius::BlastActor() should not set MF2_SLIDE for missiles.
- Fixed: sdl/i_input.cpp should check !iscntrl() before generating EV_GUI_Char
  messages.


SVN r36 (trunk)
This commit is contained in:
Randy Heit 2006-04-13 03:13:07 +00:00
parent 735e6d72c4
commit b00360a08c
7 changed files with 114 additions and 88 deletions

View file

@ -1,5 +1,12 @@
April 12, 2006 April 12, 2006
- Added Jim's Makefile.linux; - Fixed: Using printinv before starting a game crashed.
- Fixed: DMover::MovePlane() would not stop moving the plane when it exactly
reached its target height unless it was a floor moving down.
- Fixed: Actors that can't attack should not be valid haters for Thing_Hate.
- Fixed: AArtiBlastRadius::BlastActor() should not set MF2_SLIDE for missiles.
- Fixed: sdl/i_input.cpp should check !iscntrl() before generating EV_GUI_Char
messages.
- Added Jim's Makefile.linux.
- Changed: Decal scales now use full precision fixed point numbers. - Changed: Decal scales now use full precision fixed point numbers.
- Changed: Keeping impact decals in their own statlist is enough to keep track - Changed: Keeping impact decals in their own statlist is enough to keep track
of them for when one needs to be destroyed. There's no need to maintain a of them for when one needs to be destroyed. There's no need to maintain a

View file

@ -172,7 +172,7 @@ DMover::EResult DMover::MovePlane (fixed_t speed, fixed_t dest, int crush,
dest = -m_Sector->ceilingplane.d; dest = -m_Sector->ceilingplane.d;
} }
m_Sector->floorplane.ChangeHeight (speed); m_Sector->floorplane.ChangeHeight (speed);
if (m_Sector->floorplane.d < dest) if (m_Sector->floorplane.d <= dest)
{ {
m_Sector->floorplane.d = dest; m_Sector->floorplane.d = dest;
flag = P_ChangeSector (m_Sector, crush, flag = P_ChangeSector (m_Sector, crush,
@ -230,7 +230,7 @@ DMover::EResult DMover::MovePlane (fixed_t speed, fixed_t dest, int crush,
dest = -m_Sector->floorplane.d; dest = -m_Sector->floorplane.d;
} }
m_Sector->ceilingplane.ChangeHeight (-speed); m_Sector->ceilingplane.ChangeHeight (-speed);
if (m_Sector->ceilingplane.d < dest) if (m_Sector->ceilingplane.d <= dest)
{ {
m_Sector->ceilingplane.d = dest; m_Sector->ceilingplane.d = dest;
flag = P_ChangeSector (m_Sector, crush, flag = P_ChangeSector (m_Sector, crush,
@ -270,7 +270,7 @@ DMover::EResult DMover::MovePlane (fixed_t speed, fixed_t dest, int crush,
case 1: case 1:
// UP // UP
m_Sector->ceilingplane.ChangeHeight (speed); m_Sector->ceilingplane.ChangeHeight (speed);
if (m_Sector->ceilingplane.d > dest) if (m_Sector->ceilingplane.d >= dest)
{ {
m_Sector->ceilingplane.d = dest; m_Sector->ceilingplane.d = dest;
flag = P_ChangeSector (m_Sector, crush, flag = P_ChangeSector (m_Sector, crush,

View file

@ -194,10 +194,14 @@ void AArtiBlastRadius::BlastActor (AActor *victim, fixed_t strength)
} }
if (victim->flags & MF_MISSILE) if (victim->flags & MF_MISSILE)
{
// [RH] Floor and ceiling huggers should not be blasted vertically.
if (!(victim->flags3 & (MF3_FLOORHUGGER|MF3_CEILINGHUGGER)))
{ {
victim->momz = 8*FRACUNIT; victim->momz = 8*FRACUNIT;
mo->momz = victim->momz; mo->momz = victim->momz;
} }
}
else else
{ {
victim->momz = (1000 / victim->Mass) << FRACBITS; victim->momz = (1000 / victim->Mass) << FRACBITS;
@ -207,8 +211,15 @@ void AArtiBlastRadius::BlastActor (AActor *victim, fixed_t strength)
// Players handled automatically // Players handled automatically
} }
else else
{
if (victim->flags & MF_MISSILE)
{ // [RH] Missiles should not slide.
victim->flags2 |= MF2_BLASTED;
}
else
{ {
victim->flags2 |= MF2_SLIDE | MF2_BLASTED; victim->flags2 |= MF2_SLIDE | MF2_BLASTED;
} }
} }
} }
}

View file

@ -442,7 +442,6 @@ IMPLEMENT_ACTOR (AMinotaurFX3, Raven, -1, 0)
PROP_RadiusFixed (8) PROP_RadiusFixed (8)
PROP_HeightFixed (16) PROP_HeightFixed (16)
PROP_SpeedFixed (0) PROP_SpeedFixed (0)
PROP_Flags3 (0)
PROP_SpawnState (S_MNTRFX3) PROP_SpawnState (S_MNTRFX3)

View file

@ -1153,6 +1153,10 @@ CCMD (printinv)
{ {
AInventory *item; AInventory *item;
if (players[consoleplayer].mo == NULL)
{
return;
}
for (item = players[consoleplayer].mo->Inventory; item != NULL; item = item->Inventory) for (item = players[consoleplayer].mo->Inventory; item != NULL; item = item->Inventory)
{ {
Printf ("%s #%lu (%d/%d)\n", item->GetClass()->Name+1, item->InventoryID, item->Amount, item->MaxAmount); Printf ("%s #%lu (%d/%d)\n", item->GetClass()->Name+1, item->InventoryID, item->Amount, item->MaxAmount);

View file

@ -1158,6 +1158,9 @@ FUNC(LS_Thing_Hate)
} }
} }
while (hater != NULL) while (hater != NULL)
{
// Can't hate if can't attack.
if (hater->SeeState != NULL)
{ {
// If hating a group of things, record the TID and NULL // If hating a group of things, record the TID and NULL
// the target (if its TID doesn't match). A_Look will // the target (if its TID doesn't match). A_Look will
@ -1251,6 +1254,7 @@ FUNC(LS_Thing_Hate)
hater->SetState (hater->SeeState); hater->SetState (hater->SeeState);
} }
} }
}
if (arg0 != 0) if (arg0 != 0)
{ {
while ((hater = haterIt.Next ())) while ((hater = haterIt.Next ()))

View file

@ -1,4 +1,5 @@
#include <SDL.h> #include <SDL.h>
#include <ctype.h>
#include "doomtype.h" #include "doomtype.h"
#include "c_dispatch.h" #include "c_dispatch.h"
#include "doomdef.h" #include "doomdef.h"
@ -396,7 +397,7 @@ void MessagePump (const SDL_Event &sev)
{ {
D_PostEvent (&event); D_PostEvent (&event);
} }
if (event.data2 >= 32 && event.subtype != EV_GUI_KeyUp) if (!iscntrl(event.data2) && event.subtype != EV_GUI_KeyUp)
{ {
event.subtype = EV_GUI_Char; event.subtype = EV_GUI_Char;
event.data1 = event.data2; event.data1 = event.data2;