From 08868c7cfa2cebd81703988bc85cb6343cf4d675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hubert=20Figui=C3=A8re?= Date: Sat, 20 Feb 2021 19:15:28 -0500 Subject: [PATCH] Issue #630 - Remap element for BrickLink export --- common/project.cpp | 112 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 111 insertions(+), 1 deletion(-) diff --git a/common/project.cpp b/common/project.cpp index 51601e77..25912718 100644 --- a/common/project.cpp +++ b/common/project.cpp @@ -1127,6 +1127,114 @@ bool Project::Export3DStudio(const QString& FileName) return true; } +namespace { + // The list is in alphabetical order for convenience. + std::map Remapping = { + {"10201", "2436b"}, + {"10314", "6191"}, + {"10830", "10830c01"}, + {"10830p01", "10830c01"}, + {"12825", "2555"}, + {"14395", "2339"}, + {"14769p07", "14769pb011"}, + {"15672", "92946"}, + {"167", "6190"}, + {"2431p70", "2431pb499"}, + {"2436a", "2436"}, + {"2454b", "2454"}, + {"2654a", "2654"}, + {"298", "4592"}, + {"2714", "2714a"}, + {"30039", "3070b"}, + {"3005pf0", "3005pb016"}, + {"30089a", "30089"}, + {"3039pc9", "3039pb045"}, + {"30224", "x59"}, + {"30367", "553a"}, + {"3039p101", "3039ps1"}, + {"3040b", "3040"}, + {"3046", "3046a"}, + {"3069bp0i", "3069bpb436"}, + {"3069p25", "3069bp25"}, + {"32064a", "32064"}, + {"32123a", "4265c"}, + {"3245a", "3245c"}, + {"32532", "40345"}, + {"32532b", "40345"}, + {"33299a", "33299"}, + {"3650c", "3650b"}, + {"3660b", "3660"}, + {"3665b", "3665"}, + {"3747", "3747a"}, + {"3815b", "970"}, + {"3816b", "971"}, + {"3817b", "972"}, + {"3818", "982"}, + {"3819", "981"}, + {"3820", "983"}, + {"4032a", "4032"}, + {"4287c", "4287"}, + {"4345b", "4345"}, + {"44237", "2456"}, + {"482", "30553"}, + {"4865a", "4865"}, + {"50746", "54200"}, + {"51011", "42611"}, + {"577", "64567"}, + {"577b", "64567"}, + {"59443", "6538c"}, + {"59900", "4589b"}, + {"604547", "11402h"}, + {"604548", "11402c"}, + {"604549", "11402b"}, + {"604550", "11402a"}, + {"604551", "11402g"}, + {"604552", "11402i"}, + {"604553", "11402d"}, + {"604614", "11402f"}, + {"604615", "11402e"}, + {"60470a", "60470"}, + {"60475", "30241"}, + {"60475b", "30241b"}, + {"60616a", "60616"}, + {"60803", "57895"}, + {"60897", "4085d"}, + {"6141", "4073"}, + {"6143", "3941"}, + {"6269", "2343"}, + {"63965a", "63965"}, + {"71137", "71137b"}, + {"731", "731c02"}, +// Hose +// {"750", ""}, +// {"754", ""}, +// {"755", ""}, +// {"756", ""}, + {"76385", "989"}, + {"88072", "4623b"}, + {"90194", "48183"}, + {"92410", "4532"}, + {"93221", "93221pb01"}, // LDraw has only one version + {"93549", "93549pb01"}, + {"95820", "30237b"}, + {"973p101", "973ps1"}, +// Minifig hands and arm. + {"975", "982"}, // Arm Right + {"976", "981"}, // Arm Left + {"977", "983"}, // Hand + }; + const char* BrickLinkRemap(const char* LDBrick) + { + auto Remapped = Remapping.find(LDBrick); + if (Remapped != Remapping.end()) + { + return Remapped->second; + } + return LDBrick; + } + +} + void Project::ExportBrickLink() { lcPartsList PartsList; @@ -1171,7 +1279,9 @@ void Project::ExportBrickLink() if (Ext) *Ext = 0; - sprintf(Line, " %s\n", FileName); + const char* Remapped = BrickLinkRemap(FileName); + + sprintf(Line, " %s\n", Remapped); BrickLinkFile.WriteLine(Line); sprintf(Line, " %d\n", ColorIt.second);