Age | Commit message (Collapse) | Author | Files | Lines |
|
* Don't needlessly use explicit heap allocation for ParticleEmitter
instances.
* Initialize ParticleEmitter members at the definition.
|
|
|
|
|
|
The main feature of the ParticleContainer seemed to be to provide
persistent access to particles, even though they are generally owned by
their parent particle. This allowed particles to be moved along with the
ActorSprite and to be killed explicitly when they were no longer wanted.
The ParticleHandle now takes care of disabling automatic deletion and of
killing the particle along with the handle. It allows the particle
references to be stored in whatever container is suitable, like a vector
for general ActorSprite particle effects, separate vectors for equipment
based particles and finally a map for status effect particles.
Moving the particles along with the ActorSprite does need to happen more
explicitly now, but overall it's a nice cleanup.
|
|
Thanks to https://github.com/cgmb/guardonce and a follow-up replace to
remove duplicated newlines at end of file:
find src -type f -name '*.h' -exec \
sed --in-place -e :a -e '/^\n*$/{$d;N;};/\n$/ba' {} \;
Source: https://unix.stackexchange.com/questions/81685/how-to-remove-multiple-newlines-at-eof
Fixes compile on macOS, which appears to have been due to the EVENT_H
include guard.
|
|
* Removed `Actor::getNumberOfLayers`, since we really only cared about
whether they should be visible when behind other stuff.
* Removed `CompoundSprite::drawnWhenBehind`, since this property was
only relevant for actors.
|
|
* Use default member initializers
* Use range-based for loops
* Avoid needless pointer references for ShopItem::mDuplicates
* Removed type aliases that are only used once or twice
* Removed more unused includes
* Removed some unused functions
* Removed superfluous .c_str()
* Rely on default copy and assignment operators for Vector class
* Use std::unique_ptr in some places
* Removed duplicated mPlayerMoney updating in SellDialog
* Removed duplicated Game::handleInput call
* Removed unused SDLInput::mMouseInWindow
* Removed remnant of manual widget positioning in HelpWindow
* Removed superfluous initialization of static pointers
|
|
* Use final for all message handlers, Client, LocalPlayer,
Being::getType, Being::setPosition and Being::setMap.
(avoids some warnings about virtual dispatch in constructors)
* Use auto in more places
* Use emplace_back instead of push_back in some places
* Use default member initializers
* Less else after return
* Removed superfluous .c_str()
* Removed type aliases that are only used once
* Removed more unused includes
|
|
modernize-use-auto
modernize-use-nullptr
modernize-use-override
modernize-use-using
|
|
This getDrawOrder hack is no longer necessary. It basically moved to
the ActorSprite, in the other direction.
Reviewed-by: Erik Schilling
|
|
|
|
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.
|
|
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
|
|
I have to admit I contributed a large part of these. Sorry for that.
Less empty space, more attention to the code.
Acked-by: Jared Adams
|
|
Conflicts:
src/being.cpp
src/client.cpp
src/commandhandler.cpp
src/gui/setup_video.cpp
src/gui/socialwindow.cpp
src/gui/viewport.cpp
src/gui/widgets/browserbox.cpp
src/gui/widgets/itemcontainer.cpp
src/imageparticle.cpp
src/localplayer.cpp
src/localplayer.h
src/map.cpp
src/net/tmwa/beinghandler.cpp
src/particle.cpp
src/particle.h
src/player.cpp
src/player.h
|
|
Every particle can now have a death effect. This is an effect which
is created when the particle dies. Which death reasons (timeout,
touching floor, touching sky, reaching target or deleted by external
call) trigger the effect can also be specified. This is useful for
exploding projectiles and many other effects.
Reviewed-by: Bertram
|
|
This resolves: http://bugs.manasource.org/view.php?id=51
Reviewed-by: Bertram
|
|
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
|
|
The Actor class manages the Map reference, position vector, and alpha float.
These are the common parts from it's children.
|
|
on the dimensions in the map file or not.
Reviewed-by: Jared Adams
|
|
particle effects. Reviewed-by: Jared Adams <jaxad0127@gmail.com>
|
|
|
|
|
|
To use simply add something like: missile-particle="graphics/particles/arrow.particle.xml"
to the item's or monster's xml entry
This will only work on equipped weapons, and on specified monster attacks.
This patch also fixes a memory leak with target particles
|
|
Also added the update copyright tool from the Wormux Team.
( And not forgetting credit's due. :P )
|
|
Also remove some extra new lines and fix eAthena's PartyTab define guards.
|
|
are enabled or not in a static member of class Particle instead of an instanced member of Being.
|
|
Floor Items visible even covered.
Next Step would be to add a caching system for multi-layered sprites + copy functions for SDL and OpenGL.
Then, I'll be able to finish this, by making also players visible when covered...
But Kage asked me (each and every hour) to do something else first ;)
|
|
|
|
shoots them.
|
|
Conflicts:
A lot of files.
|
|
This merge involved major changes on both sides, and as such took
several weeks. Lots of things are expected to be broken now, however, we
now have a single code base to improve and extend, which can be compiled
to support either eAthena or tmwserv.
In the coming months, the plan is to work towards a client that supports
both eAthena and tmwserv, without needing to be recompiled.
Conflicts:
Everywhere!
|
|
This patch lets all being derivatives use the palette to set their
name's colors. Text Particle Effects all respect the new settings. Some
widgets were updated to use the colors.
|
|
enable/disable this effect (default is off) and another option to disable the pickup notification in the chat log (default is on).
|
|
Added action event id to port field of login dialog.
|
|
Conflicts:
A lot of files...
|
|
Conflicts:
Almost everywhere.
|
|
Signed-off-by: Ira Rice <irarice@gmail.com>
|
|
This dates back to the old days of TMW, but the usage instructions of
GPLv2 don't mention this being necessary. Since it doesn't add anything,
avoid the branding in these sections.
|
|
This dates back to the old days of TMW, but the usage instructions of
GPLv2 don't mention this being necessary. Since it doesn't add anything,
avoid the branding in these sections.
|
|
newlines.
Signed-off-by: Ira Rice <irarice@gmail.com>
|
|
I wish I had never fallen for this weird style, and I hope removing it
will prevent others from introducing new code like this. :-)
(cherry picked from eAthena branch, commit
68760426532b9ca4c6939d7a7b8faa1586ee82e0)
Conflicts:
src/being.cpp
src/being.h
src/gui/tabbedcontainer.cpp
src/particle.cpp
src/particle.h
|
|
|
|
|
|
|
|
|
|
|
|
whether the being exists before referencing it. Re-enabled proper MP bar
display. Improved handling of a warp to the same map.
(patch by Fate)
(cherry picked from eAthena client, the part about the levelup message
doesn't apply, and we now seem to have a second "effect manager"...)
Conflicts:
ChangeLog
src/being.cpp
src/being.h
src/engine.cpp
src/engine.h
src/gui/ministatus.cpp
src/net/beinghandler.cpp
src/net/playerhandler.cpp
src/net/protocol.h
|
|
I wish I had never fallen for this weird style, and I hope removing it
will prevent others from introducing new code like this. :-)
|
|
I wish I had never fallen for this weird style, and I hope removing it
will prevent others from introducing new code like this. :-)
|