Age | Commit message (Collapse) | Author | Files | Lines |
|
Sometimes I've used CamelCase and sometimes SNAKE_CASE for these values.
Since "enum class" values are always prefixed with the enum name, which
uses CamelCase, I find it more fitting to use it for the values as well.
Also fixes compilation on Windows where 'ERROR' was conflicting with a
define.
|
|
Made the class and the code in general more readable by removing all
the needless getters and setters.
Also used "enum class" for SoundEvent.
|
|
Made the class and the code in general more readable by removing all
the needless getters and setters.
|
|
To match support for this in M+, since TMW uses this functionality on
two of its NPCs.
|
|
* Don't needlessly store or return raw pointers in BeingInfo
* Less copying, more moving
* Less else after return
* Make AddDEF a template instead of a macro
* Removed some unused includes
* Use range-based for loops
|
|
modernize-use-auto
modernize-use-nullptr
modernize-use-override
modernize-use-using
|
|
It makes no sense to mark a return value as const when it is returned by
value. This only makes sense if the return value is passed by reference, in
order to prevent the receiver from modifying the value.
Also made some other small adjustments. A std::string does not need to be
initialized to "" explicitly and getSafeUtf8String could take its parameter by
reference.
Reviewed-by: Yohann Ferreira
|
|
The tA beingmanager was wrongly using the attack type
in the Being::handleAttack() function,
which is in fact used to set the attack id.
Thus, breaking the attack id given
and all its attack parameters.
I noticed that while updating the client data for TMW.
Reviewed-by: Thorbjørn Lindeijer
|
|
|
|
This happened when an NPC, monster or item couldn't be found and it had
to fall back on Being::Unknown. This instance was bugged since it had a
0 pointer in its sprites list, because when the Being::Unknown was
created, the SpriteDef::Empty was not initialized yet (since both were
global static variables, the initialization order was not well
defined).
Fixed it by removing SpriteDef::Empty and instead creating it in the
BeingInfo constructor. I've also changed the SpriteReference instances
to be inline values rather than instances on the heap, since they're
quite small. That also fixed a leak since those instances were never
getting deleted.
Reviewed-by: Yohann Ferreira
|
|
Reviewed-by: Jaxad0127.
|
|
Resolves: Mana-Mantis #336.
Reviewed-by: Jaxad0127.
|
|
This is provided through the use of the 'effect-id' property
of the <attack> tag.
Note that the 'particle-effect' support has been removed
as it was redundant, but can be kept for backward compatibility.
Now, on both Manaserv and tA, only the attack id 1 is supported,
i.e:
<monster>
...
<attack id="1" effect-id="11" action="attack" />
</monster>
More to come with re-enabling of the attack type support.
I had to fix a crash in the Being::takeDamage() function
when there were no attacker (in Manaserv), and add rotation
support to the effectManager to achieve this.
Reviwed-by: Jaxad0127.
|
|
The old behaviour was to load the weapon-type value and do many
unnecessary checks and transformation on it:
The weapon-type was transformed using hard-coded values into
an integer enum value.
The exact same thing was done on the opposite side in the animation
files before comparing the two.
As both data were string values, I simplified all of it by using
the value taken in items.xml to call the corresponding action.
This now also permit to set up new attack animation in items.xml
and in the playerset.xml without having the need
to modify the client code.
Last but not least, the weapon-type value was used by both the skills
and the actions and avoided the possibility to set up a definite action
for a weapon-type.
Note: The weapon-type parameter will become deprecated for the server
in favor of a 'skill' parameter to reflect more it's actual use.
This patch is the first step to fix Manasource issue: #157.
|
|
Reviewed-by: 4144
|
|
Moves the parsing logic for the size strings into BeingInfo to
share the code.
Reviewed-by: Freeyorp
|
|
Instead of having these three subclasses with minor differences, this
commit merges them back into Being. In the future, we can make Beings
that are talkable to some, attackable by others, etc. This also puts
back support for monster equipment.
Also changes remaining references to Being::Type and the constants to
refer to ActorSprite::Type.
Reviewed-by: Freeyorp
|