| 271 | } |
| 272 | |
| 273 | static void GameScriptHandleKilled(short itemNumber, bool destroyed) |
| 274 | { |
| 275 | auto* item = &g_Level.Items[itemNumber]; |
| 276 | |
| 277 | g_GameScriptEntities->TryRemoveColliding(itemNumber, true); |
| 278 | if (!item->Callbacks.OnKilled.empty()) |
| 279 | g_GameScript->ExecuteFunction(item->Callbacks.OnKilled, itemNumber); |
| 280 | |
| 281 | if (destroyed) |
| 282 | { |
| 283 | g_GameScriptEntities->NotifyKilled(item); |
| 284 | item->Name.clear(); |
| 285 | item->Callbacks.OnKilled.clear(); |
| 286 | item->Callbacks.OnHit.clear(); |
| 287 | item->Callbacks.OnObjectCollided.clear(); |
| 288 | item->Callbacks.OnRoomCollided.clear(); |
| 289 | } |
| 290 | } |
| 291 | |
| 292 | void KillItem(short const itemNumber) |
| 293 | { |
no test coverage detected