diff --git a/src/addons/lua_engine.cpp b/src/addons/lua_engine.cpp index 3f16e67a..d694e52e 100644 --- a/src/addons/lua_engine.cpp +++ b/src/addons/lua_engine.cpp @@ -26,9 +26,9 @@ static void toLowerInPlace(std::string& s) { } // Lua return helpers — used 200+ times as guard/fallback returns -static int luaReturnNil(lua_State* L) { return luaReturnNil(L); } -static int luaReturnZero(lua_State* L) { return luaReturnZero(L); } -static int luaReturnFalse(lua_State* L){ return luaReturnFalse(L); } +static int luaReturnNil(lua_State* L) { lua_pushnil(L); return 1; } +static int luaReturnZero(lua_State* L) { lua_pushnumber(L, 0); return 1; } +static int luaReturnFalse(lua_State* L){ lua_pushboolean(L, 0); return 1; } // Shared GetTime() epoch — all time-returning functions must use this same origin // so that addon calculations like (start + duration - GetTime()) are consistent. diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index 265a23c3..539006a7 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -116,7 +116,7 @@ bool isClassicLikeExpansion() { } bool isPreWotlk() { - return isPreWotlk(); + return isClassicLikeExpansion() || isActiveExpansion("tbc"); } bool envFlagEnabled(const char* key, bool defaultValue = false) { @@ -3508,8 +3508,8 @@ void GameHandler::registerOpcodeHandlers() { } if (!leaderName.empty()) addSystemChatMessage(leaderName + " is now the group leader."); - fireAddonEvent("PARTY_LEADER_CHANGED", {}); - fireAddonEvent("GROUP_ROSTER_UPDATE", {}); + fireAddonEvent("PARTY_LEADER_CHANGED", {}); + fireAddonEvent("GROUP_ROSTER_UPDATE", {}); }; // Gameobject / page text @@ -3846,15 +3846,15 @@ void GameHandler::registerOpcodeHandlers() { } } }; - dispatchTable_[Opcode::SMSG_FISH_NOT_HOOKED] = [this](network::Packet& packet) { + dispatchTable_[Opcode::SMSG_FISH_NOT_HOOKED] = [this](network::Packet& /*packet*/) { addSystemChatMessage("Your fish got away."); }; - dispatchTable_[Opcode::SMSG_FISH_ESCAPED] = [this](network::Packet& packet) { + dispatchTable_[Opcode::SMSG_FISH_ESCAPED] = [this](network::Packet& /*packet*/) { addSystemChatMessage("Your fish escaped!"); }; // ---- Auto-repeat / auras / dispel / totem ---- - dispatchTable_[Opcode::SMSG_CANCEL_AUTO_REPEAT] = [this](network::Packet& packet) { + dispatchTable_[Opcode::SMSG_CANCEL_AUTO_REPEAT] = [this](network::Packet& /*packet*/) { // Server signals to stop a repeating spell (wand/shoot); no client action needed }; dispatchTable_[Opcode::SMSG_AURA_UPDATE] = [this](network::Packet& packet) { @@ -18132,7 +18132,7 @@ void GameHandler::handlePetSpells(network::Packet& packet) { petCommand_ = packet.readUInt8(); // 0=stay, 1=follow, 2=attack, 3=dismiss // 10 × uint32 action bar slots - if (!packet.hasRemaining(PET_ACTION_BAR_SLOTS) * 4u) goto done; + if (!packet.hasRemaining(PET_ACTION_BAR_SLOTS * 4u)) goto done; for (int i = 0; i < PET_ACTION_BAR_SLOTS; ++i) { petActionSlots_[i] = packet.readUInt32(); } @@ -20387,7 +20387,7 @@ void GameHandler::handleQuestPoiQueryResponse(network::Packet& packet) { packet.readUInt32(); // unk2 const uint32_t pointCount = packet.readUInt32(); if (pointCount == 0) continue; - if (!packet.hasRemaining(pointCount) * 8) return; + if (!packet.hasRemaining(pointCount * 8)) return; // Compute centroid of the poi region to place a minimap marker. float sumX = 0.0f, sumY = 0.0f; for (uint32_t pt = 0; pt < pointCount; ++pt) { diff --git a/src/game/world_packets.cpp b/src/game/world_packets.cpp index 7a156f8e..84ec7002 100644 --- a/src/game/world_packets.cpp +++ b/src/game/world_packets.cpp @@ -20,22 +20,6 @@ namespace { return static_cast(((v & 0xFF00u) >> 8) | ((v & 0x00FFu) << 8)); } - bool hasFullPackedGuid(const wowee::network::Packet& packet) { - if (!packet.hasData()) { - return false; - } - - const auto& rawData = packet.getData(); - const uint8_t mask = rawData[packet.getReadPos()]; - size_t guidBytes = 1; - for (int bit = 0; bit < 8; ++bit) { - if ((mask & (1u << bit)) != 0) { - ++guidBytes; - } - } - return packet.hasRemaining(guidBytes); - } - const char* updateTypeName(wowee::game::UpdateType type) { using wowee::game::UpdateType; switch (type) {