ScummVM API documentation
inventory_window.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * Additional copyright for this file:
8 * Copyright (C) 1995 Presto Studios, Inc.
9 *
10 * This program is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation, either version 3 of the License, or
13 * (at your option) any later version.
14
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19
20 * You should have received a copy of the GNU General Public License
21 * along with this program. If not, see <http://www.gnu.org/licenses/>.
22 *
23 */
24
25#ifndef BURIED_INVENTORY_WINDOW_H
26#define BURIED_INVENTORY_WINDOW_H
27
28#include "buried/invdata.h"
29#include "buried/sprtdata.h"
30#include "buried/window.h"
31
32#include "common/array.h"
33
34namespace Graphics {
35class Font;
36}
37
38namespace Buried {
39
40class AVIFrames;
41class InventoryInfoWindow;
42class BurnedLetterViewWindow;
43
44class InventoryWindow : public Window {
45public:
48
49 bool rebuildPreBuffer();
50
51 bool addItem(int itemID);
52 bool removeItem(int itemID);
53
54 bool startDraggingNewItem(int itemID, const Common::Point &pointStart);
55 bool isItemInInventory(int itemID);
56 InventoryElement getItemStaticData(int itemID);
57 int getItemCount() { return _itemArray.size(); }
58 int getItemID(int itemIndex) { return _itemArray[itemIndex]; }
59 void setItemArray(const Common::Array<int> &array);
60 Common::Array<int> &getItemArray() { return _itemArray; }
61
62 bool destroyInfoWindow();
63 InventoryInfoWindow *getInfoWindow() { return _infoWindow; }
64
65 bool displayBurnedLetterWindow();
66 bool destroyBurnedLetterWindow();
67 BurnedLetterViewWindow *getBurnedLetterWindow() { return _letterViewWindow; }
68
69 void onPaint();
70 void onLButtonDown(const Common::Point &point, uint flags);
71 void onLButtonUp(const Common::Point &point, uint flags);
72 void onMouseMove(const Common::Point &point, uint flags);
73 bool onSetCursor(uint message);
74 void onTimer(uint timer);
75
76private:
77 void setCurItem(uint16 itemId);
78 uint16 getCurItem() const;
79
80 Graphics::Font *_textFont;
81 int _fontHeight;
82 Graphics::Surface *_background;
83 Common::Array<int> _itemArray;
84
85 bool _magSelected;
86 bool _upSelected;
87 bool _downSelected;
88 int _textSelected;
89
90 bool _draggingObject;
91 bool _itemComesFromInventory;
92 int _draggingItemID;
93 Sprite _draggingItemSpriteData;
94 int _draggingIconIndex;
95 bool _draggingItemInInventory;
96
97 Common::Point _curMousePos;
98 int _curCursor;
99
100 InventoryInfoWindow *_infoWindow;
101 BurnedLetterViewWindow *_letterViewWindow;
102
103 AVIFrames *_dragFrames;
104
105 uint _scrollTimer;
106
107 // TODO: Item data
108};
109
110} // End of namespace Buried
111
112#endif
Definition: avi_frames.h:42
Definition: buried.h:96
Definition: inventory_info.h:62
Definition: inventory_info.h:40
Definition: inventory_window.h:44
Definition: window.h:38
size_type size() const
Definition: array.h:316
Definition: font.h:83
Definition: formatinfo.h:28
Definition: invdata.h:81
Definition: sprtdata.h:36
Definition: rect.h:144
Definition: surface.h:67