ScummVM API documentation
objects.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 NGI_OBJECTS_H
23 #define NGI_OBJECTS_H
24 
25 #include "common/ptr.h"
26 #include "ngi/utils.h"
27 
28 namespace NGI {
29 
30 class MessageQueue;
31 class SceneTagList;
32 
33 class GameProject : public CObject {
34  public:
35  int _field_4;
36  Common::String _headerFilename;
37  Common::ScopedPtr<SceneTagList> _sceneTagList;
38  int _field_10;
39 
40  public:
41  GameProject();
42  bool load(MfcArchive &file) override;
43 };
44 
45 struct PicAniInfo {
46  uint32 type;
47  int16 objectId;
48  int16 field_6;
49  int32 field_8;
50  int16 sceneId;
51  int16 field_E;
52  int32 ox;
53  int32 oy;
54  int32 priority;
55  int16 staticsId;
56  int16 movementId;
57  int16 dynamicPhaseIndex;
58  int16 flags;
59  int32 field_24;
60  int32 someDynamicPhaseIndex;
61 
62  bool load(MfcArchive &file);
63  void save(MfcArchive &file);
64  void print();
65 
66  PicAniInfo() { memset(this, 0, sizeof(PicAniInfo)); }
67 };
69 
70 union VarValue {
71  float floatValue;
72  int32 intValue;
73  char *stringValue;
74 };
75 
76 class GameVar : public CObject {
77  public:
78  GameVar *_nextVarObj;
79  GameVar *_prevVarObj;
80  GameVar *_parentVarObj;
81  GameVar *_subVars;
82  GameVar *_field_14;
83  Common::String _varName;
84  VarValue _value;
85  int _varType;
86 
87  public:
88  GameVar();
89  ~GameVar() override;
90 
91  bool load(MfcArchive &file) override;
92  void save(MfcArchive &file) override;
93  GameVar *getSubVarByName(const Common::String &name);
94  bool setSubVarAsInt(const Common::String &name, int value);
95  int getSubVarAsInt(const Common::String &name);
96  GameVar *addSubVarAsInt(const Common::String &name, int value);
97  bool addSubVar(GameVar *subvar);
98  int getSubVarsCount();
99  GameVar *getSubVarByIndex(int idx);
100 };
101 
102 } // End of namespace NGI
103 
104 #endif /* NGI_OBJECTS_H */
Definition: str.h:59
Definition: utils.h:39
Definition: objects.h:70
Definition: objects.h:45
Definition: ptr.h:572
Definition: objects.h:33
Definition: objects.h:76
Definition: anihandler.h:25
Definition: utils.h:106