diff options
| author | fusion32 <marcopuzziello@gmail.com> | 2025-05-20 16:41:03 -0300 |
|---|---|---|
| committer | fusion32 <marcopuzziello@gmail.com> | 2025-05-20 16:41:03 -0300 |
| commit | 42be37f4ad99fc8580415fed89939e305d56193e (patch) | |
| tree | 41303aace3c214f925a43fec6a857f313196e38d /src/monster.hh | |
| parent | 7fe30185df21617cf44100f89db462cd4501050e (diff) | |
| download | game-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.hh | 88 |
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_ |
