1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-20 20:23:03 +02:00

new approach

This commit is contained in:
Laserlicht 2023-09-12 11:52:19 +02:00
parent 42d2257f19
commit 1c68937d95
8 changed files with 66 additions and 90 deletions

86
AUTHORS
View File

@ -1,86 +0,0 @@
VCMI PROJECT CODE CONTRIBUTORS:
Michał Urbańczyk aka Tow, <impono@gmail.com>
* project originator; programming, making releases, website
maintenance, reverse engineering, general support.
Mateusz B. aka Tow dragon, <matcio1@gmail.com>
* general support, battle support, support for many Heroes 3 config files, reverse engineering, ERM/VERM parser and interpreter
Stefan Pavlov aka Ste, <mailste@gmail.com>
* minor fixes in pregame
Yifeng Sun aka phoebus118, <pkusunyifeng@gmail.com>
* a part of .snd handling, minor fixes and updates
Andrea Palmate aka afxgroup, <andrea@amigasoft.net>
* GCC/AmigaOS4 compatibility updates and makefile
Vadim Glazunov aka neweagle, <neweagle@gmail.com>
* minor GCC/Linux compatibility changes
Rafal R. aka ambtrip, <ambtrip@wp.pl>
* GeniusAI (battles)
Lukasz Wychrystenko aka tezeriusz, <t0@czlug.icis.pcz.pl>
* minor GCC/Linux compatibility changes, code review
Xiaomin Ding, <dingding303@gmail.com>
* smack videos player
Tom Zielinski aka Warmonger, <Warmonger@vp.pl>
* game objects, mechanics
Frank Zago aka ubuntux, <>
* GCC/Linux compatibility changes, sound/music support, video support on Linux
Trevor Standley aka tstandley, <>
* adventure map part of Genius AI
Rickard Westerlund aka Onion Knight, <onionknigh@gmail.com>
* battle functionality and general support
Ivan Savenko, <saven.ivan@gmail.com>
* GCC/Linux support, client development, general support
Benjamin Gentner aka beegee, <>
* battle support, programming
Alexey aka Macron1Robot, <>
* minor modding changes
Alexander Shishkin aka alexvins,
* MinGW platform support, modding related programming
Arseniy Shestakov aka SXX, <me@arseniyshestakov.com>
* pathfinding improvements, programming
Vadim Markovtsev, <gmarkhor@gmail.com>
* resolving problems with macOS, bug fixes
Michał Kalinowski, <feniks_fire@o2.pl>
* refactoring code
Dydzio, <blood990@gmail.com>
* Small features, improvements and bug fixes in all VCMI parts
Piotr Wójcik aka Chocimier, <chocimier@tlen.pl>
* Various bug fixes
Henning Koehler, <henning.koehler.nz@gmail.com>
* skill modding, bonus updaters
Andrzej Żak aka godric3
* minor bug fixes and modding features
Andrii Danylchenko
* Nullkiller AI, VCAI improvements
Dmitry Orlov, <shubus.corporation@gmail.com>
* special buildings support in fan towns, new features and bug fixes
Andrey Cherkas aka nordsoft, <nordsoft@yahoo.com>
* new terrain support, rmg features, map editor, multiplayer improvements, bug fixes
Andrey Filipenkov aka kambala-decapitator, <decapitator@ukr.net>
* iOS support, macOS improvements, various bug fixes

46
AUTHORS.h Normal file
View File

