Fixes a runtime with song importing (#25692)

This commit is contained in:
Cyberboss
2017-04-01 21:43:54 -03:00
committed by Leo
parent 5fe391805a
commit bc40e4eefe
+22 -20
View File
@@ -182,6 +182,27 @@
popup.set_title_image(user.browse_rsc_icon(instrumentObj.icon, instrumentObj.icon_state))
popup.open()
/datum/song/proc/ParseSong(text)
set waitfor = FALSE
//split into lines
lines = splittext(text, "\n")
if(lines.len)
if(copytext(lines[1],1,6) == "BPM: ")
tempo = sanitize_tempo(600 / text2num(copytext(lines[1],6)))
lines.Cut(1,2)
else
tempo = sanitize_tempo(5) // default 120 BPM
if(lines.len > 50)
to_chat(usr, "Too many lines!")
lines.Cut(51)
var/linenum = 1
for(var/l in lines)
if(lentext(l) > 50)
to_chat(usr, "Line [linenum] too long!")
lines.Remove(l)
else
linenum++
updateDialog(usr) // make sure updates when complete
/datum/song/Topic(href, href_list)
if(!usr.canUseTopic(instrumentObj))
@@ -208,26 +229,7 @@
if(cont == "no")
break
while(lentext(t) > 3072)
//split into lines
spawn()
lines = splittext(t, "\n")
if(copytext(lines[1],1,6) == "BPM: ")
tempo = sanitize_tempo(600 / text2num(copytext(lines[1],6)))
lines.Cut(1,2)
else
tempo = sanitize_tempo(5) // default 120 BPM
if(lines.len > 50)
to_chat(usr, "Too many lines!")
lines.Cut(51)
var/linenum = 1
for(var/l in lines)
if(lentext(l) > 50)
to_chat(usr, "Line [linenum] too long!")
lines.Remove(l)
else
linenum++
updateDialog(usr) // make sure updates when complete
ParseSong(t)
else if(href_list["help"])
help = text2num(href_list["help"]) - 1