-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSPanimScript.dm
More file actions
78 lines (78 loc) · 2.02 KB
/
SPanimScript.dm
File metadata and controls
78 lines (78 loc) · 2.02 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
SPanimScript
var
list
States = new()
New(file)
var/data = file2text(file)
var/cpos = 1
var/nlpos = findtext(data,"\n")
var/varname = ""
var/AnimState/AS
var/AnimStage/Stage
var/statename = ""
while(1)
var/statement = copytext(data,cpos,nlpos)
var/tpos = findtext(data," ",cpos, nlpos)
if(tpos == 0)
if(statename != "")
States[statename] = AS
if(statement != "\n" && statement != "")
statename = copytext(data,cpos,nlpos)
AS = new()
Stage = new()
else
cpos = tpos + 1
var/spos = findtext(data," ",cpos,nlpos)
if(spos != 0)
var/token = copytext(data,cpos,spos)
varname = token
if(lowertext(varname) == "alpha" || \
lowertext(varname) == "loop" || \
lowertext(varname) == "time")
cpos = spos + 1
token = copytext(data,cpos,nlpos)
var/value = text2num(token)
if(varname == "alpha")
Stage.SetAlpha(value)
else if(varname == "loop")
Stage.SetLoop(value)
else if(varname == "time")
Stage.SetTime(value)
else if(lowertext(varname) == "color")
cpos = spos + 1
var/r = 0
var/g = 0
var/b = 0
spos = findtext(data," ",cpos,nlpos)
if(spos != 0)
token = copytext(data,cpos,spos)
r = text2num(token)
cpos = spos + 1
spos = findtext(data," ",cpos,nlpos)
if(spos != 0)
token = copytext(data,cpos,spos)
g = text2num(token)
cpos = spos + 1
token = copytext(data,cpos,nlpos)
b = text2num(token)
var/ColorObj/CO = new(r,g,b)
Stage.SetColor(CO)
else
var/token = copytext(data,cpos,nlpos)
if(token == "addstage")
AS.AddStage(Stage)
Stage = new()
if(nlpos != 0)
cpos = nlpos + 1
nlpos = findtext(data,"\n",cpos)
else
break
if(statename != "")
States[statename] = AS
proc
GetState(statename)
if(States[statename] != null)
return States[statename]
else
world.log << "Error: There is no state by the name of [statename]."
return null