Skip to content

Commit

Permalink
hack the second
Browse files Browse the repository at this point in the history
* might work better now, still needs testing
  • Loading branch information
mlthelama committed Dec 28, 2023
1 parent ccc58d6 commit 299a7ce
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 17 deletions.
20 changes: 8 additions & 12 deletions src/equip/item.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,16 +54,18 @@ namespace equip {
auto simple_extra_data_list = entry->extraLists;
if (simple_extra_data_list) {
for (auto* extra_data : *simple_extra_data_list) {
extra = extra_data;
//extra = extra_data;
auto worn_right = extra_data->HasType(RE::ExtraDataType::kWorn);
auto worn_left = extra_data->HasType(RE::ExtraDataType::kWornLeft);
logger::trace("extra data {}, worn right {}, worn left {}"sv,
extra_data->GetCount(),
worn_right,
worn_left);
if (!worn_right || !worn_left) {
extra_vector.push_back(extra_data);
if (worn_right || worn_left) {
continue;
}

extra_vector.push_back(extra_data);
}
}
break;
Expand All @@ -88,13 +90,7 @@ namespace equip {
if (!extra_vector.empty()) {
extra = extra_vector.back();
extra_vector.pop_back(); //remove last item, because we already use that
if (extra_vector.empty() && ((left && extra->HasType(RE::ExtraDataType::kWorn) ||
(!left && extra->HasType(RE::ExtraDataType::kWornLeft))))) {
extra = nullptr;
} else if (!extra_vector.empty()) {
extra = extra_vector.back();
extra_vector.pop_back(); //remove last item, because we already use that
}

extra_handler->init_extra_data(a_form, extra_vector);
logger::trace("set {} extra data for form {}"sv, extra_vector.size(), a_form->GetName());
}
Expand All @@ -115,12 +111,12 @@ namespace equip {
auto equipped_count = 0;
if (obj_right && obj_right->formID == obj->formID) {
equipped_count++;
logger::debug("Object {} already equipped."sv, obj->GetName());
logger::debug("Object {} already equipped (right)."sv, obj->GetName());
}

if (obj_left && obj_left->formID == obj->formID) {
equipped_count++;
logger::debug("Object {} already equipped."sv, obj->GetName());
logger::debug("Object {} already equipped (left)."sv, obj->GetName());
}

logger::trace("Got a count of {} in the Inventory {}, Equipped {}"sv,
Expand Down
2 changes: 1 addition & 1 deletion src/event/equip_event.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ namespace event {
util::helper::is_two_handed(form)) {
processing::set_setting_data::check_if_location_needs_block(form, a_event->equipped);
}

return event_result::kContinue;
}
}
3 changes: 2 additions & 1 deletion src/event/key_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ namespace event {
return event_result::kContinue;
}

handle::extra_data_holder::get_singleton()->reset_data();
//handle::extra_data_holder::get_singleton()->reset_data();

for (auto* event = *a_event; event; event = event->next) {
if (event->eventType != RE::INPUT_EVENT_TYPE::kButton) {
Expand Down Expand Up @@ -188,6 +188,7 @@ namespace event {
}
}
}

return event_result::kContinue;
}

Expand Down
4 changes: 2 additions & 2 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ EXTERN_C [[maybe_unused]] __declspec(dllexport) constinit auto SKSEPlugin_Versio
return v;
}();

EXTERN_C [[maybe_unused]] __declspec(dllexport) bool SKSEAPI
SKSEPlugin_Query(const SKSE::QueryInterface* a_skse, SKSE::PluginInfo* pluginInfo) {
EXTERN_C [[maybe_unused]] __declspec(dllexport) bool SKSEAPI SKSEPlugin_Query(const SKSE::QueryInterface* a_skse,
SKSE::PluginInfo* pluginInfo) {
pluginInfo->name = SKSEPlugin_Version.pluginName;
pluginInfo->infoVersion = SKSE::PluginInfo::kVersion;
pluginInfo->version = SKSEPlugin_Version.pluginVersion;
Expand Down
7 changes: 6 additions & 1 deletion src/processing/set_setting_data.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include "equip/equip_slot.h"
#include "equip/item.h"
#include "handle/ammo_handle.h"
#include "handle/extra_data_holder.h"
#include "handle/name_handle.h"
#include "handle/page_handle.h"
#include "setting/custom_setting.h"
Expand Down Expand Up @@ -392,12 +393,15 @@ namespace processing {
setting_execute::execute_settings(position_setting->slot_settings);
}

setting_execute::execute_settings(right_position_setting->slot_settings);
if (right_position_setting && !right_position_setting->slot_settings.empty()) {
setting_execute::execute_settings(right_position_setting->slot_settings);
}

position_setting = page_handle->get_page_setting(page_handle->get_active_page_id_position(position_type::top),
position_type::top);
setting_execute::execute_settings(position_setting->slot_settings, true);

handle::extra_data_holder::get_singleton()->reset_data();
logger::trace("done equip for first set"sv);
}

Expand Down Expand Up @@ -460,6 +464,7 @@ namespace processing {
processing::setting_execute::reequip_left_hand_if_needed(setting);
}
}
handle::extra_data_holder::get_singleton()->reset_data();
logger::trace("checking for block done. return."sv);
}

Expand Down

0 comments on commit 299a7ce

Please # to comment.