fix: keep old duties around
This commit is contained in:
parent
97141dbbed
commit
dc944b3064
|
@ -107,6 +107,16 @@ impl LocalisedText {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn duty(duty: u32) -> Option<&'static duties::DutyInfo> {
|
||||||
|
crate::ffxiv::DUTIES.get(&duty)
|
||||||
|
.or_else(|| old::OLD_DUTIES.get(&duty))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn roulette(roulette: u32) -> Option<&'static roulettes::RouletteInfo> {
|
||||||
|
crate::ffxiv::ROULETTES.get(&roulette)
|
||||||
|
.or_else(|| old::OLD_ROULETTES.get(&roulette))
|
||||||
|
}
|
||||||
|
|
||||||
pub fn duty_name<'a>(duty_type: DutyType, category: DutyCategory, duty: u16, lang: Language) -> Cow<'a, str> {
|
pub fn duty_name<'a>(duty_type: DutyType, category: DutyCategory, duty: u16, lang: Language) -> Cow<'a, str> {
|
||||||
match (duty_type, category) {
|
match (duty_type, category) {
|
||||||
(DutyType::Other, DutyCategory::Fates) => {
|
(DutyType::Other, DutyCategory::Fates) => {
|
||||||
|
@ -141,12 +151,12 @@ pub fn duty_name<'a>(duty_type: DutyType, category: DutyCategory, duty: u16, lan
|
||||||
Language::French => "Pilier des Cieux",
|
Language::French => "Pilier des Cieux",
|
||||||
}),
|
}),
|
||||||
(DutyType::Normal, _) => {
|
(DutyType::Normal, _) => {
|
||||||
if let Some(info) = crate::ffxiv::DUTIES.get(&u32::from(duty)) {
|
if let Some(info) = crate::ffxiv::duty(u32::from(duty)) {
|
||||||
return Cow::from(info.name.text(&lang));
|
return Cow::from(info.name.text(&lang));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(DutyType::Roulette, _) => {
|
(DutyType::Roulette, _) => {
|
||||||
if let Some(info) = crate::ffxiv::ROULETTES.get(&u32::from(duty)) {
|
if let Some(info) = roulette(u32::from(duty)) {
|
||||||
return Cow::from(info.name.text(&lang));
|
return Cow::from(info.name.text(&lang));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -164,3 +174,178 @@ pub fn duty_name<'a>(duty_type: DutyType, category: DutyCategory, duty: u16, lan
|
||||||
|
|
||||||
Cow::from(format!("{:?}", category))
|
Cow::from(format!("{:?}", category))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mod old {
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
use crate::ffxiv::{
|
||||||
|
duties::{ContentKind, DutyInfo},
|
||||||
|
LocalisedText,
|
||||||
|
roulettes::RouletteInfo,
|
||||||
|
};
|
||||||
|
|
||||||
|
lazy_static::lazy_static! {
|
||||||
|
pub static ref OLD_DUTIES: HashMap<u32, DutyInfo> = maplit::hashmap! {
|
||||||
|
62 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "Cape Westwind",
|
||||||
|
ja: "リットアティン強襲戦",
|
||||||
|
de: "Kap Westwind",
|
||||||
|
fr: "Le Cap Vendouest",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::Trials,
|
||||||
|
},
|
||||||
|
143 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (4 on 4 - Training)",
|
||||||
|
ja: "ザ・フィースト (4対4 / カジュアルマッチ)",
|
||||||
|
de: "The Feast (4 gegen 4, Übungskampf)",
|
||||||
|
fr: "The Feast (4x4/entraînement)",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::PvP,
|
||||||
|
},
|
||||||
|
145 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (4 on 4 - Ranked)",
|
||||||
|
ja: "ザ・フィースト (4対4 / ランクマッチ)",
|
||||||
|
de: "The Feast (4 gegen 4, gewertet)",
|
||||||
|
fr: "The Feast (4x4/classé)",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::PvP,
|
||||||
|
},
|
||||||
|
201 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (Custom Match - Feasting Grounds)",
|
||||||
|
ja: "ザ・フィースト (ウルヴズジェイル演習場:カスタムマッチ)",
|
||||||
|
de: "The Feast (Wolfshöhle: Schaukampf)",
|
||||||
|
fr: "The Feast (personnalisé/Festin des loups)",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::PvP,
|
||||||
|
},
|
||||||
|
228 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (4 on 4 - Training)",
|
||||||
|
ja: "ザ・フィースト (4対4 / カジュアルマッチ)",
|
||||||
|
de: "The Feast (4 gegen 4, Übungskampf)",
|
||||||
|
fr: "The Feast (4x4/entraînement)",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::PvP,
|
||||||
|
},
|
||||||
|
230 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (4 on 4 - Ranked)",
|
||||||
|
ja: "ザ・フィースト (4対4 / ランクマッチ)",
|
||||||
|
de: "The Feast (4 gegen 4, gewertet)",
|
||||||
|
fr: "The Feast (4x4/classé)",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::PvP,
|
||||||
|
},
|
||||||
|
233 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (Custom Match - Lichenweed)",
|
||||||
|
ja: "ザ・フィースト (ライケンウィード演習場:カスタムマッチ)",
|
||||||
|
de: "The Feast (Flechtenhain: Schaukampf)",
|
||||||
|
fr: "The Feast (personnalisé/Pré-de-lichen)",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::PvP,
|
||||||
|
},
|
||||||
|
476 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (Team Ranked)",
|
||||||
|
ja: "ザ・フィースト (チーム用ランクマッチ)",
|
||||||
|
de: "The Feast (Team, gewertet)",
|
||||||
|
fr: "The Feast (classé/équipe JcJ)",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::PvP,
|
||||||
|
},
|
||||||
|
478 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (Ranked)",
|
||||||
|
ja: "ザ・フィースト (ランクマッチ)",
|
||||||
|
de: "The Feast (gewertet)",
|
||||||
|
fr: "The Feast (classé)",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::PvP,
|
||||||
|
},
|
||||||
|
479 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (Training)",
|
||||||
|
ja: "ザ・フィースト (カジュアルマッチ)",
|
||||||
|
de: "The Feast (Übungskampf)",
|
||||||
|
fr: "The Feast (entraînement)",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::PvP,
|
||||||
|
},
|
||||||
|
480 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (Custom Match - Crystal Tower)",
|
||||||
|
ja: "ザ・フィースト (クリスタルタワー演習場:カスタムマッチ)",
|
||||||
|
de: "The Feast (Kristallturm-Arena: Schaukampf)",
|
||||||
|
fr: "The Feast (personnalisé/Tour de Cristal)",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::PvP,
|
||||||
|
},
|
||||||
|
580 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (Team Custom Match - Crystal Tower)",
|
||||||
|
ja: "ザ・フィースト (クリスタルタワー演習場:チーム用カスタムマッチ)",
|
||||||
|
de: "The Feast (Kristallturm-Arena: Team-Schaukampf) ",
|
||||||
|
fr: "The Feast (personnalisé/équipe JcJ/Tour de Cristal)",
|
||||||
|
},
|
||||||
|
high_end: false,
|
||||||
|
content_kind: ContentKind::PvP,
|
||||||
|
},
|
||||||
|
776 => DutyInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Whorleater (Unreal)",
|
||||||
|
ja: "幻リヴァイアサン討滅戦",
|
||||||
|
de: "Traumprüfung - Leviathan",
|
||||||
|
fr: "Le Briseur de marées (irréel)",
|
||||||
|
},
|
||||||
|
high_end: true,
|
||||||
|
content_kind: ContentKind::Trials,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
pub static ref OLD_ROULETTES: HashMap<u32, RouletteInfo> = maplit::hashmap! {
|
||||||
|
11 => RouletteInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (Training Match)",
|
||||||
|
ja: "ザ・フィースト (カジュアルマッチ)",
|
||||||
|
de: "The Feast (Übungskampf)",
|
||||||
|
fr: "The Feast (entraînement)",
|
||||||
|
},
|
||||||
|
pvp: true,
|
||||||
|
},
|
||||||
|
13 => RouletteInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (Ranked Match)",
|
||||||
|
ja: "ザ・フィースト (ランクマッチ)",
|
||||||
|
de: "The Feast (gewertet)",
|
||||||
|
fr: "The Feast (classé)",
|
||||||
|
},
|
||||||
|
pvp: true,
|
||||||
|
},
|
||||||
|
16 => RouletteInfo {
|
||||||
|
name: LocalisedText {
|
||||||
|
en: "The Feast (Team Ranked Match)",
|
||||||
|
ja: "ザ・フィースト (チーム用ランクマッチ)",
|
||||||
|
de: "The Feast (Team, gewertet)",
|
||||||
|
fr: "The Feast (classé/équipe JcJ)",
|
||||||
|
},
|
||||||
|
pvp: true,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -134,7 +134,7 @@ impl PartyFinderListing {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
crate::ffxiv::DUTIES.get(&u32::from(self.duty))
|
crate::ffxiv::duty(u32::from(self.duty))
|
||||||
.map(|info| info.high_end)
|
.map(|info| info.high_end)
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
}
|
}
|
||||||
|
@ -144,14 +144,14 @@ impl PartyFinderListing {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
crate::ffxiv::DUTIES.get(&u32::from(self.duty))
|
crate::ffxiv::duty(u32::from(self.duty))
|
||||||
.map(|info| info.content_kind.as_u32())
|
.map(|info| info.content_kind.as_u32())
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn pf_category(&self) -> Option<PartyFinderCategory> {
|
pub fn pf_category(&self) -> Option<PartyFinderCategory> {
|
||||||
let duty_type = self.duty_type;
|
let duty_type = self.duty_type;
|
||||||
let duty_info = crate::ffxiv::DUTIES.get(&u32::from(self.duty));
|
let duty_info = crate::ffxiv::duty(u32::from(self.duty));
|
||||||
let duty_category = self.category;
|
let duty_category = self.category;
|
||||||
|
|
||||||
let category = match (duty_type, duty_info, duty_category) {
|
let category = match (duty_type, duty_info, duty_category) {
|
||||||
|
|
Loading…
Reference in New Issue