Age | Commit message (Collapse) | Author | Files | Lines |
|
- Updated STATE_WORLD_SELECT case to automatically select the first
world and proceed to update state when mOptions.chooseDefault is true.
- This change ensures that the world selection window is bypassed for a
smoother user experience when the default selection option is enabled.
- Improved logic to handle cases with only one available world and
directly proceed without showing the dialog.
|
|
(cherry picked from M+ commit 13b9ff5baf1f6d31cc6bfa5bd30bacd45b80539c)
|
|
For new characters (and in general, when logging in with a character
that had nothing equipped), the equipment backend wasn't being
initialized. This resulted in the equipment not being visible in the
Equipment window.
Fixes #83
|
|
|
|
Nobody cared for the events that were emitted when NPC related network
messages had been sent.
|
|
|
|
Less code duplication.
|
|
|
|
|
|
|
|
Might be better to merge any relevant information in this file with the
README.md.
|
|
|
|
The targetSelection attribute is supported on monsters and NPCs.
Also changed return value of Being::getInfo to indicate it can't return
nullptr.
(cherry picked from M+ commit dbc3b324a0c5dcb1a0ee29b289e71423a06e85fd)
|
|
The online list refreshes every 18 seconds, which matches ManaVerse
behavior. It's not ideal, but to improve this would mean diving into
TMWA.
The client version was bumped to 8 to get a SMSG_ONLINE_LIST reply.
Further changes needed related to the client version are tracked by #71.
This also changes the TabbedArea to take into account the frame size for
its tab widgets, to make sure those frames are not clipped by the
TabbedArea widget (as happened in the Social window).
The horizontal scroll bar is now disabled in all social tabs, with the
vertical one appearing only when necessary.
Closes #61
|
|
This reverts part of 087babc2525ddb89e5b31f240a08739d9a3029a9.
It's unclear to me why big words should be split (chat window
force-wraps when necessary anyway) and it's causing issues by adding
spaces in the middle of links, for example.
|
|
(cherry picked from commit 0192d44d46dcf948ab26371862753f4baf5aae4e)
|
|
Use BrowserBox in NpcDialog to enable the use of text formatting and
links in NPC texts.
This change is roughly based on ManaPlus commit
94f11a223e03c6845e7ce6e9fe67c0e9fa7061f4.
|
|
##B switches font to bold, ##b switches font to normal. Each line starts
with the normal font.
This change is roughly based on ManaPlus commit
6c4c6ca877c336e17c0378131a0a139792012a99.
|
|
MSYS2 builds cURL 8.8 with CMake, which installs a CURLConfig.cmake
file. Since CMake 3.17, the FindCURL module will prefer to return the
values from the config file. However, CURLConfig.cmake does not set
CURL_LIBRARIES.
While a fix for this is pending release (see
https://github.com/curl/curl/commit/1dec702c8676fef3a7b5850e5350102876067680),
we can rather update to modern CMake by relying on the IMPORTED target
CURL::libcurl, which is set since CMake 3.12 (our current minimum
required version).
|
|
Previously, the top edge of windows could not be dragged. Now you can also
resize windows by their top edge, as well as the top-left and top-right
corners.
|
|
These are server chat messages triggered from scripts. In TMW this
appears to be used only by the magic system. Added in client protocol
version 5 (see issue #71).
|
|
Similar to the AppVeyor build, but thanks to caching and faster
compilation this build arrives about 4 times faster.
This also fixes the snap build, which now has to check out the enet
submodule.
|
|
Makes a release build and publishes the Windows installer as artifact.
|
|
This also updates ENet from 1.3.2 to 1.3.18.
The previously supported WITH_BUNDLEDHEADERS option that affected which
ENet was being used has now been reversed and renamed to
USE_SYSTEM_ENET, which defaults to OFF for now.
|
|
We need to set the custom values before including GNUInstallDirs, so
that GNUInstallDirs will set the CMAKE_INSTALL_FULL_<dir> variables
correctly.
Fixes breakage in aecbf876cd0a7894396a2e5034af9d93bf028aa0.
|
|
FindIntl was added with CMake 3.2 and can be used to find the Gettext
libintl headers and libraries.
I've removed special handling of Solaris, which explicitly added linking
to 'intl' and added '/usr/local/lib' include path. It can be easily
restored if necessary, once somebody tries to compile Mana on Solaris.
|
|
This is supported since CMake 3.12 (current minimum) and simplifies the
whole quoting business.
Also used a generator expression to set the DEBUG define conditionally.
At the same time, DEBUG is no longer defined in RelWithDebInfo builds,
but it shouldn't be.
|
|
More consistent formatting and no longer everything in uppercase, yay!
|
|
A leftover from 86522166e082b2defaea541747ecdce0f1149fe5.
|
|
Normally the popup follows the mouse, but when the mouse is moved down
such that it is on top of the popup, the popup would seem to get stuck.
When the BeingPopup is a mouse listener, the default behavior of Popup
hiding the BeingPopup when the mouse moves over them kicks in.
Hiding of the BeingPopup by Popup and Window when they are hovered in
general is a workaround which might be necessary because there is
currently no way for the Viewport to determine whether the mouse is
above the map view or over a piece of UI.
|
|
This SDL_GetMouseState call did not adjust the result to the graphics
scale. Fortunately it could just be removed, since mMouseX and mMouseY
are anyway updated each Viewport::logic.
|
|
Since for tmwAthena we're writing messages directly into the output
buffer, the MessageOut implementation does not need any members.
Also used SDL_SwapLE16 and SDL_SwapLE32 for convenience.
|
|
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.
|
|
This should make CMake options a little more standardized. The Windows
part could potentially still be unified further.
Absolute paths are now only used for the defines and not for values
going to install() commands.
|
|
This helps with debugging potential issues with building the snap, since
it also uploads the full snapcraft log, which is not available from
snapcraft.io.
|
|
snapcraft.io is now connected to https://github.com/mana/mana and will
automaticaly build the mana snap and publish it to the edge channel.
There are two known issues at this point:
* The snap prints:
/usr/share/libdrm/amdgpu.ids: No such file or directory
on startup. So far I was unable to figure out a fix for it
and I also don't know if it actually causes any problems.
* Translations do not appear to work.
|
|
|
|
It appears that either SDL or the system is already taking care of
scaling the cursor to the display scale (observed on both macOS and
Wayland). Hence, we should only scale the cursor by the user scale and
not by both.
Follow-up to 6eca1b485dba7355d827745284ed2f0072f9e370.
|
|
The loading of effects.xml has ended up being duplicated, with an
implementation in getEffectDescription in actorsprite.cpp as well as in
EffectManager. But the one in actorsprite.cpp was actually never used.
|
|
Regression introduced in 14dc8218eeebd1583e6bd3c49013b3e501f47228.
|
|
Shows outlines of visible widgets as well as highlighting modal focus,
modal mouse focus and regular focus.
Can currently only be toggled in the Debug window, so needs source code
modification to be used during login sequence for now.
|
|
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.
|
|
Beats using a CMakeLists.txt in each directory and fixes a few missed
files (like music and equipment slot icons).
|
|
Otherwise they are included in the NSIS installer, as well. We don't
need the Guichan library since we link to it statically.
|
|
The linker could not find _nl_locale_name_default. Maybe it could be
fixed by linking to another library, but it would likely not yield the
preferred behavior. Instead, we now use GetUserPreferredUILanguages to
set the LANG environment variable with one or more languages and let
gettext choose the best fitting available translation.
Also fixed the directory from which the translations are loaded to match
the installation directory,
|
|
Works without in MSYS2, at least.
|
|
Set SDL_HINT_WINDOWS_DPI_AWARENESS to "permonitorv2", which tells
Windows the application will handle all scaling.
We don't currently adjust the window size when it changes monitors, but
mainly use this hint to disable scaling by the system, since that blurs
fonts and pixel art. Once we can properly handle fractional scaling
(which is common on Windows), we can set SDL_HINT_WINDOWS_DPI_SCALING to
"1" instead.
|
|
* Ignore the common "build" directory.
* Removed ignore rules for deleted Xcode project.
|
|
The configured file wasn't actually being used, because it was not in
the include path. Instead, a checked in version was used.
In addition, winver.h is an existing Windows header, which was
conflicting with the generated file. Instead, now mana.rc itself is
configured. We didn't actually need winver.h anywhere else, anyway.
|
|
This relies on Windows 10 version 1803 (10.0.17134.0), which is
hopefully an acceptable minimum. It fixes handling of paths with special
characters.
|