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)
- GnollHackX — Xamarin.Forms solution folder
- win32 — Source files for Windows