示例#1
0
bool CGondolierSlider::FrameMsg(CFrameMsg *msg) {
	if (_fieldFC ? _v5 : _v8) {
		if (_arrayIndex < 10) {
			++_arrayIndex;
			CSignalObject signalMsg;
			signalMsg.execute(this);

			int yp = 0;
			if (_arrayIndex > 0)
				yp = ARRAY[_arrayIndex] - ARRAY[_arrayIndex - 1];
			
			if (!_string2.empty()) {
				CTranslateObjectMsg transMsg;
				transMsg._delta = Point(0, yp);
				transMsg.execute(_string2);
			}
		}
	} else if (_fieldFC ? _v10 : _v9) {
		if (!_field118 && !_puzzleSolved && _arrayIndex > 0) {
			CSignalObject signalMsg;
			signalMsg.execute(this);
		}
	}

	return true;
}
示例#2
0
bool CGondolierSlider::FrameMsg(CFrameMsg *msg) {
	if (_sliderNum ? _leftSliderHooked : _rightSliderHooked) {
		if (_sliderIndex < 10) {
			++_sliderIndex;
			CSignalObject signalMsg;
			signalMsg.execute(this);

			int yp = 0;
			if (_sliderIndex > 0)
				yp = Y_OFFSETS[_sliderIndex] - Y_OFFSETS[_sliderIndex - 1];

			if (!_armName.empty()) {
				CTranslateObjectMsg transMsg;
				transMsg._delta = Point(0, yp);
				transMsg.execute(_armName);
			}
		}
	} else if (_sliderNum ? _priorRightSliderHooked : _priorLeftSliderHooked) {
		if (!_dragging && !_puzzleSolved && _sliderIndex > 0) {
			--_sliderIndex;
			CSignalObject signalMsg;
			signalMsg.execute(this);
		}
	}

	return true;
}