Platform Support on Windows using Visual Studio

GnollHack is compiled on Windows using Visual Studio. The Visual Studio solution is used to compile the following versions of GnollHack:

  • Windows/ASCII (Windows console)
  • Windows/GUI (ComCtl32)
  • Android/Xamarin.Forms
  • iOS/Xamarin.Forms
  • Android/.NET MAUI
  • iOS/.NET MAUI
  • Windows/.NET MAUI

Solutions

GnollHack Solution

The Visual Studio 2022 solution GnollHack.sln is found under win\win32\vs.

Projects

The solution contains the following projects:

dgncomp

  • Dungeon compiler for Windows

dgncompdroid

  • Dungeon compiler for Android and iOS
  • Linux C project

dlb

  • GnollHack data librarian
  • File archiving tool in the spirit of tar. It is used to maintain the archive files from which GnollHack reads special level files and other read-only information.
  • For Windows

dlbdroid

  • dlb for Android and iOS
  • Linux C project

GnollHack

  • ASCII version of GnollHack on Windows
  • Win32 console application

gnollhackdroid

  • GnollHack C library for Android
  • Compiles into a .so file

gnollhackios

  • GnollHack C library for iOS
  • Compiles into a .a file

gnollhackwin

  • GnollHack C library for .NET MAUI Windows (WinUI 3)
  • Compiles into a .dll file

GnollHackW

  • Graphical version of GnollHack on Windows
  • Win32 project using ComCtl32 controls
  • See https://learn.microsoft.com/en-us/windows/win32/controls/window-controls

GnollHackX

  • Xamarin.Forms common project (for Android and iOS)

GnollHackX.Android

  • Xamarin.Forms / Xamarin.Android project (main project for Android)

GnollHackX.Android.Bindings

  • Xamarin.Forms / Xamarin.Android Bindings project (for FMOD on Android)

GnollHackX.iOS

  • Xamarin.Forms / Xamarin.iOS project (main project for iOS)

levcomp

  • Special level compiler for Windows

levcompdroid

  • Special level compiler for Android and iOS
  • Linux C project

makedefs

  • GnollHack miscellaneous build-time functions
  • For Windows

makedefsdroid

  • GnollHack miscellaneous build-time functions
  • For Android and iOS
  • Linux C project

nh340key

  • Keyboard input handler

nhdefkey

  • Keyboard input handler

nhraykey

  • Keyboard input handler

PDCurses

  • PDCurses is a public domain curses library for DOS, OS/2, Windows console, X11, and SDL, implementing most of the functions available in X/Open and System V R4 curses.
  • See https://pdcurses.org/

recover

  • Crash recovery utility

SourceFileTimeStamper

  • C# project for time stamping source files
  • C# console application

GnollHackM — .NET MAUI Solution

The Visual Studio 2022 Preview solution GnollHackM.sln is found under win\win32\vs\xpl\GnollHackM.

Projects

GnollHackM

  • .NET MAUI project for all platforms (Android, iOS, macOS, Windows)

gnollhackwin

  • GnollHack C library project for .NET MAUI Windows (WinUI 3)
  • The same project as the one that is part of GnollHack Solution (GnollHack.sln)

Folders

Root

  • bin — Output files for GnollHack Windows
  • binary
  • dat — Data files
  • DEVEL
  • doc — Manuals
  • include — .h files
  • src — Source .c and .cpp files
  • sys — Operating system specific files
  • tools — Output files for tools on Windows
  • util — Source files for utilities
  • win — Source files for windowing systems
    • win32 — Source files for Windows
      • bank — FMOD sound banks (not included in the repository)
      • dll — GnollHack C library for Windows (unused)
      • fmod — FMOD libraries and wrapper files for Windows
      • vs — Visual Studio related files
      • xpl — Source files for Android and iOS ports
        • GnollHackX — Xamarin.Forms solution folder
          • GnollHackX — Xamarin.Forms common project
          • GnollHackX.Android — Xamarin.Android project
          • GnollHackX.Android.Bindings — Xamarin.Android bindings project for FMOD Android
          • GnollHackX.Android.GooglePlay — Tools and files needed for publishing GnollHack to Google Play
          • GnollHackX.Common — Common source files shared by for GnollHackX.Android and GnollHack.iOS
          • GnollHackX.FMOD — FMOD libraries, wrapper files, and common source files for Android and iOS
          • GnollHackX.iOS — Xamarin.iOS project
        • gnollhackdroid — GnollHack C library for Android
        • gnollhackios – GnollHack C library for iOS
        • libshare — GnollHack C library files shared by gnollhackdroid and gnollhackios
        • SourceFileTimeStamper — Console C# project, see above.
        • GnollHackM — .NET MAUI solution and project folder
          • GnollHackM.sln — .NET MAUI solution
          • GnollHackM.csproj — .NET MAUI project for all platforms
        • gnollhackwin — GnollHack C library for .NET MAUI Windows (WinUI 3)