@ -0,0 +1,46 @@
/*
* AUTHORS.h, part of VCMI engine
*
* Authors: listed in file AUTHORS in main folder
*
* License: GNU General Public License v2.0 or later
* Full text of license available in license.txt file, in main folder
*
*/
#pragma once
//VCMI PROJECT CODE CONTRIBUTORS:
std::vector<std::vector<std::string>> contributors = {
// Task Name Aka E-Mail
{ "Developing", "Michał Urbańczyk", "Tow", "impono@gmail.com" },
{ "Developing", "Mateusz B.", "Tow dragon", "matcio1@gmail.com" },
{ "Developing", "Stefan Pavlov", "Ste", "mailste@gmail.com" },
{ "Developing", "Yifeng Sun", "phoebus118", "pkusunyifeng@gmail.com" },
{ "Developing", "Andrea Palmate", "afxgroup", "andrea@amigasoft.net" },
{ "Developing", "Vadim Glazunov", "neweagle", "neweagle@gmail.com" },
{ "Developing", "Rafal R.", "ambtrip", "ambtrip@wp.pl" },
{ "Developing", "Lukasz Wychrystenko", "tezeriusz", "t0@czlug.icis.pcz.pl" },
{ "Developing", "Xiaomin Ding", "", "dingding303@gmail.com" },
{ "Developing", "Tom Zielinski", "Warmonger", "Warmonger@vp.pl" },
{ "Developing", "Frank Zago", "ubuntux", "" },
{ "Developing", "Trevor Standley", "tstandley", "" },
{ "Developing", "Rickard Westerlund", "Onion Knight", "onionknigh@gmail.com" },
{ "Developing", "Ivan Savenko", "", "saven.ivan@gmail.com" },
{ "Developing", "Benjamin Gentner", "beegee", "" },
{ "Developing", "Alexey ", "Macron1Robot", "" },
{ "Developing", "Alexander Shishkin", "alexvins", "" },
{ "Developing", "Arseniy Shestakov", "SXX", "me@arseniyshestakov.com" },
{ "Developing", "Vadim Markovtsev", "", "gmarkhor@gmail.com" },
{ "Developing", "Michał Kalinowski", "", "feniks_fire@o2.pl" },
{ "Developing", "", "Dydzio", "blood990@gmail.com" },
{ "Developing", "Piotr Wójcik", "Chocimier", "chocimier@tlen.pl" },
{ "Developing", "Henning Koehler", "", "henning.koehler.nz@gmail.com" },
{ "Developing", "Andrzej Żak", "godric3", "" },
{ "Developing", "Andrii Danylchenko", "", "" },
{ "Developing", "Dmitry Orlov", "", "shubus.corporation@gmail.com" },
{ "Developing", "Andrey Cherkas", "nordsoft", "nordsoft@yahoo.com" },
{ "Developing", "", "kambala-decapitator", "decapitator@ukr.net" },
{ "Developing", "", "Laserlicht", "" },
{ "Testing", "", "Povelitel", "" },
{ "Testing", "", "Misiokles", "" },
};

View File

@ -19,6 +19,8 @@
#include "../../lib/filesystem/Filesystem.h" #include "../../lib/filesystem/Filesystem.h"
#include "../../AUTHORS.h"
CreditsScreen::CreditsScreen(Rect rect) CreditsScreen::CreditsScreen(Rect rect)
: CIntObject(LCLICK), positionCounter(0) : CIntObject(LCLICK), positionCounter(0)
{ {
@ -26,11 +28,22 @@ CreditsScreen::CreditsScreen(Rect rect)
pos.h = rect.h; pos.h = rect.h;
setRedrawParent(true); setRedrawParent(true);
OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE;
std::string contributorsText = "";
std::string contributorsTask = "";
for (auto & element : contributors)
{
if(element[0] != contributorsTask)
contributorsText += "\r\n{" + element[0] + ":}\r\n";
contributorsText += (element[2] != "" ? element[2] : element[1]) + "\r\n";
contributorsTask = element[0];
}
auto textFile = CResourceHandler::get()->load(ResourcePath("DATA/CREDITS.TXT"))->readAll(); auto textFile = CResourceHandler::get()->load(ResourcePath("DATA/CREDITS.TXT"))->readAll();
std::string text((char *)textFile.first.get(), textFile.second); std::string text((char *)textFile.first.get(), textFile.second);
size_t firstQuote = text.find('\"') + 1; size_t firstQuote = text.find('\"') + 1;
text = text.substr(firstQuote, text.find('\"', firstQuote) - firstQuote); text = text.substr(firstQuote, text.find('\"', firstQuote) - firstQuote);
text = "{- VCMI -}\r\n\r\n{Contributors:}\r\n" + boost::algorithm::join(contributors, "\r\n") + "\r\n\r\n{Website:}\r\nhttps://vcmi.eu\r\n\r\n\r\n\r\n\r\n{- Heroes of Might and Magic III -}\r\n\r\n" + text; text = "{- VCMI -}\r\n\r\n" + contributorsText + "\r\n\r\n{Website:}\r\nhttps://vcmi.eu\r\n\r\n\r\n\r\n\r\n{- Heroes of Might and Magic III -}\r\n\r\n" + text;
credits = std::make_shared<CMultiLineLabel>(Rect(pos.w - 350, 0, 350, 600), FONT_CREDITS, ETextAlignment::CENTER, Colors::WHITE, text); credits = std::make_shared<CMultiLineLabel>(Rect(pos.w - 350, 0, 350, 600), FONT_CREDITS, ETextAlignment::CENTER, Colors::WHITE, text);
credits->scrollTextTo(-600); // move all text below the screen credits->scrollTextTo(-600); // move all text below the screen
} }

