Commit graph

59 commits

Author SHA1 Message Date
Humberto Gontijo
c136a75263
fix: make macOS build with modern sol2 and wxGL (#201)
Bug Fixes:
- Improved Lua scripting: Lua-visible nil is now consistent for missing/empty values across storage, JSON parsing, item/map/tile APIs, dialogs, app properties, and overlay hover.
- Improved macOS graphics reliability (OpenGL context/linking) and safer background/thread handling for streaming and SQLite bootstrap.
- Fixed client asset loading paths and improved SQLite migration input paths.

UI Improvements:
- Replaced “Missing …” modal dialogs with inline text boxes.
- Made “Client directory” editable; added macOS app-picker browse flow.

CI:
- Added compile-scoped macOS builds via reusable workflow and a new build-macos job.
2026-07-29 19:44:25 -03:00
Eduardo Dantas
58c6993ef8
fix: CMake build tweaks, app entry, protobuf fixes (#177)
Chores:
- Build presets updated: unity build enabled by default, macOS debug explicitly disables it.
- Build performance and config tweaks: skip precompiled headers for one renderer file when not using unity builds; protobuf generation now includes explicit dependencies; switch to imported zlib target; Windows 64-bit executable now gets a -x64 suffix and a build-specific compile define; entry point selection now driven at compile time.

Bug Fixes:
- Removed an unnecessary protobuf shutdown call after loading appearance data.
2026-05-02 18:14:41 -03:00
Victor
4500fdb9cc
fix: instant process exit on close to avoid freeze with large maps (#172) 2026-04-22 19:23:35 -03:00
Victor
4f495b8e19
feat: OpenGL modern migration (#165)
New Features:
- Added a modern OpenGL renderer with batched 2D drawing, textured bitmap text, stippled lines, polygons and a baked font atlas.

Refactor:
- App-wide rendering switched to the new renderer.
- Map and lighting now draw via renderer primitives and sprite lookups use stable sprite IDs.

Bug Fixes:
- Improved texture allocation/invalidation/cleanup and sprite bounds safety.
- Restored/normalized keyboard shortcut behavior (Q/B remap, SHOW_NPCS → Shift+N, Linux shortcut dispatch).

Chores:
- Replaced legacy GLUT with a GL loader and integrated stb.
- Updated build configuration and project files.
2026-04-17 18:58:28 -03:00
Victor
557d91123e
feat: add support for loading monsters and NPCs from Canary Lua files (#162)
New Features:
- Load monsters and NPCs from configurable Lua folders; shows warnings/errors for empty or problematic files and prompts to set folders when missing. Missing-creature dialogs and progress labels updated (“Loading monsters ...”, “Loading NPCs ...”, “Missing Monsters”, “Missing NPCs”).
- Preferences page adds directory pickers for Monsters/NPCs Lua folders; values are saved and applied.
- Brush list and palettes display creature sprites for loaded monsters/NPCs.

Chores:
- Added lightweight Lua parsing helpers to support importing outfits and surface warnings for malformed files.
2026-03-28 21:20:43 -03:00
Victor
d05ba30ff8
feat: add Lua API modules and Script Manager UI (#161)
This commit adds the full Lua scripting API and integrates the Script Manager into the application.
It builds on top of the scripting engine introduced in #158, exposing all the API modules that Lua scripts can use and making everything accessible from the UI.  
  
Changes:
- Added all Lua API modules: map, tile, item, brush, image, position, selection, creature, color, app, dialog, noise, algo, geo, json, http.
- Added map overlay system for scripts to draw on the map view.
- Added event system, context menu registration, persistent storage, and transaction support with undo/redo.
- Added support for package scripts (directory with manifest.lua) and script metadata tags.
- Added Scripts menu to the menubar with per-script execution and reload.
- Connected the Script Manager window to the UI.
- Added missing build dependencies and fixed MSVC compilation errors.

Notes:
- Build dependencies were added for HTTP and noise generation support.  
- Some code was adjusted to compile correctly on MSVC.
2026-03-28 19:15:57 -03:00
Victor
bdb870a5ca
feat: add Lua scripting engine support to remeres-map-editor (#158)
New Features:
• Lua scripting support: embed and run user scripts.
• Automatic discovery and execution of scripts from a designated scripts directory.
• Included a sample "Hello World" script.

Improvements:
• Sandboxed execution and safety restrictions for scripts.
• Graceful initialization with error logging if scripting fails, and clean shutdown on exit.
• Build/system integration updated to ensure Lua and Sol2 are available.
2026-03-02 14:07:42 -03:00
Eduardo Dantas
6d501a5ad2
feat: support reading assets from client 11 or higher (#70)
feat: migrate Remeres to 12.x assets system and modernized item handling

• Migrated old Remeres .dat/.spr system to new 12.x client /assets/ appearance & sprite format
• Removed OTB dependency and outdated client version structures
• Integrated Protobuf-based sprite reader (credit: @nekiro)
• Major refactor on graphics.cpp structure and brush icon handling
• Updated brushes and tags system
• Fixed top order drawing bugs and missing brushes icons
• Fixed outfit color paint and correct offset handling for non-32x32 sprites
• Re-enabled map saving and loading
• Improved creature sprite rendering and brush previews
• Added new item properties window with toggle for legacy/new layout

Co-authored-by: Marcos <66353315+marcosvf132@users.noreply.github.com>
Co-authored-by: Pedro Henrique Alves Cruz <phac@cin.ufpe.br>
2025-05-10 16:38:45 -03:00
Majesty
7ab4f119f0
feat: tilesets manager (#68)
---------

Co-authored-by: Pedro Henrique Alves Cruz <phac@cin.ufpe.br>
2024-06-07 15:03:37 -03:00
Beats
47d8f4fb2b
fix: linux build (#57) 2023-10-13 20:26:41 -03:00
Luan Santos
2ee365e836
ci: add clang-format linter (#54) 2023-10-09 19:12:16 -07:00
Beats
6b55201a64
feat: synchronizing commits with the official rme repository (#36)
* Show indicators for pickupable and moveable items

* Fix: drawing always refreshing ui

* Fix crash on invalid friend for wallbrush

* Option to remove empty spawns

* Draws position indicator, some code cleanup

* Teleport copy/paste improvements

* Fix flood fill

* Add function to get minimap/8bit color

* Small code cleanup

* Cleanup Position

* Code cleanup and small optimizations

* Code cleanup

* Code cleanup and small optimizations (#406)

* Cleanup and cast functions.

* Avoid adding a new Unique ID if it already exists

* Code cleanup and small optimizations

* More changes and cleanup

* Changes and cleanup

* Some changes

* Fix copy position.

* Only show uid/aid alert if it really changed

* Add actions history panel

* Does not draw tooltips on minimap mode

* Use constexpr

* Replace items fix (#408)

* Draw grid small optimization

* Small change in selection box and Fix #409

* Fix some xpm

* Ingame box improvements, add lights support.

* Fix go to previous position (#410)

* Fix depot crash (#411)

* Fix XPMs

* Export minimap as .otmm (otclient format) or .png (#413)

* Fix glitch after drawing secondary map

* fix

* Update about_window.cpp

* sonar

* fix Minimap and progress bar

* fix erro load items.xml

* fix

* fix doodad brush

* fix: slightly more accurate house size estimation

* feat: update items.otb and items.xml

* fix: bad merge

* Revert "feat: update items.otb and items.xml"

This reverts commit 40f1edc70f.

---------

Co-authored-by: Nailson <Mignari@users.noreply.github.com>
Co-authored-by: wtver <51377408+maattch@users.noreply.github.com>
Co-authored-by: Majesty <32709570+majestyotbr@users.noreply.github.com>
Co-authored-by: Luan Santos <github@luan.sh>
2023-10-09 19:02:37 -07:00
Beats
17e42a5056
feat: improve cmake build and add pugixml integration (#40) 2023-09-08 03:04:02 -03:00
Eduardo Dantas
d05e2e4cf8
improve: remove boosts, better compilation and GHA support (#31)
Removed boosts (replaced with equivalent on std 14/17/20)
Removed manual json library implementation using boost and added nlohmann-json

So two additional libraries will be needed to compile:
asio, nlohmann-json (see wiki)

Also removed OTGZ support by default and disabled it, making it optional (needs to be enabled). Anyone who wants to use it will need to activate this, I think it's ideal since few should use it, so a majority don't use it, which is fairer that those who need to activate it to use it than those who don't need to have this in their program.

Added GitHub Actions workflow for Windows (vs 2022) and Ubuntu 22.04
2023-03-28 08:54:17 -03:00
Eduardo Dantas
e09f3e94c8
Decouple npcs from the creature class (it's create npc.xml file in the map folder) (#3)
Created the complete organization of npcs, that way, it is possible to create own files for npcs, no longer depending on being together with the monsters
this pull request was made to be worked together with the canary project: https://github.com/opentibiabr/canary

The spawns npcs is "yellow" and spawns monsters is "red" (the old)

With this change, the map will automatically create an "npc.xml" the first time it is saved.
It is possible to edit only the xml, it is not necessary to add or modify the npc by opening the editor map

Thus, there is a script for npcs, similar to how it works with old spawns
2021-05-25 00:29:12 -03:00
gustavomb
b308ff8fe0
Building in Windows with libarchive and freeglut from vcpkg (#323)
Co-authored-by: Gustavo B <gustavomb@users.noreply.github.com>
2020-09-14 17:55:04 -03:00
Evil Puncker
cfe36ce5b3
license headers (#315) 2020-07-30 11:42:28 -03:00
Elime1
d96bb5902b Reintroduce old behaviour when welcome dialog is toggled off 2020-06-26 08:44:56 +02:00
Elime1
39023fcc30 Make welcome dialog optional 2020-06-18 19:08:13 +02:00
Elime1
6b11485da0 Move welcome dialog to gui 2019-06-28 15:24:25 +02:00
Elime1
47107f1f41 Use non modal welcome dialog 2019-06-27 23:03:54 +02:00
Elime1
e3856e8dbc Use non modal welcome dialog 2019-06-27 22:23:28 +02:00
Elime1
1a01baf80e Decrease font size 2019-06-25 20:12:12 +02:00
Elime1
c4551731fd Add welcome window 2019-06-25 18:07:36 +02:00
Elime1
fc202d6b85 Prevent crash when UnInit() is called twice. UnInit() is already called in MainFrame::OnExit. 2019-06-25 16:36:53 +02:00
Elime1
316ee29ead Fix project not building on macOS 2019-06-25 11:12:33 +02:00
Mignari
ae5be0a051 Add art provider. 2019-06-04 17:42:28 -03:00
Nailson
860febd663
Add tool bar (#144) (#23) (#264)
* Add default tool bar.

* Add Toobars menu.

* Add brushes toolbar.
2019-06-03 14:14:18 -03:00
Elime1
50455cdb0c Add comments - IPC 2017-01-26 19:07:35 +01:00
Elime1
66fb294133 Fix and simplify IPC #167 2017-01-22 14:12:32 +01:00
Nailson
b988196072 Initialize glut on Linux. 2016-12-10 13:13:22 -03:00
Elime1
ff733e6fd2 Stay compatible with wxWidgets 3.0 2016-12-09 21:38:17 +01:00
Elime1
bd99c2f8d7 Use full screen API on macOS 2016-12-05 21:53:41 +01:00
Elime1
d2aba9289a Fix a problem where the map could be loaded too early. Also make the code more coherent. 2016-12-02 16:40:51 +01:00
Elime1
b03403e4eb Add possibility to open associated files on macOS 2016-11-26 00:14:06 +01:00
Elime1
610aeeaeaa Remove use of wxT macro. Closes #141 2016-11-05 15:28:14 +01:00
Elime1
981f6ae414 Remove wxOnAssert override - It's only defined in debug mode 2016-11-01 21:31:36 +01:00
Nailson
d7e863cb86 Rename global variable 'creature_db' to 'g_creatures'. 2016-10-25 10:22:46 -03:00
Nailson
d6d7643176 Rename global variable 'settings' to 'g_settings'. 2016-09-29 20:37:43 -03:00
Nailson
6ab0f851a4 Rename global variable 'gui' to 'g_gui'. 2016-09-29 20:30:54 -03:00
Nailson
23a8fb15a1 Trim trailing whitespaces. 2016-09-29 19:24:45 -03:00
Nailson
f93e43f679 Add zoom menu.
Shortcuts:

Ctrl++ Zoom in
Ctrl+- Zoom out
Ctrl+0 Normal zoom (100%)
2016-02-25 21:32:05 -03:00
Nailson
50ae3c3d1a Code style fixes. 2016-01-17 08:12:13 -03:00
Nailson
d7a4254604 Code style and some cleanup. 2015-12-06 11:42:37 -03:00
Nailson
a630a777e3 Add application icon. 2015-12-06 09:59:50 -03:00
dominique120
97df12771e Few more fixes and support for Mac OSX. 2014-08-02 13:09:03 -05:00
dalkon
c74b6dbeae Bug fix and misc
GUI::SetLoadDone was taking way too long to update and made any map load
very slowly.
Changed any "uint" to "uint32_t"
Fixed a bunch of warnings.
2014-02-28 22:34:25 +01:00
dalkon
4a729176c4 Fixes and changes.
Rewrote RME Live to use boost asio instead of wxSocket, this seemed to
fix random stops when using the function, some other things were fixed
aswell when using this.
Added 10.10 & 10.21+ (I have not added the otbs and such yet.)
Bug fix and some small cleanups.
2014-02-21 13:55:09 +01:00
Henrique Santiago
8d5f486960 Run using working directory, remove unecessary ; 2014-01-24 02:33:09 -02:00
dalkon
886cbc23a7 Lots of changes
Removed libxml2 to use pugixml.
Fixed a bug with the progress bar.
Changed some things in most xml files that pugixml did not like.
Updated the Visual Studio project.
Any NULL symbol has been changed to nullptr.
This most probably broke the CMake that was recently added.
And probably some other things.
2014-01-22 20:16:17 +01:00