mindustry logic execution, map- and schematic- parsing and rendering
Fix Team content not returning all names
KosmosPrime 2023-01-18
parent 60babcb · commit 31d9374
-rw-r--r--res/team_names.txt1
-rw-r--r--src/team.rs43
2 files changed, 23 insertions, 21 deletions
diff --git a/res/team_names.txt b/res/team_names.txt
new file mode 100644
index 0000000..37adee8
--- /dev/null
+++ b/res/team_names.txt
@@ -0,0 +1 @@
+team#6|team#7|team#8|team#9|team#10|team#11|team#12|team#13|team#14|team#15|team#16|team#17|team#18|team#19|team#20|team#21|team#22|team#23|team#24|team#25|team#26|team#27|team#28|team#29|team#30|team#31|team#32|team#33|team#34|team#35|team#36|team#37|team#38|team#39|team#40|team#41|team#42|team#43|team#44|team#45|team#46|team#47|team#48|team#49|team#50|team#51|team#52|team#53|team#54|team#55|team#56|team#57|team#58|team#59|team#60|team#61|team#62|team#63|team#64|team#65|team#66|team#67|team#68|team#69|team#70|team#71|team#72|team#73|team#74|team#75|team#76|team#77|team#78|team#79|team#80|team#81|team#82|team#83|team#84|team#85|team#86|team#87|team#88|team#89|team#90|team#91|team#92|team#93|team#94|team#95|team#96|team#97|team#98|team#99|team#100|team#101|team#102|team#103|team#104|team#105|team#106|team#107|team#108|team#109|team#110|team#111|team#112|team#113|team#114|team#115|team#116|team#117|team#118|team#119|team#120|team#121|team#122|team#123|team#124|team#125|team#126|team#127|team#128|team#129|team#130|team#131|team#132|team#133|team#134|team#135|team#136|team#137|team#138|team#139|team#140|team#141|team#142|team#143|team#144|team#145|team#146|team#147|team#148|team#149|team#150|team#151|team#152|team#153|team#154|team#155|team#156|team#157|team#158|team#159|team#160|team#161|team#162|team#163|team#164|team#165|team#166|team#167|team#168|team#169|team#170|team#171|team#172|team#173|team#174|team#175|team#176|team#177|team#178|team#179|team#180|team#181|team#182|team#183|team#184|team#185|team#186|team#187|team#188|team#189|team#190|team#191|team#192|team#193|team#194|team#195|team#196|team#197|team#198|team#199|team#200|team#201|team#202|team#203|team#204|team#205|team#206|team#207|team#208|team#209|team#210|team#211|team#212|team#213|team#214|team#215|team#216|team#217|team#218|team#219|team#220|team#221|team#222|team#223|team#224|team#225|team#226|team#227|team#228|team#229|team#230|team#231|team#232|team#233|team#234|team#235|team#236|team#237|team#238|team#239|team#240|team#241|team#242|team#243|team#244|team#245|team#246|team#247|team#248|team#249|team#250|team#251|team#252|team#253|team#254|team#255
diff --git a/src/team.rs b/src/team.rs
index 457eac9..cb79d2a 100644
--- a/src/team.rs
+++ b/src/team.rs
@@ -12,29 +12,10 @@ impl Team
Self(id)
}
- pub fn get_id(&self) -> u8
- {
- self.0
- }
-
pub fn is_base(&self) -> bool
{
self.0 < 6
}
-
- pub fn get_name(&self) -> Option<&'static str>
- {
- match self.0
- {
- 0 => Some("derelict"),
- 1 => Some("sharded"),
- 2 => Some("crux"),
- 3 => Some("malis"),
- 4 => Some("green"),
- 5 => Some("blue"),
- _ => None,
- }
- }
}
impl From<u8> for Team
@@ -92,6 +73,8 @@ impl fmt::Display for Team
}
}
+const TEAM_NAMES: &str = include_str!("../res/team_names.txt");
+
impl Content for Team
{
fn get_type(&self) -> Type
@@ -104,7 +87,7 @@ impl Content for Team
self.0 as u16
}
- fn get_name(&self) -> &str
+ fn get_name(&self) -> &'static str
{
match self.0
{
@@ -114,7 +97,25 @@ impl Content for Team
3 => "malis",
4 => "green",
5 => "blue",
- _ => "<custom>", // TODO
+ // dark magic: offsets manually computed, then rely on the format "...|team#{i}|..."
+ i @ 6..=9 =>
+ {
+ // length: 7 ("team#" (5) + 1 digit + "|" (1))
+ let s = 0 + ((i - 6) as usize) * 7;
+ &TEAM_NAMES[s..s + 6] // exclude the trailing "|"
+ },
+ i @ 10..=99 =>
+ {
+ // length: 8 ("team#" (5) + 2 digits + "|" (1))
+ let s = 28 + ((i - 10) as usize) * 8;
+ &TEAM_NAMES[s..s + 7] // exclude the trailing "|"
+ },
+ i @ 100..=255 =>
+ {
+ // length: 9 ("team#" (5) + 3 digits + "|" (1))
+ let s = 748 + ((i - 100) as usize) * 9;
+ &TEAM_NAMES[s..s + 8] // exclude the trailing "|"
+ },
}
}
}