mirror of
https://github.com/ZDoom/Raze.git
synced 2025-05-11 08:20:50 +00:00
git-svn-id: https://svn.eduke32.com/eduke32@579 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
820eeeb5b3
commit
997883a2f9
10 changed files with 171 additions and 15 deletions
|
@ -70,7 +70,7 @@ ENGINEOBJS= \
|
||||||
$(OBJ)\osd.$o \
|
$(OBJ)\osd.$o \
|
||||||
$(OBJ)\pragmas.$o \
|
$(OBJ)\pragmas.$o \
|
||||||
$(OBJ)\scriptfile.$o \
|
$(OBJ)\scriptfile.$o \
|
||||||
$(OBJ)\winlayer.$o \
|
$(OBJ)\winlayer.$o \
|
||||||
$(OBJ)\polymer.$o
|
$(OBJ)\polymer.$o
|
||||||
|
|
||||||
EDITOROBJS=$(OBJ)\build.$o \
|
EDITOROBJS=$(OBJ)\build.$o \
|
||||||
|
|
|
@ -61,7 +61,7 @@ void printmessage256(char name[82]);
|
||||||
void printmessage16(char name[82]);
|
void printmessage16(char name[82]);
|
||||||
|
|
||||||
void getpoint(long searchxe, long searchye, long *x, long *y);
|
void getpoint(long searchxe, long searchye, long *x, long *y);
|
||||||
long getpointhighlight(long xplc, long yplc);
|
short getpointhighlight(long xplc, long yplc);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -181,7 +181,7 @@ void showwalldata(short wallnum);
|
||||||
void showspritedata(short spritenum);
|
void showspritedata(short spritenum);
|
||||||
long drawtilescreen(long pictopleft, long picbox);
|
long drawtilescreen(long pictopleft, long picbox);
|
||||||
void overheadeditor(void);
|
void overheadeditor(void);
|
||||||
long getlinehighlight(long xplc, long yplc);
|
short getlinehighlight(long xplc, long yplc);
|
||||||
void fixspritesectors(void);
|
void fixspritesectors(void);
|
||||||
long movewalls(long start, long offs);
|
long movewalls(long start, long offs);
|
||||||
long loadnames(void);
|
long loadnames(void);
|
||||||
|
@ -5941,7 +5941,7 @@ void getpoint(long searchxe, long searchye, long *x, long *y)
|
||||||
if (*y >= editorgridextent) *y = editorgridextent;
|
if (*y >= editorgridextent) *y = editorgridextent;
|
||||||
}
|
}
|
||||||
|
|
||||||
long getlinehighlight(long xplc, long yplc)
|
short getlinehighlight(long xplc, long yplc)
|
||||||
{
|
{
|
||||||
long i, dst, dist, closest, x1, y1, x2, y2, nx, ny;
|
long i, dst, dist, closest, x1, y1, x2, y2, nx, ny;
|
||||||
|
|
||||||
|
@ -5973,18 +5973,16 @@ long getlinehighlight(long xplc, long yplc)
|
||||||
return(closest);
|
return(closest);
|
||||||
}
|
}
|
||||||
|
|
||||||
long getpointhighlight(long xplc, long yplc)
|
short getpointhighlight(long xplc, long yplc)
|
||||||
{
|
{
|
||||||
long i, dst, dist, closest;
|
long i, dst, dist = 512, closest = -1;
|
||||||
|
|
||||||
if (numwalls == 0)
|
if (numwalls == 0)
|
||||||
return(-1);
|
return(-1);
|
||||||
|
|
||||||
dist = 0;
|
if (grid < 1)
|
||||||
if (grid > 0)
|
dist = 0;
|
||||||
dist = 512;
|
|
||||||
|
|
||||||
closest = -1;
|
|
||||||
for (i=0;i<numwalls;i++)
|
for (i=0;i<numwalls;i++)
|
||||||
{
|
{
|
||||||
dst = klabs(xplc-wall[i].x) + klabs(yplc-wall[i].y);
|
dst = klabs(xplc-wall[i].x) + klabs(yplc-wall[i].y);
|
||||||
|
|
|
@ -11149,6 +11149,8 @@ void printext16(long xpos, long ypos, short col, short backcol, char *name, char
|
||||||
long stx, i, x, y, charxsiz;
|
long stx, i, x, y, charxsiz;
|
||||||
char *fontptr, *letptr, *ptr;
|
char *fontptr, *letptr, *ptr;
|
||||||
|
|
||||||
|
if (!frameplace) return;
|
||||||
|
|
||||||
stx = xpos;
|
stx = xpos;
|
||||||
|
|
||||||
if (fontsize) { fontptr = smalltextfont; charxsiz = 4; }
|
if (fontsize) { fontptr = smalltextfont; charxsiz = 4; }
|
||||||
|
|
|
@ -8,6 +8,7 @@ $(OBJ)/gamedef.$o: $(SRC)/gamedef.c $(duke3d_h) $(gamedef_h)
|
||||||
$(OBJ)/gameexec.$o: $(SRC)/gameexec.c $(duke3d_h) $(gamedef_h)
|
$(OBJ)/gameexec.$o: $(SRC)/gameexec.c $(duke3d_h) $(gamedef_h)
|
||||||
$(OBJ)/gamevars.$o: $(SRC)/gamevars.c $(duke3d_h) $(gamedef_h)
|
$(OBJ)/gamevars.$o: $(SRC)/gamevars.c $(duke3d_h) $(gamedef_h)
|
||||||
$(OBJ)/global.$o: $(SRC)/*.c $(SRC)/global.c $(duke3d_h)
|
$(OBJ)/global.$o: $(SRC)/*.c $(SRC)/global.c $(duke3d_h)
|
||||||
|
$(OBJ)/mdump.$o: $(SRC)/mdump.cpp $(SRC)/mdump.h
|
||||||
$(OBJ)/menus.$o: $(SRC)/menus.c $(duke3d_h) $(SRC)/jmact/mouse.h
|
$(OBJ)/menus.$o: $(SRC)/menus.c $(duke3d_h) $(SRC)/jmact/mouse.h
|
||||||
$(OBJ)/namesdyn.$o: $(SRC)/namesdyn.c $(duke3d_h)
|
$(OBJ)/namesdyn.$o: $(SRC)/namesdyn.c $(duke3d_h)
|
||||||
$(OBJ)/player.$o: $(SRC)/player.c $(duke3d_h)
|
$(OBJ)/player.$o: $(SRC)/player.c $(duke3d_h)
|
||||||
|
|
|
@ -6,6 +6,7 @@ EROOT=..\build
|
||||||
EINC=$(EROOT)\include
|
EINC=$(EROOT)\include
|
||||||
EOBJ=eobj
|
EOBJ=eobj
|
||||||
INC=$(SRC)
|
INC=$(SRC)
|
||||||
|
RSRC=rsrc
|
||||||
o=obj
|
o=obj
|
||||||
|
|
||||||
ENGINELIB=engine.lib
|
ENGINELIB=engine.lib
|
||||||
|
@ -102,10 +103,12 @@ GAMEOBJS=$(OBJ)\game.$o \
|
||||||
$(OBJ)\gameres.res \
|
$(OBJ)\gameres.res \
|
||||||
$(OBJ)\startwin.game.$o \
|
$(OBJ)\startwin.game.$o \
|
||||||
$(JMACTOBJ) \
|
$(JMACTOBJ) \
|
||||||
$(AUDIOLIBOBJ)
|
$(AUDIOLIBOBJ) \
|
||||||
|
$(OBJ)\mdump.$o
|
||||||
|
|
||||||
EDITOROBJS=$(OBJ)\astub.$o \
|
EDITOROBJS=$(OBJ)\astub.$o \
|
||||||
$(OBJ)\buildres.res
|
$(OBJ)\buildres.res \
|
||||||
|
$(OBJ)\mdump.$o
|
||||||
|
|
||||||
|
|
||||||
# RULES
|
# RULES
|
||||||
|
@ -141,11 +144,11 @@ all: eduke32$(EXESUFFIX) mapster32$(EXESUFFIX) duke3d_w32$(EXESUFFIX);
|
||||||
|
|
||||||
eduke32$(EXESUFFIX): $(GAMEOBJS) $(EOBJ)\$(ENGINELIB)
|
eduke32$(EXESUFFIX): $(GAMEOBJS) $(EOBJ)\$(ENGINELIB)
|
||||||
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
||||||
$(MT) -manifest $@.manifest -outputresource:$@
|
$(MT) -manifest $@.manifest $(RSRC)\manifest.game.xml -hashupdate -outputresource:$@ -out:$@.manifest
|
||||||
|
|
||||||
mapster32$(EXESUFFIX): $(EDITOROBJS) $(EOBJ)\$(ENGINELIB) $(EOBJ)\$(EDITORLIB)
|
mapster32$(EXESUFFIX): $(EDITOROBJS) $(EOBJ)\$(ENGINELIB) $(EOBJ)\$(EDITORLIB)
|
||||||
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
||||||
$(MT) -manifest $@.manifest -outputresource:$@
|
$(MT) -manifest $@.manifest $(RSRC)\manifest.build.xml -hashupdate -outputresource:$@ -out:$@.manifest
|
||||||
|
|
||||||
duke3d_w32$(EXESUFFIX): $(OBJ)/wrapper.$o
|
duke3d_w32$(EXESUFFIX): $(OBJ)/wrapper.$o
|
||||||
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
||||||
|
|
|
@ -497,6 +497,10 @@
|
||||||
RelativePath=".\source\jfaud_sounds.cpp"
|
RelativePath=".\source\jfaud_sounds.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\source\mdump.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\source\menus.c"
|
RelativePath=".\source\menus.c"
|
||||||
>
|
>
|
||||||
|
@ -609,6 +613,10 @@
|
||||||
RelativePath=".\source\mapster32.h"
|
RelativePath=".\source\mapster32.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\source\mdump.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\source\names.h"
|
RelativePath=".\source\names.h"
|
||||||
>
|
>
|
||||||
|
|
|
@ -38,7 +38,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "scriptfile.h"
|
#include "scriptfile.h"
|
||||||
#include "crc32.h"
|
#include "crc32.h"
|
||||||
|
|
||||||
#define VERSION " 1.1.0 rc1"
|
#define VERSION " 1.1.0 svn"
|
||||||
|
|
||||||
static int floor_over_floor;
|
static int floor_over_floor;
|
||||||
|
|
||||||
|
|
114
polymer/eduke32/source/mdump.cpp
Normal file
114
polymer/eduke32/source/mdump.cpp
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
#include <cstdio>
|
||||||
|
#include "mdump.h"
|
||||||
|
#include <tchar.H>
|
||||||
|
LPCSTR MiniDumper::m_szAppName;
|
||||||
|
|
||||||
|
// MiniDumper g_dumper("EDuke32");
|
||||||
|
|
||||||
|
MiniDumper::MiniDumper( LPCSTR szAppName )
|
||||||
|
{
|
||||||
|
// if this assert fires then you have two instances of MiniDumper
|
||||||
|
// which is not allowed
|
||||||
|
assert( m_szAppName==NULL );
|
||||||
|
|
||||||
|
m_szAppName = szAppName ? _strdup(szAppName) : "Application";
|
||||||
|
|
||||||
|
::SetUnhandledExceptionFilter( TopLevelFilter );
|
||||||
|
}
|
||||||
|
|
||||||
|
LONG MiniDumper::TopLevelFilter( struct _EXCEPTION_POINTERS *pExceptionInfo )
|
||||||
|
{
|
||||||
|
LONG retval = EXCEPTION_CONTINUE_SEARCH;
|
||||||
|
//HWND hParent = NULL; // find a better value for your app
|
||||||
|
|
||||||
|
// firstly see if dbghelp.dll is around and has the function we need
|
||||||
|
// look next to the EXE first, as the one in System32 might be old
|
||||||
|
// (e.g. Windows 2000)
|
||||||
|
HMODULE hDll = NULL;
|
||||||
|
char szDbgHelpPath[_MAX_PATH];
|
||||||
|
|
||||||
|
if (GetModuleFileName( NULL, szDbgHelpPath, _MAX_PATH ))
|
||||||
|
{
|
||||||
|
char *pSlash = _tcsrchr( szDbgHelpPath, '\\' );
|
||||||
|
if (pSlash)
|
||||||
|
{
|
||||||
|
_tcscpy( pSlash+1, "DBGHELP.DLL" );
|
||||||
|
hDll = ::LoadLibrary( szDbgHelpPath );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hDll==NULL)
|
||||||
|
{
|
||||||
|
// load any version we can
|
||||||
|
hDll = ::LoadLibrary( "DBGHELP.DLL" );
|
||||||
|
}
|
||||||
|
|
||||||
|
LPCTSTR szResult = NULL;
|
||||||
|
|
||||||
|
if (hDll)
|
||||||
|
{
|
||||||
|
MINIDUMPWRITEDUMP pDump = (MINIDUMPWRITEDUMP)::GetProcAddress( hDll, "MiniDumpWriteDump" );
|
||||||
|
if (pDump)
|
||||||
|
{
|
||||||
|
char szDumpPath[_MAX_PATH];
|
||||||
|
char szScratch [_MAX_PATH];
|
||||||
|
|
||||||
|
// work out a good place for the dump file
|
||||||
|
/*if (!GetTempPath( _MAX_PATH, szDumpPath ))
|
||||||
|
_tcscpy( szDumpPath, "c:\\temp\\" );
|
||||||
|
*/
|
||||||
|
sprintf(szDumpPath,"%s_%u",m_szAppName,timeGetTime());
|
||||||
|
_tcscat( szDumpPath, ".dmp" );
|
||||||
|
|
||||||
|
// ask the user if they want to save a dump file
|
||||||
|
//if (::MessageBox( NULL, "Something bad happened in your program, would you like to save a diagnostic file?", m_szAppName, MB_YESNO )==IDYES)
|
||||||
|
{
|
||||||
|
// create the file
|
||||||
|
HANDLE hFile = ::CreateFile( szDumpPath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,
|
||||||
|
FILE_ATTRIBUTE_NORMAL, NULL );
|
||||||
|
|
||||||
|
if (hFile!=INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
_MINIDUMP_EXCEPTION_INFORMATION ExInfo;
|
||||||
|
|
||||||
|
ExInfo.ThreadId = ::GetCurrentThreadId();
|
||||||
|
ExInfo.ExceptionPointers = pExceptionInfo;
|
||||||
|
ExInfo.ClientPointers = NULL;
|
||||||
|
|
||||||
|
// write the dump
|
||||||
|
BOOL bOK = pDump( GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &ExInfo, NULL, NULL );
|
||||||
|
if (bOK)
|
||||||
|
{
|
||||||
|
sprintf( szScratch, "Saved dump file to '%s'", szDumpPath );
|
||||||
|
szResult = szScratch;
|
||||||
|
retval = EXCEPTION_EXECUTE_HANDLER;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprintf( szScratch, "Failed to save dump file to '%s' (error %d)", szDumpPath, GetLastError() );
|
||||||
|
szResult = szScratch;
|
||||||
|
}
|
||||||
|
::CloseHandle(hFile);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprintf( szScratch, "Failed to create dump file '%s' (error %d)", szDumpPath, GetLastError() );
|
||||||
|
szResult = szScratch;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
szResult = "DBGHELP.DLL too old";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
szResult = "DBGHELP.DLL not found";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (szResult)
|
||||||
|
::MessageBox( NULL, szResult, m_szAppName, MB_OK );
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
30
polymer/eduke32/source/mdump.h
Normal file
30
polymer/eduke32/source/mdump.h
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
#define _WIN32_WINNT 0x0500
|
||||||
|
#include <windows.h>
|
||||||
|
#include <assert.h>
|
||||||
|
#include <cstring>
|
||||||
|
#if _MSC_VER < 1300
|
||||||
|
#define DECLSPEC_DEPRECATED
|
||||||
|
// VC6: change this path to your Platform SDK headers
|
||||||
|
#include "M:\\dev7\\vs\\devtools\\common\\win32sdk\\include\\dbghelp.h" // must be XP version of file
|
||||||
|
#else
|
||||||
|
// VC7: ships with updated headers
|
||||||
|
#include "dbghelp.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// based on dbghelp.h
|
||||||
|
typedef BOOL (WINAPI *MINIDUMPWRITEDUMP)(HANDLE hProcess, DWORD dwPid, HANDLE hFile, MINIDUMP_TYPE DumpType,
|
||||||
|
CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
|
||||||
|
CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
|
||||||
|
CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam
|
||||||
|
);
|
||||||
|
|
||||||
|
class MiniDumper
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
static LPCSTR m_szAppName;
|
||||||
|
|
||||||
|
static LONG WINAPI TopLevelFilter( struct _EXCEPTION_POINTERS *pExceptionInfo );
|
||||||
|
|
||||||
|
public:
|
||||||
|
MiniDumper( LPCSTR szAppName );
|
||||||
|
};
|
Loading…
Reference in a new issue