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
- 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