mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-26 05:51:20 +00:00
- Added 'ininventory item, amount' option to SBARINFO to check for a minimum
amount instead of mere presence in the inventory. - Fixed: Door lock messages were overwritten by remote messages. SVN r1346 (trunk)
This commit is contained in:
parent
aa5bdd0884
commit
35edd15386
4 changed files with 16 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
January 1, 2009 (Changes by Graf Zahl)
|
||||
- Added 'ininventory item, amount' option to SBARINFO to check for a minimum
|
||||
amount instead of mere presence in the inventory.
|
||||
- Fixed: Door lock messages were overwritten by remote messages.
|
||||
|
||||
January 1, 2009 (Changes by Graf Zahl)
|
||||
- Fixed: SBARINFO used GetSpecies instead of GetClass to check weapon types.
|
||||
- Added a few missing NULL pointer checks to SBARINFO code.
|
||||
|
|
|
@ -291,7 +291,7 @@ static void ParseLock(FScanner &sc)
|
|||
{
|
||||
lock->RemoteMsg = lock->Message;
|
||||
}
|
||||
if (!lock->Message.IsEmpty() && lock->RemoteMsg.IsNotEmpty())
|
||||
if (lock->Message.IsEmpty() && lock->RemoteMsg.IsNotEmpty())
|
||||
{
|
||||
lock->Message = lock->RemoteMsg;
|
||||
}
|
||||
|
|
|
@ -1356,6 +1356,8 @@ void DSBarInfo::doCommands(SBarInfoBlock &block, int xOffset, int yOffset, int a
|
|||
{
|
||||
AInventory *item1 = CPlayer->mo->FindInventory(PClass::FindClass(cmd.string[0]));
|
||||
AInventory *item2 = CPlayer->mo->FindInventory(PClass::FindClass(cmd.string[1]));
|
||||
if (item1 != NULL && cmd.special2 > 0 && item1->Amount < cmd.special2) item1 = NULL;
|
||||
if (item2 != NULL && cmd.special3 > 0 && item2->Amount < cmd.special3) item2 = NULL;
|
||||
if(cmd.flags & SBARINFOEVENT_AND)
|
||||
{
|
||||
if((item1 != NULL && item2 != NULL) && !(cmd.flags & SBARINFOEVENT_NOT))
|
||||
|
|
|
@ -1292,6 +1292,7 @@ void SBarInfo::ParseSBarInfoBlock(FScanner &sc, SBarInfoBlock &block)
|
|||
this->ParseSBarInfoBlock(sc, cmd.subBlock);
|
||||
break;
|
||||
case SBARINFO_ININVENTORY:
|
||||
cmd.special2 = cmd.special3 = 0;
|
||||
sc.MustGetToken(TK_Identifier);
|
||||
if(sc.Compare("not"))
|
||||
{
|
||||
|
@ -1306,6 +1307,13 @@ void SBarInfo::ParseSBarInfoBlock(FScanner &sc, SBarInfoBlock &block)
|
|||
{
|
||||
sc.ScriptError("'%s' is not a type of inventory item.", sc.String);
|
||||
}
|
||||
if (sc.CheckToken(','))
|
||||
{
|
||||
sc.MustGetNumber();
|
||||
if (i == 0) cmd.special2 = sc.Number;
|
||||
else cmd.special3 = sc.Number;
|
||||
}
|
||||
|
||||
if(sc.CheckToken(TK_OrOr))
|
||||
{
|
||||
cmd.flags |= SBARINFOEVENT_OR;
|
||||
|
|
Loading…
Reference in a new issue