Age | Commit message (Collapse) | Author | Files | Lines |
|
- Now OpenGL and the transparency disabling are set at startup and
not read again for displaying graphics, preventing graphic errors
before startup.
- We also agreed long time ago that SDL specific functions
should have a SDL prefix. The header has been rearranged a bit
to do so.
- Also fixed a possible discrepancy in the hasAlphaChannel() function.
Reviewed-by: CodyMartin.
Resolves: Mana-Mantis: #260.
|
|
This disables the Image::setAlpha() function, which
uses 60% of the client's CPU cycles.
When enabled, visual quality is slightly decreased,
especially with the particle system.
Toggling this setting On from an Off state requires
a client restart or the graphics look quite funny.
Bertram's addition:
- Renamed 'Low CPU' to 'Disable transparency (Low CPU)' in the gui
for better understanding.
- Removed the sprite display with 30% opacity when disabling
transparency since it made monsters and drops be drawn above all layers
at full opacity.
- Made the OpenGL mode disable the 'low CPU mode'.
- Fixed the GUI logic as much as possible. Please note that the GUI opacity
slider stays enabled when transparency is disabled even if told to be disabled
in that case.
Reviewed-by: CodyMartin, 4144, MadCamel.
|
|
This change allows extending tilesets without causing issues.
Reviewed-by: Freeyorp
|
|
Reviewed-by: Thorbjørn Lindeijer
|
|
These are warps.
Reviewed-by: Bertram
|
|
is functional!!
Introduced LocalPlayer::getNextWalkPosition(unsigned char dir)
which takes care about the player next position while moving using keyboard.
I removed the pixel scaler thing because it couldn't handle all the noticed cases
and was rather heavy.
There is still a bug in the movement system (nothing's perfect) but it's very rare
and this is here in eAthena, too.
So, I'll give a try at taking care of it once I'll have polished all of this a bit.
Please try and give feedback!!
|
|
It permits two things:
1. It simplifies and demystifies Being::SetDestination() code.
2. It will permit to show the *real* calulated path when using
the drawDebugPath feature for ManaServ.
|
|
Fix Random crushes and valgrind memory errors.
Reviewed-by: thorbjorn
|
|
|
|
particle effects. Reviewed-by: Jared Adams <jaxad0127@gmail.com>
|
|
Reviewed-by: Jared Adams
|
|
Much code was moved from main() to the new Client::exec(). This new
event loop now integrates with the Game class, so that the tick counter
and framerate limiter apply universally.
The Client class is also responsible for some things that used to be
global variables.
Mantis-issue: ...
|
|
|
|
|
|
But I added some logs when speed and other actions where refused due to game/map
uninitialized. This could help.
|
|
|
|
Also added the update copyright tool from the Wormux Team.
( And not forgetting credit's due. :P )
|
|
|
|
|
|
Looks for "graphics/minimap/MAPID.png"
|
|
Also remove some extra new lines and fix eAthena's PartyTab define guards.
|
|
|
|
|
|
This mode hide big map objects and show collisions.
|
|
to avoid graphic errors.
|
|
just that they are drawn before the tiles instead of afterwards. Renamed overlays to foregrounds (but kept backward compatibility intact)
|
|
|
|
second in TMWserv.
While I was on it, I tweaked the default speed value to its final 6 tiles per second value,
which seems to be nice to me.
Another notice, the server does already send speed value to the player.
The keyboard movement protocol is one step ahead Release Candidate, enjoy ;)
|
|
This "optional action" specifies whether the server expects to get an
email address during registration. It is used now instead of having the
general handlers of eAthena and tmwserv set a pointer to an email
string on the GUI dialogs (to keep things understandable, the dependency
should preferably go one way).
|
|
more logical...
Now, the setAlpha() function is called with less changing numbers
which can help increasing FPS a bit...
|
|
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 ;)
|
|
Move stuff only needed for Players into Player (like slots and sprite
limits). Move name handling into Being (no need for three copies of
this code). Clean up terminology (including Map terminology). Remove
hair-related variables.
|
|
|
|
|
|
resolution isn't the default.
You'll have to add this in map properties, for instance if you're want to keep ratio on overlay 0:
<map version="1.0" orientation="orthogonal" width="128" height="128" tilewidth="32" tileheight="32">
<properties>
...
<property name="overlay0keepratio" value="true"/>
...
</properties>
</map>
|
|
to map.
|
|
Makes sure the player walks around other players and beings when
reasonably possible. This was meant to be based on the blockmask stuff,
but I half removed that a few months ago.
|
|
Skipping corners is only allowed around other beings (you can even walk
through them), but not for collision tiles. The server doesn't allow
this, so allowing it client-side leads to synchronization problems.
Mantis-issue: 730
|
|
|
|
Instead of shutting down, the client will now draw a gray background.
This allows the player to still contact a GM in order to be helped out
of the situation.
It also helps me warp out of the non-existing map I accidentally warped
myself onto. ;)
|
|
|
|
need to poll the CPU for them, when they already can compensate for
missed clock ticks.
Signed-off-by: Tametomo <irarice@gmail.com>
Signed-off-by: Bjørn Lindeijer <bjorn@lindeijer.nl>
|
|
No need to complicate the item containers and inventory classes with a
silly offset used by the eAthena server.
Also fixed the logToStandardOut option by reading it from the config
after the configuration has been initialized.
|
|
|
|
Started with not being able to click NPCs properly, and I ended up
correcting the draw positions of overhead text, targets and sprite
ordering.
It's now a bit more straight-forward. The position of a being is simply
in the middle of the sprite at the bottom. When drawing the sprite, an
offset remains because all the sprites are compensating for getting
drawn half a tile to the left and one tile up.
|
|
Conflicts:
A lot of files.
|
|
Conflicts:
Many 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!
|
|
the open source project Wormux. To improve SDL performance, the number
of layers that are pushed out to the hardware or software buffers should
be reduced, which is where this function comes into play, as it combines
two surfaces together so that the number of blit operations is reduced.
This function is currently not used, but will be used once a good way to
link each of the target systems is determined so that it only initiates
when SDL is enabled, as well as making sure that each hook that uses
this function is benefiting from it sufficiently. At the moment, it's
suspected that the particle engine will likely be the most likely to
benefit from this function, followed by tile drawing, then sprite drawing.
Signed-off-by: Ira Rice <irarice@gmail.com>
|
|
|