From f85be9e7429c2aa4d85e409ecafa7e6b7e7ec6e8 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Tue, 12 May 2015 18:33:24 -0700 Subject: [PATCH] Fix: Event manager list index out of bounds This commit prevents a runtime of "list index out of bounds" with events by adding a simple sanity checking system, so that the list checked always has a valid check, regardless of if the event has a valid variable. NOTE: May result in unintended behaviour if an event tries to complete with an invalid severity level. It will always be set to moderate, as that is a safe assumption for the code to make. --- code/modules/events/event_manager.dm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm index cdb1dc9a4b4..2a53d572c68 100644 --- a/code/modules/events/event_manager.dm +++ b/code/modules/events/event_manager.dm @@ -39,8 +39,19 @@ finished_events += E + var/theseverity + + if(!E.severity) + theseverity = EVENT_LEVEL_MODERATE + + if(!E.severity == EVENT_LEVEL_MUNDANE && !E.severity == EVENT_LEVEL_MODERATE && !E.severity == EVENT_LEVEL_MAJOR) + theseverity = EVENT_LEVEL_MODERATE //just to be careful + + if(E.severity) + theseverity = E.severity + // Add the event back to the list of available events - var/datum/event_container/EC = event_containers[E.severity] + var/datum/event_container/EC = event_containers[theseverity] var/datum/event_meta/EM = E.event_meta EC.available_events += EM