mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-11 07:11:54 +00:00
Merge branch 'master' of https://github.com/rheit/zdoom
This commit is contained in:
commit
aa4b3bb230
22 changed files with 82 additions and 100 deletions
|
@ -179,8 +179,12 @@ if( WIN32 )
|
|||
comdlg32
|
||||
ws2_32
|
||||
setupapi
|
||||
oleaut32
|
||||
DelayImp )
|
||||
oleaut32 )
|
||||
|
||||
if( NOT ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||
set( ZDOOM_LIBS ${ZDOOM_LIBS} DelayImp )
|
||||
endif()
|
||||
|
||||
if( DX_dxguid_LIBRARY )
|
||||
list( APPEND ZDOOM_LIBS "${DX_dxguid_LIBRARY}" )
|
||||
endif()
|
||||
|
@ -755,15 +759,7 @@ if( WIN32 )
|
|||
set( SYSTEM_SOURCES ${PLAT_WIN32_SOURCES} )
|
||||
set( OTHER_SYSTEM_SOURCES ${PLAT_POSIX_SOURCES} ${PLAT_SDL_SOURCES} ${PLAT_OSX_SOURCES} ${PLAT_COCOA_SOURCES} ${PLAT_UNIX_SOURCES} )
|
||||
|
||||
if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||
# CMake is not set up to compile and link rc files with GCC. :(
|
||||
add_custom_command( OUTPUT zdoom-rc.o
|
||||
COMMAND windres -o zdoom-rc.o -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zdoom.rc
|
||||
DEPENDS win32/zdoom.rc )
|
||||
set( SYSTEM_SOURCES ${SYSTEM_SOURCES} zdoom-rc.o )
|
||||
else()
|
||||
set( SYSTEM_SOURCES ${SYSTEM_SOURCES} win32/zdoom.rc )
|
||||
endif()
|
||||
set( SYSTEM_SOURCES ${SYSTEM_SOURCES} win32/zdoom.rc )
|
||||
elseif( APPLE )
|
||||
if( OSX_COCOA_BACKEND )
|
||||
set( SYSTEM_SOURCES_DIR posix posix/cocoa )
|
||||
|
|
|
@ -1508,10 +1508,18 @@ level_info_t *FMapInfoParser::ParseMapHeader(level_info_t &defaultinfo)
|
|||
|
||||
if (sc.CheckNumber())
|
||||
{ // MAPNAME is a number; assume a Hexen wad
|
||||
char maptemp[8];
|
||||
mysnprintf (maptemp, countof(maptemp), "MAP%02d", sc.Number);
|
||||
mapname = maptemp;
|
||||
HexenHack = true;
|
||||
if (format_type == FMT_New)
|
||||
{
|
||||
mapname = sc.String;
|
||||
}
|
||||
else
|
||||
{
|
||||
char maptemp[8];
|
||||
mysnprintf(maptemp, countof(maptemp), "MAP%02d", sc.Number);
|
||||
mapname = maptemp;
|
||||
HexenHack = true;
|
||||
format_type = FMT_Old;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -97,5 +97,5 @@ bool FModule::Open(const char* lib)
|
|||
|
||||
void *FModule::GetSym(const char* name)
|
||||
{
|
||||
return GetProcAddress((HMODULE)handle, name);
|
||||
return (void *)GetProcAddress((HMODULE)handle, name);
|
||||
}
|
||||
|
|
|
@ -252,7 +252,7 @@ static bool LoadScriptFile(int lumpnum, FileReader *lump, int numnodes, bool inc
|
|||
|
||||
if ((type == 1 && !isbinary) || (type == 2 && isbinary))
|
||||
{
|
||||
DPrintf(DMSG_ERROR, "Incorrect data format for %s.", Wads.GetLumpFullName(lumpnum));
|
||||
DPrintf(DMSG_ERROR, "Incorrect data format for conversation script in %s.\n", Wads.GetLumpFullName(lumpnum));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -272,7 +272,7 @@ static bool LoadScriptFile(int lumpnum, FileReader *lump, int numnodes, bool inc
|
|||
// is exactly 1516 bytes long.
|
||||
if (numnodes % 1516 != 0)
|
||||
{
|
||||
DPrintf(DMSG_ERROR, "Incorrect data format for %s.", Wads.GetLumpFullName(lumpnum));
|
||||
DPrintf(DMSG_ERROR, "Incorrect data format for conversation script in %s.\n", Wads.GetLumpFullName(lumpnum));
|
||||
return false;
|
||||
}
|
||||
numnodes /= 1516;
|
||||
|
@ -282,7 +282,7 @@ static bool LoadScriptFile(int lumpnum, FileReader *lump, int numnodes, bool inc
|
|||
// And the teaser version has 1488-byte entries.
|
||||
if (numnodes % 1488 != 0)
|
||||
{
|
||||
DPrintf(DMSG_ERROR, "Incorrect data format for %s.", Wads.GetLumpFullName(lumpnum));
|
||||
DPrintf(DMSG_ERROR, "Incorrect data format for conversation script in %s.\n", Wads.GetLumpFullName(lumpnum));
|
||||
return false;
|
||||
}
|
||||
numnodes /= 1488;
|
||||
|
|
|
@ -839,9 +839,11 @@ bool PIT_CheckLine(FMultiBlockLinesIterator &mit, FMultiBlockLinesIterator::Chec
|
|||
|
||||
// If the floor planes on both sides match we should recalculate open.bottom at the actual position we are checking
|
||||
// This is to avoid bumpy movement when crossing a linedef with the same slope on both sides.
|
||||
// This should never narrow down the opening, though, only widen it.
|
||||
if (open.frontfloorplane == open.backfloorplane && open.bottom > LINEOPEN_MIN)
|
||||
{
|
||||
open.bottom = open.frontfloorplane.ZatPoint(cres.Position);
|
||||
auto newopen = open.frontfloorplane.ZatPoint(cres.Position);
|
||||
if (newopen < open.bottom) open.bottom = newopen;
|
||||
}
|
||||
|
||||
if (rail &&
|
||||
|
|
|
@ -3373,11 +3373,14 @@ void AActor::Tick ()
|
|||
}
|
||||
}
|
||||
|
||||
UnlinkFromWorld ();
|
||||
flags |= MF_NOBLOCKMAP;
|
||||
SetXYZ(Vec3Offset(Vel));
|
||||
CheckPortalTransition(false);
|
||||
LinkToWorld ();
|
||||
if (!Vel.isZero() || !(flags & MF_NOBLOCKMAP))
|
||||
{
|
||||
UnlinkFromWorld();
|
||||
flags |= MF_NOBLOCKMAP;
|
||||
SetXYZ(Vec3Offset(Vel));
|
||||
CheckPortalTransition(false);
|
||||
LinkToWorld();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -5060,7 +5063,11 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
|
|||
if (mthing->FloatbobPhase >= 0 && mthing->FloatbobPhase < 64) mobj->FloatBobPhase = mthing->FloatbobPhase;
|
||||
if (mthing->Gravity < 0) mobj->Gravity = -mthing->Gravity;
|
||||
else if (mthing->Gravity > 0) mobj->Gravity *= mthing->Gravity;
|
||||
else mobj->flags &= ~MF_NOGRAVITY;
|
||||
else
|
||||
{
|
||||
mobj->flags |= MF_NOGRAVITY;
|
||||
mobj->Gravity = 0;
|
||||
}
|
||||
|
||||
// For Hexen floatbob 'compatibility' we do not really want to alter the floorz.
|
||||
if (mobj->specialf1 == 0 || !(mobj->flags2 & MF2_FLOATBOB) || !(ib_compatflags & BCOMPATF_FLOATBOB))
|
||||
|
|
|
@ -526,7 +526,7 @@ void ProcessMouseMoveInGame(NSEvent* theEvent)
|
|||
lastX = x;
|
||||
lastY = y;
|
||||
|
||||
if (0 != event.x | 0 != event.y)
|
||||
if (0 != event.x || 0 != event.y)
|
||||
{
|
||||
event.type = EV_Mouse;
|
||||
|
||||
|
|
|
@ -1018,7 +1018,7 @@ IOKitJoystickManager::~IOKitJoystickManager()
|
|||
if (0 != notification)
|
||||
{
|
||||
IOObjectRelease(notification);
|
||||
notification = NULL;
|
||||
notification = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -156,7 +156,7 @@ static void I_DetectOS()
|
|||
case 12: name = "macOS Sierra"; break;
|
||||
}
|
||||
|
||||
char release[16] = {};
|
||||
char release[16] = "unknown";
|
||||
size_t size = sizeof release - 1;
|
||||
sysctlbyname("kern.osversion", release, &size, nullptr, 0);
|
||||
|
||||
|
|
|
@ -37,8 +37,6 @@
|
|||
#include <pthread.h>
|
||||
#include <libkern/OSAtomic.h>
|
||||
|
||||
#include "basictypes.h"
|
||||
#include "basicinlines.h"
|
||||
#include "doomdef.h"
|
||||
#include "i_system.h"
|
||||
#include "templates.h"
|
||||
|
|
|
@ -7,8 +7,7 @@
|
|||
|
||||
#include <SDL.h>
|
||||
|
||||
#include "basictypes.h"
|
||||
#include "basicinlines.h"
|
||||
#include "m_fixed.h"
|
||||
#include "hardware.h"
|
||||
#include "i_system.h"
|
||||
#include "templates.h"
|
||||
|
|
|
@ -577,7 +577,7 @@ bool WriteZip(const char *filename, TArray<FString> &filenames, TArray<FCompress
|
|||
dirend.DiskNumber = 0;
|
||||
dirend.FirstDisk = 0;
|
||||
dirend.NumEntriesOnAllDisks = dirend.NumEntries = LittleShort(filenames.Size());
|
||||
dirend.DirectoryOffset = dirofs;
|
||||
dirend.DirectoryOffset = LittleLong(dirofs);
|
||||
dirend.DirectorySize = LittleLong(ftell(f) - dirofs);
|
||||
dirend.ZipCommentLength = 0;
|
||||
if (fwrite(&dirend, sizeof(dirend), 1, f) != 1)
|
||||
|
|
|
@ -238,8 +238,8 @@ static const FEnumList ResamplerNames[] =
|
|||
{ "No Interpolation", FMOD_DSP_RESAMPLER_NOINTERP },
|
||||
{ "NoInterp", FMOD_DSP_RESAMPLER_NOINTERP },
|
||||
{ "Linear", FMOD_DSP_RESAMPLER_LINEAR },
|
||||
// [BL] 64-bit version of FMOD Ex 4.26 crashes with these resamplers.
|
||||
#if FMOD_STUDIO || !(defined(_M_X64) || defined(__amd64__)) || !(FMOD_VERSION >= 0x42600 && FMOD_VERSION <= 0x426FF)
|
||||
// [BL] 64-bit versions of FMOD Ex between 4.24 and 4.26 crash with these resamplers.
|
||||
#if FMOD_STUDIO || !(defined(_M_X64) || defined(__amd64__)) || !(FMOD_VERSION >= 0x42400 && FMOD_VERSION <= 0x426FF)
|
||||
{ "Cubic", FMOD_DSP_RESAMPLER_CUBIC },
|
||||
{ "Spline", FMOD_DSP_RESAMPLER_SPLINE },
|
||||
#endif
|
||||
|
|
|
@ -1335,6 +1335,7 @@ void FMultiPatchTexture::ResolvePatches()
|
|||
{
|
||||
if (Inits[i].HasLine) Inits[i].sc.Message(MSG_WARNING, "Texture '%s' references itself as patch\n", Inits[i].TexName.GetChars());
|
||||
else Printf(TEXTCOLOR_YELLOW "Texture '%s' references itself as patch\n", Inits[i].TexName.GetChars());
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -72,7 +72,7 @@ FRenderer *Renderer;
|
|||
IMPLEMENT_ABSTRACT_CLASS (DCanvas)
|
||||
IMPLEMENT_ABSTRACT_CLASS (DFrameBuffer)
|
||||
|
||||
#if defined(_DEBUG) && defined(_M_IX86)
|
||||
#if defined(_DEBUG) && defined(_M_IX86) && !defined(__MINGW32__)
|
||||
#define DBGBREAK { __asm int 3 }
|
||||
#else
|
||||
#define DBGBREAK
|
||||
|
|
|
@ -75,54 +75,6 @@
|
|||
#include <time.h>
|
||||
#include <zlib.h>
|
||||
|
||||
#if defined(_WIN64) && defined(__GNUC__)
|
||||
struct KNONVOLATILE_CONTEXT_POINTERS {
|
||||
union {
|
||||
PDWORD64 IntegerContext[16];
|
||||
struct {
|
||||
PDWORD64 Rax;
|
||||
PDWORD64 Rcx;
|
||||
PDWORD64 Rdx;
|
||||
PDWORD64 Rbx;
|
||||
PDWORD64 Rsp;
|
||||
PDWORD64 Rbp;
|
||||
PDWORD64 Rsi;
|
||||
PDWORD64 Rdi;
|
||||
PDWORD64 R8;
|
||||
PDWORD64 R9;
|
||||
PDWORD64 R10;
|
||||
PDWORD64 R11;
|
||||
PDWORD64 R12;
|
||||
PDWORD64 R13;
|
||||
PDWORD64 R14;
|
||||
PDWORD64 R15;
|
||||
};
|
||||
};
|
||||
};
|
||||
typedef
|
||||
EXCEPTION_DISPOSITION
|
||||
NTAPI
|
||||
EXCEPTION_ROUTINE (
|
||||
struct _EXCEPTION_RECORD *ExceptionRecord,
|
||||
PVOID EstablisherFrame,
|
||||
struct _CONTEXT *ContextRecord,
|
||||
PVOID DispatcherContext
|
||||
);
|
||||
NTSYSAPI
|
||||
EXCEPTION_ROUTINE *
|
||||
NTAPI
|
||||
RtlVirtualUnwind (
|
||||
DWORD HandlerType,
|
||||
DWORD64 ImageBase,
|
||||
DWORD64 ControlPc,
|
||||
PRUNTIME_FUNCTION FunctionEntry,
|
||||
PCONTEXT ContextRecord,
|
||||
PVOID *HandlerData,
|
||||
PDWORD64 EstablisherFrame,
|
||||
KNONVOLATILE_CONTEXT_POINTERS *ContextPointers
|
||||
);
|
||||
#endif
|
||||
|
||||
// MACROS ------------------------------------------------------------------
|
||||
|
||||
#define REMOTE_HOST "localhost"
|
||||
|
|
|
@ -21,6 +21,11 @@
|
|||
|
||||
#define DINPUT_BUFFERSIZE 32
|
||||
|
||||
// MinGW-w64 (TDM5.1 - 2016/11/21)
|
||||
#ifndef DIK_PREVTRACK
|
||||
#define DIK_PREVTRACK DIK_CIRCUMFLEX
|
||||
#endif
|
||||
|
||||
// TYPES -------------------------------------------------------------------
|
||||
|
||||
class FDInputKeyboard : public FKeyboard
|
||||
|
|
|
@ -389,7 +389,7 @@ bool FRawPS2Controller::ProcessInput(RAWHID *raw, int code)
|
|||
{
|
||||
// w32api has an incompatible definition of bRawData.
|
||||
// (But the version that comes with MinGW64 is fine.)
|
||||
#if defined(__GNUC__) && !defined(_WIN64)
|
||||
#if defined(__GNUC__) && !defined(__MINGW64_VERSION_MAJOR)
|
||||
BYTE *rawdata = &raw->bRawData;
|
||||
#else
|
||||
BYTE *rawdata = raw->bRawData;
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
**
|
||||
*/
|
||||
|
||||
#define _WIN32_WINNT 0x0601
|
||||
#include <windows.h>
|
||||
#include <lmcons.h>
|
||||
#include <shlobj.h>
|
||||
|
@ -45,6 +46,15 @@
|
|||
|
||||
#include "optwin32.h"
|
||||
|
||||
// Vanilla MinGW does not have folder ids
|
||||
#if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR)
|
||||
static const GUID FOLDERID_LocalAppData = { 0xf1b32785, 0x6fba, 0x4fcf, 0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91 };
|
||||
static const GUID FOLDERID_RoamingAppData = { 0x3eb685db, 0x65f9, 0x4cf6, 0xa0, 0x3a, 0xe3, 0xef, 0x65, 0x72, 0x9f, 0x3d };
|
||||
static const GUID FOLDERID_SavedGames = { 0x4c5c32ff, 0xbb9d, 0x43b0, 0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4 };
|
||||
static const GUID FOLDERID_Documents = { 0xfdd39ad0, 0x238f, 0x46af, 0xad, 0xb4, 0x6c, 0x85, 0x48, 0x03, 0x69, 0xc7 };
|
||||
static const GUID FOLDERID_Pictures = { 0x33e28130, 0x4e1e, 0x4676, 0x83, 0x5a, 0x98, 0x39, 0x5c, 0x3b, 0xc3, 0xbb };
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// IsProgramDirectoryWritable
|
||||
|
|
|
@ -1314,7 +1314,7 @@ static HCURSOR CreateCompatibleCursor(FTexture *cursorpic)
|
|||
HDC dc = GetDC(NULL);
|
||||
if (dc == NULL)
|
||||
{
|
||||
return false;
|
||||
return nullptr;
|
||||
}
|
||||
HDC and_mask_dc = CreateCompatibleDC(dc);
|
||||
HDC xor_mask_dc = CreateCompatibleDC(dc);
|
||||
|
@ -1721,7 +1721,7 @@ FString I_GetLongPathName(FString shortpath)
|
|||
using OptWin32::GetLongPathNameA;
|
||||
|
||||
// Doesn't exist on NT4
|
||||
if (!GetLongPathName)
|
||||
if (!GetLongPathNameA)
|
||||
return shortpath;
|
||||
|
||||
DWORD buffsize = GetLongPathNameA(shortpath.GetChars(), NULL, 0);
|
||||
|
|
|
@ -33,6 +33,17 @@
|
|||
#define XUSER_MAX_COUNT 4
|
||||
#endif
|
||||
|
||||
// MinGW
|
||||
#ifndef XINPUT_DLL
|
||||
#define XINPUT_DLL_A "xinput1_3.dll"
|
||||
#define XINPUT_DLL_W L"xinput1_3.dll"
|
||||
#ifdef UNICODE
|
||||
#define XINPUT_DLL XINPUT_DLL_W
|
||||
#else
|
||||
#define XINPUT_DLL XINPUT_DLL_A
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// TYPES -------------------------------------------------------------------
|
||||
|
||||
typedef DWORD (WINAPI *XInputGetStateType)(DWORD index, XINPUT_STATE *state);
|
||||
|
|
|
@ -1,19 +1,12 @@
|
|||
cmake_minimum_required( VERSION 2.8.7 )
|
||||
|
||||
if( WIN32 )
|
||||
if( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE OR ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/trustinfo.o
|
||||
COMMAND windres -o ${CMAKE_CURRENT_BINARY_DIR}/trustinfo.o -i ${CMAKE_CURRENT_SOURCE_DIR}/trustinfo.rc
|
||||
DEPENDS trustinfo.rc )
|
||||
set( TRUSTINFO trustinfo.o )
|
||||
if( MSVC_VERSION GREATER 1399 )
|
||||
# VC 8+ adds a manifest automatically to the executable. We need to
|
||||
# merge ours with it.
|
||||
set( MT_MERGE ON )
|
||||
else()
|
||||
if( MSVC_VERSION GREATER 1399 )
|
||||
# VC 8+ adds a manifest automatically to the executable. We need to
|
||||
# merge ours with it.
|
||||
set( MT_MERGE ON )
|
||||
else( MSVC_VERSION GREATER 1399 )
|
||||
set( TRUSTINFO trustinfo.rc )
|
||||
endif( MSVC_VERSION GREATER 1399 )
|
||||
set( TRUSTINFO trustinfo.rc )
|
||||
endif()
|
||||
else( WIN32 )
|
||||
set( TRUSTINFO "" )
|
||||
|
|
Loading…
Reference in a new issue