ike3 / mangosbot-bots

Bot AI Core (a part of MangosBot project)
57 stars 88 forks source link

Compile issue #24

Open evharten opened 1 year ago

evharten commented 1 year ago

[ 66%] Building CXX object src/modules/Bots/CMakeFiles/Bots.dir/playerbot/AiFactory.cpp.o In file included from /home/cmangos/mangos/src/modules/Bots/playerbot/playerbot.h:25, from /home/cmangos/mangos/src/modules/Bots/playerbot/../botpch.h:16, from /home/cmangos/mangos/src/modules/Bots/playerbot/AiFactory.cpp:1: /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAIAware.h:8:37: error: expected ‘)’ before ‘*’ token 8 | PlayerbotAIAware(PlayerbotAI* const ai) : ai(ai) { } | ~ ^ | ) /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAIAware.h:11:9: error: ‘PlayerbotAI’ does not name a type 11 | PlayerbotAI* ai; | ^~~~~~~~~~~ In file included from /home/cmangos/mangos/src/modules/Bots/playerbot/playerbot.h:28: /home/cmangos/mangos/src/modules/Bots/playerbot/ChatHelper.h:13:31: error: expected ‘)’ before ‘*’ token 13 | ChatHelper(PlayerbotAI* ai); | ~ ^ | ) In file included from /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAI.h:6, from /home/cmangos/mangos/src/modules/Bots/playerbot/playerbot.h:29: /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h: In member function ‘virtual ai::Strategy* ai::AiObjectContext::GetStrategy(std::string)’: /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h:18:96: error: expected primary-expression before ‘)’ token 18 | virtual Strategy* GetStrategy(string name) { return strategyContexts.GetObject(name, ai); } | ^ /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h: In member function ‘virtual ai::Trigger* ai::AiObjectContext::GetTrigger(std::string)’: /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h:20:93: error: expected primary-expression before ‘)’ token 20 | virtual Trigger* GetTrigger(string name) { return triggerContexts.GetObject(name, ai); } | ^ /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h: In member function ‘virtual ai::Action* ai::AiObjectContext::GetAction(std::string)’: /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h:21:90: error: expected primary-expression before ‘)’ token 21 | virtual Action* GetAction(string name) { return actionContexts.GetObject(name, ai); } | ^ /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h: In member function ‘virtual ai::UntypedValue* ai::AiObjectContext::GetUntypedValue(std::string)’: /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h:22:101: error: expected primary-expression before ‘)’ token 22 | virtual UntypedValue* GetUntypedValue(string name) { return valueContexts.GetObject(name, ai); } | ^ In file included from /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAI.h:9: /home/cmangos/mangos/src/modules/Bots/playerbot/ChatFilter.h: In constructor ‘ai::ChatFilter::ChatFilter(PlayerbotAI*)’: /home/cmangos/mangos/src/modules/Bots/playerbot/ChatFilter.h:10:58: error: no matching function for call to ‘ai::PlayerbotAIAware::PlayerbotAIAware(PlayerbotAI*&)’ 10 | ChatFilter(PlayerbotAI* ai) : PlayerbotAIAware(ai) {} | ^ /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAIAware.h:5:11: note: candidate: ‘constexpr ai::PlayerbotAIAware::PlayerbotAIAware()’ 5 | class PlayerbotAIAware | ^~~~~~~~~~~~~~~~ /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAIAware.h:5:11: note: candidate expects 0 arguments, 1 provided /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAIAware.h:5:11: note: candidate: ‘constexpr ai::PlayerbotAIAware::PlayerbotAIAware(const ai::PlayerbotAIAware&)’ /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAIAware.h:5:11: note: no known conversion for argument 1 from ‘PlayerbotAI*’ to ‘const ai::PlayerbotAIAware&’ /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAIAware.h:5:11: note: candidate: ‘constexpr ai::PlayerbotAIAware::PlayerbotAIAware(ai::PlayerbotAIAware&&)’ /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAIAware.h:5:11: note: no known conversion for argument 1 from ‘PlayerbotAI*’ to ‘ai::PlayerbotAIAware&&’ /home/cmangos/mangos/src/modules/Bots/playerbot/AiFactory.cpp: In static member function ‘static void AiFactory::AddDefaultCombatStrategies(Player*, PlayerbotAI*, ai::Engine*)’: /home/cmangos/mangos/src/modules/Bots/playerbot/AiFactory.cpp:121:29: error: ‘class Player’ has no member named ‘getLevel’; did you mean ‘GetLevel’? 121 | if (player->getLevel() > 19) | ^~~~~~~~ | GetLevel /home/cmangos/mangos/src/modules/Bots/playerbot/AiFactory.cpp:153:29: error: ‘class Player’ has no member named ‘getLevel’; did you mean ‘GetLevel’? 153 | if (player->getLevel() > 29) | ^~~~~~~~ | GetLevel /home/cmangos/mangos/src/modules/Bots/playerbot/AiFactory.cpp:155:34: error: ‘class Player’ has no member named ‘getLevel’; did you mean ‘GetLevel’? 155 | else if (player->getLevel() > 19) | ^~~~~~~~ | GetLevel /home/cmangos/mangos/src/modules/Bots/playerbot/AiFactory.cpp:173:29: error: ‘class Player’ has no member named ‘getLevel’; did you mean ‘GetLevel’? 173 | if (player->getLevel() > 19) | ^~~~~~~~ | GetLevel /home/cmangos/mangos/src/modules/Bots/playerbot/AiFactory.cpp:183:25: error: ‘class Player’ has no member named ‘getLevel’; did you mean ‘GetLevel’? 183 | if (player->getLevel() > 19) | ^~~~~~~~ | GetLevel /home/cmangos/mangos/src/modules/Bots/playerbot/AiFactory.cpp:195:25: error: ‘class Player’ has no member named ‘getLevel’; did you mean ‘GetLevel’? 195 | if (player->getLevel() > 19) | ^~~~~~~~ | GetLevel /home/cmangos/mangos/src/modules/Bots/playerbot/AiFactory.cpp:207:62: error: ‘class Player’ has no member named ‘getLevel’; did you mean ‘GetLevel’? 207 | if (player->getClass() == CLASS_DRUID && player->getLevel() < 20) | ^~~~~~~~ | GetLevel make[2]: *** [src/modules/Bots/CMakeFiles/Bots.dir/build.make:76: src/modules/Bots/CMakeFiles/Bots.dir/playerbot/AiFactory.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:754: src/modules/Bots/CMakeFiles/Bots.dir/all] Error 2 make: *** [Makefile:136: all] Error 2

