Skip to content

Commit c300f1d

Browse files
committed
do not throw exceptions when parsing editor layer (fixes #174 and #180)
1 parent e32bda0 commit c300f1d

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

src/features/TypeInZLayer.cpp

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
using namespace geode::prelude;
1010

11-
class $modify(EditorUI) {
11+
class $modify(TypeInUI, EditorUI) {
1212
bool init(LevelEditorLayer* lel) {
1313
if (!EditorUI::init(lel))
1414
return false;
@@ -19,7 +19,7 @@ class $modify(EditorUI) {
1919
auto layerLockSpr = CCSprite::createWithSpriteFrameName("GJ_lockGray_001.png");
2020
layerLockSpr->setScale(.75f);
2121
auto layerLockBtn = CCMenuItemSpriteExtra::create(
22-
layerLockSpr, this, menu_selector(EditorUI::onLockLayer)
22+
layerLockSpr, this, menu_selector(TypeInUI::onLockLayerReal)
2323
);
2424
layerLockBtn->setID("lock-layer"_spr);
2525
layerMenu->insertBefore(layerLockBtn, nullptr);
@@ -28,12 +28,9 @@ class $modify(EditorUI) {
2828
m_currentLayerLabel = EditableBMLabelProxy::replace(
2929
m_currentLayerLabel, this, 40.f, "Z",
3030
[this](auto str) {
31-
try {
32-
m_editorLayer->m_currentLayer = std::stoi(str);
33-
}
34-
catch(...) {
35-
m_editorLayer->m_currentLayer = -1;
36-
}
31+
char* err;
32+
auto num = std::strtol(str.c_str(), &err, 10);
33+
m_editorLayer->m_currentLayer = *err ? -1 : num;
3734
},
3835
[this](auto) {
3936
this->updateLockBtn();

0 commit comments

Comments
 (0)