Skip to content

Commit f363a8a

Browse files
committed
Fix musica sc script handle
1 parent 9f920e3 commit f363a8a

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/scripts/musica/sc.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,10 @@ impl Script for MusicaScript {
7676
}
7777
// .message <id> <voice> <name> <text>
7878
if parts[0] == ".message" && parts.len() >= 5 {
79-
let name = parts[3].clone();
80-
let text = parts[4].clone();
79+
let name_index = parts.len() - 2;
80+
let text_index = parts.len() - 1;
81+
let name = parts[name_index].clone();
82+
let text = parts[text_index].clone();
8183
let message = Message {
8284
name: if name.is_empty() { None } else { Some(name) },
8385
message: text,
@@ -110,7 +112,9 @@ impl Script for MusicaScript {
110112
Some(m) => m,
111113
None => return Err(anyhow::anyhow!("Not enough messages to import.")),
112114
};
113-
if !parts[3].is_empty() {
115+
let name_index = parts.len() - 2;
116+
let text_index = parts.len() - 1;
117+
if !parts[name_index].is_empty() {
114118
let mut name = match &m.name {
115119
Some(n) => n.clone(),
116120
None => {
@@ -125,15 +129,15 @@ impl Script for MusicaScript {
125129
name = name.replace(k, v);
126130
}
127131
}
128-
parts[3] = name.replace(' ', "\u{3000}");
132+
parts[name_index] = name.replace(' ', "\u{3000}");
129133
}
130134
let mut text = m.message.clone();
131135
if let Some(repl) = replacement {
132136
for (k, v) in &repl.map {
133137
text = text.replace(k, v);
134138
}
135139
}
136-
parts[4] = text.replace(' ', "\u{3000}");
140+
parts[text_index] = text.replace(' ', "\u{3000}");
137141
me = mes.next();
138142
}
139143
let line = parts.join(" ");

0 commit comments

Comments
 (0)