Repository Structure - hyvanmielenpelit/GnollHack GitHub Wiki

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

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)