events.cxx

changeset 36
a8838b5f1213
parent 17
b4fcc69e426a
equal deleted inserted replaced
35:3d3f6ed40171 36:a8838b5f1213
45 #include "scriptreader.h" 45 #include "scriptreader.h"
46 #include "str.h" 46 #include "str.h"
47 #include "events.h" 47 #include "events.h"
48 48
49 EventDef* g_EventDef; 49 EventDef* g_EventDef;
50
51 // ============================================================================
52 // Read event definitions from file
50 void ReadEvents () { 53 void ReadEvents () {
51 ScriptReader* r = new ScriptReader ("events.def"); 54 ScriptReader* r = new ScriptReader ("events.def");
52 g_EventDef = NULL; 55 g_EventDef = NULL;
53 EventDef* curdef = g_EventDef; 56 EventDef* curdef = g_EventDef;
54 unsigned int numEventDefs = 0; 57 unsigned int numEventDefs = 0;
73 76
74 delete r; 77 delete r;
75 printf ("%d event definitions read.\n", numEventDefs); 78 printf ("%d event definitions read.\n", numEventDefs);
76 } 79 }
77 80
81 // ============================================================================
82 // Delete event definitions recursively
78 void UnlinkEvents (EventDef* e) { 83 void UnlinkEvents (EventDef* e) {
79 if (e->next) 84 if (e->next)
80 UnlinkEvents (e->next); 85 UnlinkEvents (e->next);
81 delete e; 86 delete e;
82 } 87 }
83 88
89 // ============================================================================
90 // Finds an event definition by index
84 EventDef* FindEventByIdx (unsigned int idx) { 91 EventDef* FindEventByIdx (unsigned int idx) {
85 EventDef* e = g_EventDef; 92 EventDef* e = g_EventDef;
86 while (idx > 0) { 93 while (idx > 0) {
87 if (!e->next) 94 if (!e->next)
88 return NULL; 95 return NULL;
90 idx--; 97 idx--;
91 } 98 }
92 return e; 99 return e;
93 } 100 }
94 101
102 // ============================================================================
103 // Finds an event definition by name
95 EventDef* FindEventByName (str a) { 104 EventDef* FindEventByName (str a) {
96 EventDef* e; 105 EventDef* e;
97 for (e = g_EventDef; e->next != NULL; e = e->next) { 106 for (e = g_EventDef; e->next != NULL; e = e->next) {
98 if (!a.icompare (e->name)) 107 if (!a.icompare (e->name))
99 return e; 108 return e;

mercurial