mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-13 19:54:17 +02:00
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -27,27 +27,27 @@
|
|||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -41,27 +41,27 @@
|
|||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -67,27 +67,27 @@
|
|||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -27,27 +27,27 @@
|
|||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -27,27 +27,27 @@
|
|||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
@@ -779,9 +779,9 @@ void processCommand(const std::string &message)
|
|||||||
//plays intro, ends when intro is over or button has been pressed (handles events)
|
//plays intro, ends when intro is over or button has been pressed (handles events)
|
||||||
void playIntro()
|
void playIntro()
|
||||||
{
|
{
|
||||||
if(CCS->videoh->openAndPlayVideo("3DOLOGO.SMK", 60, 40, screen, true))
|
if(CCS->videoh->openAndPlayVideo("3DOLOGO.SMK", 60, 40, screen, true, true))
|
||||||
{
|
{
|
||||||
CCS->videoh->openAndPlayVideo("AZVS.SMK", 60, 80, screen, true);
|
CCS->videoh->openAndPlayVideo("AZVS.SMK", 60, 80, screen, true, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -23,553 +23,7 @@ static bool keyDown()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_WIN32) && (_MSC_VER < 1800 || !defined(USE_FFMPEG))
|
|
||||||
|
|
||||||
void checkForError(bool throwing = true)
|
|
||||||
{
|
|
||||||
int error = GetLastError();
|
|
||||||
if(!error)
|
|
||||||
return;
|
|
||||||
|
|
||||||
logGlobal->errorStream() << "Error " << error << " encountered!";
|
|
||||||
std::string msg;
|
|
||||||
char* pTemp = nullptr;
|
|
||||||
FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM,
|
|
||||||
nullptr, error, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), (LPSTR)&pTemp, 1, nullptr );
|
|
||||||
logGlobal->errorStream() << "Error: " << pTemp;
|
|
||||||
msg = pTemp;
|
|
||||||
LocalFree( pTemp );
|
|
||||||
pTemp = nullptr;
|
|
||||||
if(throwing)
|
|
||||||
throw std::runtime_error(msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
void blitBuffer(char *buffer, int x, int y, int w, int h, SDL_Surface *dst)
|
|
||||||
{
|
|
||||||
const int bpp = dst->format->BytesPerPixel;
|
|
||||||
char *dest;
|
|
||||||
for(int i = h; i > 0; i--)
|
|
||||||
{
|
|
||||||
dest = (char*)dst->pixels + dst->pitch*(y+h-i) + x*dst->format->BytesPerPixel;
|
|
||||||
memcpy(dest, buffer, bpp*w);
|
|
||||||
buffer += bpp*w;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DLLHandler::Instantiate(const char *filename)
|
|
||||||
{
|
|
||||||
name = filename;
|
|
||||||
dll = LoadLibraryA(filename);
|
|
||||||
if(!dll)
|
|
||||||
{
|
|
||||||
logGlobal->errorStream() << "Failed loading " << filename;
|
|
||||||
checkForError(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void *DLLHandler::FindAddress(const char *symbol)
|
|
||||||
{
|
|
||||||
void *ret;
|
|
||||||
|
|
||||||
if(!dll)
|
|
||||||
{
|
|
||||||
logGlobal->errorStream() << "Cannot look for " << symbol << " because DLL hasn't been appropriately loaded!";
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
ret = (void*) GetProcAddress(dll,symbol);
|
|
||||||
if(!ret)
|
|
||||||
{
|
|
||||||
logGlobal->errorStream() << "Failed to find " << symbol << " in " << name;
|
|
||||||
checkForError();
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
DLLHandler::~DLLHandler()
|
|
||||||
{
|
|
||||||
if(dll)
|
|
||||||
{
|
|
||||||
if(!FreeLibrary(dll))
|
|
||||||
{
|
|
||||||
logGlobal->errorStream() << "Failed to free " << name;
|
|
||||||
checkForError();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DLLHandler::DLLHandler()
|
|
||||||
{
|
|
||||||
dll = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
CBIKHandler::CBIKHandler()
|
|
||||||
{
|
|
||||||
Instantiate("BINKW32.DLL");
|
|
||||||
//binkGetError = FindAddress("_BinkGetError@0");
|
|
||||||
binkOpen = (BinkOpen)FindAddress("_BinkOpen@8");
|
|
||||||
binkSetSoundSystem = (BinkSetSoundSystem)FindAddress("_BinkSetSoundSystem@8");
|
|
||||||
//getPalette = (BinkGetPalette)FindAddress("_BinkGetPalette@4");
|
|
||||||
binkNextFrame = (BinkNextFrame)FindAddress("_BinkNextFrame@4");
|
|
||||||
binkDoFrame = (BinkDoFrame)FindAddress("_BinkDoFrame@4");
|
|
||||||
binkCopyToBuffer = (BinkCopyToBuffer)FindAddress("_BinkCopyToBuffer@28");
|
|
||||||
binkWait = (BinkWait)FindAddress("_BinkWait@4");
|
|
||||||
binkClose = (BinkClose)FindAddress("_BinkClose@4");
|
|
||||||
|
|
||||||
|
|
||||||
hBinkFile = nullptr;
|
|
||||||
hBink = nullptr;
|
|
||||||
|
|
||||||
buffer = nullptr;
|
|
||||||
bufferSize = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CBIKHandler::open(std::string name)
|
|
||||||
{
|
|
||||||
hBinkFile = CreateFileA
|
|
||||||
(
|
|
||||||
name.c_str(), // file name
|
|
||||||
GENERIC_READ, // access mode
|
|
||||||
FILE_SHARE_READ, // share mode
|
|
||||||
nullptr, // Security Descriptor
|
|
||||||
OPEN_EXISTING, // how to create
|
|
||||||
FILE_ATTRIBUTE_NORMAL,//FILE_FLAG_SEQUENTIAL_SCAN, // file attributes
|
|
||||||
0 // handle to template file
|
|
||||||
);
|
|
||||||
|
|
||||||
if(hBinkFile == INVALID_HANDLE_VALUE)
|
|
||||||
{
|
|
||||||
logGlobal->errorStream() << "BIK handler: failed to open " << name;
|
|
||||||
goto checkErrorAndClean;
|
|
||||||
}
|
|
||||||
//GCC wants scope of waveout to don`t cross labels/swith/goto
|
|
||||||
{
|
|
||||||
void *waveout = (void *)GetProcAddress(dll,"_BinkOpenWaveOut@4");
|
|
||||||
if(waveout)
|
|
||||||
binkSetSoundSystem(waveout,nullptr);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
hBink = binkOpen(hBinkFile, 0x8a800000);
|
|
||||||
if(!hBink)
|
|
||||||
{
|
|
||||||
logGlobal->errorStream() << "bink failed to open " << name;
|
|
||||||
goto checkErrorAndClean;
|
|
||||||
}
|
|
||||||
|
|
||||||
allocBuffer();
|
|
||||||
return true;
|
|
||||||
|
|
||||||
checkErrorAndClean:
|
|
||||||
CloseHandle(hBinkFile);
|
|
||||||
hBinkFile = nullptr;
|
|
||||||
checkForError();
|
|
||||||
throw std::runtime_error("BIK failed opening video!");
|
|
||||||
}
|
|
||||||
|
|
||||||
void CBIKHandler::show( int x, int y, SDL_Surface *dst, bool update )
|
|
||||||
{
|
|
||||||
const int w = hBink->width,
|
|
||||||
h = hBink->height,
|
|
||||||
Bpp = dst->format->BytesPerPixel;
|
|
||||||
|
|
||||||
int mode = -1;
|
|
||||||
|
|
||||||
//screen color depth might have changed... (eg. because F4)
|
|
||||||
if(bufferSize != w * h * Bpp)
|
|
||||||
{
|
|
||||||
freeBuffer();
|
|
||||||
allocBuffer(Bpp);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch(Bpp)
|
|
||||||
{
|
|
||||||
case 2:
|
|
||||||
mode = 3; //565, mode 2 is 555 probably
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
mode = 0;
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
mode = 1;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return; //not supported screen depth
|
|
||||||
}
|
|
||||||
|
|
||||||
binkDoFrame(hBink);
|
|
||||||
binkCopyToBuffer(hBink, buffer, w*Bpp, h, 0, 0, mode);
|
|
||||||
blitBuffer(buffer, x, y, w, h, dst);
|
|
||||||
if(update)
|
|
||||||
SDL_UpdateRect(dst, x, y, w, h);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CBIKHandler::nextFrame()
|
|
||||||
{
|
|
||||||
binkNextFrame(hBink);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CBIKHandler::close()
|
|
||||||
{
|
|
||||||
binkClose(hBink);
|
|
||||||
hBink = nullptr;
|
|
||||||
CloseHandle(hBinkFile);
|
|
||||||
hBinkFile = nullptr;
|
|
||||||
delete [] buffer;
|
|
||||||
|
|
||||||
buffer = nullptr;
|
|
||||||
bufferSize = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CBIKHandler::wait()
|
|
||||||
{
|
|
||||||
return binkWait(hBink);
|
|
||||||
}
|
|
||||||
|
|
||||||
int CBIKHandler::curFrame() const
|
|
||||||
{
|
|
||||||
return hBink->currentFrame;
|
|
||||||
}
|
|
||||||
|
|
||||||
int CBIKHandler::frameCount() const
|
|
||||||
{
|
|
||||||
return hBink->frameCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CBIKHandler::redraw( int x, int y, SDL_Surface *dst, bool update )
|
|
||||||
{
|
|
||||||
int w = hBink->width, h = hBink->height;
|
|
||||||
blitBuffer(buffer, x, y, w, h, dst);
|
|
||||||
if(update)
|
|
||||||
SDL_UpdateRect(dst, x, y, w, h);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CBIKHandler::allocBuffer(int Bpp)
|
|
||||||
{
|
|
||||||
if(!Bpp) Bpp = screen->format->BytesPerPixel;
|
|
||||||
|
|
||||||
bufferSize = hBink->width * hBink->height * Bpp;
|
|
||||||
buffer = new char[bufferSize];
|
|
||||||
}
|
|
||||||
|
|
||||||
void CBIKHandler::freeBuffer()
|
|
||||||
{
|
|
||||||
delete [] buffer;
|
|
||||||
buffer = nullptr;
|
|
||||||
bufferSize = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CSmackPlayer::nextFrame()
|
|
||||||
{
|
|
||||||
ptrSmackNextFrame(data);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CSmackPlayer::wait()
|
|
||||||
{
|
|
||||||
return ptrSmackWait(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
CSmackPlayer::CSmackPlayer() : data(nullptr)
|
|
||||||
{
|
|
||||||
Instantiate("smackw32.dll");
|
|
||||||
ptrSmackNextFrame = (SmackNextFrame)FindAddress("_SmackNextFrame@4");
|
|
||||||
ptrSmackWait = (SmackWait)FindAddress("_SmackWait@4");
|
|
||||||
ptrSmackDoFrame = (SmackDoFrame)FindAddress("_SmackDoFrame@4");
|
|
||||||
ptrSmackToBuffer = (SmackToBuffer)FindAddress("_SmackToBuffer@28");
|
|
||||||
ptrSmackOpen = (SmackOpen)FindAddress("_SmackOpen@12");
|
|
||||||
ptrSmackSoundOnOff = (SmackSoundOnOff)FindAddress("_SmackSoundOnOff@8");
|
|
||||||
ptrSmackClose = (SmackClose)FindAddress("_SmackClose@4");
|
|
||||||
ptrVolumePan = (SmackVolumePan)FindAddress("_SmackVolumePan@16");
|
|
||||||
}
|
|
||||||
|
|
||||||
CSmackPlayer::~CSmackPlayer()
|
|
||||||
{
|
|
||||||
if(data)
|
|
||||||
close();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CSmackPlayer::close()
|
|
||||||
{
|
|
||||||
ptrSmackClose(data);
|
|
||||||
data = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CSmackPlayer::open( std::string name )
|
|
||||||
{
|
|
||||||
Uint32 flags[2] = {0xff400, 0xfe400};
|
|
||||||
|
|
||||||
data = ptrSmackOpen( (void*)name.c_str(), flags[1], -1);
|
|
||||||
if (!data)
|
|
||||||
{
|
|
||||||
logGlobal->errorStream() << "Smack cannot open " << name;
|
|
||||||
checkForError();
|
|
||||||
throw std::runtime_error("SMACK failed opening video");
|
|
||||||
}
|
|
||||||
|
|
||||||
buffer = new char[data->width*data->height*2];
|
|
||||||
buf = buffer+data->width*(data->height-1)*2; // adjust pointer position for later use by 'SmackToBuffer'
|
|
||||||
|
|
||||||
//ptrVolumePan(data, 0xfe000, 3640 * GDefaultOptions.musicVolume / 11, 0x8000); //set volume
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CSmackPlayer::show( int x, int y, SDL_Surface *dst, bool update)
|
|
||||||
{
|
|
||||||
int w = data->width;
|
|
||||||
int stripe = (-w*2) & (~3);
|
|
||||||
|
|
||||||
//put frame to the buffer
|
|
||||||
ptrSmackToBuffer(data, 0, 0, stripe, w, buf, 0x80000000);
|
|
||||||
ptrSmackDoFrame(data);
|
|
||||||
redraw(x, y, dst, update);
|
|
||||||
}
|
|
||||||
|
|
||||||
int CSmackPlayer::curFrame() const
|
|
||||||
{
|
|
||||||
return data->currentFrame;
|
|
||||||
}
|
|
||||||
|
|
||||||
int CSmackPlayer::frameCount() const
|
|
||||||
{
|
|
||||||
return data->frameCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CSmackPlayer::redraw( int x, int y, SDL_Surface *dst, bool update )
|
|
||||||
{
|
|
||||||
int w = std::min<int>(data->width, dst->w - x), h = std::min<int>(data->height, dst->h - y);
|
|
||||||
/* Lock the screen for direct access to the pixels */
|
|
||||||
if ( SDL_MUSTLOCK(dst) )
|
|
||||||
{
|
|
||||||
if ( SDL_LockSurface(dst) < 0 )
|
|
||||||
{
|
|
||||||
fprintf(stderr, "Can't lock screen: %s\n", SDL_GetError());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// draw the frame
|
|
||||||
Uint16* addr = (Uint16*) (buffer+w*(h-1)*2-2);
|
|
||||||
if(dst->format->BytesPerPixel >= 3)
|
|
||||||
{
|
|
||||||
for( int j=0; j<h-1; j++) // why -1 ?
|
|
||||||
{
|
|
||||||
for ( int i=w-1; i>=0; i--)
|
|
||||||
{
|
|
||||||
Uint16 pixel = *addr;
|
|
||||||
|
|
||||||
Uint8 *p = (Uint8 *)dst->pixels + (j+y) * dst->pitch + (i + x) * dst->format->BytesPerPixel;
|
|
||||||
p[2] = ((pixel & 0x7c00) >> 10) * 8;
|
|
||||||
p[1] = ((pixel & 0x3e0) >> 5) * 8;
|
|
||||||
p[0] = ((pixel & 0x1F)) * 8;
|
|
||||||
|
|
||||||
addr--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(dst->format->BytesPerPixel == 2)
|
|
||||||
{
|
|
||||||
for( int j=0; j<h-1; j++) // why -1 ?
|
|
||||||
{
|
|
||||||
for ( int i=w-1; i>=0; i--)
|
|
||||||
{
|
|
||||||
//convert rgb 555 to 565
|
|
||||||
Uint16 pixel = *addr;
|
|
||||||
Uint16 *p = (Uint16 *)((Uint8 *)dst->pixels + (j+y) * dst->pitch + (i + x) * dst->format->BytesPerPixel);
|
|
||||||
*p = (pixel & 0x1F)
|
|
||||||
+ ((pixel & 0x3e0) << 1)
|
|
||||||
+ ((pixel & 0x7c00) << 1);
|
|
||||||
|
|
||||||
addr--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( SDL_MUSTLOCK(dst) )
|
|
||||||
{
|
|
||||||
SDL_UnlockSurface(dst);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(update)
|
|
||||||
SDL_UpdateRect(dst, x, y, w, h);
|
|
||||||
}
|
|
||||||
|
|
||||||
CVideoPlayer::CVideoPlayer()
|
|
||||||
{
|
|
||||||
current = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
CVideoPlayer::~CVideoPlayer()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CVideoPlayer::open(std::string name)
|
|
||||||
{
|
|
||||||
fname = name;
|
|
||||||
first = true;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// Extract video from video.vid so we can play it.
|
|
||||||
// We can handle only videos in form of single file, no archive support yet.
|
|
||||||
{
|
|
||||||
ResourceID videoID = ResourceID("VIDEO/" + name, EResType::VIDEO);
|
|
||||||
auto data = CResourceHandler::get()->load(videoID)->readAll();
|
|
||||||
|
|
||||||
// try to determine video format using magic number from header (3 bytes, SMK or BIK)
|
|
||||||
std::string magic(reinterpret_cast<char*>(data.first.get()), 3);
|
|
||||||
if (magic == "BIK")
|
|
||||||
current = &bikPlayer;
|
|
||||||
else if (magic == "SMK")
|
|
||||||
current = &smkPlayer;
|
|
||||||
else
|
|
||||||
throw std::runtime_error("Unknown video format: " + magic);
|
|
||||||
|
|
||||||
std::ofstream out(name, std::ofstream::binary);
|
|
||||||
out.exceptions(std::ifstream::failbit | std::ifstream::badbit);
|
|
||||||
out.write(reinterpret_cast<char*>(data.first.get()), data.second);
|
|
||||||
}
|
|
||||||
|
|
||||||
current->open(name);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
catch(std::exception &e)
|
|
||||||
{
|
|
||||||
current = nullptr;
|
|
||||||
logGlobal->warnStream() << "Failed to open video file " << name << ": " << e.what();
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CVideoPlayer::close()
|
|
||||||
{
|
|
||||||
if(!current)
|
|
||||||
{
|
|
||||||
logGlobal->warnStream() << "Closing no opened player...?";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
current->close();
|
|
||||||
current = nullptr;
|
|
||||||
if(!DeleteFileA(fname.c_str()))
|
|
||||||
{
|
|
||||||
logGlobal->errorStream() << "Cannot remove temporarily extracted video file: " << fname;
|
|
||||||
checkForError(false);
|
|
||||||
}
|
|
||||||
fname.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CVideoPlayer::nextFrame()
|
|
||||||
{
|
|
||||||
if(current)
|
|
||||||
{
|
|
||||||
current->nextFrame();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CVideoPlayer::show(int x, int y, SDL_Surface *dst, bool update)
|
|
||||||
{
|
|
||||||
if(current)
|
|
||||||
current->show(x, y, dst, update);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CVideoPlayer::wait()
|
|
||||||
{
|
|
||||||
if(current)
|
|
||||||
return current->wait();
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
int CVideoPlayer::curFrame() const
|
|
||||||
{
|
|
||||||
if(current)
|
|
||||||
return current->curFrame();
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int CVideoPlayer::frameCount() const
|
|
||||||
{
|
|
||||||
if(current)
|
|
||||||
return current->frameCount();
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CVideoPlayer::openAndPlayVideo(std::string name, int x, int y, SDL_Surface *dst, bool stopOnKey)
|
|
||||||
{
|
|
||||||
if(!open(name))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
bool ret = playVideo(x, y, dst, stopOnKey);
|
|
||||||
close();
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CVideoPlayer::update( int x, int y, SDL_Surface *dst, bool forceRedraw, bool update )
|
|
||||||
{
|
|
||||||
if(!current)
|
|
||||||
return;
|
|
||||||
|
|
||||||
bool w = false;
|
|
||||||
if(!first)
|
|
||||||
{
|
|
||||||
w = wait(); //check if should keep current frame
|
|
||||||
if(!w)
|
|
||||||
nextFrame();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
first = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(!w)
|
|
||||||
{
|
|
||||||
show(x,y,dst,update);
|
|
||||||
}
|
|
||||||
else if (forceRedraw)
|
|
||||||
{
|
|
||||||
redraw(x, y, dst, update);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CVideoPlayer::redraw( int x, int y, SDL_Surface *dst, bool update )
|
|
||||||
{
|
|
||||||
if(current)
|
|
||||||
current->redraw(x, y, dst, update);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CVideoPlayer::playVideo(int x, int y, SDL_Surface *dst, bool stopOnKey)
|
|
||||||
{
|
|
||||||
if(!current)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
int frame = 0;
|
|
||||||
while(frame < frameCount()) //play all frames
|
|
||||||
{
|
|
||||||
if(stopOnKey && keyDown())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if(!wait())
|
|
||||||
{
|
|
||||||
show(x, y, dst);
|
|
||||||
nextFrame();
|
|
||||||
frame++;
|
|
||||||
}
|
|
||||||
SDL_Delay(20);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma comment(lib, "avcodec.lib")
|
#pragma comment(lib, "avcodec.lib")
|
||||||
@@ -619,14 +73,14 @@ CVideoPlayer::CVideoPlayer()
|
|||||||
av_register_all();
|
av_register_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CVideoPlayer::open(std::string fname)
|
bool CVideoPlayer::open(std::string fname, bool scale/* = false*/)
|
||||||
{
|
{
|
||||||
return open(fname, true, false);
|
return open(fname, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// loop = to loop through the video
|
// loop = to loop through the video
|
||||||
// useOverlay = directly write to the screen.
|
// useOverlay = directly write to the screen.
|
||||||
bool CVideoPlayer::open(std::string fname, bool loop, bool useOverlay)
|
bool CVideoPlayer::open(std::string fname, bool loop, bool useOverlay, bool scale /*= false*/)
|
||||||
{
|
{
|
||||||
close();
|
close();
|
||||||
|
|
||||||
@@ -709,23 +163,36 @@ bool CVideoPlayer::open(std::string fname, bool loop, bool useOverlay)
|
|||||||
// Allocate video frame
|
// Allocate video frame
|
||||||
frame = avcodec_alloc_frame();
|
frame = avcodec_alloc_frame();
|
||||||
|
|
||||||
|
//setup scaling
|
||||||
|
|
||||||
|
if(scale)
|
||||||
|
{
|
||||||
|
pos.w = screen->w;
|
||||||
|
pos.h = screen->h;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pos.w = codecContext->width;
|
||||||
|
pos.h = codecContext->height;
|
||||||
|
}
|
||||||
|
|
||||||
// Allocate a place to put our YUV image on that screen
|
// Allocate a place to put our YUV image on that screen
|
||||||
if (useOverlay)
|
if (useOverlay)
|
||||||
{
|
{
|
||||||
#ifdef VCMI_SDL1
|
#ifdef VCMI_SDL1
|
||||||
overlay = SDL_CreateYUVOverlay(codecContext->width, codecContext->height,
|
overlay = SDL_CreateYUVOverlay(pos.w, pos.h,
|
||||||
SDL_YV12_OVERLAY, screen);
|
SDL_YV12_OVERLAY, screen);
|
||||||
#else
|
#else
|
||||||
texture = SDL_CreateTexture( mainRenderer, SDL_PIXELFORMAT_IYUV, SDL_TEXTUREACCESS_STATIC, codecContext->width, codecContext->height);
|
texture = SDL_CreateTexture( mainRenderer, SDL_PIXELFORMAT_IYUV, SDL_TEXTUREACCESS_STATIC, pos.w, pos.h);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dest = CSDL_Ext::newSurface(codecContext->width, codecContext->height);
|
dest = CSDL_Ext::newSurface(pos.w, pos.h);
|
||||||
destRect.x = destRect.y = 0;
|
destRect.x = destRect.y = 0;
|
||||||
destRect.w = codecContext->width;
|
destRect.w = pos.w;
|
||||||
destRect.h = codecContext->height;
|
destRect.h = pos.h;
|
||||||
}
|
}
|
||||||
#ifdef VCMI_SDL1
|
#ifdef VCMI_SDL1
|
||||||
if (overlay == nullptr && dest == nullptr)
|
if (overlay == nullptr && dest == nullptr)
|
||||||
@@ -739,9 +206,9 @@ bool CVideoPlayer::open(std::string fname, bool loop, bool useOverlay)
|
|||||||
if (texture)
|
if (texture)
|
||||||
#endif
|
#endif
|
||||||
{ // Convert the image into YUV format that SDL uses
|
{ // Convert the image into YUV format that SDL uses
|
||||||
sws = sws_getContext(codecContext->width, codecContext->height,
|
sws = sws_getContext(codecContext->width, codecContext->height, codecContext->pix_fmt,
|
||||||
codecContext->pix_fmt, codecContext->width, codecContext->height,
|
pos.w, pos.h, PIX_FMT_YUV420P,
|
||||||
PIX_FMT_YUV420P, SWS_BICUBIC, nullptr, nullptr, nullptr);
|
SWS_BICUBIC, nullptr, nullptr, nullptr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -770,17 +237,14 @@ bool CVideoPlayer::open(std::string fname, bool loop, bool useOverlay)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sws = sws_getContext(codecContext->width, codecContext->height,
|
sws = sws_getContext(codecContext->width, codecContext->height, codecContext->pix_fmt,
|
||||||
codecContext->pix_fmt, codecContext->width, codecContext->height,
|
pos.w, pos.h, screenFormat,
|
||||||
screenFormat, SWS_BICUBIC, nullptr, nullptr, nullptr);
|
SWS_BICUBIC, nullptr, nullptr, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sws == nullptr)
|
if (sws == nullptr)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
pos.w = codecContext->width;
|
|
||||||
pos.h = codecContext->height;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -844,7 +308,7 @@ bool CVideoPlayer::nextFrame()
|
|||||||
SDL_UnlockYUVOverlay(overlay);
|
SDL_UnlockYUVOverlay(overlay);
|
||||||
#else
|
#else
|
||||||
if (texture) {
|
if (texture) {
|
||||||
avpicture_alloc(&pict, AV_PIX_FMT_YUV420P, codecContext->width, codecContext->height);
|
avpicture_alloc(&pict, AV_PIX_FMT_YUV420P, pos.w, pos.h);
|
||||||
|
|
||||||
sws_scale(sws, frame->data, frame->linesize,
|
sws_scale(sws, frame->data, frame->linesize,
|
||||||
0, codecContext->height, pict.data, pict.linesize);
|
0, codecContext->height, pict.data, pict.linesize);
|
||||||
@@ -1000,7 +464,7 @@ bool CVideoPlayer::playVideo(int x, int y, SDL_Surface *dst, bool stopOnKey)
|
|||||||
#ifdef VCMI_SDL1
|
#ifdef VCMI_SDL1
|
||||||
SDL_DisplayYUVOverlay(overlay, &pos);
|
SDL_DisplayYUVOverlay(overlay, &pos);
|
||||||
#else
|
#else
|
||||||
SDL_RenderCopy(mainRenderer, texture, NULL, NULL);
|
SDL_RenderCopy(mainRenderer, texture, NULL, &pos);
|
||||||
SDL_RenderPresent(mainRenderer);
|
SDL_RenderPresent(mainRenderer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1014,9 +478,9 @@ bool CVideoPlayer::playVideo(int x, int y, SDL_Surface *dst, bool stopOnKey)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CVideoPlayer::openAndPlayVideo(std::string name, int x, int y, SDL_Surface *dst, bool stopOnKey)
|
bool CVideoPlayer::openAndPlayVideo(std::string name, int x, int y, SDL_Surface *dst, bool stopOnKey, bool scale/* = false*/)
|
||||||
{
|
{
|
||||||
open(name, false, true);
|
open(name, false, true, scale);
|
||||||
bool ret = playVideo(x, y, dst, stopOnKey);
|
bool ret = playVideo(x, y, dst, stopOnKey);
|
||||||
close();
|
close();
|
||||||
return ret;
|
return ret;
|
||||||
@@ -1029,4 +493,3 @@ CVideoPlayer::~CVideoPlayer()
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@@ -6,7 +6,7 @@ struct SDL_Surface;
|
|||||||
class IVideoPlayer
|
class IVideoPlayer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual bool open(std::string name)=0; //true - succes
|
virtual bool open(std::string name, bool scale = false)=0; //true - succes
|
||||||
virtual void close()=0;
|
virtual void close()=0;
|
||||||
virtual bool nextFrame()=0;
|
virtual bool nextFrame()=0;
|
||||||
virtual void show(int x, int y, SDL_Surface *dst, bool update = true)=0;
|
virtual void show(int x, int y, SDL_Surface *dst, bool update = true)=0;
|
||||||
@@ -14,7 +14,6 @@ public:
|
|||||||
virtual bool wait()=0;
|
virtual bool wait()=0;
|
||||||
virtual int curFrame() const =0;
|
virtual int curFrame() const =0;
|
||||||
virtual int frameCount() const =0;
|
virtual int frameCount() const =0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class IMainVideoPlayer : public IVideoPlayer
|
class IMainVideoPlayer : public IVideoPlayer
|
||||||
@@ -23,7 +22,7 @@ public:
|
|||||||
std::string fname; //name of current video file (empty if idle)
|
std::string fname; //name of current video file (empty if idle)
|
||||||
|
|
||||||
virtual void update(int x, int y, SDL_Surface *dst, bool forceRedraw, bool update = true){}
|
virtual void update(int x, int y, SDL_Surface *dst, bool forceRedraw, bool update = true){}
|
||||||
virtual bool openAndPlayVideo(std::string name, int x, int y, SDL_Surface *dst, bool stopOnKey = false)
|
virtual bool openAndPlayVideo(std::string name, int x, int y, SDL_Surface *dst, bool stopOnKey = false, bool scale = false)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -32,189 +31,17 @@ public:
|
|||||||
class CEmptyVideoPlayer : public IMainVideoPlayer
|
class CEmptyVideoPlayer : public IMainVideoPlayer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual int curFrame() const {return -1;};
|
int curFrame() const override {return -1;};
|
||||||
virtual int frameCount() const {return -1;};
|
int frameCount() const override {return -1;};
|
||||||
virtual void redraw( int x, int y, SDL_Surface *dst, bool update = true ) {};
|
void redraw(int x, int y, SDL_Surface *dst, bool update = true) override {};
|
||||||
virtual void show( int x, int y, SDL_Surface *dst, bool update = true ) {};
|
void show(int x, int y, SDL_Surface *dst, bool update = true) override{};
|
||||||
virtual bool nextFrame() {return false;};
|
bool nextFrame() override {return false;};
|
||||||
virtual void close() {};
|
void close() override {};
|
||||||
virtual bool wait() {return false;};
|
bool wait() override {return false;};
|
||||||
virtual bool open( std::string name ) {return false;};
|
bool open(std::string name, bool scale = false) override {return false;};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#if defined(_WIN32) && (_MSC_VER < 1800 || !defined(USE_FFMPEG))
|
|
||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN //excludes rarely used stuff from windows headers - delete this line if something is missing
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
#pragma pack(push,1)
|
|
||||||
struct BINK_STRUCT
|
|
||||||
{
|
|
||||||
si32 width;
|
|
||||||
si32 height;
|
|
||||||
si32 frameCount;
|
|
||||||
si32 currentFrame;
|
|
||||||
si32 lastFrame;
|
|
||||||
si32 FPSMul;
|
|
||||||
si32 FPSDiv;
|
|
||||||
si32 unknown0;
|
|
||||||
ui8 flags;
|
|
||||||
ui8 unknown1[260];
|
|
||||||
si32 CurPlane; // current plane
|
|
||||||
void *plane0; // posi32er to plane 0
|
|
||||||
void *plane1; // posi32er to plane 1
|
|
||||||
si32 unknown2;
|
|
||||||
si32 unknown3;
|
|
||||||
si32 yWidth; // Y plane width
|
|
||||||
si32 yHeight; // Y plane height
|
|
||||||
si32 uvWidth; // U&V plane width
|
|
||||||
si32 uvHeight; // U&V plane height
|
|
||||||
};
|
|
||||||
#pragma pack(pop)
|
|
||||||
|
|
||||||
typedef BINK_STRUCT* HBINK;
|
|
||||||
|
|
||||||
class DLLHandler
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
std::string name;
|
|
||||||
HINSTANCE dll;
|
|
||||||
void Instantiate(const char *filename);
|
|
||||||
const char *GetLibExtension();
|
|
||||||
void *FindAddress(const char *symbol);
|
|
||||||
|
|
||||||
DLLHandler();
|
|
||||||
virtual ~DLLHandler(); //d-tor
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef void*(__stdcall* BinkSetSoundSystem)(void * soundfun, void*);
|
|
||||||
typedef HBINK(__stdcall* BinkOpen)(HANDLE bikfile, int flags);
|
|
||||||
typedef void(__stdcall* BinkClose)(HBINK);
|
|
||||||
//typedef si32(__stdcall* BinkGetPalette)(HBINK);
|
|
||||||
typedef void(__stdcall* BinkNextFrame)(HBINK);
|
|
||||||
typedef void(__stdcall* BinkDoFrame)(HBINK);
|
|
||||||
typedef ui8(__stdcall* BinkWait)(HBINK);
|
|
||||||
typedef si32(__stdcall* BinkCopyToBuffer)(HBINK, void* buffer, int stride, int height, int x, int y, int mode);
|
|
||||||
|
|
||||||
class CBIKHandler : public DLLHandler, public IVideoPlayer
|
|
||||||
{
|
|
||||||
void allocBuffer(int Bpp = 0);
|
|
||||||
void freeBuffer();
|
|
||||||
public:
|
|
||||||
HANDLE hBinkFile;
|
|
||||||
HBINK hBink;
|
|
||||||
char * buffer;
|
|
||||||
int bufferSize;
|
|
||||||
BinkSetSoundSystem binkSetSoundSystem;
|
|
||||||
BinkOpen binkOpen;
|
|
||||||
//BinkGetPalette getPalette;
|
|
||||||
BinkNextFrame binkNextFrame;
|
|
||||||
BinkDoFrame binkDoFrame;
|
|
||||||
BinkCopyToBuffer binkCopyToBuffer;
|
|
||||||
BinkWait binkWait;
|
|
||||||
BinkClose binkClose;
|
|
||||||
|
|
||||||
CBIKHandler();
|
|
||||||
bool open(std::string name);
|
|
||||||
void close();
|
|
||||||
bool nextFrame();
|
|
||||||
void show(int x, int y, SDL_Surface *dst, bool update = true);
|
|
||||||
void redraw(int x, int y, SDL_Surface *dst, bool update = true); //reblits buffer
|
|
||||||
bool wait();
|
|
||||||
int curFrame() const;
|
|
||||||
int frameCount() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////SMK Player ///////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
struct SmackStruct
|
|
||||||
{
|
|
||||||
si32 version;
|
|
||||||
si32 width;
|
|
||||||
si32 height;
|
|
||||||
si32 frameCount;
|
|
||||||
si32 mspf;
|
|
||||||
ui8 unk1[88];
|
|
||||||
ui8 palette[776];
|
|
||||||
si32 currentFrame; // Starting with 0
|
|
||||||
ui8 unk[56];
|
|
||||||
ui32 fileHandle; // exact type is HANDLE in windows.h
|
|
||||||
};
|
|
||||||
|
|
||||||
// defines function pointer types
|
|
||||||
typedef SmackStruct* (__stdcall* SmackOpen)(void* , ui32, si32 );
|
|
||||||
typedef int (__stdcall* SmackDoFrame)( SmackStruct * );
|
|
||||||
typedef void (__stdcall * SmackGoto )(SmackStruct *, int frameNumber);
|
|
||||||
typedef void (__stdcall* SmackNextFrame)(SmackStruct*);
|
|
||||||
typedef void (__stdcall* SmackClose)(SmackStruct*);
|
|
||||||
typedef void (__stdcall* SmackToBuffer) (SmackStruct*, int, int, int, int, char *, ui32);
|
|
||||||
typedef bool (__stdcall* SmackWait)(SmackStruct*);
|
|
||||||
typedef void (__stdcall* SmackSoundOnOff) (SmackStruct*, bool);
|
|
||||||
typedef int (__stdcall* SmackVolumePan)(SmackStruct *, int SmackTrack, int volume, int pan);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class CSmackPlayer: public DLLHandler, public IVideoPlayer
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
SmackOpen ptrSmackOpen;
|
|
||||||
SmackDoFrame ptrSmackDoFrame;
|
|
||||||
SmackToBuffer ptrSmackToBuffer;
|
|
||||||
SmackNextFrame ptrSmackNextFrame;
|
|
||||||
SmackWait ptrSmackWait;
|
|
||||||
SmackSoundOnOff ptrSmackSoundOnOff;
|
|
||||||
SmackClose ptrSmackClose;
|
|
||||||
SmackVolumePan ptrVolumePan;
|
|
||||||
|
|
||||||
char *buffer, *buf;
|
|
||||||
SmackStruct* data;
|
|
||||||
|
|
||||||
CSmackPlayer();
|
|
||||||
~CSmackPlayer();
|
|
||||||
bool open(std::string name);
|
|
||||||
void close();
|
|
||||||
bool nextFrame();
|
|
||||||
void show(int x, int y, SDL_Surface *dst, bool update = true);
|
|
||||||
void redraw(int x, int y, SDL_Surface *dst, bool update = true); //reblits buffer
|
|
||||||
bool wait();
|
|
||||||
int curFrame() const;
|
|
||||||
int frameCount() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
class CVidHandler;
|
|
||||||
|
|
||||||
class CVideoPlayer : public IMainVideoPlayer
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
|
|
||||||
CSmackPlayer smkPlayer; //for .SMK
|
|
||||||
CBIKHandler bikPlayer; //for .BIK
|
|
||||||
IVideoPlayer *current; //points to bik or smk player, appropriate to type of currently played video
|
|
||||||
|
|
||||||
bool first; //are we about to display the first frame (blocks update)
|
|
||||||
public:
|
|
||||||
|
|
||||||
CVideoPlayer(); //c-tor
|
|
||||||
~CVideoPlayer(); //d-tor
|
|
||||||
|
|
||||||
|
|
||||||
bool open(std::string name);
|
|
||||||
void close();
|
|
||||||
bool nextFrame(); //move animation to the next frame
|
|
||||||
void show(int x, int y, SDL_Surface *dst, bool update = true); //blit current frame
|
|
||||||
void redraw(int x, int y, SDL_Surface *dst, bool update = true); //reblits buffer
|
|
||||||
void update(int x, int y, SDL_Surface *dst, bool forceRedraw, bool update = true); //moves to next frame if appropriate, and blits it or blits only if redraw paremeter is set true
|
|
||||||
bool wait(); //true if we should wait before displaying next frame (for keeping FPS)
|
|
||||||
int curFrame() const; //current frame number <1, framecount>
|
|
||||||
int frameCount() const;
|
|
||||||
|
|
||||||
bool openAndPlayVideo(std::string name, int x, int y, SDL_Surface *dst, bool stopOnKey = false); //opens video, calls playVideo, closes video; returns playVideo result (if whole video has been played)
|
|
||||||
bool playVideo(int x, int y, SDL_Surface *dst, bool stopOnKey = false); //plays whole opened video; returns: true when whole video has been shown, false when it has been interrupted
|
|
||||||
};
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#ifndef DISABLE_VIDEO
|
#ifndef DISABLE_VIDEO
|
||||||
|
|
||||||
#include "../lib/filesystem/CInputStream.h"
|
#include "../lib/filesystem/CInputStream.h"
|
||||||
@@ -257,32 +84,32 @@ class CVideoPlayer : public IMainVideoPlayer
|
|||||||
bool doLoop; // loop through video
|
bool doLoop; // loop through video
|
||||||
|
|
||||||
bool playVideo(int x, int y, SDL_Surface *dst, bool stopOnKey);
|
bool playVideo(int x, int y, SDL_Surface *dst, bool stopOnKey);
|
||||||
bool open(std::string fname, bool loop, bool useOverlay = false);
|
bool open(std::string fname, bool loop, bool useOverlay = false, bool scale = false);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CVideoPlayer();
|
CVideoPlayer();
|
||||||
~CVideoPlayer();
|
~CVideoPlayer();
|
||||||
|
|
||||||
bool init();
|
bool init();
|
||||||
bool open(std::string fname);
|
bool open(std::string fname, bool scale = false) override;
|
||||||
void close();
|
void close() override;
|
||||||
bool nextFrame(); // display next frame
|
bool nextFrame() override; // display next frame
|
||||||
|
|
||||||
void show(int x, int y, SDL_Surface *dst, bool update = true); //blit current frame
|
void show(int x, int y, SDL_Surface *dst, bool update = true) override; //blit current frame
|
||||||
void redraw(int x, int y, SDL_Surface *dst, bool update = true); //reblits buffer
|
void redraw(int x, int y, SDL_Surface *dst, bool update = true) override; //reblits buffer
|
||||||
void update(int x, int y, SDL_Surface *dst, bool forceRedraw, bool update = true); //moves to next frame if appropriate, and blits it or blits only if redraw parameter is set true
|
void update(int x, int y, SDL_Surface *dst, bool forceRedraw, bool update = true) override; //moves to next frame if appropriate, and blits it or blits only if redraw parameter is set true
|
||||||
|
|
||||||
// Opens video, calls playVideo, closes video; returns playVideo result (if whole video has been played)
|
// Opens video, calls playVideo, closes video; returns playVideo result (if whole video has been played)
|
||||||
bool openAndPlayVideo(std::string name, int x, int y, SDL_Surface *dst, bool stopOnKey = false);
|
bool openAndPlayVideo(std::string name, int x, int y, SDL_Surface *dst, bool stopOnKey = false, bool scale = false) override;
|
||||||
|
|
||||||
//TODO:
|
//TODO:
|
||||||
bool wait(){return false;};
|
bool wait() override {return false;};
|
||||||
int curFrame() const {return -1;};
|
int curFrame() const override {return -1;};
|
||||||
int frameCount() const {return -1;};
|
int frameCount() const override {return -1;};
|
||||||
|
|
||||||
// public to allow access from ffmpeg IO functions
|
// public to allow access from ffmpeg IO functions
|
||||||
std::unique_ptr<CInputStream> data;
|
std::unique_ptr<CInputStream> data;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
@@ -104,6 +104,7 @@
|
|||||||
<Add directory="$(#boost.include)" />
|
<Add directory="$(#boost.include)" />
|
||||||
<Add directory="../include" />
|
<Add directory="../include" />
|
||||||
<Add directory="../client" />
|
<Add directory="../client" />
|
||||||
|
<Add directory="$(#ffmpeg.include)" />
|
||||||
</Compiler>
|
</Compiler>
|
||||||
<Linker>
|
<Linker>
|
||||||
<Add option="-lole32" />
|
<Add option="-lole32" />
|
||||||
@@ -115,8 +116,13 @@
|
|||||||
<Add option="-lboost_thread$(#boost.libsuffix)" />
|
<Add option="-lboost_thread$(#boost.libsuffix)" />
|
||||||
<Add option="-lboost_chrono$(#boost.libsuffix)" />
|
<Add option="-lboost_chrono$(#boost.libsuffix)" />
|
||||||
<Add option="-lVCMI_lib" />
|
<Add option="-lVCMI_lib" />
|
||||||
|
<Add option="-lavcodec.dll" />
|
||||||
|
<Add option="-lavformat.dll" />
|
||||||
|
<Add option="-lswscale.dll" />
|
||||||
|
<Add option="-lavutil.dll" />
|
||||||
<Add directory="$(#boost.lib32)" />
|
<Add directory="$(#boost.lib32)" />
|
||||||
<Add directory="../" />
|
<Add directory="../" />
|
||||||
|
<Add directory="$(#ffmpeg.lib)" />
|
||||||
</Linker>
|
</Linker>
|
||||||
<Unit filename="../CCallback.cpp" />
|
<Unit filename="../CCallback.cpp" />
|
||||||
<Unit filename="../CCallback.h" />
|
<Unit filename="../CCallback.h" />
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -27,23 +27,23 @@
|
|||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
@@ -92,6 +92,9 @@
|
|||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='RD|x64'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='RD|x64'" />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LibraryWPath />
|
||||||
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>
|
<Optimization>
|
||||||
@@ -101,13 +104,14 @@
|
|||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<PrecompiledHeaderFile>StdInc.h</PrecompiledHeaderFile>
|
<PrecompiledHeaderFile>StdInc.h</PrecompiledHeaderFile>
|
||||||
<AdditionalOptions>/MP4 /Zm150</AdditionalOptions>
|
<AdditionalOptions>/MP4 /Zm150</AdditionalOptions>
|
||||||
|
<AdditionalIncludeDirectories>$(FFMPEGDIR)\include;.</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>SDL.lib;zlib.lib;SDL_image.lib;SDL_ttf.lib;SDL_mixer.lib;VCMI_lib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;SDL.lib;zlib.lib;SDL_image.lib;SDL_ttf.lib;SDL_mixer.lib;VCMI_lib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<ShowProgress>NotSet</ShowProgress>
|
<ShowProgress>NotSet</ShowProgress>
|
||||||
<OptimizeReferences>false</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<Profile>true</Profile>
|
<Profile>true</Profile>
|
||||||
<AdditionalLibraryDirectories>..\..\libs;..</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(FFMPEGDIR)\lib;.;..\..\libs;..</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<Manifest>
|
<Manifest>
|
||||||
<AdditionalManifestFiles>$(ProjectDir)DPIaware.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
|
<AdditionalManifestFiles>$(ProjectDir)DPIaware.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
|
||||||
@@ -138,15 +142,22 @@
|
|||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<PrecompiledHeaderFile>StdInc.h</PrecompiledHeaderFile>
|
<PrecompiledHeaderFile>StdInc.h</PrecompiledHeaderFile>
|
||||||
<AdditionalOptions>/MP4 /Zm150</AdditionalOptions>
|
<AdditionalOptions>/MP4 /Zm150</AdditionalOptions>
|
||||||
|
<AdditionalIncludeDirectories>$(FFMPEGDIR)\include;.</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>SDL.lib;zlib.lib;SDL_image.lib;SDL_ttf.lib;SDL_mixer.lib;VCMI_lib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;SDL.lib;zlib.lib;SDL_image.lib;SDL_ttf.lib;SDL_mixer.lib;VCMI_lib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<Driver>NotSet</Driver>
|
<Driver>NotSet</Driver>
|
||||||
<LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>
|
||||||
</LinkTimeCodeGeneration>
|
</LinkTimeCodeGeneration>
|
||||||
<ShowProgress>NotSet</ShowProgress>
|
<ShowProgress>NotSet</ShowProgress>
|
||||||
<AdditionalLibraryDirectories>..\..\libs;..</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(FFMPEGDIR)\lib;.;..\..\libs;..</AdditionalLibraryDirectories>
|
||||||
|
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
</Link>
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -17,11 +17,11 @@
|
|||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -19,13 +19,13 @@
|
|||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -27,24 +27,24 @@
|
|||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -37,26 +37,26 @@
|
|||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@@ -81,6 +81,9 @@ std::unique_ptr<CMap> CMapGenerator::generate(CMapGenOptions * mapGenOptions, in
|
|||||||
{
|
{
|
||||||
this->mapGenOptions = mapGenOptions;
|
this->mapGenOptions = mapGenOptions;
|
||||||
this->randomSeed = randomSeed;
|
this->randomSeed = randomSeed;
|
||||||
|
|
||||||
|
assert(mapGenOptions);
|
||||||
|
|
||||||
rand.setSeed(this->randomSeed);
|
rand.setSeed(this->randomSeed);
|
||||||
mapGenOptions->finalize(rand);
|
mapGenOptions->finalize(rand);
|
||||||
|
|
||||||
@@ -90,6 +93,7 @@ std::unique_ptr<CMap> CMapGenerator::generate(CMapGenOptions * mapGenOptions, in
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
editManager->getUndoManager().setUndoRedoLimit(0);
|
editManager->getUndoManager().setUndoRedoLimit(0);
|
||||||
|
//FIXME: somehow mapGenOption is nullptr at this point :?
|
||||||
addHeaderInfo();
|
addHeaderInfo();
|
||||||
initTiles();
|
initTiles();
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -27,27 +27,27 @@
|
|||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -27,23 +27,23 @@
|
|||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -27,23 +27,23 @@
|
|||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RD|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v120_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
Reference in New Issue
Block a user