Age | Commit message (Collapse) | Author | Files | Lines |
|
(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).
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
Should be a lot less fragile and might also help to resolve encoding
issues.
|
|
* Set the version, description and homepage URL using modern CMake
style (minimum supported version increased to CMake 3.12).
* Fixed the reference to the MUI_WELCOMEFINISHPAGE_BITMAP file, which
needed "\\" instead of "/" to work for me in MSYS2, and with
CPACK_VERBATIM_VARIABLES enabled (otherwise "\\\\" was needed).
* Fixed the icon used for the uninstall entry by setting
CPACK_NSIS_INSTALLED_ICON_NAME.
* Fixed missing start menu entry by setting CPACK_PACKAGE_EXECUTABLES.
* Fixed running Mana when finishing the install by setting
CPACK_NSIS_EXECUTABLES_DIRECTORY.
* Mark the NSIS installer as DPI-aware using
CPACK_NSIS_MANIFEST_DPI_AWARE.
* Enabled uninstall before install using
CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL.
|
|
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.
|
|
Also added instructions for installing the dependencies on MSYS2.
The selection of the default language is commented out for now. It will
be fixed in another change.
|
|
* 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
|
|
Broke in 474442f1a49d29d85de769c4fbb3aa8636877b49 due to changing the default
padding on the Popup class.
|
|
Most prominently, fixes the tooltips on the window buttons being clipped
due to their position being slightly outside of the clipping children
area. And fixes NPC tooltips from having a lot of empty space below the
NPC name.
Also reduced the space between texts in the item tooltip to match the
padding rather than being an entire empty line.
|
|
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)
|
|
So that one can choose to build with the Guichan submodule also on
other systems than macOS.
|
|
This way the cursor is not limited by the framerate nor affected by
input lag. Also, when custom cursor is disabled, a few different system
cursors are now used instead.
It also avoids an issue on Wayland, where hiding the cursor (as done to
render our own one) would cause the cursor to get locked within the
window.
On macOS it fixes two cursors being visible when hovering the window
while it is in the background.
The cursor can unfortunately no longer gently fade away.
|
|
* TrueTypeFont class now takes into account the graphics scale, in order
to render an appropriate higher-resolution texture.
* Removed TrueTypeFont::fontCounter, since TTF_Init/TTF_Quit already
keep a counter.
* Avoid copying the rendered string needlessly, when it already exists
in the cache. Avoid another copy, when inserting a new chunk into the
cache.
|
|
This can be used for smoother mouse cursor movement when rendering our
own mouse cursor (already changed in this commit) and is also necessary
for implementing support for HiDPI font rendering.
Also dropped some almost duplicated OpenGL code.
|
|
This is generally expected on Linux, where it feels annoying that the
initial click just focuses the window.
On macOS it's a little bit different, since applications can be specific
about which elements are directly clickable and which aren't, but in
general it feels better to me when the UI can be interacted with
directly.
|
|
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.
|
|
* Added "Scale" user option, which can either by "Auto" or an explicit
scaling factor. Its maximum value depends on the current resolution.
The "Auto" factor is based on keeping the logical resolution on at
least 800x600, wheres the maximum scale is based on keeping the
logical resolution on at least 640x480.
* Enabled support for High DPI. This means the rendering target can now
have a different resolution than the window size, which can happen on
macOS, Windows and Wayland. The resulting scale is multiplied by the
above user-controlled scale.
Currently, this looks ugly for non-integer scales, which are not used
on macOS and can only be configured on some Wayland compositors.
Has not been tested on Windows.
* Simplified OpenGL initialization (moved out of _beginDraw).
* Made sure _beginDraw/_endDraw sets a clip area also for SDLGraphics.
|
|
It did not distribute them when the value of the DropDown was changed by
key events or mouse wheel.
|
|
* ResourceManager::addResource
* ResourceManager::get(const std::string &)
These were once added in 32996cee607c52ecef9be4638df554dd89b39c24, but
they are no longer necessary after the port to SDL2
(2c51c98625b225cecfb9628c30d62d4e30f7e3e1).
|
|
|
|
Simplifies the code a little.
Also use ResourceRef in SubImage to avoid manual reference counting.
|
|
Amendment of dd1db3753ecf8a4d782aee1f518759763d8caf87.
|
|
|
|
Ubuntu 20.04 had SDL 2.0.10, and it is still supported.
Also added error handling to the SDL_OpenURL call, just in case.
|
|
* Use default member initializers
* Use range-based for loops
* Avoid needless pointer references for ShopItem::mDuplicates
* Removed type aliases that are only used once or twice
* Removed more unused includes
* Removed some unused functions
* Removed superfluous .c_str()
* Rely on default copy and assignment operators for Vector class
* Use std::unique_ptr in some places
* Removed duplicated mPlayerMoney updating in SellDialog
* Removed duplicated Game::handleInput call
* Removed unused SDLInput::mMouseInWindow
* Removed remnant of manual widget positioning in HelpWindow
* Removed superfluous initialization of static pointers
|