-
Notifications
You must be signed in to change notification settings - Fork 53
Expand file tree
/
Copy pathTypeCasting.wurst
More file actions
413 lines (345 loc) · 14.2 KB
/
TypeCasting.wurst
File metadata and controls
413 lines (345 loc) · 14.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
package TypeCasting
import NoWurst
import _Handles
import Table
import Annotations
import BasicTypeClasses
constant typecastdata = new Table()
/** How many decimals to preserve for reals */
@configurable constant R2I_PRECISION = 1000.
@compiletime function initTypecastData()
typecastdata.saveString(0, "")
init
initTypecastData()
public function realToIndex(real r) returns int
return (r * R2I_PRECISION).toInt()
public function realFromIndex(int index) returns real
return (index / R2I_PRECISION)
public function stringToIndex(string s) returns int
var hash = s.getHash()
while true
if typecastdata.hasString(hash)
if typecastdata.loadString(hash) == s
break
else
typecastdata.saveString(hash, s)
break
hash++
return hash
public function stringFromIndex(int index) returns string
let str = typecastdata.loadString(index)
return str
public function playerFromIndex(int index) returns player
return players[index]
public function playerToIndex(player object) returns int
return object.getId()
public function widgetFromIndex(int index) returns widget
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadWidget(0)
public function widgetToIndex(widget object) returns int
return object.getHandleId()
public function unitFromIndex(int index) returns unit
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadUnit(0)
public function unitToIndex(unit object) returns int
return object.getHandleId()
public function destructableFromIndex(int index) returns destructable
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadDestructable(0)
public function destructableToIndex(destructable object) returns int
return object.getHandleId()
public function itemFromIndex(int index) returns item
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadItem(0)
public function itemToIndex(item object) returns int
return object.getHandleId()
public function abilityFromIndex(int index) returns ability
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadAbility(0)
public function abilityToIndex(ability object) returns int
return object.getHandleId()
public function forceFromIndex(int index) returns force
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadForce(0)
public function forceToIndex(force object) returns int
return object.getHandleId()
public function groupFromIndex(int index) returns group
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadGroup(0)
public function groupToIndex(group object) returns int
return object.getHandleId()
public function triggerFromIndex(int index) returns trigger
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadTrigger(0)
public function triggerToIndex(trigger object) returns int
return object.getHandleId()
public function triggeractionFromIndex(int index) returns triggeraction
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadTriggerAction(0)
public function triggeractionToIndex(triggeraction object) returns int
return object.getHandleId()
public function triggerconditionFromIndex(int index) returns triggercondition
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadTriggerCondition(0)
public function triggerconditionToIndex(triggercondition object) returns int
return object.getHandleId()
public function timerFromIndex(int index) returns timer
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadTimer(0)
public function timerToIndex(timer object) returns int
return object.getHandleId()
public function locationFromIndex(int index) returns location
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadLocation(0)
public function locationToIndex(location object) returns int
return object.getHandleId()
public function regionFromIndex(int index) returns region
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadRegion(0)
public function regionToIndex(region object) returns int
return object.getHandleId()
public function rectFromIndex(int index) returns rect
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadRect(0)
public function rectToIndex(rect object) returns int
return object.getHandleId()
public function soundFromIndex(int index) returns sound
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadSound(0)
public function soundToIndex(sound object) returns int
return object.getHandleId()
public function effectFromIndex(int index) returns effect
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadEffect(0)
public function effectToIndex(effect object) returns int
return object.getHandleId()
public function dialogFromIndex(int index) returns dialog
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadDialog(0)
public function dialogToIndex(dialog object) returns int
return object.getHandleId()
public function buttonFromIndex(int index) returns button
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadButton(0)
public function buttonToIndex(button object) returns int
return object.getHandleId()
public function questFromIndex(int index) returns quest
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadQuest(0)
public function questToIndex(quest object) returns int
return object.getHandleId()
public function questitemFromIndex(int index) returns questitem
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadQuestItem(0)
public function questitemToIndex(questitem object) returns int
return object.getHandleId()
public function leaderboardFromIndex(int index) returns leaderboard
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadLeaderboard(0)
public function leaderboardToIndex(leaderboard object) returns int
return object.getHandleId()
public function multiboardFromIndex(int index) returns multiboard
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadMultiboard(0)
public function multiboardToIndex(multiboard object) returns int
return object.getHandleId()
public function trackableFromIndex(int index) returns trackable
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadTrackable(0)
public function trackableToIndex(trackable object) returns int
return object.getHandleId()
public function lightningFromIndex(int index) returns lightning
return typecastdata.loadLightning(index)
public function lightningToIndex(lightning object) returns int
typecastdata.saveLightning(-object.getHandleId(), object)
return -object.getHandleId()
public function imageFromIndex(int index) returns image
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadImage(0)
public function imageToIndex(image object) returns int
return object.getHandleId()
public function ubersplatFromIndex(int index) returns ubersplat
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadUbersplat(0)
public function ubersplatToIndex(ubersplat object) returns int
return object.getHandleId()
public function framehandleToIndex(framehandle object) returns int
return object.getHandleId()
public function framehandleFromIndex(int index) returns framehandle
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadFrameHandle(0)
public function oskeytypeToIndex(oskeytype object) returns int
return object.getHandleId()
public function oskeytypeFromIndex(int index) returns oskeytype
typecastdata.saveFogState(0,ConvertFogState(index))
return typecastdata.loadOskeytype(0)
public function booleanToIndex(boolean u) returns int
return u ? 1 : 0
public function booleanFromIndex(int index) returns boolean
return index == 1
// instances
public implements ConvertIndex<real>
override function toIndex(real x) returns int
return realToIndex(x)
override function fromIndex(int i) returns real
return realFromIndex(i)
public implements ConvertIndex<string>
override function toIndex(string x) returns int
return stringToIndex(x)
override function fromIndex(int i) returns string
return stringFromIndex(i)
public implements ConvertIndex<player>
override function toIndex(player x) returns int
return playerToIndex(x)
override function fromIndex(int i) returns player
return playerFromIndex(i)
public implements ConvertIndex<widget>
override function toIndex(widget x) returns int
return widgetToIndex(x)
override function fromIndex(int i) returns widget
return widgetFromIndex(i)
public implements ConvertIndex<unit>
override function toIndex(unit x) returns int
return unitToIndex(x)
override function fromIndex(int i) returns unit
return unitFromIndex(i)
public implements ConvertIndex<destructable>
override function toIndex(destructable x) returns int
return destructableToIndex(x)
override function fromIndex(int i) returns destructable
return destructableFromIndex(i)
public implements ConvertIndex<item>
override function toIndex(item x) returns int
return itemToIndex(x)
override function fromIndex(int i) returns item
return itemFromIndex(i)
public implements ConvertIndex<ability>
override function toIndex(ability x) returns int
return abilityToIndex(x)
override function fromIndex(int i) returns ability
return abilityFromIndex(i)
public implements ConvertIndex<force>
override function toIndex(force x) returns int
return forceToIndex(x)
override function fromIndex(int i) returns force
return forceFromIndex(i)
public implements ConvertIndex<group>
override function toIndex(group x) returns int
return groupToIndex(x)
override function fromIndex(int i) returns group
return groupFromIndex(i)
public implements ConvertIndex<trigger>
override function toIndex(trigger x) returns int
return triggerToIndex(x)
override function fromIndex(int i) returns trigger
return triggerFromIndex(i)
public implements ConvertIndex<triggeraction>
override function toIndex(triggeraction x) returns int
return triggeractionToIndex(x)
override function fromIndex(int i) returns triggeraction
return triggeractionFromIndex(i)
public implements ConvertIndex<triggercondition>
override function toIndex(triggercondition x) returns int
return triggerconditionToIndex(x)
override function fromIndex(int i) returns triggercondition
return triggerconditionFromIndex(i)
public implements ConvertIndex<timer>
override function toIndex(timer x) returns int
return timerToIndex(x)
override function fromIndex(int i) returns timer
return timerFromIndex(i)
public implements ConvertIndex<location>
override function toIndex(location x) returns int
return locationToIndex(x)
override function fromIndex(int i) returns location
return locationFromIndex(i)
public implements ConvertIndex<region>
override function toIndex(region x) returns int
return regionToIndex(x)
override function fromIndex(int i) returns region
return regionFromIndex(i)
public implements ConvertIndex<rect>
override function toIndex(rect x) returns int
return rectToIndex(x)
override function fromIndex(int i) returns rect
return rectFromIndex(i)
public implements ConvertIndex<sound>
override function toIndex(sound x) returns int
return soundToIndex(x)
override function fromIndex(int i) returns sound
return soundFromIndex(i)
public implements ConvertIndex<effect>
override function toIndex(effect x) returns int
return effectToIndex(x)
override function fromIndex(int i) returns effect
return effectFromIndex(i)
public implements ConvertIndex<dialog>
override function toIndex(dialog x) returns int
return dialogToIndex(x)
override function fromIndex(int i) returns dialog
return dialogFromIndex(i)
public implements ConvertIndex<button>
override function toIndex(button x) returns int
return buttonToIndex(x)
override function fromIndex(int i) returns button
return buttonFromIndex(i)
public implements ConvertIndex<quest>
override function toIndex(quest x) returns int
return questToIndex(x)
override function fromIndex(int i) returns quest
return questFromIndex(i)
public implements ConvertIndex<questitem>
override function toIndex(questitem x) returns int
return questitemToIndex(x)
override function fromIndex(int i) returns questitem
return questitemFromIndex(i)
public implements ConvertIndex<leaderboard>
override function toIndex(leaderboard x) returns int
return leaderboardToIndex(x)
override function fromIndex(int i) returns leaderboard
return leaderboardFromIndex(i)
public implements ConvertIndex<multiboard>
override function toIndex(multiboard x) returns int
return multiboardToIndex(x)
override function fromIndex(int i) returns multiboard
return multiboardFromIndex(i)
public implements ConvertIndex<trackable>
override function toIndex(trackable x) returns int
return trackableToIndex(x)
override function fromIndex(int i) returns trackable
return trackableFromIndex(i)
public implements ConvertIndex<lightning>
override function toIndex(lightning x) returns int
return lightningToIndex(x)
override function fromIndex(int i) returns lightning
return lightningFromIndex(i)
public implements ConvertIndex<image>
override function toIndex(image x) returns int
return imageToIndex(x)
override function fromIndex(int i) returns image
return imageFromIndex(i)
public implements ConvertIndex<ubersplat>
override function toIndex(ubersplat x) returns int
return ubersplatToIndex(x)
override function fromIndex(int i) returns ubersplat
return ubersplatFromIndex(i)
public implements ConvertIndex<framehandle>
override function toIndex(framehandle x) returns int
return framehandleToIndex(x)
override function fromIndex(int i) returns framehandle
return framehandleFromIndex(i)
public implements ConvertIndex<oskeytype>
override function toIndex(oskeytype x) returns int
return oskeytypeToIndex(x)
override function fromIndex(int i) returns oskeytype
return oskeytypeFromIndex(i)
public implements ConvertIndex<boolean>
override function toIndex(boolean x) returns int
return booleanToIndex(x)
override function fromIndex(int i) returns boolean
return booleanFromIndex(i)
public implements ConvertIndex<int>
override function toIndex(int x) returns int
return x
override function fromIndex(int i) returns int
return i