Commit Graph

61 Commits

Author SHA1 Message Date
c2e1b557cc fix(waypoints): Display configuration and client refresh
- Fix waypoint markers showing as human models in 11.2.5 client
- Use Elven Wisp (displayId 1824) which renders correctly
- Add runtime display config via Lua shared data (no recompile needed)
- Add client refresh (DestroyForNearbyPlayers + UpdateObjectVisibilityOnCreate)
- Graceful MySQL error handling (no crash on bad MCP queries)
- Fix displayId arg parsing in VisualizeWaypointPath
- Add documentation for display IDs and configuration
2025-12-02 22:55:11 -05:00
090f5cbd5f feat(waypoint-panel): Add waypoint visualization, teleport, and highlighting
- Add split view layout for waypoint panel (list top, details bottom)
- Add Teleport button to teleport to selected waypoint with correct orientation
- Add waypoint marker highlighting (scales up selected marker)
- Add GM button sync on panel show
- Fix waypoint panel scrollbar and content visibility issues
- Add HighlightWaypointMarker and ClearWaypointMarkerAuras C++ functions
- Add TELEPORT_TO_WAYPOINT server handler
- Fix creature visual updates requiring client refresh (DestroyForNearbyPlayers)
- Add Smallfolk serialization for shared data in admin_handlers
2025-11-30 16:09:39 -05:00
ad73d8d761 feat(admin): NPC Info Panel improvements and waypoint visualization fixes
UI Improvements:
- Added Raw tab showing formatted JSON of server NPC data
- Added GM toggle button with green active state indicator
- Added 3D model zoom (scroll wheel) and rotation (click-drag)
- Green active tab styling for all tab buttons (left/right panels)
- Refresh button now always fetches fresh data from server
- Waypoint button properly reflects state when re-targeting NPC

Waypoint System Fixes:
- Fixed stale visualization state after Clear All or Eluna reload
- VisualizePath now validates tracked creatures exist before skipping
- DevisualizePath properly cleans up maps even if creatures gone
- Added ClearAllVisualizations C++ method for proper state cleanup
- Added player:ClearAllWaypointVisualizations() Lua binding
- Increased Smallfolk deserialization limit to 100KB for large NPC data

C++ Changes (requires rebuild):
- WaypointManager: Self-healing visualization state
- WaypointManager: ClearAllVisualizations and IsPathVisualized methods
- PlayerMethods: ClearAllWaypointVisualizations binding

