Skip to content
This repository was archived by the owner on Jun 27, 2025. It is now read-only.

Commit 91b7f1f

Browse files
committed
Fixed empty parameters issue
This changes the list implementation for params. Recommendation is to update this for add-ons that make use of this.
1 parent 180e624 commit 91b7f1f

File tree

3 files changed

+36
-20
lines changed

3 files changed

+36
-20
lines changed

client.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//
22
// EventScript Client
33
// Author: McTwist (9845)
4-
// Date: 2018-01-15
4+
// Date: 2018-02-06
55
//
66
// Contains the client version of transforming an EventScript list object
77
// into either readable script or usable events.
@@ -73,7 +73,7 @@ function EventScriptClient_save()
7373
// Output event
7474
%outputEventName = %event.getObject(%n++).getValue();
7575

76-
%params = "";
76+
%params = 0;
7777

7878
// Parameters
7979
for (%n++; %n < %event.getCount(); %n++)
@@ -99,7 +99,8 @@ SPC atof(%param.getObject(1).getValue())
9999
default:
100100
%val = %param.getValue();
101101
}
102-
%params = (%params !$= "") ? %params TAB %val : %val;
102+
%params[%params] = %val;
103+
%params++;
103104
}
104105

105106
// Store into list
@@ -110,6 +111,8 @@ SPC atof(%param.getObject(1).getValue())
110111
%list.value[%i, "NTName"] = %NTName;
111112
%list.value[%i, "outputEventName"] = %outputEventName;
112113
%list.value[%i, "params"] = %params;
114+
for (%m = 0; %m < %params; %m++)
115+
%list.value[%i, "params", %m] = %params[%m];
113116
%list.count++;
114117
}
115118

@@ -150,7 +153,9 @@ function EventScriptClient_load(%script)
150153
%targetName = %list.value[%i, "targetName"];
151154
%NTName = %list.value[%i, "NTName"];
152155
%outputEventName = %list.value[%i, "outputEventName"];
153-
%params = %list.value[%i, "params"];
156+
%params = %list.value[%i, "params"] | 0;
157+
for (%m = 0; %m < %params; %m++)
158+
%params[%m] = %list.value[%i, "params", %m];
154159

155160
%event = WrenchEvents_Box.getObject(WrenchEvents_Box.getCount() - 1);
156161
%n = -1;
@@ -236,7 +241,7 @@ function EventScriptClient_load(%script)
236241
%event.getObject(%n).setSelected(%outputEventIdx);
237242
%n++;
238243

239-
if (getFieldCount(%params) != (%event.getCount() - %n))
244+
if (%params != (%event.getCount() - %n))
240245
{
241246
EventScriptClient_error("Error :: Invalid amount of parameters for output event \"" @ %outputEventName @ "\" on line " @ %line);
242247
$WrenchEventLoading = 0;
@@ -248,7 +253,7 @@ function EventScriptClient_load(%script)
248253
{
249254
%param = %event.getObject(%n);
250255

251-
%par = getField(%params, %m++);
256+
%par = %params[%m++];
252257

253258
switch$ (%param.getClassName())
254259
{

script.cs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// ======================
22
// EventScript
33
// Author: McTwist (9845)
4-
// Version: 1.4.20180115
4+
// Version: 1.5.20180206
55
// ======================
66
// EventScript is a script language designed for an easier conversion
77
// between the in-game event system and a text version that can be used
@@ -550,8 +550,10 @@ function EventScript_fromScript(%script, %error)
550550
%data = strReplace(%data, "\\\"", "\"");
551551
%data = strReplace(%data, "\\\\", "\\");
552552

553-
// Append list (Dependency)
554-
%list.value[%list.count, "params"] = pushBack(%list.value[%list.count, "params"], %data, "\t");
553+
// Append list
554+
%list.value[%list.count, "params"] |= 0;
555+
%list.value[%list.count, "params", %list.value[%list.count, "params"]] = %data;
556+
%list.value[%list.count, "params"]++;
555557

556558
%i = %n;
557559

@@ -669,8 +671,10 @@ function EventScript_fromScript(%script, %error)
669671

670672
%data = trim(getSubStr(%script, %i, %n - %i));
671673

672-
// Append list (Dependency)
673-
%list.value[%list.count, "params"] = pushBack(%list.value[%list.count, "params"], %data, "\t");
674+
// Append list
675+
%list.value[%list.count, "params"] |= 0;
676+
%list.value[%list.count, "params", %list.value[%list.count, "params"]] = %data;
677+
%list.value[%list.count, "params"]++;
674678

675679
%i = %n;
676680

@@ -929,7 +933,7 @@ function EventScript_fromScript(%script, %error)
929933
}
930934
}
931935

932-
%list.value[%index, "params"] = setField(%list.value[%index, "params"], %param, %params);
936+
%list.value[%index, "params", %param] = %params;
933937
}
934938

