| 276 | static std::array<handler_t,EventManager::EventType::EVENT_MAX> eventHandlers; |
| 277 | |
| 278 | static void enableEvent(int evType,int freq) |
| 279 | { |
| 280 | if (freq < 0) |
| 281 | return; |
| 282 | CHECK_INVALID_ARGUMENT(evType >= 0 && evType < EventManager::EventType::EVENT_MAX && |
| 283 | evType != EventManager::EventType::TICK); |
| 284 | EventManager::EventHandler::callback_t fun_ptr = eventHandlers[evType]; |
| 285 | EventManager::EventType::EventType typeToEnable=static_cast<EventManager::EventType::EventType>(evType); |
| 286 | |
| 287 | int oldFreq = enabledEventManagerEvents[typeToEnable]; |
| 288 | if (oldFreq != -1) { |
| 289 | if (freq >= oldFreq) |
| 290 | return; |
| 291 | EventManager::unregister(typeToEnable,EventManager::EventHandler(plugin_self,fun_ptr,oldFreq)); |
| 292 | } |
| 293 | EventManager::registerListener(typeToEnable,EventManager::EventHandler(plugin_self,fun_ptr,freq)); |
| 294 | enabledEventManagerEvents[typeToEnable] = freq; |
| 295 | } |
| 296 | DFHACK_PLUGIN_LUA_FUNCTIONS{ |
| 297 | DFHACK_LUA_FUNCTION(enableEvent), |
| 298 | DFHACK_LUA_END |
nothing calls this directly
no test coverage detected