Known Issues:
- Paths tab shift+click removal not working (buttons need rework)
2025-11-30 12:21:37 -05:00
Shauren
247c25abc9 Core/Database: Improve code generated by DEFINE_FIELD_ACCESSOR_CACHE 2025-06-25 13:38:28 +02:00
Shauren
e284dc0a80 Core/Commands: Waypoint command fixes
* .wp add will now add data to waypoint_path table
* .wp reload will no longer crash the server
* Replace deprecated command handler arguments
2025-06-25 12:16:03 +02:00
Shauren
39c06d40e2 Core/Misc: Use new Field::Get*OrNull where possible 2025-06-24 16:11:11 +02:00
Shauren
7e27c42a2f Core/Movement: Fix WaypointMgr::GetNode infinite recursion (function isn't used anywhere currently) 2025-06-11 00:52:23 +02:00
Shauren
7657a289d7 Core/Misc: Kill copy/move constructors for singleton classes 2025-06-10 13:12:33 +02:00
Shauren
204f65684c Core/Movement: Merge waypoints without delay into a single movement packet 2024-04-20 00:22:34 +02:00
Shauren
e1f43900d1 Core/Movement: Store delay in WaypointNode as Milliseconds instead of raw integer and revert c5097114d1 2024-04-19 15:16:17 +02:00
ModoX
e8f7d41536 Core/Movement: Added Velocity field to waypoint_path table (#29837) 2024-04-02 04:12:52 +02:00
Shauren
a8cc8725b1 Core/Movement: Minor refactor for WaypointManager data loading 2024-03-12 11:49:42 +01:00
ModoX
12186ef857 Core/Waypoints: Refactor to split data into path and node related info in db (#29506) 2024-01-05 17:56:19 +01:00
ModoX
3f6f683ce4 Core/Waypoints: Drop waypoint_scripts table (#29437) 2023-11-24 21:08:00 +01:00
Shauren
d791afae1d Core/Logging: Switch from fmt::sprintf to fmt::format (c++20 standard compatible api) 2023-01-08 21:16:53 +01:00
Shauren
fbe0b8efeb Core/Maps: Removed MapInstanced - no longer neccessary for grid data reference counting (moved to TerrainInfo) 2022-07-24 18:56:40 +02:00
Ovah
8501fb572a Core/Movement: Allow waypoints to use 0 as valid facing value (#26655)
(cherry picked from commit 4747515872)
2022-06-10 16:50:17 +02:00
Giacomo Pozzoni
ebe436d2c2 Core/ChatCommands: Fix .wp reload crash
(cherry picked from commit e4c2bb4f14)
2021-12-15 00:17:32 +01:00
Aokromes
93552510ab Core/Logs: Fix more logs
the others have exit,so they continue to be error because they are critical

(cherry picked from commit b68484cfb0)
2021-01-21 22:30:40 +01:00
ccrs
97585597f0 Core/Movement: waypoint movement (#20121)
Following the work done in #19361 this is the cleanup and improvement of the related logic of waypoint management.

Ref 28050f3 #18020
(taking the good parts and ignoring the incomplete work)

(cherry picked from commit 7fff83d675)
2020-08-23 00:45:46 +02:00
Aokromes
b0bf1275ee New Year 2020-01-02 06:44:10 +01:00
Riztazz
2caec4f4d2 Revert "[3.3.5][master] Core/Movement: Smooth movement #13467 (#18020)"
This reverts commit 05fb27dae4.

(cherrypicked from a3c6880579)
2019-08-17 20:04:14 +02:00
Shauren
e8e89f58fb Core/DBLayer: Prevent using prepared statements on wrong database 2019-07-27 01:00:37 +02:00
vincent-michael
5620eb9463 Update copyright note for 2019
auto happy = new year(2019);
2019-01-01 10:14:33 +01:00
Riztazz
05fb27dae4 [3.3.5][master] Core/Movement: Smooth movement #13467 (#18020)
Implement smooth movement for all waypoint pathing and escortai

(cherry picked from commit 28050f338d)
2018-02-11 15:53:32 +01:00
vincent-michael
7d00ae4045 Update copyright note for 2018
auto happy = new year(2018);
2018-01-01 00:40:17 +01:00
vincent-michael
86b98686a9 Update copyright note for 2017
Happy new year
2017-01-01 16:23:13 +01:00
Naios
329225b40d Core/Game: Move singleton instances into compilation units
* Fixes issues when building shared libraries
  (prevents gcc and clang from providing several instance)
2016-03-11 18:35:49 +01:00
Vincent-Michael
478cc756eb Update copyright note for 2016
Happy new year (Again new year with idiots ...)
2016-01-01 00:34:25 +01:00
Vincent-Michael
ab90f74486 Update copyright note for 2015
Happy new year
2015-01-01 00:28:09 +01:00
Shauren
daecbd67e8 Core/Waypoints: Fixed memory leaks happening when loading waypoints with invalid move_type 2014-07-31 20:28:32 +02:00
Subv
b5d025938e Core/Waypoints: Allow the table waypoint_data to use Takeoff and Land waypoints. 2014-07-25 19:05:25 -05:00
Vincent_Michael
20004050bc Update copyright note for 2014.
Happy new year.
2014-01-01 00:07:53 +01:00
Spp
94e2b9332a Core/Logging: Remove LOG_FILTER_XXX defines with it's value (remember logger names are case-sensitive) 2013-11-08 10:50:51 +01:00
leguybrush
0a308144a8 Core/Code: Unify [more] codestyle for brackets: )\n{\n} to ) { }. 2013-10-28 14:36:07 -04:00
Spp
d1677b2db0 Core/Logging: Performance-related tweaks to logging system
All sLog->out* functions (except outCommand atm) are replaced with TC_LOG_* macros.
    Memleak fix
2013-05-13 15:07:36 +02:00
Spp
8cd408ae6c Core/Misc: Some changes to minimize differences with 4.3.4 branch 2013-01-30 10:34:18 +01:00
Vincent_Michael
cc65aba789 Update copyright note for 2013.
Happy new year.
2013-01-01 00:41:01 +01:00
Spp
2251d1bfae Core/Misc: Set mode 0644 for files 2012-11-27 13:03:12 +01:00
Spp
8a1e7dd070 Core/Loading: Re-enable Server loading log 2012-08-16 00:23:44 +02:00
Spp
634776e0bc Fix compile under windows 2012-08-03 15:54:54 +02:00
Spp
55ce180f28 Core/Logging: Add Asyncronous logging with Loggers ("What to log") and Appenders ("Where to log") system. Will allow to select to full log some parts of core while others are not even logged.
- Logging System is asyncronous to improve performance.
- Each msg and Logger has a Log Type and Log Level assigned. Each msg is assigned the Logger of same Log Type or "root" Logger is selected if there is no Logger configured for the given Log Type
- Loggers have a list of Appenders to send the msg to. The Msg in the Logger is not sent to Appenders if the msg LogLevel is lower than Logger LogLevel.
- There are three (at the moment) types of Appenders: Console, File or DB (this is WIP, not working ATM). Msg is not written to the resource if msg LogLevel is lower than Appender LogLevel.
- Appender and Console Log levels can be changed while server is active with command '.set loglevel (a/l) name level'

Explanation of use with Sample config:

Appender.Console.Type=1       (1 = Console)
Appender.Console.Level=2      (2 = Debug)

Appender.Server.Type=2        (2 = File)
Appender.Server.Level=3       (3 = Info)
Appender.Server.File=Server.log

Appender.SQL.Type=2           (2 = File)
Appender.SQL.Level=1          (1 = Trace)
Appender.SQL.File=sql.log

Appenders=Console Server      (NOTE: SQL has not been included here... that will make core ignore the config for "SQL" as it's not in this list)

Logger.root.Type=0            (0 = Default - if it's not created by config, server will create it with LogLevel = DISABLED)
Logger.root.Level=5           (5 = Error)
Logger.root.Appenders=Console

Logger.SQL.Type=26            (26 = SQL)
Logger.SQL.Level=3            (2 = Debug)
Logger.SQL.Appenders=Console Server SQL

Logger.SomeRandomName.Type=24 (24 = Guild)
Logger.SomeRandomName.Level=5 (5 = Error)
Loggers=root SQL SomeRandomName

* At loading Appender SQL will be ignored, as it's not present on "Appenders"

* sLog->outDebug(LOG_FILTER_GUILD, "Some log msg related to Guilds")
  - Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomName is found but it's LogLevel = 5 and Msg LogLevel=2... Msg is not logged

* sLog->outError(LOG_FILTER_GUILD, "Some error log msg related to Guilds")
  - Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomeName is found with proper LogLevel but Logger does not have any Appenders assigned to that logger... Msg is not logged

* sLog->outDebug(LOG_FILTER_SQL, "Some msg related to SQLs")
  - Msg is sent to Logger SQL (matches type), as it matches LogLevel the msg is sent to Appenders Console, Server and SQL
    - Appender Console has lower Log Level: Msg is logged to Console
    - Appender Server has higher Log Level: Msg is not logged to file
    - Appender SQL has lower Log Level: Msg is logged to file sql.log

* sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Some msg related to Battelgrounds")
  - Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). As Logger has higher LogLevel msg is not sent to any appender

* sLog->outError(LOG_FILTER_BATTLEGROUND, "Some error msg related to Battelgrounds")
  - Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). Msg has lower LogLevel and is sent to Appender Console
    - Appender Console has lower LogLevel: Msg is logged to Console
2012-08-03 14:20:18 +02:00
Nay
f44e6834df Core/DBLayer: Fix remaining errors in loading world tables and a couple of them in characters database
Also removed World::LoadIp2nation(), it was not doing anything.
Closes #5897
2012-03-28 00:38:24 +01:00
Nay
729f419af1 Core/DBLayer: Correct few more wrong read types (No. 4)
DB/World: Some consistency in the ints "length" field (not really a length)

All world dbs checked
2012-03-27 21:36:16 +01:00
leak
12e55a04bb Core/DBLayer: Convert PQuery() queries to prepared statements 2012-03-24 01:25:08 +01:00
kiper
8299627ed9 Update headers for 2012. HAPPY NEW YEAR!!! 2012-01-01 00:32:13 +01:00
kaelima
97e5140a1d Core/WaypointMgr: Allow to set orientation to waypoints.
- Instead of the need to use a waypoint_script to change orientation on waypoint arrival.
2011-10-15 18:38:27 +02:00
Spp
af05915b9e [Cosmetic] Apply codestyle "XXX * " and "XXX *" changed to "XXX* " (with some exceptions) 2011-09-15 14:12:57 +02:00
Spp-
1fc1da842e Core: Fix annoying compile warning and some other minor changes here and there 2011-08-01 13:46:00 +02:00
Shauren
cb608283b2 Core/WaypointMgr: Fixed crashes when loading data with waypoint_data.id=0 and fixed memory leaks in .wp reload command 2011-05-24 23:13:47 +02:00