Index: ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json (revision 22116)
+++ ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json (revision 22117)
@@ -1,255 +1,256 @@
{
"Title": "Programming",
"Content": [
{
"Title": "Programming managers",
"List": [
{"nick": "Acumen", "name": "Stuart Walpole"},
{"nick": "Dak Lozar", "name": "Dave Loeser"},
{"nick": "h20", "name": "Daniel Wilhelm"},
{"nick": "Janwas", "name": "Jan Wassenberg"},
{"nick": "Raj", "name": "Raj Sharma"}
]
},
{
"Subtitle": "Special thanks to",
"List": [
{"nick": "Ykkrosh", "name": "Philip Taylor"},
{"nick": "leper", "name": "Georg Kilzer"}
]
},
{
"List": [
{"nick": "01d55"},
{"nick": "Acumen", "name": "Stuart Walpole"},
{"name": "Adrian Fatol"},
{"nick": "AI-Amsterdam"},
{"nick": "Alan", "name": "Alan Kemp"},
{"nick": "aBothe", "name": "Alexander Bothe"},
{"nick": "alpha123", "name": "Peter P. Cannici"},
{"nick": "andy5995", "name": "Andy Alt"},
{"nick": "Angen"},
{"nick": "ArnH", "name": "Arno Hemelhof"},
{"nick": "Aurium", "name": "Aurélio Heckert"},
{"nick": "badmadblacksad", "name": "Martin F"},
{"name": "Mikołaj \"Bajter\" Korcz"},
{"nick": "bb", "name": "Bouke Jansen"},
{"nick": "Ben", "name": "Ben Vinegar"},
{"nick": "Bird"},
{"nick": "Blue", "name": "Richard Welsh"},
{"nick": "bmwiedemann"},
{"nick": "boeseRaupe", "name": "Michael Kluge"},
{"nick": "bog_dan_ro", "name": "BogDan Vatra"},
{"nick": "Bonk", "name": "Christopher Ebbert"},
{"nick": "borg-", "name": "Estevan Borges Martins"},
{"nick": "Boudica"},
{"nick": "Caius", "name": "Lars Kemmann"},
{"nick": "Calefaction", "name": "Matt Holmes"},
{"nick": "Calvinh", "name": "Carl-Johan Höiby"},
{"nick": "causative", "name": "Bart Parkis"},
{"name": "Cédric Houbart"},
{"nick": "Chakakhan", "name": "Kenny Long"},
{"nick": "Clockwork-Muse", "name": "Stephen A. Imhoff"},
{"nick": "Cracker78", "name": "Chad Heim"},
{"nick": "Crynux", "name": "Stephen J. Fewer"},
{"nick": "cwprogger"},
{"nick": "Dak Lozar", "name": "Dave Loeser"},
{"nick": "dalerank", "name": "Sergey Kushnirenko"},
{"nick": "dan", "name": "Dan Strandberg"},
{"name": "Daniel Trevitz"},
{"nick": "DanCar", "name": "Daniel Cardenas"},
{"nick": "danger89", "name": "Melroy van den Berg"},
{"nick": "Dariost", "name": "Dario Ostuni"},
{"nick": "Dave", "name": "David Protasowski"},
{"nick": "dax", "name": "Dacian Fiordean"},
{"nick": "deebee", "name": "Deepak Anthony"},
{"nick": "Deiz"},
{"nick": "Dietger", "name": "Dietger van Antwerpen"},
{"nick": "dp304"},
{"nick": "dpiquet", "name": "Damien Piquet"},
{"nick": "dumbo"},
{"nick": "Dunedan", "name": "Daniel Roschka"},
{"nick": "dvangennip", "name": "Doménique"},
{"nick": "Echelon9", "name": "Rhys Kidd"},
{"nick": "echotangoecho"},
{"nick": "eihrul", "name": "Lee Salzman"},
{"nick": "elexis", "name": "Alexander Heinsius"},
{"nick": "EmjeR", "name": "Matthijs de Rijk"},
{"nick": "EMontana"},
{"nick": "ericb"},
{"nick": "evanssthomas", "name": "Evans Thomas"},
{"nick": "Evulant", "name": "Alexander S."},
{"nick": "fabio", "name": "Fabio Pedretti"},
{"nick": "falsevision", "name": "Mahdi Khodadadifard"},
{"nick": "fatherbushido", "name": "Nicolas Tisserand"},
{"nick": "fcxSanya", "name": "Alexander Olkhovskiy"},
{"nick": "FeXoR", "name": "Florian Finke"},
{"nick": "Fire Giant", "name": "Malte Schwarzkopf"},
{"name": "Fork AD"},
{"nick": "fpre", "name": "Frederick Stallmeyer"},
{"nick": "freenity", "name": "Anton Galitch"},
{"nick": "Gallaecio", "name": "Adrián Chaves"},
{"nick": "gbish (aka Iny)", "name": "Grant Bishop"},
{"nick": "Gee", "name": "Gustav Larsson"},
{"nick": "Gentz", "name": "Hal Gentz"},
{"nick": "gerbilOFdoom"},
{"nick": "godlikeldh"},
{"nick": "greybeard", "name": "Joe Cocovich"},
{"nick": "grillaz"},
{"nick": "Grugnas", "name": "Giuseppe Tranchese"},
{"nick": "gudo"},
{"nick": "Guuts", "name": "Matthew Guttag"},
{"name": "Samuel Guarnieri"},
{"nick": "Hannibal_Baraq", "name": "Clive Juhász S."},
{"nick": "Haommin"},
{"nick": "h20", "name": "Daniel Wilhelm"},
{"nick": "historic_bruno", "name": "Ben Brian"},
{"nick": "idanwin"},
{"nick": "Imarok", "name": "J. S."},
{"nick": "infyquest", "name": "Vijay Kiran Kamuju"},
{"nick": "IronNerd", "name": "Matthew McMullan"},
{"nick": "Itms", "name": "Nicolas Auvray"},
{"nick": "Jaison", "name": "Marco tom Suden"},
{"nick": "jammus", "name": "James Scott"},
{"nick": "javiergodas", "name": "Javier Godas Vieitez"},
{"nick": "Jgwman"},
{"nick": "JonBaer", "name": "Jon Baer"},
{"nick": "Josh", "name": "Joshua J. Bakita"},
{"nick": "joskar", "name": "Johnny Oskarsson"},
{"nick": "jP_wanN", "name": "Jonas Platte"},
{"nick": "Jubalbarca", "name": "James Baillie"},
{"nick": "JubJub", "name": "Sebastian Vetter"},
{"nick": "jurgemaister"},
{"nick": "kabzerek", "name": "Grzegorz Kabza"},
{"nick": "Kai", "name": "Kai Chen"},
{"name": "Kareem Ergawy"},
{"nick": "kevmo", "name": "Kevin Caffrey"},
{"nick": "kezz", "name": "Graeme Kerry"},
{"nick": "kingadami", "name": "Adam Winsor"},
{"nick": "kingbasil", "name": "Giannis Fafalios"},
{"nick": "lafferjm", "name": "Justin Lafferty"},
{"nick": "LeanderH", "name": "Leander Hemelhof"},
{"nick": "leper", "name": "Georg Kilzer"},
{"nick": "LittleDev"},
{"nick": "livingaftermidnight", "name": "Will Dull"},
{"nick": "Louhike"},
{"nick": "lsdh"},
{"nick": "Ludovic", "name": "Ludovic Rousseau"},
{"nick": "madmax", "name": "Abhijit Nandy"},
{"nick": "madpilot", "name": "Guido Falsi"},
{"nick": "m0l0t0ph", "name": "Christoph Gielisch"},
{"nick": "markcho"},
{"nick": "MarkT", "name": "Mark Thompson"},
{"nick": "Markus"},
{"nick": "Matei", "name": "Matei Zaharia"},
{"nick": "Mate-86", "name": "Mate Kovacs"},
{"nick": "MattDoerksen", "name": "Matt Doerksen"},
{"nick": "mattlott", "name": "Matt Lott"},
{"nick": "maveric", "name": "Anton Protko"},
{"nick": "Micnasty", "name": "Travis Gorkin"},
{"nick": "mimo"},
{"nick": "mk12", "name": "Mitchell Kember"},
{"nick": "mmayfield45", "name": "Michael Mayfield"},
{"nick": "mmoanis", "name": "Mohamed Moanis"},
{"nick": "Molotov", "name": "Dario Alvarez"},
{"nick": "mpmoreti", "name": "Marcos Paulo Moreti"},
{"nick": "mreiland", "name": "Michael Reiland"},
{"nick": "myconid"},
{"nick": "nd3c3nt", "name": "Gavin Fowler"},
{"nick": "niektb", "name": "Niek ten Brinke"},
{"nick": "njm"},
{"nick": "NoMonkey", "name": "John Mena"},
{"nick": "notpete", "name": "Rich Cross"},
{"nick": "nwtour"},
{"nick": "odoaker", "name": "Ágoston Sipos"},
{"nick": "Offensive ePeen", "name": "Jared Ryan Bills"},
{"nick": "Ols", "name": "Oliver Whiteman"},
{"nick": "olsner", "name": "Simon Brenner"},
{"nick": "OptimusShepard", "name": "Pirmin Stanglmeier"},
{"nick": "otero"},
{"nick": "nani", "name": "S. N."},
{"nick": "Nescio"},
{"name": "Nick Owens"},
{"nick": "Palaxin", "name": "David A. Freitag"},
{"name": "Paul Withers"},
{"nick": "paulobezerr", "name": "Paulo George Gomes Bezerra"},
{"nick": "pcpa", "name": "Paulo Andrade"},
{"nick": "Pendingchaos"},
{"nick": "PeteVasi", "name": "Pete Vasiliauskas"},
{"nick": "pilino1234"},
{"nick": "PingvinBetyar", "name": "Schronk Tamás"},
{"nick": "plugwash", "name": "Peter Michael Green"},
{"nick": "Polakrity"},
{"nick": "Poya", "name": "Poya Manouchehri"},
{"name": "Quentin Pradet"},
{"nick": "prefect", "name": "Nicolai Hähnle"},
{"nick": "pstumpf", "name": "Pascal Stumpf"},
{"name": "André Puel"},
{"nick": "Prodigal Son"},
{"nick": "pyrolink", "name": "Andrew Decker"},
{"nick": "quantumstate", "name": "Jonathan Waller"},
{"nick": "QuickShot", "name": "Walter Krawec"},
{"nick": "quonter"},
{"nick": "qwertz"},
{"nick": "Radagast"},
{"nick": "Raj", "name": "Raj Sharma"},
{"nick": "rapidelectron", "name": "Christian Weihsbach"},
{"nick": "RedFox", "name": "Jorma Rebane"},
{"nick": "RefinedCode"},
{"nick": "Riemer"},
{"name": "Rolf Sievers"},
{"nick": "s0600204", "name": "Matthew Norwood"},
{"nick": "sacha_vrand", "name": "Sacha Vrand"},
{"nick": "SafaAlfulaij"},
{"nick": "Sandarac"},
{"nick": "sanderd17", "name": "Sander Deryckere"},
{"nick": "sathyam", "name": "Sathyam Vellal"},
{"nick": "sbirmi", "name": "Sharad Birmiwal"},
{"nick": "sbte", "name": "Sven Baars"},
{"nick": "scroogie", "name": "André Gemünd"},
{"nick": "scythetwirler", "name": "Casey X."},
{"nick": "serveurix"},
{"nick": "Shane", "name": "Shane Grant"},
+ {"nick": "shh"},
{"nick": "Silk", "name": "Josh Godsiff"},
{"nick": "silure"},
{"nick": "Simikolon", "name": "Yannick & Simon"},
{"nick": "smiley", "name": "M. L."},
{"nick": "Spahbod", "name": "Omid Davoodi"},
{"nick": "stanislas69", "name": "Stanislas Dolcini"},
{"nick": "Stefan"},
{"nick": "stilz", "name": "Sławomir Zborowski"},
{"nick": "stwf", "name": "Steven Fuchs"},
{"nick": "svott", "name": "Sven Ott"},
{"nick": "t4nk004"},
{"nick": "tbm", "name": "Martin Michlmayr"},
{"nick": "tau"},
{"nick": "Teiresias"},
{"nick": "temple"},
{"nick": "texane"},
{"nick": "thamlett", "name": "Timothy Hamlett"},
{"nick": "thedrunkyak", "name": "Dan Fuhr"},
{"nick": "TrinityDeath", "name": "Jethro Lu"},
{"nick": "triumvir", "name": "Corin Schedler"},
{"nick": "trompetin17", "name": "Juan Guillermo"},
{"nick": "user1", "name": "A. C."},
{"nick": "usey11"},
{"nick": "vincent_c", "name": "Vincent Cheng"},
{"nick": "vladislavbelov", "name": "Vladislav Belov"},
{"nick": "vts", "name": "Jeroen DR"},
{"nick": "WhiteTreePaladin", "name": "Brian Ashley"},
{"nick": "wraitii", "name": "Lancelot de Ferrière le Vayer"},
{"nick": "Xentelian", "name": "Mark Strawson"},
{"nick": "Xienen", "name": "Dayle Flowers"},
{"nick": "xtizer", "name": "Matt Green"},
{"nick": "yashi", "name": "Yasushi Shoji"},
{"nick": "Ykkrosh", "name": "Philip Taylor"},
{"nick": "Yves"},
{"nick": "Zeusthor", "name": "Jeffrey Tavares"},
{"nick": "zoot"},
{"nick": "zsol", "name": "Zsolt Dollenstein"},
{"nick": "ztamas", "name": "Tamas Zolnai"},
{"nick": "Zyi", "name": "Charles De Meulenaer"}
]
}
]
}
Index: ps/trunk/source/tools/atlas/AtlasUI/ActorEditor/ActorEditorListCtrl.cpp
===================================================================
--- ps/trunk/source/tools/atlas/AtlasUI/ActorEditor/ActorEditorListCtrl.cpp (revision 22116)
+++ ps/trunk/source/tools/atlas/AtlasUI/ActorEditor/ActorEditorListCtrl.cpp (revision 22117)
@@ -1,124 +1,125 @@
-/* Copyright (C) 2009 Wildfire Games.
+/* Copyright (C) 2019 Wildfire Games.
* This file is part of 0 A.D.
*
* 0 A.D. is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* 0 A.D. is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with 0 A.D. If not, see .
*/
#include "precompiled.h"
#include "ActorEditorListCtrl.h"
#include "AnimListEditor.h"
#include "TexListEditor.h"
#include "PropListEditor.h"
#include "AtlasObject/AtlasObject.h"
#include "EditableListCtrl/FieldEditCtrl.h"
ActorEditorListCtrl::ActorEditorListCtrl(wxWindow* parent)
: DraggableListCtrl(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize,
wxLC_REPORT | wxLC_HRULES | wxLC_VRULES | wxLC_SINGLE_SEL)
{
// Set colors for row backgrounds (which vary depending on what columns
// have some data)
#define COLOR(name, c0, c1) \
m_ListItemAttr_##name[0].SetBackgroundColour(wxColor c0); \
m_ListItemAttr_##name[1].SetBackgroundColour(wxColor c1)
const int f=0xFF, e=0xEE, c=0xCC;
COLOR(Model, (f,f,e), (f,f,c));
COLOR(Texture, (f,e,e), (f,c,c));
COLOR(Anim, (e,f,e), (c,f,c));
COLOR(Prop, (e,e,f), (c,c,f));
COLOR(Color, (f,e,f), (f,c,f));
COLOR(None, (f,f,f), (f,f,f));
#undef COLOR
AddColumnType(_("Variant"), 90, "@name", new FieldEditCtrl_Text());
AddColumnType(_("Base File"), 90, "@file", new FieldEditCtrl_File(_T("art/variants/"), _("Variants (*.xml)|*.xml|All files (*.*)|*.*")));
AddColumnType(_("Ratio"), 50, "@frequency", new FieldEditCtrl_Text());
AddColumnType(_("Model"), 140, "mesh", new FieldEditCtrl_File(_T("art/meshes/"), _("Mesh files (*.pmd, *.dae)|*.pmd;*.dae|All files (*.*)|*.*")));
+ AddColumnType(_("Particles"), 90, "particles", new FieldEditCtrl_File(_T("art/particles/"), _("Particle file (*.xml)|*.xml|All files (*.*)|*.*")));
AddColumnType(_("Textures"), 250, "textures", new FieldEditCtrl_Dialog(&TexListEditor::Create));
AddColumnType(_("Animations"), 250, "animations", new FieldEditCtrl_Dialog(&AnimListEditor::Create));
AddColumnType(_("Props"), 220, "props", new FieldEditCtrl_Dialog(&PropListEditor::Create));
AddColumnType(_("Color"), 80, "color", new FieldEditCtrl_Color());
}
void ActorEditorListCtrl::DoImport(AtObj& in)
{
DeleteData();
for (AtIter group = in["group"]; group.defined(); ++group)
{
for (AtIter variant = group["variant"]; variant.defined(); ++variant)
AddRow(variant);
AtObj blank;
AddRow(blank);
}
UpdateDisplay();
}
AtObj ActorEditorListCtrl::DoExport()
{
AtObj out;
AtObj group;
for (size_t i = 0; i < m_ListData.size(); ++i)
{
if (IsRowBlank((int)i))
{
if (group.defined())
out.add("group", group);
group = AtObj();
}
else
{
AtObj variant = AtlasObject::TrimEmptyChildren(m_ListData[i]);
group.add("variant", variant);
}
}
if (group.defined())
out.add("group", group);
return out;
}
wxListItemAttr* ActorEditorListCtrl::OnGetItemAttr(long item) const
{
if (item >= 0 && item < (int)m_ListData.size())
{
AtObj row (m_ListData[item]);
// Color-code the row, depending on the first non-empty column,
// and also alternate between light/dark.
if (row["mesh"].hasContent())
return const_cast(&m_ListItemAttr_Model[item%2]);
else if (row["textures"].hasContent())
return const_cast(&m_ListItemAttr_Texture[item%2]);
else if (row["animations"].hasContent())
return const_cast(&m_ListItemAttr_Anim[item%2]);
else if (row["props"].hasContent())
return const_cast(&m_ListItemAttr_Prop[item%2]);
else if (row["color"].hasContent())
return const_cast(&m_ListItemAttr_Color[item%2]);
}
return const_cast(&m_ListItemAttr_None[item%2]);
}