ScummVM API documentation
talkresource.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 ILLUSIONS_TALKRESOURCE_H
23#define ILLUSIONS_TALKRESOURCE_H
24
25#include "illusions/graphics.h"
26#include "illusions/resourcesystem.h"
27
28namespace Illusions {
29
30class IllusionsEngine;
31
33public:
34 TalkResourceLoader(IllusionsEngine *vm) : _vm(vm) {}
35 ~TalkResourceLoader() override {}
36 void load(Resource *resource) override;
37 bool isFlag(int flag) override;
38protected:
39 IllusionsEngine *_vm;
40};
41
42struct TalkEntry {
43 uint32 _talkId;
44 //field_4 dd
45 uint16 *_text;
46 byte *_tblPtr;
47 byte *_voiceName;
48 void load(byte *dataStart, Common::SeekableReadStream &stream);
49};
50
52public:
55 void load(byte *data, uint32 dataSize);
56public:
57 uint _talkEntriesCount;
58 TalkEntry *_talkEntries;
59};
60
62public:
64 void load(Resource *resource) override;
65 void unload() override;
66 void pause() override;
67 void unpause() override;
68public:
69 IllusionsEngine *_vm;
70 uint32 _talkId;
71 uint32 _sceneId;
72 TalkResource *_talkRes;
73 int _pauseCtr;
74 void registerResources();
75 void unregisterResources();
76};
77
79public:
82 TalkInstance *createTalkInstance(Resource *resource);
83 void removeTalkInstance(TalkInstance *talkInstance);
84 TalkInstance *findTalkItem(uint32 talkId);
85 TalkInstance *findTalkItemBySceneId(uint32 sceneId);
86 void pauseBySceneId(uint32 sceneId);
87 void unpauseBySceneId(uint32 sceneId);
88//protected:
89public:
92 IllusionsEngine *_vm;
93 Items _items;
94};
95
96} // End of namespace Illusions
97
98#endif // ILLUSIONS_TALKRESOURCE_H
Definition: stream.h:745
Definition: resourcesystem.h:78
Definition: illusions.h:92
Definition: resourcesystem.h:42
Definition: talkresource.h:61
Definition: talkresource.h:78
Definition: talkresource.h:51
Definition: talkresource.h:32
Definition: list_intern.h:54
Definition: resourcesystem.h:51
Definition: talkresource.h:42