Kelsidavis-WoWee/include/addons/toc_parser.hpp
Kelsi 290e9bfbd8 feat: add Lua 5.1 addon system with .toc loader and /run command
Foundation for WoW-compatible addon support:

- Vendor Lua 5.1.5 source as a static library (extern/lua-5.1.5)
- TocParser: parses .toc files (## directives + file lists)
- LuaEngine: Lua 5.1 VM with sandboxed stdlib (no io/os/debug),
  WoW-compatible print() that outputs to chat, GetTime() stub
- AddonManager: scans Data/interface/AddOns/ for .toc files,
  loads .lua files on world entry, skips LoadOnDemand addons
- /run <code> slash command for inline Lua execution
- HelloWorld test addon that prints to chat on load

Integration: AddonManager initialized after asset manager, addons
loaded once on first world entry, reset on logout. XML frame
parsing is deferred to a future step.
2026-03-20 11:12:07 -07:00

24 lines
496 B
C++

#pragma once
#include <optional>
#include <string>
#include <unordered_map>
#include <vector>
namespace wowee::addons {
struct TocFile {
std::string addonName;
std::string basePath;
std::unordered_map<std::string, std::string> directives;
std::vector<std::string> files;
std::string getTitle() const;
std::string getInterface() const;
bool isLoadOnDemand() const;
};
std::optional<TocFile> parseTocFile(const std::string& tocPath);
} // namespace wowee::addons