Cannot seem to get it compiled on Linux, the core compiles without issues, but sadly the bots don't am i missing something ?

evharten commented 1 year ago

to add, using cmangos-one repo as core, since a lot of patches are in there.

celguar commented 1 year ago

mangos-one or cmangos-tbc? There is no cmangos one

evharten commented 1 year ago

mangos-one or cmangos-tbc? There is no cmangos one

cmangos-tbc my apologies :)

evharten commented 1 year ago

Partially fixed as 1 of the errors was an lower or uppercase G, so that was easely fixed.

[ 65%] Building CXX object src/modules/Bots/CMakeFiles/Bots.dir/playerbot/AiFactory.cpp.o In file included from /home/cmangos/mangos/src/modules/Bots/playerbot/playerbot.h:26, from /home/cmangos/mangos/src/modules/Bots/playerbot/../botpch.h:16, from /home/cmangos/mangos/src/modules/Bots/playerbot/AiFactory.cpp:1: /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAIAware.h:8:45: error: expected ‘)’ before ‘*’ token 8 | PlayerbotAIAware(PlayerbotAI* const ai): ai(ai) { }; | ~ ^ | ) /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAIAware.h:11:17: error: ‘PlayerbotAI’ does not name a type 11 | PlayerbotAI* const ai; | ^~~~~~~~~~~ In file included from /home/cmangos/mangos/src/modules/Bots/playerbot/playerbot.h:29: /home/cmangos/mangos/src/modules/Bots/playerbot/ChatHelper.h:13:31: error: expected ‘)’ before ‘*’ token 13 | ChatHelper(PlayerbotAI* ai); | ~ ^ | ) In file included from /home/cmangos/mangos/src/modules/Bots/playerbot/PlayerbotAI.h:6, from /home/cmangos/mangos/src/modules/Bots/playerbot/playerbot.h:30: /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h: In member function ‘virtual ai::Strategy* ai::AiObjectContext::GetStrategy(std::string)’: /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h:18:96: error: expected primary-expression before ‘)’ token 18 | virtual Strategy* GetStrategy(string name) { return strategyContexts.GetObject(name, ai); } | ^ /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h: In member function ‘virtual ai::Trigger* ai::AiObjectContext::GetTrigger(std::string)’: /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h:20:93: error: expected primary-expression before ‘)’ token 20 | virtual Trigger* GetTrigger(string name) { return triggerContexts.GetObject(name, ai); } | ^ /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h: In member function ‘virtual ai::Action* ai::AiObjectContext::GetAction(std::string)’: /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h:21:90: error: expected primary-expression before ‘)’ token 21 | virtual Action* GetAction(string name) { return actionContexts.GetObject(name, ai); } | ^ /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h: In member function ‘virtual ai::UntypedValue* ai::AiObjectContext::GetUntypedValue(std::string)’: /home/cmangos/mangos/src/modules/Bots/playerbot/strategy/AiObjectContext.h:22:101: error: expected primary-expression before ‘)’ token 22 | virtual UntypedValue* GetUntypedValue(string name) { return valueContexts.GetObject(name, ai); } | ^ make[2]: *** [src/modules/Bots/CMakeFiles/Bots.dir/build.make:97: src/modules/Bots/CMakeFiles/Bots.dir/playerbot/AiFactory.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:733: src/modules/Bots/CMakeFiles/Bots.dir/all] Error 2 make: *** [Makefile:136: all] Error 2

It seems like it cannot find the PlayerbotAI definition, but that file is later included, moving it more up in the .h isnt fixing it, as it then throws more errors due to the chat and stuff missing other includes.

celguar commented 1 year ago

Did you enable PCH in cmake