Age | Commit message (Collapse) | Author | Files | Lines |
|
All ResourceManager functions that load resources now return respective
ResourceRef values, which helps to make sure resources are properly
cleaned up.
The Sound class was cleaned up and now also allows SoundEffect resources
to be unloaded.
The Animation class now keeps its ImageSet loaded only as long as
necessary. Previously, SimpleAnimation and ParticleEmitter would keep
the ImageSet loaded indefinitely by never decreasing its reference
count.
Reduced duplicated animation loading code between SimpleAnimation and
ParticleEmitter.
|
|
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.
|
|
Automatic reference counting of images is now used by Item, Icon,
AnimatedSprite, ImageSprite, ParticleEmitter, Minimap, Desktop and
Emote.
Since ResourceManager::get automatically adds a reference, it needs to
be explicitly subtracted when the resource is managed by ResourceRef.
This is taken care of by the new ResourceManager::getImageRef.
Also removed the apprently unused and duplicate "mDrawImage" from Item
(which also didn't get decRef called on it).
Fixes cleanup of emote ImageSet and ImageSprite instances, as well as
particle images.
|
|
I had broken this in 264be2108c51837fa92085f6c839e66aebbcfc9e by no
longer reading out the property.
Made some further simplifications and two more fixes:
* When the original image's size was not 800x600, it wouldn't get scaled
as expected due to the integer division being performed before the
multiplication.
* I had changed the default resolution to 1280x720, while mKeepRatio
expects to scale the original image as if it was displayed on an
800x600 screen. So now it's hardcoded on 800x600 rather than using
the defaultScreenWidth/Height variables.
* Removed the confusing x/y parameters from AmbientLayer::draw, which
were actually set to the graphics width/height.
* Changed SDLGraphics::drawRescaledImagePattern to not repeatedly
set the source origin.
|
|
This patch is not exhaustive.
|
|
A custom "Mask" property on a layer or a "foregroundXmask" property on a
map can now be used in combination with the SMSG_MAP_MASK to dynamically
disable certain map layers from the server.
Feature previously seen on ManaPlus and implemented for Mana client for
compatibility.
Also added a ResourceRef class for automating the Resource reference
counting.
Closes #44
|
|
Image::SDLgetScaledImage was changed so that it tries to find an existing
scaled version of the image first, and generates it when none exists.
When it needs to generate one, this resource is added to the resource
manager, partly to avoid duplicating the work later but mainly to keep
memory management straightforward.
This function also used to leak the scaled SDL_Surface since it wrongly
assumed that Image::load would free it.
To avoid filling up the memory with scaled wallpapers that are waiting
30 seconds until they will be deleted, the Resource::decRef function was
extended with a parameter that allows telling it what to do with orphans.
Calling decRef with Resource::DeleteImmediately will delete the resource
immediately in case the resource is orphaned.
Reviewed-by: Yohann Ferreira
|
|
|
|
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
|
|
|
|
|
|
Also added the update copyright tool from the Wormux Team.
( And not forgetting credit's due. :P )
|
|
Mostly putting & and * in the right place and making some getters const.
|
|
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.
|
|
the function names should no longer be around.
Signed-off-by: Ira Rice <irarice@gmail.com>
|
|
statements, as well as removing the new skill dialog, which we do not,
nor will we use (if we do, it'd be a new one that we'd make).
WARNING!!! This, and all other previous builds have a linker error for
the Gnome libraries version 4.3.2 on my setup. It's assumed that this is
also the case for other users of this library as well. I'm currently
assuming that there's a bug in the compiler itself, and will look into
reporting this, but in the mean time, it doesn't build for these users,
unfortunately. Sorry about this.
|
|
|
|
https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/tmw/trunk
........
r3740 | gmelquio | 2007-11-16 12:06:46 +0100 (vr, 16 nov 2007) | 1 line
Delayed resource deletion by 30 seconds.
........
|
|
https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/tmw/trunk
........
r3642 | gmelquio | 2007-10-19 19:46:46 +0200 (Fri, 19 Oct 2007) | 1 line
Factored code between resource handlers. Implemented failure-friendly sprite loader.
........
r3662 | gmelquio | 2007-10-21 21:01:16 +0200 (Sun, 21 Oct 2007) | 1 line
Added persistent positioning.
........
r3663 | gmelquio | 2007-10-21 21:03:43 +0200 (Sun, 21 Oct 2007) | 1 line
Fixed missing pixels at bottom and right.
........
r3664 | gmelquio | 2007-10-21 21:05:56 +0200 (Sun, 21 Oct 2007) | 1 line
Changed to use default values when restoring missing settings.
........
r3667 | gmelquio | 2007-10-21 22:09:08 +0200 (Sun, 21 Oct 2007) | 1 line
Fixed invisible text in dropboxes and shopboxes.
........
|
|
which returns void now.
|
|
references to resources are reported to be more informative.
|
|
|
|
resources other than images.
|
|
* Fixed two non-virtual destructor warnings showing up with GCC 4.
* Fixed OpenGL inventory text drawing that broke in last commit
* Removed glClear cause screen is redrawn completely anyway
* Fixed updating of buttons in inventory window
* Made items.xml be loaded through resource manager.
|
|
to load alpha blended mouse cursor, which is now drawn instead of using the
system cursor.
|
|
Allegro to load/draw images. Only the login wallpaper is currently loaded
using the resource manager and the resource manager still waits with searching
for available files until they are asked for instead of indexing what is
available.
|