View File

@ -18,9 +18,6 @@ class CreditsScreen : public CIntObject
int positionCounter; int positionCounter;
std::shared_ptr<CMultiLineLabel> credits; std::shared_ptr<CMultiLineLabel> credits;
// update contributors with bash: curl -s "https://api.github.com/repos/vcmi/vcmi/contributors" | jq '.[].login' | tr '\n' '|' | sed 's/|/, /g' | sed 's/..$//'
std::vector<std::string> contributors = { "IvanSavenko", "alexvins", "mwu-tow", "Nordsoft91", "mateuszbaran", "ArseniyShestakov", "nullkiller", "dydzio0614", "kambala-decapitator", "rilian-la-te", "DjWarmonger", "Laserlicht", "beegee1", "henningkoehlernz", "SoundSSGood", "vmarkovtsev", "krs0", "Mixaill", "Fayth", "ShubusCorporation", "rwesterlund", "Macron1Robot", "Chocimier", "Zyx-2000", "bwrsandman", "stopiccot", "viciious", "karol57", "heroesiiifan", "Adriankhl" };
public: public:
CreditsScreen(Rect rect); CreditsScreen(Rect rect);
void show(Canvas & to) override; void show(Canvas & to) override;

View File

@ -281,6 +281,7 @@ macro(add_main_lib TARGET_NAME LIBRARY_TYPE)
set(lib_HEADERS set(lib_HEADERS
${MAIN_LIB_DIR}/../include/vstd/CLoggerBase.h ${MAIN_LIB_DIR}/../include/vstd/CLoggerBase.h
${MAIN_LIB_DIR}/../Global.h ${MAIN_LIB_DIR}/../Global.h
${MAIN_LIB_DIR}/../AUTHORS.h
${MAIN_LIB_DIR}/StdInc.h ${MAIN_LIB_DIR}/StdInc.h
${MAIN_LIB_DIR}/../include/vstd/ContainerUtils.h ${MAIN_LIB_DIR}/../include/vstd/ContainerUtils.h

View File

@ -127,6 +127,7 @@
</Linker> </Linker>
<Unit filename="../CMakeLists.txt" /> <Unit filename="../CMakeLists.txt" />
<Unit filename="../Global.h" /> <Unit filename="../Global.h" />
<Unit filename="../AUTHORS.h" />
<Unit filename="../Version.h" /> <Unit filename="../Version.h" />
<Unit filename="../include/vcmi/Artifact.h" /> <Unit filename="../include/vcmi/Artifact.h" />
<Unit filename="../include/vcmi/ArtifactService.h" /> <Unit filename="../include/vcmi/ArtifactService.h" />

View File

@ -325,6 +325,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\Global.h" /> <ClInclude Include="..\Global.h" />
<ClInclude Include="..\AUTHORS.h" />
<ClInclude Include="..\Version.h" /> <ClInclude Include="..\Version.h" />
<ClInclude Include="AI_Base.h" /> <ClInclude Include="AI_Base.h" />
<ClInclude Include="battle\BattleAction.h" /> <ClInclude Include="battle\BattleAction.h" />

View File

@ -470,6 +470,9 @@
<ClInclude Include="..\Global.h"> <ClInclude Include="..\Global.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\AUTHORS.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="AI_Base.h"> <ClInclude Include="AI_Base.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>