Age | Commit message (Collapse) | Author | Files | Lines |
|
Rewrote the tile animation loading code based on XML tags, replacing
the code that loaded tile animations from tile properties.
Also made a number of code simplifications and optimizations:
* Replaced a number of pointer members with value members.
* Pass around Animation and TileAnimation by value, using std::move to
avoid allocating copies.
* push -> emplace
* push_front -> emplace_front
* push_back -> emplace_back
* Use range-based for loops
* Use std::vector instead of std::list for storing affected tiles
(less fragmentation)
* Avoid string copies and allocations while parsing CSV layer data.
* Replaced xmlNodeGetContent with directly accessing 'content'.
|
|
|
|
* Use default member initializers
* Use range-based loops
* Don't use 'else' after 'return'
* Removed some unused includes
* Construct empty strings with std::string() instead of ""
* Clear strings with .clear() instead of assigning ""
* Check whether strings are empty with .empty() instead of comparing to ""
* Removed redundant initializations
|
|
* Removing unused includes
* Use member initialization
* Use range-based for loops
* Use nullptr
* Removed no longer used aliases
* Use override
* Don't use else after return
* Use '= delete' to remove implicit members
* Use std::string::empty instead of comparing to ""
|
|
These checks are unnecessary as deleting a null pointer has no effect.
|
|
modernize-loop-convert
modernize-deprecated-headers
|
|
modernize-use-auto
modernize-use-nullptr
modernize-use-override
modernize-use-using
|
|
On the fringe layer, actors are drawn 'sorted' together with the tiles. When
the sorting order was separated from the actual Y position of the actor, the
tile drawing loop was not adapted to take this drawOrder into account rather
than the plain Y position.
Also, ActorSprite::draw was applying a half-tile offset to position the sprite
at the bottom while the logical position of the actor is at the center of the
tile. However, it failed to override getDrawOrder to account for this offset,
causing actors to get drawn earlier than they should (and thus being overlapped
by fringe layer tiles when they actually shouldn't).
This fixes drawing glitches with the paths around Hurnscald and reduces the
glitches when walking up/down through grass.
Reviewed-by: Erik Schilling
|
|
|
|
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
|
|
Replaced the switch statements with static lookup arrays.
Reviewed-by: Yohann Ferreira
|
|
Reviewed-by: Ablu
|
|
Conflicts:
src/actorsprite.cpp
|
|
This means that the order point of the sprites relative to the
particles is no longer the lowest point of the image but
instead a point which is approximately between the feet of
the characters.
The intent of the latest commits to treat sprites as perpendicular to the
ground instead of perpendicular to the view line is retained by this
approach.
I tested this with various particle effects and it results in exactly the
expected behavior. Note that this does NOT fix the current problems on TMW
with the snail slime effect, because the TMW content team accidently placed
this one 10px in the air. Sorry, garbage in, garbage out.
getDrawPixelY was re-renamed to getPixelY to be consistent with getPixelX,
while getPixelY was renamed to getDrawOrder, to make its purpose clear.
Further, particles are no longer drawn when behind other objects. This
is implemented by adding a drawnWhenBehind member function to Actor,
which currently returns true for everything except particles and compound-
sprites with more than one sub-sprites (the later case is consistent with
the previous behavior of them).
An exception are text particles which are excempt from this exception and
whose drawing order is also biased by 16 pixels south instead of north
to make them more visible.
Plus some minor changes from Bertram.
Reviewed-by: Bertram.
Resolves: Mana-Mantis #362.
|
|
Now the death animation is set to the minimum of 1.5 seconds
just as in the older versions, but permit longer sequences
as well.
I didn't put a maximum hard cap on it as it may be a burden
for the maintainers whatever the hard cap would be,
and as it isn't vital to set one anyway.
Resolves: Mana-Mantis #364.
Reviewed-by: bjorn, Jaxad0127.
|
|
Particles were being drawn with wrong positions due to their Z coordinate
being taken into account when sorting actors. Z is now only taken into account
when drawing them.
Reviewed-by: Bertram
|
|
This required moving to C++0x, so it does that too, and fixes a few errors with
that.
Reviewed-by: Thorbjørn Lindeijer <thorbjorn@lindeijer.nl>
|
|
Reviewed-by: Jaxad0127.
Resolves issue: #345.
|
|
Also fix position of being names.
Reviewed-by: Bertram
|
|
This, instead, of <being-effects>, which is irrelevant, as
effects aren't only used for beings.
|
|
This is fixng many issues and (hopefully) will make the movement
rendering much smoother.
Merge branch 'master' of gitorious.org:~bertram/mana/mana-movement-code-merge
Conflicts:
src/being.cpp
src/net/manaserv/beinghandler.cpp
Resolves: TMW-Mantis #946.
Reviewed-by: Thorbjorn.
|
|
It's just an annoyance when it's only applied to a few classes. Either
we place everything in this namespace or nothing, and at the moment I
don't see any rationale for placing everything in a Mana namespace.
Acked-by: Jared Adams
|
|
Acked-by: Jared Adams
|
|
Acked-by: Jared Adams
|
|
- Fixed bogus documentation.
- Fixed Vector parameters to const Vector& where releavant.
- Removed a false comment.
- Removed superfluous headers in src/net/tmwa/beinghandler.h.
- Optimize a bit the tmwa::beingHandler::getPixelsPerTickMoveSpeed()
function.
|
|
The code was simplified a bit, too.
|
|
Resolves: Mana-Mantis #265.
Trivial fix.
|
|
|
|
Reviewed-by: Freeyorp
|
|
Most of Net::InventoryHandler is now done through events. The
ActorSpriteManager was also replaced by events. A few odds and
ends were taken care of too.
Reviewed-by: Bertram
|
|
EventManager has been merged into Event, with some new convinience methods
added.
Reviewed-by: Chuck Miller
|
|
Reviewed-by: Yohann Ferreira
|
|
Reviewed-by: Freeyorp
|
|
Adds ActorSpriteListener to manage ActorSprite destruction as
recommended by Jaxad0127. This likewise includes the changes made by
Bertram.
Reviewed-by: Jaxad0127, Bertram.
Resolves: Manasource Mantis #160
|
|
Also it should optimize it a bit since it
only updates used target cursors instead of
all target cursors.
Reviewed-by: Freeyorp
|
|
Conflicts:
data/graphics/CMakeLists.txt
data/graphics/Makefile.am
src/client.cpp
|
|
It no longer crashes, but will write to the log file instead
Also added checks so it does not crash elsewhere when the
target cursors are unloaded
The game is still playable without the target cursor
because the display name of a being changes when it
gets targetted... so no need to be a fatel error.
Reviewed-by: Thorbjørn Lindeijer
|
|
This improves framerate and allows transparent overlay for complex
sprites. Two copies of the buffer are kept, one at full opacity,
one with variable opactiy, to reduce calls to setAlpha.
Reviewed-by: Bertram
|
|
This simplifies handling of target cursors, centralizing their logic into a
single class, instead of two. Also make them more flexible and move the image
files outside of the theme so servers can can control them and give them
better names.
Reviewed-by: Thorbjørn Lindeijer
|
|
This commit adds a sprite hierarchy (Sprite->ImageSprite,AnimatedSprite,CompundSprite;
CompoundSprite,Actor->ActorSprite;ActorSprite->Being,FloorItem) to collect common
functionailty into new base classes which will make other Mantis tickets easier to do.
Also allows monsters to use particle effects.
Reviewed-by: Bertram
|