@@ -334,28 +334,29 @@ class BlockLegacy {
334
334
LLNDAPI static optional_ref<BlockLegacy const > tryGetFromRegistry (uint legacyBlockID);
335
335
336
336
template <typename T>
337
- T getState (uint64 id, ushort data) const {
337
+ std::optional<T> getState (uint64 id, ushort data) const {
338
338
auto it = mStates ->lower_bound (id);
339
339
340
340
if (it == mStates ->end () || it->first != id) {
341
341
std::optional<int > result = _tryLookupAlteredStateCollection (id, data);
342
342
if (result.has_value ()) {
343
343
return static_cast <T>(result.value ());
344
344
} else {
345
- return T{} ;
345
+ return std::nullopt ;
346
346
}
347
347
}
348
348
349
349
return it->second .get <T>(data);
350
350
}
351
351
352
352
template <typename T>
353
- T getState (BlockState const & stateType, ushort data) const {
353
+ std::optional<T> getState (BlockState const & stateType, ushort data) const {
354
354
return getState<T>(stateType.mID , data);
355
355
}
356
356
357
357
template <typename T>
358
- Block const * trySetState (uint64 id, T val, ushort data) {
358
+ requires (std::is_integral_v<T> || std::is_enum_v<T>)
359
+ optional_ref<Block const > trySetState (uint64 id, T val, ushort data) {
359
360
auto it = mStates ->lower_bound (id);
360
361
361
362
if (it != mStates ->end () && it->first == id) {
@@ -372,8 +373,7 @@ class BlockLegacy {
372
373
}
373
374
}
374
375
375
- Block const * alteredStateBlock = _trySetStateFromAlteredStateCollection (id, static_cast <int >(val), data);
376
- if (alteredStateBlock) {
376
+ if (auto alteredStateBlock = _trySetStateFromAlteredStateCollection (id, static_cast <int >(val), data)) {
377
377
return alteredStateBlock;
378
378
}
379
379
@@ -385,7 +385,7 @@ class BlockLegacy {
385
385
}
386
386
387
387
template <typename T>
388
- Block const * trySetState (BlockState const & stateType, T val, ushort data) {
388
+ optional_ref< Block const > trySetState (BlockState const & stateType, T val, ushort data) {
389
389
return trySetState (stateType.mID , val, data);
390
390
}
391
391
0 commit comments