From af78726e4f3bc13910a615fad13477de6ce4a9f7 Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Tue, 27 Sep 2011 21:24:12 -0400 Subject: PEGASUS: Add the ItemDragger classes --- engines/pegasus/items/itemdragger.h | 94 +++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100755 engines/pegasus/items/itemdragger.h (limited to 'engines/pegasus/items/itemdragger.h') diff --git a/engines/pegasus/items/itemdragger.h b/engines/pegasus/items/itemdragger.h new file mode 100755 index 0000000000..3775fb2ceb --- /dev/null +++ b/engines/pegasus/items/itemdragger.h @@ -0,0 +1,94 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * Additional copyright for this file: + * Copyright (C) 1995-1997 Presto Studios, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef PEGASUS_ITEMS_ITEMDRAGGER_H +#define PEGASUS_ITEMS_ITEMDRAGGER_H + +#include "pegasus/input.h" + +namespace Pegasus { + +// TODO: Merge SpriteDragger and ItemDragger + +class Hotspot; +class Sprite; + +class SpriteDragger : public Tracker { +public: + SpriteDragger(); + virtual ~SpriteDragger() {} + + void setDragSprite(Sprite *); + Sprite *getDragSprite() { return _draggingSprite; } + + void setDragConstraints(const Common::Rect &, const Common::Rect &); + void getDragConstraints(Common::Rect &, Common::Rect &) const; + + void startTracking(const Input &); + void continueTracking(const Input&); + + Hotspot *getLastHotspot() const { return _lastHotspot; } + +protected: + virtual void enterHotspot(Hotspot *) {} + virtual void exitHotspot(Hotspot *) {} + + Sprite *_draggingSprite; + Common::Point _startPoint, _lastPoint, _dragOffset; + Common::Point _startRawPoint, _lastRawPoint; + Common::Rect _rawLimitRect; + Common::Rect _limitRect; + Common::Rect _slopRect; + Hotspot *_lastHotspot; + + // This is a replica of QuickDraw's PinPointInRect function + void pinPointInRect(const Common::Rect &, Common::Point &); +}; + +class PegasusEngine; + +class ItemDragger : public SpriteDragger { +public: + ItemDragger(PegasusEngine *); + virtual ~ItemDragger() {} + + void startTracking(const Input &); + void stopTracking(const Input &); + bool stopTrackingInput(const Input &); + +protected: + virtual void enterHotspot(Hotspot *); + virtual void exitHotspot(Hotspot *); + + PegasusEngine *_owner; + DropHighlight _inventoryHighlight; + Hotspot _inventoryDropSpot; + DropHighlight _biochipHighlight; + Hotspot _biochipDropSpot; +}; + +} // End of namespace Pegasus + +#endif -- cgit v1.2.3 From 54dd0c266eb8f5fe0d067f2298e6964e1ab9032f Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Wed, 28 Sep 2011 14:25:55 -0400 Subject: PEGASUS: Import a bunch more code in preparation for actual gameplay --- engines/pegasus/items/itemdragger.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'engines/pegasus/items/itemdragger.h') diff --git a/engines/pegasus/items/itemdragger.h b/engines/pegasus/items/itemdragger.h index 3775fb2ceb..69612316f3 100755 --- a/engines/pegasus/items/itemdragger.h +++ b/engines/pegasus/items/itemdragger.h @@ -26,6 +26,7 @@ #ifndef PEGASUS_ITEMS_ITEMDRAGGER_H #define PEGASUS_ITEMS_ITEMDRAGGER_H +#include "pegasus/elements.h" #include "pegasus/input.h" namespace Pegasus { @@ -73,7 +74,8 @@ class ItemDragger : public SpriteDragger { public: ItemDragger(PegasusEngine *); virtual ~ItemDragger() {} - + + void setHighlightBounds(); void startTracking(const Input &); void stopTracking(const Input &); bool stopTrackingInput(const Input &); -- cgit v1.2.3 From 983bd16bb78b1a6aa8872f2086dbcbca6954f2fb Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Tue, 3 Apr 2012 15:23:08 -0400 Subject: PEGASUS: Fix file permissions --- engines/pegasus/items/itemdragger.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 engines/pegasus/items/itemdragger.h (limited to 'engines/pegasus/items/itemdragger.h') diff --git a/engines/pegasus/items/itemdragger.h b/engines/pegasus/items/itemdragger.h old mode 100755 new mode 100644 -- cgit v1.2.3 From a6c6c74350bb673c178d9756a1625ca128d24f21 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Wed, 26 Sep 2012 04:10:32 +0200 Subject: PEGASUS: Remove trailing whitespaces. Powered by: git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//' --- engines/pegasus/items/itemdragger.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'engines/pegasus/items/itemdragger.h') diff --git a/engines/pegasus/items/itemdragger.h b/engines/pegasus/items/itemdragger.h index 69612316f3..fce953d695 100644 --- a/engines/pegasus/items/itemdragger.h +++ b/engines/pegasus/items/itemdragger.h @@ -46,16 +46,16 @@ public: void setDragConstraints(const Common::Rect &, const Common::Rect &); void getDragConstraints(Common::Rect &, Common::Rect &) const; - + void startTracking(const Input &); void continueTracking(const Input&); - + Hotspot *getLastHotspot() const { return _lastHotspot; } protected: virtual void enterHotspot(Hotspot *) {} virtual void exitHotspot(Hotspot *) {} - + Sprite *_draggingSprite; Common::Point _startPoint, _lastPoint, _dragOffset; Common::Point _startRawPoint, _lastRawPoint; @@ -83,7 +83,7 @@ public: protected: virtual void enterHotspot(Hotspot *); virtual void exitHotspot(Hotspot *); - + PegasusEngine *_owner; DropHighlight _inventoryHighlight; Hotspot _inventoryDropSpot; -- cgit v1.2.3