twmap/constants/
mod.rs

1use vek::Extent2;
2
3use crate::*;
4
5mod ddnet_external;
6mod teeworlds_external;
7
8/// Returns `true` if all clients of that version should have that mapres shipped with their client.
9pub fn is_external_name(name: &str, version: Version) -> bool {
10    match version {
11        Version::DDNet06 => ddnet_external::is_external_name(name),
12        Version::Teeworlds07 => teeworlds_external::is_external_name(name),
13    }
14}
15
16/// Returns the opaque table for external images.
17/// None, if the given name is not a valid external image name, or if the image not square.
18/// The latter restriction is taken from the client source, don't ask me.
19pub fn external_opaque_table(name: &str, version: Version) -> Option<[[bool; 16]; 16]> {
20    match version {
21        Version::DDNet06 => ddnet_external::external_opaque_table(name),
22        Version::Teeworlds07 => teeworlds_external::external_opaque_table(name),
23    }
24}
25
26/// Returns the (width, height) of external images.
27/// None, if the given name is not a valid external image name.
28pub fn external_dimensions(name: &str, version: Version) -> Option<Extent2<u32>> {
29    match version {
30        Version::DDNet06 => ddnet_external::external_dimensions(name),
31        Version::Teeworlds07 => teeworlds_external::external_dimensions(name),
32    }
33}