RenoFox, try going to the top of shop.cpp and adding the line:
#include <functional>
It can be above or below the include line for externs, shouldn't matter any.
If it doesn't work, let me know. There are multiple ways to tackle this problem, this is just the simplest.
That fixed the problem with shop.cpp. Next one was about output file game.exe vs crimesquad.exe, but I (presumably) fixed it by changing the Target Name in project settings to crimesquad. That still left the following errors:
1>------ Build started: Project: game, Configuration: Debug Win32 ------
1>game.obj : error LNK2019: unresolved external symbol "public: __thiscall Log::Log(void)" (??0Log@@QAE@XZ) referenced in function "void __cdecl `dynamic initializer for 'gamelog''(void)" (??__Egamelog@@YAXXZ)
1>game.obj : error LNK2019: unresolved external symbol "public: __thiscall Log::~Log(void)" (??1Log@@QAE@XZ) referenced in function "void __cdecl `dynamic atexit destructor for 'gamelog''(void)" (??__Fgamelog@@YAXXZ)
1>game.obj : error LNK2019: unresolved external symbol "public: bool __thiscall Log::initialize(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,bool,int)" (?initialize@Log@@QAE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_NH@Z) referenced in function _main
1>game.obj : error LNK2019: unresolved external symbol "public: bool __thiscall Log::log(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?log@Log@@QAE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function _main
1>Debug/crimesquad.exe : fatal error LNK1120: 4 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========