Investigate groundspawn desync

This commit is contained in:
Vayle
2026-03-18 20:09:59 -04:00
parent 40e0aef44f
commit 510af32dad
5 changed files with 19 additions and 6 deletions
+5 -1
View File
@@ -71,7 +71,11 @@ if(UNIX)
endif()
endif()
find_package(Boost REQUIRED COMPONENTS dynamic_bitset foreach tuple)
find_package(Boost REQUIRED)
set(EQEMU_BOOST_HEADER_TARGET Boost::headers)
if(NOT TARGET Boost::headers)
set(EQEMU_BOOST_HEADER_TARGET Boost::boost)
endif()
find_package(cereal CONFIG REQUIRED)
find_package(fmt CONFIG REQUIRED)
find_package(glm CONFIG REQUIRED)
+1 -1
View File
@@ -23,7 +23,7 @@ set(lb_sources
add_library(luabind ${lb_sources})
target_include_directories(luabind PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${LUAJIT_INCLUDE_DIR})
target_link_libraries(luabind PUBLIC Boost::dynamic_bitset Boost::tuple Boost::foreach ${LUAJIT_LIBRARY})
target_link_libraries(luabind PUBLIC ${EQEMU_BOOST_HEADER_TARGET} ${LUAJIT_LIBRARY})
target_include_directories(luabind PRIVATE ..)
if(UNIX)
+1 -1
View File
@@ -685,7 +685,7 @@ add_definitions(-DZONE)
if(EQEMU_BUILD_LUA)
target_compile_definitions(lua_zone PUBLIC LUA_EQEMU)
target_link_libraries(lua_zone PUBLIC luabind Boost::dynamic_bitset Boost::tuple Boost::foreach common)
target_link_libraries(lua_zone PUBLIC luabind ${EQEMU_BOOST_HEADER_TARGET} common)
if (EQEMU_BUILD_STATIC AND LUA_LIBRARY)
target_link_libraries(zone PRIVATE ${LUA_LIBRARY})
endif()
+2 -3
View File
@@ -679,9 +679,8 @@ bool Object::HandleClick(Client* sender, const ClickObject_Struct* click_object)
}
}
// Transfer item to client
sender->PutItemInInventory(EQ::invslot::slotCursor, *m_inst, false);
sender->SendItemPacket(EQ::invslot::slotCursor, m_inst, ItemPacketTrade);
// Transfer item to client using the normal cursor update path.
sender->PutItemInInventory(EQ::invslot::slotCursor, *m_inst, true);
sender->CheckItemDiscoverability(m_inst->GetID());
+10
View File
@@ -354,6 +354,16 @@ bool Zone::LoadGroundSpawns() {
const uint32 max_allowed = g.spawn[slot_id].max_allowed;
if (inst) {
const auto* item = inst->GetItem();
if (
item &&
!inst->IsStackable() &&
inst->GetCharges() == 0 &&
item->MaxCharges > 0
) {
inst->SetCharges(item->MaxCharges);
}
for (uint32 i = 0; i < max_allowed; i++) {
auto object = new Object(
inst,