예제 #1
0
파일: inventory.cpp 프로젝트: astrellon/GPP
	void Inventory::deserialise(LoadingState *state, data::IData *data)
	{
		Handle<data::Table> dataMap(dynamic_cast<data::Table *>(data));
		if (!dataMap)
		{
			stringstream ss;
			ss << "Unable to load inventory from a '" << data->typeName();
			ss << "', must be a Map.";
			am_log("LOADERR", ss);
			return;
		}

		removeAll();

		unsigned short width = mSpacesX;
		unsigned short height = mSpacesY;
		Handle<data::Number> num(dataMap->at<data::Number>("spacesX"));
		if (num)
		{
			width = num->value<unsigned short>();
		}

		num = dataMap->at<data::Number>("spacesY");
		if (num)
		{
			height = num->value<unsigned short>();
		}

		if (width != mSpacesX || height != mSpacesY)
		{
			if (width > 0 && height > 0)
			{
				setSpaces(width, height);
			}
			else
			{
				stringstream ss;
				ss << "An inventory with space " << width << " x " << height;
				ss << " is invalid";
				am_log("LOADERR", ss);
			}
		}

		Handle<data::Table> arr(dataMap->at<data::Table>("spots"));
		if (arr)
		{
			for (auto iter = arr->beginArray(); iter != arr->endArray(); ++iter)
			{
				InventorySpot spot;
				spot.deserialise(state, iter->get());
				if (!addItem(spot.mItem, spot.mX, spot.mY))
				{
					stringstream ss;
					ss << "Error adding item to inventory at " << spot.mX;
					ss << " x " << spot.mY;
					am_log("LOADERR", ss);
				}
			}
		}
	}
예제 #2
0
CKResizing::CKResizing(void)
{
	setSpaces(0,0,0,0,0,0);
	minRect.SetRectEmpty();
	maxRect.SetRectEmpty();
	validRect.SetRect(0,0,KR_WIDTH,KR_HEIGHT);
}
예제 #3
0
파일: inventory.cpp 프로젝트: astrellon/GPP
	Inventory::Inventory(const Inventory &copy) :
		EventInterface(),
		mSpacesX(copy.mSpacesX),
		mSpacesY(copy.mSpacesY)
	{
		setSpaces(copy.mSpacesX, copy.mSpacesY);
		for (auto iter = copy.mSpots.begin(); iter != copy.mSpots.end(); ++iter)
		{
			addItem(new Item(*iter->mItem), iter->mX, iter->mY);
		}
	}
예제 #4
0
int CschedulerDlg::resize(int cx, int cy)
{
	CRect gtop;
	CRect gbot;
	CRect wndrect(0,0,cx,cy);

	setSpaces(5,5,5,5,0,0);
	//gtop=wndrect;
	//gtop.bottom=gtop.top + KR_SCALE(25);
	gtop=grid((CWnd*)&m_sGroupT,KR_LEFT,KR_TOP,0,KR_SCALE(22),wndrect);
	wndrect.top=gtop.bottom;

	gbot=grid((CWnd*)&m_sGroup2,KR_LEFT,KR_BOT,0,0,wndrect);

	setSpaces(5,5,KR_SCALE(7),KR_SCALE(3),2,2);
	grid((CWnd*)&m_nowChk,0,1,0,1,12,1,gtop);
	grid((CWnd*)&m_now,1,2,0,1,12,1,gtop);
	grid((CWnd*)&m_sRemain,3,1,0,1,12,1,gtop);
	grid((CWnd*)& m_hours,4,2,0,1,12,1,gtop);
	grid((CWnd*)& m_sSub,6,1,0,1,12,1,gtop);
	grid((CWnd*)& m_sub,7,2,0,1,12,1,gtop);
	grid((CWnd*)& m_sNote,9,1,0,1,12,1,gtop);
	grid((CWnd*)& m_note,10,2,0,1,12,1,gtop);
	//grid((CWnd*)&,,,,,,,gtop);
	CRect gbtn;
	setSpaces(0,2,0,2,2,2);
	gbtn.SetRect(0,0,KR_SCALE(120),KR_SCALE(15));
	gbtn=grid(0,KR_RIGHT,KR_BOT,gbtn,gbot);
	grid((CWnd*)&m_addBtn,0,1,0,1,3,1,gbtn);
	grid((CWnd*)&m_editBtn,1,1,0,1,3,1,gbtn);
	grid((CWnd*)&m_delBtn,2,1,0,1,3,1,gbtn);
	//
	setSpaces(5,5,12,5,0,0);
	gbot.DeflateRect(0,0,0,gbtn.Height());
	grid((CWnd*)&m_list,0,1,0,1,1,1,gbot);

	return 0;
}
예제 #5
0
파일: inventory.cpp 프로젝트: astrellon/GPP
	Inventory::Inventory(unsigned short width, unsigned short height) :
		EventInterface()
	{
		setSpaces(width, height);
	}