aboutsummaryrefslogtreecommitdiff
path: root/src/monster.hh
diff options
context:
space:
mode:
authorfusion32 <marcopuzziello@gmail.com>2025-05-20 16:41:03 -0300
committerfusion32 <marcopuzziello@gmail.com>2025-05-20 16:41:03 -0300
commit42be37f4ad99fc8580415fed89939e305d56193e (patch)
tree41303aace3c214f925a43fec6a857f313196e38d /src/monster.hh
parent7fe30185df21617cf44100f89db462cd4501050e (diff)
downloadgame-42be37f4ad99fc8580415fed89939e305d56193e.tar.gz
game-42be37f4ad99fc8580415fed89939e305d56193e.zip
implement `main.cc`, `shm.cc`, and `time.cc` + overall tweeks
Diffstat (limited to 'src/monster.hh')
-rw-r--r--src/monster.hh88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/monster.hh b/src/monster.hh
new file mode 100644
index 0000000..7e18f48
--- /dev/null
+++ b/src/monster.hh
@@ -0,0 +1,88 @@
+#ifndef TIBIA_MONSTER_HH_
+#define TIBIA_MONSTER_HH_ 1
+
+#include "main.hh"
+#include "creature.hh"
+#include "containers.hh"
+#include "enums.hh"
+
+struct TSkillData {
+ int Nr;
+ int Actual;
+ int Minimum;
+ int Maximum;
+ int NextLevel;
+ int FactorPercent;
+ int AddLevel;
+};
+
+struct TItemData {
+ ObjectType Type;
+ int Maximum;
+ int Probability;
+};
+
+struct TSpellData {
+ SpellShapeType Shape;
+ int ShapeParam1;
+ int ShapeParam2;
+ int ShapeParam3;
+ int ShapeParam4;
+ SpellImpactType Impact;
+ int ImpactParam1;
+ int ImpactParam2;
+ int ImpactParam3;
+ int ImpactParam4;
+ int Delay;
+};
+
+struct TRaceData {
+ char Name[30];
+ char Article[3];
+ TOutfit Outfit;
+ ObjectType MaleCorpse;
+ ObjectType FemaleCorpse;
+ BloodType Blood;
+ int ExperiencePoints;
+ int FleeThreshold;
+ int Attack;
+ int Defend;
+ int Armor;
+ int Poison;
+ int SummonCost;
+ int LoseTarget;
+ int Strategy[4];
+ bool KickBoxes;
+ bool KickCreatures;
+ bool SeeInvisible;
+ bool Unpushable;
+ bool DistanceFighting;
+ bool NoSummon;
+ bool NoIllusion;
+ bool NoConvince;
+ bool NoBurning;
+ bool NoPoison;
+ bool NoEnergy;
+ bool NoHit;
+ bool NoLifeDrain;
+ bool NoParalyze;
+ int Skills;
+ vector<TSkillData> Skill;
+ int Talks;
+ vector<uint32> Talk; // POINTER? Probably a reference from `AddDynamicString`?
+ int Items;
+ vector<TItemData> Item;
+ int Spells;
+ vector<TSpellData> Spell;
+};
+
+#if 0
+// TODO(fusion):
+struct TMonster: TNonplayer {
+ int Home;
+ uint32 Master;
+ uint32 Target;
+};
+#endif
+
+#endif //TIBIA_MONSTER_HH_