Fixed assignments with case-insensitive event names

This commit is contained in:
smallmodel 2023-08-19 00:57:19 +02:00
parent 9ba5710412
commit f16b992a97
No known key found for this signature in database
GPG key ID: A96F163ED4891440

View file

@ -248,11 +248,10 @@ bool ScriptCompiler::BuiltinWriteVariable(unsigned int sourcePos, int type, int
void ScriptCompiler::EmitAssignmentStatement(sval_t lhs, unsigned int sourcePos) void ScriptCompiler::EmitAssignmentStatement(sval_t lhs, unsigned int sourcePos)
{ {
int eventnum; int eventnum;
sval_t listener_val; unsigned int index;
const char *name = lhs.node[2].stringValue; sval_t listener_val;
str name2 = name; const char *name = lhs.node[2].stringValue;
name2.tolower();
if (lhs.node[0].type != ENUM_field) { if (lhs.node[0].type != ENUM_field) {
if (lhs.node[0].type == ENUM_array_expr) { if (lhs.node[0].type == ENUM_array_expr) {
@ -265,13 +264,8 @@ void ScriptCompiler::EmitAssignmentStatement(sval_t lhs, unsigned int sourcePos)
return; return;
} }
unsigned int index = Director.AddString(name); index = Director.AddString(name);
eventnum = Event::FindSetterEventNum(name);
eventnum = Event::FindSetterEventNum(name2);
if (eventnum) {
index = Director.GetString(name2);
}
listener_val = lhs.node[1]; listener_val = lhs.node[1];