diff options
| author | fusion32 <marcopuzziello@gmail.com> | 2025-06-01 13:05:16 -0300 |
|---|---|---|
| committer | fusion32 <marcopuzziello@gmail.com> | 2025-06-01 13:05:16 -0300 |
| commit | 9c74d168961619d754ca9f51aa86686185d3f92e (patch) | |
| tree | 8aa7858e27762feddef83e60e999d57dd173a7dd /src/magic.hh | |
| parent | 8b118611b69401fbf5a25dcee13834a47d27270e (diff) | |
| download | game-9c74d168961619d754ca9f51aa86686185d3f92e.tar.gz game-9c74d168961619d754ca9f51aa86686185d3f92e.zip | |
impl TImpact structs
Diffstat (limited to 'src/magic.hh')
| -rw-r--r-- | src/magic.hh | 81 |
1 files changed, 43 insertions, 38 deletions
diff --git a/src/magic.hh b/src/magic.hh index 91b7c0a..0525ad2 100644 --- a/src/magic.hh +++ b/src/magic.hh @@ -7,7 +7,7 @@ struct TImpact{ // VIRTUAL FUNCTIONS // ========================================================================= - virtual void handleField(int a, int b, int c); // VTABLE[0] + virtual void handleField(int x, int y, int z); // VTABLE[0] virtual void handleCreature(TCreature *Victim); // VTABLE[1] virtual bool isAggressive(void); // VTABLE[2] @@ -16,72 +16,77 @@ struct TImpact{ //void *VTABLE; // IMPLICIT }; -#if 0 -struct TSummonImpact { - TImpact super_TImpact; // INHERITANCE? +struct TDamageImpact: TImpact { + TDamageImpact(TCreature *Actor, int DamageType, int Power, bool AllowDefense); + void handleCreature(TCreature *Victim) override; + TCreature *Actor; - int Race; - int Maximum; + int DamageType; + int Power; + bool AllowDefense; }; -struct TSpeedImpact { - TImpact super_TImpact; // INHERITANCE? +struct TFieldImpact: TImpact { + TFieldImpact(TCreature *Actor, int FieldType); + void handleField(int x, int y, int z) override; + TCreature *Actor; - int Percent; - int Duration; + int FieldType; }; -struct THealingImpact { - TImpact super_TImpact; // INHERITANCE? +struct THealingImpact: TImpact { + THealingImpact(TCreature *Actor, int Power); + void handleCreature(TCreature *Victim) override; + bool isAggressive(void) override; + TCreature *Actor; int Power; }; -struct TOutfitImpact { - TImpact super_TImpact; // INHERITANCE? +struct TSpeedImpact: TImpact { + TSpeedImpact(TCreature *Actor, int Percent, int Duration); + void handleCreature(TCreature *Victim) override; + TCreature *Actor; - TOutfit Outfit; + int Percent; int Duration; }; -struct TFieldImpact { - TImpact super_TImpact; // INHERITANCE? - TCreature *Actor; - int FieldType; -}; +struct TDrunkenImpact: TImpact { + TDrunkenImpact(TCreature *Actor, int Power, int Duration); + void handleCreature(TCreature *Victim) override; -struct TDrunkenImpact { - TImpact super_TImpact; // INHERITANCE? TCreature *Actor; int Power; int Duration; }; -struct TStrengthImpact { - TImpact super_TImpact; // INHERITANCE? +struct TStrengthImpact: TImpact { + TStrengthImpact(TCreature *Actor, int Skills, int Percent, int Duration); + void handleCreature(TCreature *Victim) override; + TCreature *Actor; int Skills; int Percent; int Duration; }; -#endif - -struct TDamageImpact: TImpact{ - // REGULAR FUNCTIONS - // ========================================================================= - TDamageImpact(TCreature *Actor, int DamageType, int Power, bool AllowDefense); - // VIRTUAL FUNCTIONS - // ========================================================================= +struct TOutfitImpact: TImpact { + TOutfitImpact(TCreature *Actor, TOutfit Outfit, int Duration); void handleCreature(TCreature *Victim) override; - // DATA - // ========================================================================= - // TImpact super_TImpact; // IMPLICIT TCreature *Actor; - int DamageType; - int Power; - bool AllowDefense; + TOutfit Outfit; + int Duration; +}; + +struct TSummonImpact: TImpact { + TSummonImpact(TCreature *Actor, int Race, int Maximum); + void handleField(int x, int y, int z) override; + + TCreature *Actor; + int Race; + int Maximum; }; struct TCircle { |
