making buying in flagpole work when flag is in non-nil object layer

liquid_container
Maikel de Vries 2016-04-24 13:21:05 +02:00
parent 5471fe6cff
commit 3c267bb7dc
3 changed files with 8 additions and 9 deletions

View File

@ -34,7 +34,7 @@ static const BASEMATERIAL_ProductionRate = 2160;
global func GetBaseMaterial(int plr, id def, int index, int category)
{
var base = FindObject(Find_ID(BaseMaterial), Find_Owner(plr));
var base = FindObject(Find_ID(BaseMaterial), Find_AnyLayer(), Find_Owner(plr));
if (!base)
base = CreateObjectAbove(BaseMaterial, AbsX(10), AbsY(10), plr);
if (base)
@ -43,7 +43,7 @@ global func GetBaseMaterial(int plr, id def, int index, int category)
global func SetBaseMaterial(int plr, id def, int cnt)
{
var base = FindObject(Find_ID(BaseMaterial), Find_Owner(plr));
var base = FindObject(Find_ID(BaseMaterial), Find_AnyLayer(), Find_Owner(plr));
if (!base)
base = CreateObjectAbove(BaseMaterial, AbsX(10), AbsY(10), plr);
if (base)
@ -52,7 +52,7 @@ global func SetBaseMaterial(int plr, id def, int cnt)
global func DoBaseMaterial(int plr, id def, int change)
{
var base = FindObject(Find_ID(BaseMaterial), Find_Owner(plr));
var base = FindObject(Find_ID(BaseMaterial), Find_AnyLayer(), Find_Owner(plr));
if (!base)
base = CreateObjectAbove(BaseMaterial, AbsX(10), AbsY(10), plr);
if (base)
@ -61,7 +61,7 @@ global func DoBaseMaterial(int plr, id def, int change)
global func GetBaseProduction(int plr, id def, int index, int category)
{
var base = FindObject(Find_ID(BaseMaterial), Find_Owner(plr));
var base = FindObject(Find_ID(BaseMaterial), Find_AnyLayer(), Find_Owner(plr));
if (!base)
base = CreateObjectAbove(BaseMaterial, AbsX(10), AbsY(10), plr);
if (base)
@ -70,7 +70,7 @@ global func GetBaseProduction(int plr, id def, int index, int category)
global func SetBaseProduction(int plr, id def, int cnt)
{
var base = FindObject(Find_ID(BaseMaterial), Find_Owner(plr));
var base = FindObject(Find_ID(BaseMaterial), Find_AnyLayer(), Find_Owner(plr));
if (!base)
base = CreateObjectAbove(BaseMaterial, AbsX(10), AbsY(10), plr);
if (base)
@ -79,7 +79,7 @@ global func SetBaseProduction(int plr, id def, int cnt)
global func DoBaseProduction(int plr, id def, int change)
{
var base = FindObject(Find_ID(BaseMaterial), Find_Owner(plr));
var base = FindObject(Find_ID(BaseMaterial), Find_AnyLayer(), Find_Owner(plr));
if (!base)
base = CreateObjectAbove(BaseMaterial, AbsX(10), AbsY(10), plr);
if (base)

View File

@ -209,7 +209,7 @@ func GetBuyMenuEntry(int index, id item, int amount, int value)
// ----- buying
public func GetBuyMenuEntries(object clonk)
{
{
// We need to know when exactly we should refresh the menu to prevent unecessary refreshs.
var lowest_greyed_out_price = nil;
@ -257,7 +257,6 @@ public func GetBuyMenuEntries(object clonk)
fx.last_wealth = wealth;
fx.wealth_player = wealth_player;
PushBack(menu_entries, {symbol = nil, extra_data = nil, custom = entry, fx = fx});
return menu_entries;
}

View File

@ -41,7 +41,7 @@ public func NoConstructionFlip() { return true; }
public func IsContainer() { return true; }
// Allow buying only if the rule is active
public func AllowBuyMenuEntries(){ return ObjectCount(Find_ID(Rule_BuyAtFlagpole));}
public func AllowBuyMenuEntries(){ return ObjectCount(Find_ID(Rule_BuyAtFlagpole), Find_AnyLayer());}
public func RejectCollect(id def, object obj)
{