Example #1
0
str
BOXtoString(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
	str name;
	Box box;

	(void) cntxt;
	(void) mb;
	(void) stk;		/*fool compiler */
	OpenBox("toString");
	return MAL_SUCCEED;
}
Example #2
0
str
BOXreleaseAll(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
	str name;
	Box box;

	(void) cntxt;
	(void) mb;		/*fool compiler */
	OpenBox("releaseAll");
	releaseAllBox(box);
	return MAL_SUCCEED;
}
Example #3
0
str
BOXdestroy(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
	Box box;
	str name;

	(void) cntxt;
	(void) mb;
	(void) stk;		/*fool compiler */
	OpenBox("destroy");
	destroyBox(name);
	return MAL_SUCCEED;
}
Example #4
0
str
BOXrelease(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
	str name;
	Box box;

	(void) cntxt;
	(void) mb;		/*fool compiler */
	OpenBox("release");
	name = *(str *) getArgReference(stk, pci, 2);
	releaseBox(box, name);
	return MAL_SUCCEED;
}
Example #5
0
void
FieldView::ClickBox(const IntPoint &pt)
{
	if (pt.x >= fField->Width() || pt.y >= fField->Height())
		return;

	if (fField->TileDigit(pt) == 0)
	{
		FloodReveal(pt);
		Window()->UpdateIfNeeded();
	}
	else
		OpenBox(pt);
}
Example #6
0
str
BOXdiscard(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
	str name;
	Box box;

	(void) cntxt;
	(void) mb;		/*fool compiler */
	OpenBox("discard");
	name = *(str *) getArgReference(stk, pci, 2);
	if (discardBox(box, name))
		throw(MAL, "box.discard", OPERATION_FAILED);
	return MAL_SUCCEED;
}
Example #7
0
str
BOXdeposit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
	str name;
	ValPtr v;
	Box box;

	(void) cntxt;
	(void) mb;
	OpenBox("deposit");
	name = *(str *) getArgReference(stk, pci, 2);
	v = getArgReference(stk,pci,3); 
	if (depositBox(box, name, getArgType(mb,pci,2), v))
		throw(MAL, "box.deposit", OPERATION_FAILED);
	return MAL_SUCCEED;
}
Example #8
0
str
BOXiterator(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
	str name;
	Box box;
	oid *cursor;
	ValPtr v;

	(void) cntxt;
	(void) mb;		/*fool compiler */
	OpenBox("iterator");
	cursor = (oid *) getArgReference(stk, pci, 0);
	v = getArgReference(stk,pci,2); 
	(void) nextBoxElement(box, cursor, v);
	return MAL_SUCCEED;
}
Example #9
0
str
BOXtake(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
	str name;
	Box box;
	ValPtr v;

	(void) cntxt;
	OpenBox("take");
	name = *(str *) getArgReference(stk, pci, 2);
	v = getArgReference(stk,pci,0); 
	if (takeBox(box, name, v, (int) getArgType(mb, pci, 0)))
		throw(MAL, "box.take", OPERATION_FAILED);
	(void) mb;
	return MAL_SUCCEED;
}
Example #10
0
IE::rect
Door::Frame() const
{
	return Opened() ? OpenBox() : ClosedBox();
}
Example #11
0
void
FieldView::FloodReveal(IntPoint pt)
{
	OpenBox(pt);

	IntPoint temppt;
	if (pt.y > 0)
	{
		if (pt.x > 0)
		{
			temppt = pt;
			temppt.x--;
			temppt.y--;
			if (fField->GetState(temppt) == BOX_UNMARKED)
			{
				if (fField->TileDigit(temppt) == 0)
					FloodReveal(temppt);
				else
					OpenBox(temppt);
			}
		}

		temppt = pt;
		temppt.y--;
		if (fField->GetState(temppt) == BOX_UNMARKED)
		{
			if (fField->TileDigit(temppt) == 0)
				FloodReveal(temppt);
			else
				OpenBox(temppt);
		}

		if (pt.x < (fField->Width() - 1))
		{
			temppt = pt;
			temppt.x++;
			temppt.y--;
			if (fField->GetState(temppt) == BOX_UNMARKED)
			{
				if (fField->TileDigit(temppt) == 0)
					FloodReveal(temppt);
				else
					OpenBox(temppt);
			}
		}
	}

	if (pt.x > 0)
	{
		temppt = pt;
		temppt.x--;
		if (fField->GetState(temppt) == BOX_UNMARKED)
		{
			if (fField->TileDigit(temppt) == 0)
				FloodReveal(temppt);
			else
				OpenBox(temppt);
		}
	}

	if (pt.x < (fField->Width() - 1))
	{
		temppt = pt;
		temppt.x++;
		if (fField->GetState(temppt) == BOX_UNMARKED)
		{
			if (fField->TileDigit(temppt) == 0)
				FloodReveal(temppt);
			else
				OpenBox(temppt);
		}
	}

	if (pt.y < (fField->Height() - 1))
	{
		if (pt.x > 0)
		{
			temppt = pt;
			temppt.x--;
			temppt.y++;
			if (fField->GetState(temppt) == BOX_UNMARKED)
			{
				if (fField->TileDigit(temppt) == 0)
					FloodReveal(temppt);
				else
					OpenBox(temppt);
			}
		}

		temppt = pt;
		temppt.y++;
		if (fField->GetState(temppt) == BOX_UNMARKED)
		{
			if (fField->TileDigit(temppt) == 0)
				FloodReveal(temppt);
			else
				OpenBox(temppt);
		}

		if (pt.x < (fField->Width() - 1))
		{
			temppt = pt;
			temppt.x++;
			temppt.y++;
			if (fField->GetState(temppt) == BOX_UNMARKED)
			{
				if (fField->TileDigit(temppt) == 0)
					FloodReveal(temppt);
				else
					OpenBox(temppt);
			}
		}
	}
}