ScummVM API documentation
monster.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 HARVESTER_MONSTER_H
23 #define HARVESTER_MONSTER_H
24 
25 #include "common/str.h"
26 
27 namespace Harvester {
28 
29 class Entity;
30 
31 struct MonsterRecord {
32  int posX = 0;
33  int posY = 0;
34  int posZ = 0;
35  // Native MONSTER numeric fields after z seed the combat-runtime engage distance,
36  // initial HP, and attack damage fields.
37  int engageDistance = 0;
38  int initialHitPoints = 0;
39  int currentHitPoints = 0;
40  int damageAmount = 0;
41  int damageType = 0;
42  int facing = -1;
43  Common::String roomName;
44  Common::String monsterName;
45  Common::String modelPath;
46  Common::String reservedString38;
47  Common::String reservedString3c;
48  Common::String reservedString44;
49  Common::String reservedString48;
50  Common::String attackSound1;
51  Common::String attackSound2;
52  Common::String attackSound3;
53  Common::String hitSound1;
54  Common::String hitSound2;
55  Common::String hitSound3;
56  Common::String footstepSoundLeft;
57  Common::String footstepSoundRight;
58  Common::String deathSound;
59  Common::String onDeathActionTag;
60  int recordIndex = -1;
61  bool active = false;
62  bool visible = false;
63  bool savedVisible = false;
64  bool runtimeSpawned = false;
65  int runtimeState = -1;
66  int screenMinXBound = 0x14;
67  int screenMaxXBound = 0x26b;
68  int attackSoundTriggerFrame = 0;
69  int hitSoundTriggerFrame = 0;
70  int footstepSoundTriggerFrame = 0;
71  int deathSoundTriggerFrame = 0;
72 };
73 
74 class Monster {
75 public:
76  static int resolveFacingFrame(int facing);
77  static void applyAnimation(Entity &entity, const MonsterRecord &monster);
78 };
79 
80 } // End of namespace Harvester
81 
82 #endif // HARVESTER_MONSTER_H
Definition: str.h:59
Definition: art.h:31
Definition: runtime_entity.h:64
Definition: monster.h:74
Definition: monster.h:31