added npc's gift

This commit is contained in:
Vlad committed 2026-04-12 14:52:37 +06:00
1 parent bc2997d86f
commit 34759326b9
9 files changed
+166 -15

No files matched your search

+19 -1
View File
@@ -296,6 +296,15 @@ namespace ZL {
data.modelCorrectionRotY = item.value("modelCorrectionRotY", 0.0f) * static_cast<float>(M_PI) / 180.0f;
data.modelCorrectionRotZ = item.value("modelCorrectionRotZ", 0.0f) * static_cast<float>(M_PI) / 180.0f;
// Load gift data if available
if (item.contains("gift") && item["gift"].is_object()) {
const auto& giftData = item["gift"];
data.gift.id = giftData.value("id", "");
data.gift.name = giftData.value("name", "Gift");
data.gift.description = giftData.value("description", "A gift from an NPC");
data.gift.icon = giftData.value("icon", "");
}
npcs.push_back(data);
}
@@ -356,7 +365,16 @@ namespace ZL {
npc->modelScale = npcData.modelScale;
npc->position = Eigen::Vector3f(npcData.positionX, npcData.positionY, npcData.positionZ);
// Set model correction rotation
// Set NPC metadata
npc->npcId = npcData.id;
npc->npcName = npcData.name;
// Set gift
if (!npcData.gift.id.empty()) {
npc->giftItem = Item(npcData.gift.id, npcData.gift.name, npcData.gift.description, npcData.gift.icon);
std::cout << " Gift: " << npcData.gift.name << std::endl;
}
Eigen::Quaternionf corrRotQuat = Eigen::Quaternionf::Identity();
if (npcData.modelCorrectionRotX != 0.0f) {
corrRotQuat = Eigen::Quaternionf(Eigen::AngleAxisf(npcData.modelCorrectionRotX, Eigen::Vector3f::UnitX())) * corrRotQuat;
+8
View File
@@ -34,6 +34,13 @@ namespace ZL {
std::string activateFunctionName;
};
struct GiftData {
std::string id;
std::string name;
std::string description;
std::string icon;
};
struct NpcData {
std::string id;
std::string name;
@@ -49,6 +56,7 @@ namespace ZL {
float modelCorrectionRotX = 0.0f;
float modelCorrectionRotY = 0.0f;
float modelCorrectionRotZ = 0.0f;
GiftData gift;
};
struct LoadedGameObject {