Commit Graph
89 Commits
Author SHA1 Message Date
nhmall 64eeafc2d7 remove package from visual studio solution for now 2023-03-02 22:17:51 -05:00
nhmall 11d83bbad3 retarget Visual Studio SDK 2023-03-02 22:06:14 -05:00
Pasi Kallinen fc7a32b86e Tutorial level
Add a tutorial level to teach commands to new players.
Very much a WIP.

Breaks save and bones compat.
2023-03-01 14:00:29 +02:00
nhmall 9168e1f30b remove a maintenance/synchronization requirement
adds a file include/seffects.h
2023-02-25 16:05:27 -05:00
nhmall 36ca64acdb start to add some SOUND_TRIGGER_ACHIEVEMENTS code
Start to add supporting code to windsound and macsound. The latter
remains commented out because I haven't had a chance to try
it on macOS yet.

In order to test it out, I added two more stock sounds:
sa2_xplevelup and sa2_xpleveldown.
2023-02-04 14:28:59 -05:00
nhmall 8bbf9a5b8f add missing entries to visual studio files.props 2023-01-25 09:41:20 -05:00
nhmall a48e32a1f9 add missing Magic_Flute files 2023-01-25 01:16:08 -05:00
nhmall 2da828324f update NetHackW.vcxproj
Still trying to resolve CI build failure.
2023-01-22 18:39:55 -05:00
nhmall 83f3b3a587 update vs project 2023-01-22 17:20:19 -05:00
nhmall e9e62d7ad2 follow-up for today's sound interface changes 2023-01-22 16:44:48 -05:00
nhmall cb0de5cd8d fix hardcoded relative paths in rc file
Having a hardcoded relative path worked okay with the nmake Makefile
build but cause problems on a visual studio build. The CI caught that
right away.

Remove the relative paths, and add additional include directories for
the resouce compiler to search in the Makefile and in visual studio.
2023-01-22 14:15:11 -05:00
nhmall 76b569cae0 update visual studio dirs.props with new directory 2023-01-19 20:09:39 -05:00
nhmall 54a9b72e35 another update to visual studio project files 2023-01-19 19:48:55 -05:00
nhmall 897d58655d update visual studio project files 2023-01-19 19:44:25 -05:00
nhmall 3c7aad898f follow-up for windows build based on CI results 2023-01-19 19:26:23 -05:00
nhmall 5c4ae701b3 visual studio package settings 2023-01-17 21:07:45 -05:00
nhmall 485797ee8c rework windows nmake file
Keep object files separate between gui and tty builds as they
are not the same binary on windows.

The stubs.c file will no longer be necessary.
2022-12-05 13:21:19 -05:00
nhmall aebf77ada1 update visual studio project files 2022-07-01 11:47:02 -04:00
nhmall 0a171bb862 clear a warning during build with vs project
src/nhlua.c(93,16): warning C4324: 'nhl_user_data': structure was padded
due to alignment specifier
2022-05-07 11:34:24 -04:00
nhmall eb802a8371 Visual studio project updates 2022-05-07 11:19:59 -04:00
nhmall 2bb26da9fa Windows visual studio project updates
hide a couple of warnings in non-nethack code
get rid of an obsolete file reference
2022-03-13 10:20:41 -04:00
nhmall a7009e2a54 obsolete nhlan.c follow-up
- visual studio project files
- .gitattributes
2022-02-15 15:22:34 -05:00
nhkeni 1d210ed722 prevent ..files value from being pull from ..
This was creating extra nethack.ico entries in Files.
2022-02-04 15:11:04 -05:00
nhmall bfb2a29f7a update .gitattributes for two windows folders 2022-01-29 18:16:07 -05:00
nhmall c2024b8990 remove some outdated references to travis 2022-01-29 08:34:58 -05:00
nhmall 13ee03be1f support for build with current Lua version 5.4.4
On some platforms this may require:
       re-using a sys/unix/hints file to generate updated Makefiles
       make spotless
       make fetch-lua
2022-01-27 18:23:17 -05:00
nhmall f4331a2d03 adjust build procedures for added file
Builds for:
   sys/msdos/Makefile.GCC - for local build on msdos itself (untested)
   sys/unix/NetHack.xcodeproj/project.pbxproj   - for Xcode build
   sys/windows/Makefile.gcc - for Windows build via Ming-w64 (untested)
   sys/windows/Makefile.msc - for visual studio nmake build
   sys/windows/vs/files.props for visual studio solution/project build
2022-01-20 10:37:53 -05:00
nhmall a194194039 more possible build fixes
Once again, I need to commit these first and observe the CI results
afterwards to verify the results.
2021-12-28 08:04:59 -05:00
nhmall 0a97cc5c5e windows console changes - eliminate *key.dll
Incorporate the functionality of the loadable DLL's (nhraykey.dll,
nhdefkey.dll, and nh340key.dll) into the consoletty.c code and
remove the dll building
2021-11-16 15:27:33 -05:00
nhmall 15ec24a524 windows visual studio project build tweaks 2021-09-13 11:32:59 -04:00
nhmall a772751745 build failure detected in CI
The build in the CI was failing after commits today due to this error:
prob error for class 4 (28%)

