src/events.cc

changeset 82
841562f5a32f
parent 81
071715c17296
child 85
264a61e9eba0
equal deleted inserted replaced
81:071715c17296 82:841562f5a32f
38 38
39 static void unlink_events(); 39 static void unlink_events();
40 static list<event_info*> g_events; 40 static list<event_info*> g_events;
41 41
42 // ============================================================================ 42 // ============================================================================
43 // Read event definitions from file 43 //
44 void init_events() 44 void add_event (event_info* e)
45 { 45 {
46 lexer lx; 46 g_events << e;
47 lx.process_file ("events.def");
48 int num_events = 0;
49
50 while (lx.get_next())
51 {
52 lx.must_be (tk_symbol);
53 event_info* e = new event_info;
54 e->name = lx.get_token()->text;
55 e->number = num_events++;
56 g_events << e;
57 }
58
59 printf ("%d event definitions read.\n", num_events);
60 atexit (&unlink_events);
61 } 47 }
62 48
63 // ============================================================================ 49 // ============================================================================
64 // Delete event definitions recursively 50 // Delete event definitions recursively
51 //
65 static void unlink_events() 52 static void unlink_events()
66 { 53 {
67 print ("Freeing event information.\n");
68
69 for (event_info* e : g_events) 54 for (event_info* e : g_events)
70 delete e; 55 delete e;
71 56
72 g_events.clear(); 57 g_events.clear();
73 } 58 }

mercurial