From 42be37f4ad99fc8580415fed89939e305d56193e Mon Sep 17 00:00:00 2001 From: fusion32 Date: Tue, 20 May 2025 16:41:03 -0300 Subject: implement `main.cc`, `shm.cc`, and `time.cc` + overall tweeks --- src/monster.hh | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 src/monster.hh (limited to 'src/monster.hh') 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 Skill; + int Talks; + vector Talk; // POINTER? Probably a reference from `AddDynamicString`? + int Items; + vector Item; + int Spells; + vector Spell; +}; + +#if 0 +// TODO(fusion): +struct TMonster: TNonplayer { + int Home; + uint32 Master; + uint32 Target; +}; +#endif + +#endif //TIBIA_MONSTER_HH_ -- cgit v1.2.3