OSDN Git Service

remove files no longer used
[jnethack/source.git] / win / win32 / winhack.c
diff --git a/win/win32/winhack.c b/win/win32/winhack.c
deleted file mode 100644 (file)
index c6941d7..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-/* NetHack 3.6    winhack.c    $NHDT-Date: 1449488876 2015/12/07 11:47:56 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.44 $ */
-/* Copyright (C) 2001 by Alex Kompel      */
-/* NetHack may be freely redistributed.  See license for details. */
-
-// winhack.cpp : Defines the entry point for the application.
-//
-
-#include "win10.h"
-#include <process.h>
-
-#include "winMS.h"
-#include "hack.h"
-#include "dlb.h"
-#include "resource.h"
-#include "mhmain.h"
-#include "mhmap.h"
-
-#if !defined(SAFEPROCS)
-#error You must #define SAFEPROCS to build winhack.c
-#endif
-
-/* Borland and MinGW redefine "boolean" in shlwapi.h,
-   so just use the little bit we need */
-typedef struct _DLLVERSIONINFO {
-    DWORD cbSize;
-    DWORD dwMajorVersion; // Major version
-    DWORD dwMinorVersion; // Minor version
-    DWORD dwBuildNumber;  // Build number
-    DWORD dwPlatformID;   // DLLVER_PLATFORM_*
-} DLLVERSIONINFO;
-
-//
-// The caller should always GetProcAddress("DllGetVersion"), not
-// implicitly link to it.
-//
-
-typedef HRESULT(CALLBACK *DLLGETVERSIONPROC)(DLLVERSIONINFO *);
-
-/* end of shlwapi.h */
-
-/* Minimal common control library version
-Version     _WIN_32IE   Platform/IE
-=======     =========   ===========
-4.00        0x0200      Microsoft(r) Windows 95/Windows NT 4.0
-4.70        0x0300      Microsoft(r) Internet Explorer 3.x
-4.71        0x0400      Microsoft(r) Internet Explorer 4.0
-4.72        0x0401      Microsoft(r) Internet Explorer 4.01
-...and probably going on infinitely...
-*/
-#define MIN_COMCTLMAJOR 4
-#define MIN_COMCTLMINOR 71
-#define INSTALL_NOTES "http://www.nethack.org/v340/ports/download-win.html#cc"
-/*#define COMCTL_URL
- * "http://www.microsoft.com/msdownload/ieplatform/ie/comctrlx86.asp"*/
-
-extern void FDECL(nethack_exit, (int));
-static TCHAR *_get_cmd_arg(TCHAR *pCmdLine);
-static HRESULT GetComCtlVersion(LPDWORD pdwMajor, LPDWORD pdwMinor);
-BOOL WINAPI
-_nhapply_image_transparent(HDC hDC, int x, int y, int width, int height,
-                           HDC sourceDC, int s_x, int s_y, int s_width,
-                           int s_height, UINT cTransparent);
-
-// Global Variables:
-NHWinApp _nethack_app;
-extern int GUILaunched;     /* We tell shared startup code in windmain.c
-                               that the GUI was launched via this */
-
-#ifdef __BORLANDC__
-#define _stricmp(s1, s2) stricmp(s1, s2)
-#define _strdup(s1) strdup(s1)
-#endif
-
-// Foward declarations of functions included in this code module:
-extern boolean FDECL(main, (int, char **));
-static void __cdecl mswin_moveloop(void *);
-
-#define MAX_CMDLINE_PARAM 255
-
-int APIENTRY
-WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,
-        int nCmdShow)
-{
-    INITCOMMONCONTROLSEX InitCtrls;
-    int argc;
-    char *argv[MAX_CMDLINE_PARAM];
-    size_t len;
-    TCHAR *p;
-    TCHAR wbuf[BUFSZ];
-    char buf[BUFSZ];
-
-    DWORD major, minor;
-    /* OSVERSIONINFO osvi; */
-
-    UNREFERENCED_PARAMETER(hPrevInstance);
-    UNREFERENCED_PARAMETER(lpCmdLine);
-    UNREFERENCED_PARAMETER(nCmdShow);
-
-    /*
-     * Get a set of valid safe windowport function
-     * pointers during early startup initialization.
-     *
-     * When get_safe_procs is called with 0 as the param,
-     * non-functional, but safe function pointers are set
-     * for all windowport routines.
-     *
-     * When get_safe_procs is called with 1 as the param,
-     * raw_print, raw_print_bold, and wait_synch, and nhgetch
-     * are set to use C stdio routines via stdio_raw_print,
-     * stdio_raw_print_bold, stdio_wait_synch, and
-     * stdio_nhgetch.
-     */
-    windowprocs = *get_safe_procs(0);
-
-    /*
-     * Now we are going to override a couple
-     * of the windowprocs functions so that
-     * error messages are handled in a suitable
-     * way for the graphical version.
-     */
-    windowprocs.win_raw_print = mswin_raw_print;
-    windowprocs.win_raw_print_bold = mswin_raw_print_bold;
-    windowprocs.win_wait_synch = mswin_wait_synch;
-
-    win10_init();
-    sys_early_init();
-
-    /* init application structure */
-    _nethack_app.hApp = hInstance;
-    _nethack_app.hAccelTable =
-        LoadAccelerators(hInstance, (LPCTSTR) IDC_NETHACKW);
-    _nethack_app.hMainWnd = NULL;
-    _nethack_app.hPopupWnd = NULL;
-    _nethack_app.bmpTiles = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TILES));
-    if (_nethack_app.bmpTiles == NULL)
-        panic("cannot load tiles bitmap");
-    _nethack_app.bmpPetMark =
-        LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_PETMARK));
-    if (_nethack_app.bmpPetMark == NULL)
-        panic("cannot load pet mark bitmap");
-#ifdef USE_PILEMARK
-    _nethack_app.bmpPileMark =
-        LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_PILEMARK));
-    if (_nethack_app.bmpPileMark == NULL)
-        panic("cannot load pile mark bitmap");
-#endif
-    _nethack_app.bmpRip = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_RIP));
-    if (_nethack_app.bmpRip == NULL)
-        panic("cannot load rip bitmap");
-    _nethack_app.bmpSplash =
-        LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_SPLASH));
-    if (_nethack_app.bmpSplash == NULL)
-        panic("cannot load splash bitmap");
-    _nethack_app.bmpMapTiles = _nethack_app.bmpTiles;
-    _nethack_app.mapTile_X = TILE_X;
-    _nethack_app.mapTile_Y = TILE_Y;
-    _nethack_app.mapTilesPerLine = TILES_PER_LINE;
-
-    _nethack_app.bNoHScroll = FALSE;
-    _nethack_app.bNoVScroll = FALSE;
-    _nethack_app.saved_text = strdup("");
-
-    _nethack_app.bAutoLayout = TRUE;
-    _nethack_app.bWindowsLocked = TRUE;
-
-    _nethack_app.bNoSounds = FALSE;
-
-#if 0  /* GdiTransparentBlt does not render spash bitmap for whatever reason */
-    /* use system-provided TransparentBlt for Win2k+ */
-    ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
-    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-    GetVersionEx(&osvi);
-    if (osvi.dwMajorVersion >= 5)
-        _nethack_app.lpfnTransparentBlt = GdiTransparentBlt;
-    else
-#endif
-        _nethack_app.lpfnTransparentBlt = _nhapply_image_transparent;
-
-    // init controls
-    if (FAILED(GetComCtlVersion(&major, &minor))) {
-        char buf[TBUFSZ];
-        Sprintf(buf, "Cannot load common control library.\n%s\n%s",
-                "For further information, refer to the installation notes at",
-                INSTALL_NOTES);
-        panic(buf);
-    }
-    if (major < MIN_COMCTLMAJOR
-        || (major == MIN_COMCTLMAJOR && minor < MIN_COMCTLMINOR)) {
-        char buf[TBUFSZ];
-        Sprintf(buf, "Common control library is outdated.\n%s %d.%d\n%s\n%s",
-                "NetHack requires at least version ", MIN_COMCTLMAJOR,
-                MIN_COMCTLMINOR,
-                "For further information, refer to the installation notes at",
-                INSTALL_NOTES);
-        panic(buf);
-    }
-    ZeroMemory(&InitCtrls, sizeof(InitCtrls));
-    InitCtrls.dwSize = sizeof(InitCtrls);
-    InitCtrls.dwICC = ICC_LISTVIEW_CLASSES;
-    InitCommonControlsEx(&InitCtrls);
-
-    /* get command line parameters */
-    p = _get_cmd_arg(GetCommandLine());
-    p = _get_cmd_arg(NULL); /* skip first paramter - command name */
-    for (argc = 1; p && argc < MAX_CMDLINE_PARAM; argc++) {
-        len = _tcslen(p);
-        if (len > 0) {
-            argv[argc] = _strdup(NH_W2A(p, buf, BUFSZ));
-        } else {
-            argv[argc] = "";
-        }
-        p = _get_cmd_arg(NULL);
-    }
-    GetModuleFileName(NULL, wbuf, BUFSZ);
-    argv[0] = _strdup(NH_W2A(wbuf, buf, BUFSZ));
-
-    if (argc == 2) {
-        TCHAR *savefile = strdup(argv[1]);
-        TCHAR *plname;
-        for (p = savefile; *p && *p != '-'; p++)
-            ;
-        if (*p) {
-            /* we found a '-' */
-            plname = p + 1;
-            for (p = plname; *p && *p != '.'; p++)
-                ;
-            if (*p) {
-                if (strcmp(p + 1, "NetHack-saved-game") == 0) {
-                    *p = '\0';
-                    argv[1] = "-u";
-                    argv[2] = _strdup(plname);
-                    argc = 3;
-                }
-            }
-        }
-        free(savefile);
-    }
-    GUILaunched = 1;
-    /* let main do the argument processing */
-    (void) main(argc, argv);
-    return 0;
-}
-
-PNHWinApp
-GetNHApp()
-{
-    return &_nethack_app;
-}
-
-TCHAR *
-_get_cmd_arg(TCHAR *pCmdLine)
-{
-    static TCHAR *pArgs = NULL;
-    TCHAR *pRetArg;
-    BOOL bQuoted;
-
-    if (!pCmdLine && !pArgs)
-        return NULL;
-    if (!pArgs)
-        pArgs = pCmdLine;
-
-    /* skip whitespace */
-    for (pRetArg = pArgs; *pRetArg && _istspace(*pRetArg);
-         pRetArg = CharNext(pRetArg))
-        ;
-    if (!*pRetArg) {
-        pArgs = NULL;
-        return NULL;
-    }
-
-    /* check for quote */
-    if (*pRetArg == TEXT('"')) {
-        bQuoted = TRUE;
-        pRetArg = CharNext(pRetArg);
-        pArgs = _tcschr(pRetArg, TEXT('"'));
-    } else {
-        /* skip to whitespace */
-        for (pArgs = pRetArg; *pArgs && !_istspace(*pArgs);
-             pArgs = CharNext(pArgs))
-            ;
-    }
-
-    if (pArgs && *pArgs) {
-        TCHAR *p;
-        p = pArgs;
-        pArgs = CharNext(pArgs);
-        *p = (TCHAR) 0;
-    } else {
-        pArgs = NULL;
-    }
-
-    return pRetArg;
-}
-
-/* Get the version of the Common Control library on this machine.
-   Copied from the Microsoft SDK
- */
-HRESULT
-GetComCtlVersion(LPDWORD pdwMajor, LPDWORD pdwMinor)
-{
-    HINSTANCE hComCtl;
-    HRESULT hr = S_OK;
-    DLLGETVERSIONPROC pDllGetVersion;
-
-    if (IsBadWritePtr(pdwMajor, sizeof(DWORD))
-        || IsBadWritePtr(pdwMinor, sizeof(DWORD)))
-        return E_INVALIDARG;
-    // load the DLL
-    hComCtl = LoadLibrary(TEXT("comctl32.dll"));
-    if (!hComCtl)
-        return E_FAIL;
-
-    /*
-    You must get this function explicitly because earlier versions of the DLL
-    don't implement this function. That makes the lack of implementation of
-    the
-    function a version marker in itself.
-    */
-    pDllGetVersion =
-        (DLLGETVERSIONPROC) GetProcAddress(hComCtl, TEXT("DllGetVersion"));
-    if (pDllGetVersion) {
-        DLLVERSIONINFO dvi;
-        ZeroMemory(&dvi, sizeof(dvi));
-        dvi.cbSize = sizeof(dvi);
-        hr = (*pDllGetVersion)(&dvi);
-        if (SUCCEEDED(hr)) {
-            *pdwMajor = dvi.dwMajorVersion;
-            *pdwMinor = dvi.dwMinorVersion;
-        } else {
-            hr = E_FAIL;
-        }
-    } else {
-        /*
-        If GetProcAddress failed, then the DLL is a version previous to the
-        one
-        shipped with IE 3.x.
-        */
-        *pdwMajor = 4;
-        *pdwMinor = 0;
-    }
-    FreeLibrary(hComCtl);
-    return hr;
-}
-
-/* apply bitmap pointed by sourceDc transparently over
-bitmap pointed by hDC */
-BOOL WINAPI
-_nhapply_image_transparent(HDC hDC, int x, int y, int width, int height,
-                           HDC sourceDC, int s_x, int s_y, int s_width,
-                           int s_height, UINT cTransparent)
-{
-    /* Don't use TransparentBlt; According to Microsoft, it contains a memory
-     * leak in Window 95/98. */
-    HDC hdcMem, hdcBack, hdcObject, hdcSave;
-    COLORREF cColor;
-    HBITMAP bmAndBack, bmAndObject, bmAndMem, bmSave;
-    HBITMAP bmBackOld, bmObjectOld, bmMemOld, bmSaveOld;
-
-    /* Create some DCs to hold temporary data. */
-    hdcBack = CreateCompatibleDC(hDC);
-    hdcObject = CreateCompatibleDC(hDC);
-    hdcMem = CreateCompatibleDC(hDC);
-    hdcSave = CreateCompatibleDC(hDC);
-
-    /* this is bitmap for our pet image */
-    bmSave = CreateCompatibleBitmap(hDC, width, height);
-
-    /* Monochrome DC */
-    bmAndBack = CreateBitmap(width, height, 1, 1, NULL);
-    bmAndObject = CreateBitmap(width, height, 1, 1, NULL);
-
-    /* resulting bitmap */
-    bmAndMem = CreateCompatibleBitmap(hDC, width, height);
-
-    /* Each DC must select a bitmap object to store pixel data. */
-    bmBackOld = SelectObject(hdcBack, bmAndBack);
-    bmObjectOld = SelectObject(hdcObject, bmAndObject);
-    bmMemOld = SelectObject(hdcMem, bmAndMem);
-    bmSaveOld = SelectObject(hdcSave, bmSave);
-
-    /* copy source image because it is going to be overwritten */
-    StretchBlt(hdcSave, 0, 0, width, height, sourceDC, s_x, s_y, s_width,
-        s_height, SRCCOPY);
-
-    /* Set the background color of the source DC to the color.
-    contained in the parts of the bitmap that should be transparent */
-    cColor = SetBkColor(hdcSave, cTransparent);
-
-    /* Create the object mask for the bitmap by performing a BitBlt
-    from the source bitmap to a monochrome bitmap. */
-    BitBlt(hdcObject, 0, 0, width, height, hdcSave, 0, 0, SRCCOPY);
-
-    /* Set the background color of the source DC back to the original
-    color. */
-    SetBkColor(hdcSave, cColor);
-
-    /* Create the inverse of the object mask. */
-    BitBlt(hdcBack, 0, 0, width, height, hdcObject, 0, 0, NOTSRCCOPY);
-
-    /* Copy background to the resulting image  */
-    BitBlt(hdcMem, 0, 0, width, height, hDC, x, y, SRCCOPY);
-
-    /* Mask out the places where the source image will be placed. */
-    BitBlt(hdcMem, 0, 0, width, height, hdcObject, 0, 0, SRCAND);
-
-    /* Mask out the transparent colored pixels on the source image. */
-    BitBlt(hdcSave, 0, 0, width, height, hdcBack, 0, 0, SRCAND);
-
-    /* XOR the source image with the beckground. */
-    BitBlt(hdcMem, 0, 0, width, height, hdcSave, 0, 0, SRCPAINT);
-
-    /* blt resulting image to the screen */
-    BitBlt(hDC, x, y, width, height, hdcMem, 0, 0, SRCCOPY);
-
-    /* cleanup */
-    DeleteObject(SelectObject(hdcBack, bmBackOld));
-    DeleteObject(SelectObject(hdcObject, bmObjectOld));
-    DeleteObject(SelectObject(hdcMem, bmMemOld));
-    DeleteObject(SelectObject(hdcSave, bmSaveOld));
-
-    DeleteDC(hdcMem);
-    DeleteDC(hdcBack);
-    DeleteDC(hdcObject);
-    DeleteDC(hdcSave);
-
-    return TRUE;
-}