It was caused by running
	makedefs -o

Remove unnecessary invocation of makedefs with outdated options from
aftermakedefs.proj
2021-08-28 23:10:49 -04:00
nhmall 12f8be6452 more visual studio build tweaks 2021-08-21 15:53:21 -04:00
nhmall d1e49d7d67 follow-up build fixes for Windows 2021-08-21 15:48:40 -04:00
nhmall 9bb96322a8 compile NetHack-3.7 without makedefs-generated .h files
This evolves and hopefully eases the game-build requirements by
removing game-compile dependencies on any header files generated
by the makedefs utility, including:

date.h dependency and its inclusion is removed and comparable functionality
is produced at runtime via new file src/date.c.

pm.h dependency and its inclusion is removed and comparable functionality is
produced by moving the monster definitions from monst.c into new header
file called monsters.h and altering them slightly. The former pm.h header
file #define PM_ values are now replaced with appropriate emitted enum
entries during the compiler preprocessing.

onames.h dependency and	its inclusion is removed and comparable functionality
is produced by moving the object definitions from objects.c into new header
file called objects.h and altering them slightly. The former onames.h header
file #define values are now replaced with appropriate emitted enum entries
during the compiler preprocessing.

artilist.h has been slightly altered, and the former onames.h artifact-related
header file #define ART_ values are now replaced with appropriate emitted enum
entries during the compiler preprocessing.

makedefs can still produce date.h (makedefs -v), pm.h (makedefs -p), and
onames.h (makedefs -o) for reference purposes. They won't be used during
the compiler.

The other uses for makedefs remain. They are used to prepare external
file content that the game utilizes, not prerequisite code for the
compile:
    makedefs -d    (database)
    makedefs -r    (rumors)
    makedefs -h    (oracles)
    makedefs -s    (epitaphs, engravings, bogusmons)

date.c

Pull the code for date/time stamping from mdlib.c into date.c.
Set date.o to be dependent on source files, header files, and .o files
so that date.o is rebuilt from date.c when any of those changes, thus
ensuring an accurate date/time stamp. It also includes git sha
functionality formerly done by makedefs writing #define directives
into include/date.h. For unix it passes the git info on
the compile line for date.c (via sys/unix/hints/linux.2020, macOS.2020)

nethack --dumpenums (optional, but on by default)

Allow developer to obtain some internal enum values from NetHack
without having to resort to an external utility such as
makedefs.

Uncomment #define NODUMPENUMS in config.h to disable this.

The updates to sys/windows/Makefile.gcc have not been tested yet.
2021-08-21 07:59:18 -04:00
nhmall 2baadd6a29 header files sym.h and defsym.h
There were multiple symbol-related lists that had to be kept
in sync in various places.

Consolidate some of that into a single new file
    defsym.h
with a set of morphing macros that can be custom-called from
the various places that use the sym info without maintaining
multiple occurrences. Most maintenance can be done there.

Rename monsym.h to sym.h since it looks after some
symbols not related to monsters now too.

The defsym.h header file is included in multiple places to
produce different code depending on its use and the controlling
macro definitions in place prior to including it.

Its purpose is to have a definitive source for
pchar, objclass and mon symbol maintenance.

The controlling macros used to morph the resulting code are
used in these places:
  - in include/sym.h for enums of some S_ symbol values
    (define PCHAR_ENUM, MONSYMS_ENUM prior to #include defsym.h)
  - in include/objclass.h for enums of some S_ symbol values
    (define OBJCLASS_ENUM prior to #include defsym.h)
  - in src/symbols.c for parsing S_ entries in config files
    (define PCHAR_PARSE, MONSYMS_PARSE, OBJCLASS_PARSE prior
    to #include defsym.h)
  - in src/drawing.c for initializing some data structures/arrays
    (define PCHAR_DRAWING, MONSYMS_DRAWING, OBJCLASS_DRAWING prior
    to #include defsym.h)
  - in win/share/tilemap.c for processing a tile file
    (define PCHAR_TILES prior to #include defsym.h).
2021-08-10 13:35:25 -04:00
Pasi Kallinen 29a8153170 Add a new bigroom variant "boulder maze" 2021-07-09 18:18:31 +03:00
nhmall 0305a14a27 windows substitution error in gcc Makefile 2021-06-04 21:46:03 -04:00
nhmall 91ab71f0f9 windows and visual studio follow-up bit 2021-06-03 23:43:32 -04:00
nhmall 0a10bd632d change references from winnt to windows
rename sys/winnt to sys/windows
move vs (visual studio) folder out of win/win32 and into sys/windows
rename include/ntconf.h to include/windconf.h
rename winnt.c to windsys.c
place visual studio projects into individual subfolders.

This will hopefully resolve GitHub issue #484 as well.
2021-06-03 23:26:00 -04:00