Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
This makes accessing the config values much faster, since it no longer
needs to do a lookup nor string conversion, which means we could remove
some needless copying of the values.
Overall it makes it easier to find out where settings are used and it
puts the defaults along with the declaration.
Options with default values are no longer saved to the config file. This
does not include unrecognized options, which are kept around to provide
some compatibility with older clients.
While most basic options have kept the same name, more complicated
settings like window geometry, shortcuts, outfits, etc. now have their
own XML elements. Older clients will ignore these and erase them when
saving the configuration.
|
|
|
|
Slightly more ergonomic and this eliminates direct libxml2 usage from
many places.
|
|
Might not seem worth it right now, but it will be if we write out more
XML structures.
|
|
Fixed with clang-tidy `readability-static-accessed-through-instance`
check.
|
|
There was a slight stutter in being movement, since each time a being
reached the next position along its path, it would only continue to the
following position with the next logic tick.
Now the logic has been adjusted to keep moving until all the time for
the current frame was used up, or the path was exhausted.
A slight stutter remains for keyboard movement, as well as broken walk
animation playback, since it will only set a new path once the current
one is finished (see e554d9b2be1ec2fcb15065ae70151302adeef602).
Also simplified some logic in Viewport::draw and removed some obsolete
code in LocalPlayer::startWalking.
|
|
The Timer is efficient because it does not depend on incrementing a
counter to keep track of time, nor does it call SDL_GetTicks every time
its state is checked (this happens once per frame instead).
Along with global functions Time::absoluteTimeMs() and
Time::deltaTimeMs(), this replaces previous globals tick_time, cur_time
and get_elapsed_time().
For now, there is still a fixed 100 times per second logic call rate,
but the new Time::deltaTimeMs() function should allow getting rid of
this.
|
|
The new XML::Children class enables using a C++11 range-based for loop
to iterate over the children of an xmlNodePtr.
|
|
Also enable using `cpack -G DragNDrop` to create a DMG to easily drag
Mana into the Applications folder.
The DMG is also available as a CI artifact.
The minimum deployment target has been set to 10.15, as required due to
usage of std::filesystem::create_directories.
|
|
Should be a lot less fragile and might also help to resolve encoding
issues.
|
|
Ported from CSIDL to newer FOLDERID API and used wcstombs_s to
convert the returned path to a multi-byte string.
Fixes issues when the Windows username contains special characters.
|
|
* Removed some unused includes
* Removed unused ListBox::mFont
* Removed wrong cast to SDL_Scancode
* Removed superfluous .c_str()
* Removed superfluous explicit std::string construction
* Removed unused variable
* Use more emplace_back
* Turned FindBeingFunctor into a lambda
* Avoid needless pointer references for ambient layers and use a vector
|
|
Quote from Fedora mailing lists:
The latest released versions of libxml2 have a couple of important
changes in header files that have unintentionally caused some packages
to fail to build without modification, including:
* several functions now accept or return a const xmlError struct
* cyclic dependencies in header files were fixed (by dropping some includes)
|
|
Now a text chunk has a maximum length of 4k characters, but that should
be plenty of space since they're only single lines.
|
|
We can use vsnprintf to write to the std::string directly.
|
|
Amendment of dd1db3753ecf8a4d782aee1f518759763d8caf87.
|
|
* Use ConfirmDialog to confirm the opening of the external link.
* ConfirmDialog now centers on its parent window when provided.
* Reset hovered link when mouse exits the BrowserBox.
|
|
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.
|
|
* 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 ""
|
|
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.
|
|
Apparently this was supported before, but support for that was lost in
bd1fdd87eed48ba3ffcc413936d6a6a60a429a97.
Fixes #46
|
|
modernize-loop-convert
modernize-deprecated-headers
|
|
Fixes compatibility with SDL2. The old version compiled for whatever
reason, but it would crash when the client tried to play a sound.
|
|
modernize-use-auto
modernize-use-nullptr
modernize-use-override
modernize-use-using
|
|
|
|
|
|
There should be no need to export the functions explicitly, given that
they are compiled as part of the executable.
|
|
|
|
* 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
|
|
|
|
|
|
|
|
This is in order to still support older compilers, in particular GCC 4.2.1,
so that Mana may be compiled for Maemo 5.
Reviewed-by: Yohann Ferreira
|
|
It makes no sense to mark a return value as const when it is returned by
value. This only makes sense if the return value is passed by reference, in
order to prevent the receiver from modifying the value.
Also made some other small adjustments. A std::string does not need to be
initialized to "" explicitly and getSafeUtf8String could take its parameter by
reference.
Reviewed-by: Yohann Ferreira
|
|
Better to show non-rotated/flipped tiles than no tile at all. This also
fixes interpretation of collision tiles that happen to be flipped.
Also interpret the gid as an unsigned number, since that's how they are
written in the TMX file since the introduction of these flags.
Reviewed-by: Yohann Ferreira
|
|
Reviewed-by: Erik Schilling
|
|
|
|
This avoids the creation of a temporary buffer containing a complete
file for the sole purpose of wrapping it up in an SDL_RWops.
The necessary wrapper is by Ryan C. Gordon and is included in the
PhysFS repository under 'extras'.
Reviewed-by: Yohann Ferreira
|
|
The XMLContext is only relevant while an XML file is being parsed. So
rather than allocating it on the heap and forgetting to delete it again,
it's now allocated on the stack and thrown away automatically.
Reviewed-by: Yohann Ferreira
|
|
The 'inflated' pointer wasn't initialized, but included in the if
check for some reason (caught by valgrind). This would have caused
support for .gz compressed maps to break sometimes, but since we
don't use such maps anymore, maybe support for it should actually
be dropped.
Reviewed-by: Yohann Ferreira
|
|
Resolves: Mana-Mantis #381.
Reviewed-by: Ablu.
|
|
Conflicts:
src/actorsprite.cpp
|
|
enforced by -std=c++0x
Reviewed-by: Thorbjørn Lindeijer
|
|
There was a bug here, which wouldn't surface if the copy was elided.
Fixed by using a move constructor.
Reviewed-by: Thorbjørn Lindeijer <thorbjorn@lindeijer.nl>
|
|
Another case of M_PI being no longer defined in cmath.h
_MAX_PATH doesn't work anymore, but there is still MAX_PATH
putenv doesn't work anymore, so I replaced it with a function from the
WINApi
Reviewed-by: Thorbjorn
|
|
Conflicts:
CMakeLists.txt
po/fi.po
po/fr.po
src/gui/skilldialog.cpp
src/localplayer.cpp
src/net/manaserv/generalhandler.cpp
src/net/tmwa/buysellhandler.cpp
src/net/tmwa/generalhandler.cpp
src/net/tmwa/playerhandler.cpp
src/net/tmwa/specialhandler.cpp
src/winver.h
|
|
|
|
Required to build on HURD, but good practice anyway.
Reviewed-by: Thorbjørn Lindeijer
|