Commit Graph
1 Commits
Author SHA1 Message Date
西风逍遥游andCursor Agent 372f2c66b6 feat(map): 可扩展格子寻路与群体 Flow Field 优化 (#13)
* feat(map): add extensible grid pathfinding with group Flow Field

Implement A* and same-goal Flow Field pathfinding on PathGrid with
pluggable topologies (ortho4/ortho8/hex) for orthogonal, isometric,
staggered, and hexagonal maps. Expose Pathfinder/Path/FlowField via
Map::newPathfinder and document the design.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(map): use ComponentRef accessors in PathGrid sync

TileLayer::config()/tiles() return ComponentRef, not raw pointers.
Also cast PathTopology in zeroerr CHECKs for streamability.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(map): shrink Windows export surface for pathfinding

MSVC LNK1189 (65535 library objects) is hit when WINDOWS_EXPORT_ALL_SYMBOLS
exports every PathGrid/topology symbol. Collapse grid/topology into an
internal Pathfinder impl (anonymous namespace) and a single TU so eve.exe
stays under the export limit.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(windows): disable WINDOWS_EXPORT_ALL_SYMBOLS to avoid LNK1189

MSVC cannot export every symbol from eve.exe once the binary grows past
the 65535-object limit. Plugins already import EVENGINE_API symbols
(ModuleManager / ModuleRegister); keep ENABLE_EXPORTS without exporting
the entire object set.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-10 13:02:57 +08:00