ScummVM API documentation
cursorxtra.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  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef DIRECTOR_LINGO_XTRAS_CAST_CURSORXTRA_H
23 #define DIRECTOR_LINGO_XTRAS_CAST_CURSORXTRA_H
24 
25 #include "common/array.h"
26 #include "common/rect.h"
27 
28 #include "director/castmember/castmember.h"
29 
30 namespace Director {
31 
32 class XtraCastMember;
33 
34 namespace CursorXtra {
35 
36 struct Info {
37  Common::Point hotspot;
38  uint32 sizePx = 0;
39  uint32 intervalMs = 0;
40  uint32 member = 0; // cursor bitmap cast member
41  uint32 mask = 0; // mask bitmap cast member
42  uint32 frameCount = 0;
43 };
44 
45 CastMember *createCastMember(Cast *cast, uint16 castId, XtraCastMember *xtra);
46 bool parseXtraData(const Common::Array<byte> &data, Info &info);
47 
48 } // End of namespace CursorXtra
49 
50 // "Cursor" Asset Xtra cast member (D6+): a custom (possibly animated)
51 // cursor built from bitmap cast members.
53 public:
54  CursorXtraCastMember(Cast *cast, uint16 castId, XtraCastMember &source);
55  CursorXtraCastMember(Cast *cast, uint16 castId, CursorXtraCastMember &source);
56 
57  CastMember *duplicate(Cast *cast, uint16 castId) override { return (CastMember *)(new CursorXtraCastMember(cast, castId, *this)); }
58 
59  bool getCursorInfo(CastMemberID &image, CastMemberID &mask);
60 
61  Common::String formatInfo() override;
62 
63  CursorXtra::Info _info;
64  bool _valid = false;
65 };
66 
67 } // End of namespace Director
68 
69 #endif
Definition: cast.h:88
Definition: str.h:59
Definition: archive.h:36
Definition: cursorxtra.h:52
Definition: xtra.h:29
Definition: rect.h:144
Definition: cursorxtra.h:36
Definition: castmember.h:48
Definition: types.h:424