44 #include <stdlib.h> |
44 #include <stdlib.h> |
45 #include "common.h" |
45 #include "common.h" |
46 #include "str.h" |
46 #include "str.h" |
47 #include "objwriter.h" |
47 #include "objwriter.h" |
48 #include "scriptreader.h" |
48 #include "scriptreader.h" |
|
49 #include "events.h" |
49 |
50 |
50 #define TOKEN_CHARS token.chars() |
51 #define TOKEN_CHARS token.chars() |
51 #define TOKEN_IS(s) !token.compare (s) |
52 #define TOKEN_IS(s) !token.compare (s) |
52 #define MUST_TOPLEVEL if (g_CurMode != MODE_TOPLEVEL) \ |
53 #define MUST_TOPLEVEL if (g_CurMode != MODE_TOPLEVEL) \ |
53 ParseError ("%ss may only be defined at top level!", token.chars()); |
54 ParseError ("%ss may only be defined at top level!", token.chars()); |
95 MUST_TOPLEVEL |
96 MUST_TOPLEVEL |
96 |
97 |
97 // Event definition |
98 // Event definition |
98 MustNext (); |
99 MustNext (); |
99 |
100 |
100 // TODO: make a data file for bot events and read it |
101 EventDef* e = FindEventByName (token); |
101 #if 0 |
102 if (!e) |
102 unsigned int u; |
|
103 for (u = 0; u < NUM_BOTEVENTS; u++) { |
|
104 if (!BotEvents[u].name.compare (token)) |
|
105 break; |
|
106 } |
|
107 |
|
108 if (u == NUM_BOTEVENTS) |
|
109 ParseError ("bad event! got `%s`\n", token.chars()); |
103 ParseError ("bad event! got `%s`\n", token.chars()); |
110 |
|
111 #endif |
|
112 |
104 |
113 MustNext ("{"); |
105 MustNext ("{"); |
114 |
106 |
115 g_CurMode = MODE_EVENT; |
107 g_CurMode = MODE_EVENT; |
116 |
108 |
117 w->Write (DH_EVENT); |
109 w->Write (DH_EVENT); |
118 // w->Write<long> (u); |
110 w->Write<long> (e->number); |
119 g_NumEvents++; |
111 g_NumEvents++; |
120 } else if (TOKEN_IS ("}")) { |
112 } else if (TOKEN_IS ("}")) { |
121 // Closing brace.. |
113 // Closing brace.. |
122 switch (g_CurMode) { |
114 switch (g_CurMode) { |
123 case MODE_EVENT: |
115 case MODE_EVENT: |