Skip to content

Commit 752e0ef

Browse files
committed
feat(DaedalusScript): add API for DaedalusSymbol::set_instance
Prerequisite for GothicKit/ZenKitCS#25
1 parent 40b684a commit 752e0ef

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

include/zenkit-capi/DaedalusScript.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ ZKC_API void
151151
ZkDaedalusSymbol_setString(ZkDaedalusSymbol* slf, ZkString value, uint16_t index, ZkDaedalusInstance* context);
152152
ZKC_API void ZkDaedalusSymbol_setFloat(ZkDaedalusSymbol* slf, float value, uint16_t index, ZkDaedalusInstance* context);
153153
ZKC_API void ZkDaedalusSymbol_setInt(ZkDaedalusSymbol* slf, int32_t value, uint16_t index, ZkDaedalusInstance* context);
154+
ZKC_API void ZkDaedalusSymbol_setInstance(ZkDaedalusSymbol* slf, ZkDaedalusInstance* value);
154155

155156
ZKC_API ZkBool ZkDaedalusSymbol_getIsConst(ZkDaedalusSymbol const* slf);
156157
ZKC_API ZkBool ZkDaedalusSymbol_getIsMember(ZkDaedalusSymbol const* slf);

src/DaedalusScript.cc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,16 @@ void ZkDaedalusSymbol_setFloat(ZkDaedalusSymbol* slf, float value, uint16_t inde
174174
ZKC_CATCH(slf->set_float(value, index, context ? context->get() : nullptr));
175175
}
176176

177+
void ZkDaedalusSymbol_setInstance(ZkDaedalusSymbol* slf, ZkDaedalusInstance* value) {
178+
ZKC_CHECK_NULLV(slf);
179+
180+
try {
181+
slf->set_instance(value ? *value : nullptr);
182+
} catch (std::runtime_error const& exc) {
183+
ZKC_LOG_ERROR("ZkDaedalusSymbol_setInstance() failed: %s", exc.what());
184+
}
185+
}
186+
177187
void ZkDaedalusSymbol_setInt(ZkDaedalusSymbol* slf, int32_t value, uint16_t index, ZkDaedalusInstance* context) {
178188
ZKC_CHECK_NULLV(slf);
179189
ZKC_CATCH(slf->set_int(value, index, context ? context->get() : nullptr));

0 commit comments

Comments
 (0)