935939
return %list;
@@ -955,6 +959,8 @@ function EventScript_toScript(%list)
955959
%NTName = %list.value[%i, "NTName"];
956960
%outputEventName = %list.value[%i, "outputEventName"];
957961
%params = %list.value[%i, "params"];
962+
for (%m = 0; %m < %params; %m++)
963+
%params[%m] = %list.value[%i, "params", %m];
958964

959965
// Enabled
960966
%script = %script @ "[" @ (%enabled ? "x" : " ") @ "]";
@@ -976,7 +982,7 @@ function EventScript_toScript(%list)
976982
%script = %script @ " -> " @ %outputEventName;
977983

978984
// Parameters
979-
%count = getFieldCount(%params);
985+
%count = %params;
980986
if (%count > 0)
981987
%script = %script @ "(";
982988

@@ -985,7 +991,7 @@ function EventScript_toScript(%list)
985991
if (%n != 0)
986992
%script = %script @ ", ";
987993

988-
%param = getField(%params, %n);
994+
%param = %params[%n];
989995

990996
// Check if number
991997
if ((%param + 0) $= %param)

server.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//
22
// EventScript Server
33
// Author: McTwist (9845)
4-
// Date: 2017-11-19
4+
// Date: 2018-02-06
55
//
66
// Contains the server version of transforming an EventScript list object
77
// into either readable script or usable events.
@@ -44,7 +44,7 @@ function EventScriptServer_save(%brick)
4444
%paramCount = outputEvent_GetNumParametersFromIdx(%targetClass, %brick.eventOutputIdx[%i]);
4545
%paramList = $OutputEvent_parameterList[%targetClass, %brick.eventOutputIdx[%i]];
4646

47-
%params = "";
47+
%params = 0;
4848
for (%n = 0; %n < %paramCount; %n++)
4949
{
5050
%paramField = getField(%paramList, %n);
@@ -76,10 +76,13 @@ function EventScriptServer_save(%brick)
7676
%param = getColorIDTable(%param);
7777
}
7878

79-
%params = setField(%params, %n, %param);
79+
%params[%n] = %param;
8080
}
81+
%params = %paramCount;
8182

8283
%list.value[%i, "params"] = %params;
84+
for (%m = 0; %m < %params; %m++)
85+
%list.value[%i, "params", %m] = %params[%m];
8386

8487
%list.count++;
8588
}
@@ -118,7 +121,9 @@ function EventScriptServer_load(%brick, %script)
118121
%targetName = %list.value[%i, "targetName"];
119122
%NTName = %list.value[%i, "NTName"];
120123
%outputEventName = %list.value[%i, "outputEventName"];
121-
%params = %list.value[%i, "params"];
124+
%params = %list.value[%i, "params"] | 0;
125+
for (%m = 0; %m < %params; %m++)
126+
%params[%m] = %list.value[%i, "params", %m];
122127

123128
// Enabled
124129
%brick.eventEnabled[%brick.numEvents] = !!%enabled;
@@ -179,7 +184,7 @@ function EventScriptServer_load(%brick, %script)
179184
// Parameters
180185
%paramCount = outputEvent_GetNumParametersFromIdx(%targetClass, %outputEventIdx);
181186
%paramList = $OutputEvent_parameterList[%targetClass, %outputEventIdx];
182-
%count = getFieldCount(%params);
187+
%count = %params;
183188
if (%paramCount != %count)
184189
{
185190
error("EventScriptServer_load :: Invalid amount of parameters for \"" @ %outputEventName @ "\" on line " @ %line);
@@ -189,7 +194,7 @@ function EventScriptServer_load(%brick, %script)
189194
for (%n = 0; %n <= %count; %n++)
190195
{
191196
%paramField = getField(%paramList, %n);
192-
%param = getField(%params, %n);
197+
%param = %params[%n];
193198

194199
// Translate parameter
195200
switch$ (strlwr(getWord(%paramField, 0)))

0 commit comments

Comments
 (0)