Skip to content

Commit 10855d1

Browse files
committed
[GameState|Key] Fixed registry access for singleplayer games.
1 parent 3340259 commit 10855d1

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

source/client/states/GameState.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ void GameState::onEvent(const sf::Event &event) {
121121
gk::Mouse::setCursorVisible(false);
122122
}
123123
else if (event.type == sf::Event::KeyPressed) {
124-
for (auto &key : m_registry.keys()) {
124+
for (auto &key : Registry::getInstance().keys()) {
125125
if (event.key.code == key.keycode()) {
126126
m_clientCommandHandler.sendKeyPressed(key.id());
127127
}
@@ -152,7 +152,7 @@ void GameState::update() {
152152
}
153153

154154
if (!m_areModKeysLoaded) {
155-
for (auto &it : m_registry.keys()) {
155+
for (auto &it : Registry::getInstance().keys()) {
156156
m_keyboardHandler->addKey(it.id(), it.name(), it.keycode(), it.stringID(), &it);
157157
}
158158

source/common/world/Key.hpp

+8-9
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,8 @@ class Key : public ISerializable {
4545
Key(u16 id, const std::string &stringID, const std::string &name)
4646
: m_id(id), m_stringID(stringID), m_name(name) {}
4747

48-
void serialize(sf::Packet &packet) const override {
49-
packet << m_id << m_stringID << m_name << m_defaultKey;
50-
}
51-
52-
void deserialize(sf::Packet &packet) override {
53-
packet >> m_id >> m_stringID >> m_name >> m_defaultKey;
54-
m_keycode = gk::KeyboardUtils::getKeyFromName(m_defaultKey);
55-
}
48+
void serialize(sf::Packet &packet) const override { packet << m_id << m_stringID << m_name << m_defaultKey; }
49+
void deserialize(sf::Packet &packet) override { packet >> m_id >> m_stringID >> m_name >> m_defaultKey; }
5650

5751
u16 id() const { return m_id; }
5852

@@ -64,7 +58,12 @@ class Key : public ISerializable {
6458
void setKeycode(sf::Keyboard::Key keycode) { m_keycode = keycode; if (m_parent) m_parent->m_keycode = keycode; }
6559

6660
const std::string &defaultKey() const { return m_defaultKey; }
67-
void setDefaultKey(const std::string &defaultKey) { m_defaultKey = defaultKey; }
61+
void setDefaultKey(const std::string &defaultKey) {
62+
m_defaultKey = defaultKey;
63+
64+
if (m_keycode == sf::Keyboard::Unknown)
65+
m_keycode = gk::KeyboardUtils::getKeyFromName(m_defaultKey);
66+
}
6867

6968
const sol::unsafe_function &callback() const { return m_callback; }
7069
void setCallback(const sol::unsafe_function &callback) { m_callback = callback; }

0 commit comments

Comments
 (0)