mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-03 20:03:50 +00:00
Merge commit '7f4c274e35' into chore/refactor-lua-engine
This commit is contained in:
commit
a2814ab082
3 changed files with 88 additions and 3 deletions
8
.github/workflows/build.yml
vendored
8
.github/workflows/build.yml
vendored
|
|
@ -24,9 +24,11 @@ jobs:
|
||||||
- arch: x86-64
|
- arch: x86-64
|
||||||
runner: ubuntu-24.04
|
runner: ubuntu-24.04
|
||||||
deb_arch: amd64
|
deb_arch: amd64
|
||||||
|
build_jobs: $(nproc)
|
||||||
- arch: arm64
|
- arch: arm64
|
||||||
runner: ubuntu-24.04-arm
|
runner: ubuntu-24.04-arm
|
||||||
deb_arch: arm64
|
deb_arch: arm64
|
||||||
|
build_jobs: 2
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
|
|
@ -97,19 +99,19 @@ jobs:
|
||||||
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWOWEE_ENABLE_AMD_FSR2=ON
|
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWOWEE_ENABLE_AMD_FSR2=ON
|
||||||
|
|
||||||
- name: Assert AMD FSR2 target
|
- name: Assert AMD FSR2 target
|
||||||
run: cmake --build build --target wowee_fsr2_amd_vk --parallel $(nproc)
|
run: cmake --build build --target wowee_fsr2_amd_vk --parallel ${{ matrix.build_jobs }}
|
||||||
|
|
||||||
- name: Assert AMD FSR3 framegen probe target (if present)
|
- name: Assert AMD FSR3 framegen probe target (if present)
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
if cmake --build build --target help | grep -q 'wowee_fsr3_framegen_amd_vk_probe'; then
|
if cmake --build build --target help | grep -q 'wowee_fsr3_framegen_amd_vk_probe'; then
|
||||||
cmake --build build --target wowee_fsr3_framegen_amd_vk_probe --parallel $(nproc)
|
cmake --build build --target wowee_fsr3_framegen_amd_vk_probe --parallel ${{ matrix.build_jobs }}
|
||||||
else
|
else
|
||||||
echo "FSR3 framegen probe target not generated for this SDK layout; continuing."
|
echo "FSR3 framegen probe target not generated for this SDK layout; continuing."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build build --parallel $(nproc)
|
run: cmake --build build --parallel ${{ matrix.build_jobs }}
|
||||||
|
|
||||||
- name: Package (DEB)
|
- name: Package (DEB)
|
||||||
run: cd build && cpack -G DEB
|
run: cd build && cpack -G DEB
|
||||||
|
|
|
||||||
|
|
@ -5301,6 +5301,44 @@ void GameHandler::acceptBattlefield(uint32_t queueSlot) {
|
||||||
if (socialHandler_) socialHandler_->acceptBattlefield(queueSlot);
|
if (socialHandler_) socialHandler_->acceptBattlefield(queueSlot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// LFG / Dungeon Finder handlers (WotLK 3.3.5a)
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
static const char* lfgJoinResultString(uint8_t result) {
|
||||||
|
switch (result) {
|
||||||
|
case 0: return nullptr; // success
|
||||||
|
case 1: return "Role check failed.";
|
||||||
|
case 2: return "No LFG slots available for your group.";
|
||||||
|
case 3: return "No LFG object found.";
|
||||||
|
case 4: return "No slots available (player).";
|
||||||
|
case 5: return "No slots available (party).";
|
||||||
|
case 6: return "Dungeon requirements not met by all members.";
|
||||||
|
case 7: return "Party members are from different realms.";
|
||||||
|
case 8: return "Not all members are present.";
|
||||||
|
case 9: return "Get info timeout.";
|
||||||
|
case 10: return "Invalid dungeon slot.";
|
||||||
|
case 11: return "You are marked as a deserter.";
|
||||||
|
case 12: return "A party member is marked as a deserter.";
|
||||||
|
case 13: return "You are on a random dungeon cooldown.";
|
||||||
|
case 14: return "A party member is on a random dungeon cooldown.";
|
||||||
|
case 16: return "No spec/role available.";
|
||||||
|
default: return "Cannot join dungeon finder.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char* lfgTeleportDeniedString(uint8_t reason) {
|
||||||
|
switch (reason) {
|
||||||
|
case 0: return "You are not in a LFG group.";
|
||||||
|
case 1: return "You are not in the dungeon.";
|
||||||
|
case 2: return "You have a summon pending.";
|
||||||
|
case 3: return "You are dead.";
|
||||||
|
case 4: return "You have Deserter.";
|
||||||
|
case 5: return "You do not meet the requirements.";
|
||||||
|
default: return "Teleport to dungeon denied.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// LFG outgoing packets
|
// LFG outgoing packets
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -139,6 +139,51 @@ namespace {
|
||||||
}
|
}
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Collect all non-comment, non-empty lines from a macro body.
|
||||||
|
std::vector<std::string> allMacroCommands(const std::string& macroText) {
|
||||||
|
std::vector<std::string> cmds;
|
||||||
|
size_t pos = 0;
|
||||||
|
while (pos <= macroText.size()) {
|
||||||
|
size_t nl = macroText.find('\n', pos);
|
||||||
|
std::string line = (nl != std::string::npos) ? macroText.substr(pos, nl - pos) : macroText.substr(pos);
|
||||||
|
if (!line.empty() && line.back() == '\r') line.pop_back();
|
||||||
|
size_t start = line.find_first_not_of(" \t");
|
||||||
|
if (start != std::string::npos) line = line.substr(start);
|
||||||
|
if (!line.empty() && line.front() != '#')
|
||||||
|
cmds.push_back(std::move(line));
|
||||||
|
if (nl == std::string::npos) break;
|
||||||
|
pos = nl + 1;
|
||||||
|
}
|
||||||
|
return cmds;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns the #showtooltip argument from a macro body.
|
||||||
|
std::string getMacroShowtooltipArg(const std::string& macroText) {
|
||||||
|
size_t pos = 0;
|
||||||
|
while (pos <= macroText.size()) {
|
||||||
|
size_t nl = macroText.find('\n', pos);
|
||||||
|
std::string line = (nl != std::string::npos) ? macroText.substr(pos, nl - pos) : macroText.substr(pos);
|
||||||
|
if (!line.empty() && line.back() == '\r') line.pop_back();
|
||||||
|
size_t fs = line.find_first_not_of(" \t");
|
||||||
|
if (fs != std::string::npos) line = line.substr(fs);
|
||||||
|
if (line.rfind("#showtooltip", 0) == 0 || line.rfind("#show", 0) == 0) {
|
||||||
|
size_t sp = line.find(' ');
|
||||||
|
if (sp != std::string::npos) {
|
||||||
|
std::string arg = line.substr(sp + 1);
|
||||||
|
size_t as = arg.find_first_not_of(" \t");
|
||||||
|
if (as != std::string::npos) arg = arg.substr(as);
|
||||||
|
size_t ae = arg.find_last_not_of(" \t");
|
||||||
|
if (ae != std::string::npos) arg.resize(ae + 1);
|
||||||
|
if (!arg.empty()) return arg;
|
||||||
|
}
|
||||||
|
return "__auto__";
|
||||||
|
}
|
||||||
|
if (nl == std::string::npos) break;
|
||||||
|
pos = nl + 1;
|
||||||
|
}
|
||||||
|
return {};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace wowee { namespace ui {
|
namespace wowee { namespace ui {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue