示例#1
0
SQInteger SQString::Next(const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval)
{
	SQInteger idx = (SQInteger)TranslateIndex(refpos);
	while(idx < _len){
		outkey = (SQInteger)idx;
		outval = SQInteger(_val[idx]);
		//return idx for the next iteration
		return ++idx;
	}
	//nothing to iterate anymore
	return -1;
}
示例#2
0
	//--------------------------------------------------------------------------
	void PushEvent(HWindow hWnd, const KeyboardEvent& keyboardEvent){
		//Logger::Log(FB_DEFAULT_LOG_ARG, FormatString(
			//"MakeCode = %d, Flags = %x, VKey = %d, Message = %d, ExtraInformation = %d",
			//keyboardEvent.MakeCode, keyboardEvent.Flags, keyboardEvent.VKey, keyboardEvent.Message, keyboardEvent.ExtraInformation).c_str());
		

		if (keyboardEvent.Flags & 1) // key up
		{

			unsigned int key[] = { keyboardEvent.VKey, 0 };
			if (IsPairedKey(keyboardEvent.VKey))
				key[1] = TranslateIndex(keyboardEvent);

			for (unsigned i = 0; i<2; i++)
			{
				if (key[i] == 0)
					continue;

				mKeyDown[key[i]] = false;
				mKeyUp[key[i]] = true;
			}
		}
		if (!(keyboardEvent.Flags & 1))// key down
		{
			unsigned int key[] = { keyboardEvent.VKey, 0 };
			if (IsPairedKey(keyboardEvent.VKey))
				key[1] = TranslateIndex(keyboardEvent);

			for (unsigned i = 0; i<2; i++)
			{
				if (key[i] == 0)
					continue;
				
				mKeyPressed[key[i]] = true;
				mKeyDown[key[i]] = true;
			}
		}
	}
示例#3
0
SQInteger SQTable::Next(bool getweakrefs,const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval)
{
	SQInteger idx = (SQInteger)TranslateIndex(refpos);
	while (idx < _numofnodes) {
		if(type(_nodes[idx].key) != OT_NULL) {
			//first found
			_HashNode &n = _nodes[idx];
			outkey = n.key;
			outval = getweakrefs?(SQObject)n.val:_realval(n.val);
			//return idx for the next iteration
			return ++idx;
		}
		++idx;
	}
	//nothing to iterate anymore
	return -1;
}