Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Usually this would be guessed correctly by the port, but now it is also
possible to just specify the server type and the port will be derived
from there, unless a default port is given in the branding file.
Closes #56
|
|
To match support for this in M+, since TMW uses this functionality on
two of its NPCs.
|
|
The new cursor types are not used yet for now.
|
|
* 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
|
|
The Mana World currently likes to just update its "TMW.zip" file,
whereas updates were always given unique names in the past. With this
change, the client checks the Adler32 checksum to know when it should
re-download an update file.
This matches the behavior of ManaPlus commit
96150f1aeacf55d311c41ffe12d9e754b1cda001.
|
|
Using sprintf triggers a warning on macOS. The buffer should be large
enough, but a little extra security doesn't hurt.
|
|
The configuration and setup UI were adjusted to the new options.
This also fixes issues in applying new video settings.
Default resolution was changed from 800x600 to 1280x720. VSync is
enabled by default while FPS limit was disabled.
Display aspect ratio for the resolution options.
I had to work around some macOS issues:
* Don't change window size when it appears to be "maximized", since it
just changes the rendering area while leaving the window maximized.
* Unset fullscreen display mode temporarily to allow changing resolutions,
otherwise the rendering area no longer matches the screen and mouse
input is also off.
* Removed SDL_WINDOW_ALLOW_HIGHDPI for now because it causes issues on
macOS, since we're not actually handling the scaling factor.
A Video class and an SDLGraphics subclass were split off from Graphics.
This setup has Less duplication and leaves the OpenGLGraphics and
SDLGraphics better separated.
Fixes #57
Fixes #58
|
|
* 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
|
|
Previous code was assuming there would be no gaps in the emote IDs.
Also cleaned up some confusion where the "emote ID" being passed around
in the code was often offset by 1. Now it is only offset in
communication with tmwAthena and when saving the shortcuts.
|
|
* Removed /announce command
* Changed "Kick player" in player pop-up to kick by name
Other messages, like CMSG_ADMIN_HIDE, CMSG_ADMIN_MUTE and
CMSG_ADMIN_LOCAL_ANNOUNCE were already not used by the client. Also,
none of this was implemented for Manaserv.
|
|
* 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 ""
|
|
* Introduced a LayoutContext that conveniently allows for relayouting
all rows, or just a single one when it is added. BrowserBox::addRow
no longer relayouts all the rows.
* BrowserLink and LinePart are now merged into a new TextRow struct,
so they can be conveniently dropped when the row limit has been
reached.
* Removed "opaque" option, which was enabled by default but disabled
for all BrowserBox instances.
* Removed "always update" option, and instead start delaying relayouting
automatically when there are a lot of rows (> 100 currently).
* Update window now also has text wrapping enabled.
Closes #50
|
|
Doing some cleanups before working towards optimizing this code.
Removed needless additional wrapping code in BrowserBox::addRow, since
the text will be relayouted anyway.
Simplified layouting code a little. For example, there's no need to keep
track of the number of wrapped lines.
Use more optimal data structures, like an std::deque for the text rows
and a plain std::vector for the line parts. Both have less fragmentation
than an std::list.
|
|
This patch is not exhaustive.
|
|
C++17 should be universal enough by now.
This raises the minimum CMake to 3.8, which should also pose no problem since
Ubuntu 18.04 already shipped with CMake 3.10.
C++17's 'if' initialization statement is now used in an efficient
implementation of 'join' for vector<string>, found on StackOverflow.
|
|
These checks are unnecessary as deleting a null pointer has no effect.
|
|
|
|
|
|
Continuation of 2c51c98625b225cecfb9628c30d62d4e30f7e3e1, which had
already removed most of the alpha cache in Image.
|
|
modernize-loop-convert
modernize-deprecated-headers
|
|
SDL_GetKeyboardState array needs to be indexed by scan codes.
|
|
modernize-use-auto
modernize-use-nullptr
modernize-use-override
modernize-use-using
|
|
This option was added in ManaPlus and support for it is required to
connect to The Mana World as it is currently set up, since the server
sends 127.0.0.1 for the character server and map server IP.
Can't play yet, because of an unknown packet 0x226 being received once
connecting to the map server.
|
|
|
|
|
|
|
|
* Fixed compiler errors due to dynamic exception specifications
* Replace std::auto_ptr with std::unique_ptr
* Replace std::mem_fun with std::mem_fn
* Prefix for_each with std:: (apparently not needed before)
* Just use lambda instead of std::bind2nd
* Removed usages of std::unary_function
|
|
Previously the redirect was from www.manasource.org to manasource.org.
|
|
When the minimum and maximum values of the attributes are equal, then
there is nothing for the player to customize and the sliders are not
shown.
At the same time the dialog has been fixed to resize properly to any
number of modifiable attributes.
|
|
Mana-mantis: #506.
|
|
This file was introduced by ManaPlus as a way of configuring the
character creation process. It defines the number of hair styles
and colors, how stat points should be divided and what the starting
equipment of the player is.
The minimum and maximum hair color/style IDs are not supported at
the moment.
This is mostly a backport of ManaPlus commits 10cf52b5 and dcc18eba,
with some style changes.
Mantis-issue: 501
Reviewed-by: Ablu
|
|
|
|
Tested-by: Frost.
|
|
Reviewed-by: Thorbjørn Lindeijer.
|
|
And removed the unused TabbedArea.
Reviewed-by: Erik Schilling
|
|
They allowed using gcn::Image, which in turns allows using gcn::Icon
and gcn::ImageFont, but none of this is actually used anymore.
Reviewed-by: Erik Schilling
|
|
Reviewed-by: Erik Schilling.
|
|
Reviewed-by: Erik Schilling.
|
|
Instead, support for dynamically adjusting layout was added to the
Container class.
Various other places were also adapted to use the new layout support in
Container.
Reviewed-by: Erik Schilling
|
|
The class DebugSwitches is a derived class from Container, 'which
automatically deletes its child widgets, so there is no need for
such fragile cleanup code.'
acked-by: bjorn
|
|
Reviewed-by: Ablu
|
|
- shows manaserv skills at all
- shows the progress bar for manaserv skills again
- shows the level for this skills (server side patch needed)
TODO: URGENT: Fix attributes and skills getting stored in same list.
Reviewed-by: Bertram.
|
|
|
|
The window menu (the row of buttons at the top right in game) was
displayed 3 pixels left of where it should be, which makes the setup
button jump 3 pixels left when logging in.
Reviewed-by: Ablu
|
|
|
|
Mantis-Issue: 423
Reviewed-by: Thorbjørn Lindeijer
|
|
|
|
There wasn't a whole lot gained by sharing a common base class, and it makes
extending the manaserv Message{In,Out} classes with a debugging mode
unnecessarily complicated.
Reviewed-by: Yohann Ferreira
|
|
Also, since GCC 4.7 there is a binary compatibility issue when linking with a
Guichan that was not compiled in C++11 mode. This commit also allows compiling
with GCC 4.7 with C++11 mode turned off.
Reviewed-by: Erik Schilling
|