Commit Graph

64 Commits

Author SHA1 Message Date
Alex Kompel
c4bf762ec1 win32_gui: mimic tty interface when "Nethack mode" is selected (remove window features) 2016-01-03 19:52:05 -08:00
Sean Hunt
1c081b1647 Remove stale version control lines. 2015-05-25 09:21:31 +09:00
Sean Hunt
97d6fade74 Reformat all C files.
I'll push a formatting guide at some point. There may still be
outstanding changes, but please feel free to resolve those as you arrive
a them.

To the best of my knowledge, there is no changes to the actual code
content, but the formatter does have the occasional bug. If you run into
an issue, please fix it!
2015-05-09 13:43:16 -04:00
nhmall
20069798d4 Merge branch 'master' into win32-x64-working 2015-05-07 04:52:30 -04:00
karnov
2a907f894e Version number increment 2015-05-06 22:04:27 -04:00
Dion Nicolaas
b6007ac59d BCC is more strict about not statements before parameter declarations 2015-05-02 13:48:44 +02:00
Alex Kompel
1e06a7c675 win32_gui: remove macros and functions that are unsupported by gcc 2015-04-19 16:34:22 -07:00
Dion Nicolaas
0c4573d82a fix tile2bmp build under mingw. Provide alternatives for Microsoft-specific macros. Be consistent about slashes in gcc Makefile. Don't include shlwapi.h for any compiler. 2015-04-16 22:36:06 +02:00
Alex Kompel
c8679c8e0e win32_gui: encode copy-to-clipboard and save-to-file text in UTF-8 2015-04-15 22:13:10 -07:00
Alex Kompel
62617092b5 win32_gui: gettting x64 build to work 2015-04-14 08:54:44 -07:00
Derek S. Ray
b1a7bbbbdb pull in the recent unconditionals merge from master 2015-02-27 21:25:00 -05:00
Sean Hunt
1edadd1d48 Make REINCARNATION unconditional.
There is a lot of code affected by this, and Pat Rankin correctly
observes that it would be better to store roguelike as a level flag
rather than just using Is_rogue_level. A note for the future.
2015-02-27 19:33:16 -05:00
nhmall
e400723863 undo a set of code reverts in last commit 2015-02-26 22:48:32 -05:00
nhmall
e1dfe9c48a Roll back the win/win32 tree to the way it was before x64 attempt 2015-02-26 22:09:31 -05:00
keni
03140969ee Bulk recovery of file CVS headers and addition of NHDT- headers. 2015-02-26 09:19:03 -05:00
nethack.allison
586e2cb67e Suppress an x64 build warning (trunk only) 2012-01-11 01:53:44 +00:00
nethack.allison
593181421d More clean up of the Windows x64 build (trunk only) 2012-01-11 01:45:02 +00:00
nethack.allison
783413bb57 Start trying to clean up the Windows x64 build (trunk only) 2012-01-11 01:15:37 +00:00
keni
b97d53fb30 cleanup: outdated SCCS lines
Pat noted that I neglected to drop the SCCS lines on the files I've been
committing, so clean up those and any others I could find where the SCCS
line date is out of date.
2012-01-10 17:47:45 +00:00
keni
4e5e720334 display version and build info at startup (trunk only)
Tested on the unix port; I've updated as many other ports as I can figure
out but they're not tested.  See window.doc for info on the changed banner
lines.  Also adds the ability to override the generic "Unix" port - used now to get
"MacOSX" into the version line instead of "Unix" (so we don't scare people who don't
know what's going on).
2011-10-11 02:37:31 +00:00
keni
665dedc3de Add RCS version lines 2009-05-06 11:00:43 +00:00
nethack.allison
6177f4b871 win32 and wince
Remove the email address which is no longer valid from
several NetHack source files.
2005-01-23 19:39:01 +00:00
nethack.allison
ee7064746f AltGr-4 and alternate tiles in menus - trunk only (from <Someone>)
On Mon, 03 Jan 2005 12:04:29 +0000, <email deleted> wrote:
> Dear NetHack win32 developers,
>
> This bug does not affect the win32 binaries that you distribute but it
> does affect NetHack 3.4.3 if I build it from source. The difference may
> be due to different compilers or whatever. I'm using mingw32-gcc v3.2
>
> I don't quite understand what's going on (I never was much good at
> win32 programming), but it appears that the WM_KEYDOWN message for
> AltGr-4 is being translated into a WM_CHAR message with a wParam of
> 128. I don't understand why that should be, but anyway. The problem
> then occurs when NetHack casts wParam to char which, since char is
> signed, gives -128. onListChar() then passes -128 to isdigit() which
> causes the crash. The fix appears to be to simply drop the cast:

Also
> <email deleted>
> Newsgroups: rec.games.roguelike.nethack
> Subject: Changing tile set for item list?
> Date: 1 Jan 2005 20:03:08 -0800
> <email deleted>
>
> I'm using the windows interface for Nethack 3.4, and I've successfully
> changed the tileset used by changing defaults.nh.  The only problem is,
> the item list (i.e. The list that comes up when I press "i") still uses
> the old tiles.  Is there any way to change the list so it uses the new
> tiles?  I've searched the guidebook to no avail.  I'm debating if it is
> even possible.
>
> Thanks for the help,
> -Zmann

trunk patch:
- menu: display custom tiles if map is not ASCII
- menu: display '-'/'+'/'#' in place of a tile if map is ASCII
- fix isdigit() crash on AltGr-4 with mingw


It looks kinda weird with huge tiles (e.g. absurd96) but that could
be just me. Comments/suggestions are welcome.

-<Someone>
2005-01-09 23:35:52 +00:00
nethack.allison
85924518ec win32gui temporary build fix (from <Someone>)
> The trunk did not compile when STATUS_VIA_WINDOWPORT was set. > This patch fixes that (for the time being).
2004-06-02 11:10:24 +00:00
nethack.allison
d7ae45997c newline 2003-10-14 10:31:11 +00:00
nethack.allison
21eaf22be4 win32gui message history; also clipboard support (from <Someone>)
- added 2 menu options: Copy ASCII Screenshot To Clipboard, Save
  ASCII Screenshot To File
- implemented saving message history
2003-10-13 14:48:13 +00:00
nethack.allison
1bdf37ec00 SAFERHANGUP win32gui (from <Someone>) 2003-09-30 03:42:01 +00:00
nethack.allison
64e75e05e4 win32gui (from <Someone>)
trunk and branch:
Do not limit role selection list by race/gender/alignment. The default.nh
selection will still be honored but the list itself will include every
possible role.

Some interface tweaks for main trunk:
- improved calculation of the size of the menu window
- made auto-arrange windows on/off option (it was reset automatically
  which was unintuitive and in some cases annoying, IMO)
2003-09-27 12:30:28 +00:00
nethack.allison
1fd577124b win32 bits for main trunk (from <Someone>)
- set correct checkmark on "Lock Windows" menu item on startup
- redraw message window on resizing (it does not update properly otherwise)
- fixed copy/paste error in read registry settings function
2003-08-20 11:39:57 +00:00
nethack.allison
a67ed775cb number_pad (modified from <Someone>'s patch)
The number_pad option can now optionally hold a value
{0,1, 2 } for {off, on, DOS-mode} but plain number_pad and
!number_pad in config files still work as before.

When number_pad:2 is set, iflags.num_pad_mode is set to 1
which triggers the following behaviour:
> '5', M('5') and M('0') are mapped in rhack()
>in cmd.c, only when they are entered as a command. When used as a
>number, like in the 'n' command, no mapping takes place. '0' is
>already mapped to 'i' by the core. The
>only difference [<Someone>] left in (deliberately) is when you press Ctrl-0;
>this used to map to C('i'), which is an invalid command; now
>keep it '0' (which is interpreted as 'i' by the core.)
2003-06-06 03:49:56 +00:00
nethack.allison
debd89444c (from <Someone>)
What's in it:
some MessageBox tidbits:
- Let all MessageBoxes display an icon
- Introduced NHMessageBox to have messageboxes display a consistent title
- Change icon in mswin_display_file from MB_ICONERROR to MB_ICONEXCLAMATION
  for non-fatal error
And to solve #U355: NetHackW won't run on Win2K OS:
- Avoid a crash when closing the main window while the splash screen is
  displayed.
- Make sure NetHack starts normal when closed minimized
- Center the splash screen on the screen, not on the parent window
  (which may be off-screen)

What's new in it:
- Show copyright banner in textbox in splash screen instead of over the picture
- Show news in splash screen only if iflags.news (solves W341-6)
- show complete version information in splash screen when it is used as about box)

[Also reverse the numkey patch in main trunk]
2003-03-27 00:23:24 +00:00
nethack.allison
39befe07fd To summarise:
- My "various Windows refinements" patch from yesterday went into 3.4.x correctly
- My "NumberPad" patch went into 3.4.x, but should be backed out
- My "various Windows refinements" patch from last week was for 3.5.0, but is incomplete; you can safely ignore that.
- I'll make a new "various Windows refinements" patch for 3.5.0 tonight.
2003-03-26 00:02:09 +00:00
nethack.allison
adfaae0677 numkey (from <Someone>)
mapping the 5 and 0 to '5' and '0' respectively
when NumLock is off, to make entering numbers easier. The core will map '5' and
'0' to 'g' and 'i' respectively. This solves W341-5.

Note: I changed nhdefkey.c and mhmain.c, so both the tty and the windows
interface will show new behaviour. I deliberately did not change nh340key.dll.

Note: Maybe the same change should be made to the MSDOS port.

Note: The behaviour of getobj is a little bit strange: It doesn't use
yn_question's  facility for returning a number, but handles that itself. The
net effect of this is that if you type d55$ (to drop 55 zorkmids,) only the
first '5' is shown
2003-03-23 19:20:22 +00:00
nethack.allison
5311cce717 From Yitzhak
(2 troublesome bands removed
and will follow later)
Here's the new patch with the Windows improvements; this should apply to the
3.4.2 tree. Note the changed filename in the diff lines.
What's in it:
> some MessageBox tidbits:
> - Let all MessageBoxes display an icon
> - Introduced NHMessageBox to have messageboxes display a consistent title
> - Change icon in mswin_display_file from MB_ICONERROR to MB_ICONEXCLAMATION
> for non-fatal error
>
> And to solve #U355: NetHackW won't run on Win2K OS:
> - Avoid a crash when closing the main window while the splash screen is
> displayed.
> - Make sure NetHack starts normal when closed minimized
> - Center the splash screen on the screen, not on the parent window (which may
> be off-screen)
What's new in it:
- Show copyright banner in textbox in splash screen instead of over the picture
- Show news in splash screen only if iflags.news (solves W341-6)
- show complete version information in splash screen when it is used as about
box
2003-03-23 19:03:08 +00:00
nethack.allison
27977b7c15 win32 stuff held until after bugfix release (from <Someone>)
-better handling of "more" prompt for messages that would have      scrolled off the window
-support perm_invent
-menu option to add/remove windows captions
2003-03-03 23:31:36 +00:00
nethack.allison
04f845f87b splash screen patches (from <Someone>)
- Show splash on "Help - About" with all version information
- Show splash with news on startup (if show_splash is on of course).
I made another small patch to the splash screen. Because the greenish background colour always seemed a little odd to me, I decided
to make it transparent. Doing that, I found the following:
- The splash picture was a 24-bit bitmap, although it had less than 256 colours. That makes the size of the final executable about
200K larger than necessary. I changed it to a 256-colour bitmap. I also changed the background colour to the default tile background
colour, for consistency. The new bitmap is attached here. My excuses if the large file means a problem to anyone.
- In Microsoft's documentation (see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_2y9g.asp) is is
stated that on Windows 95/98 "TransparentBlt contains a memory leak that can exhaust system resources." It is recommended to use
different code to draw transparent bitmaps, to be precise: the alternative code that is already in nhapply_image_transparent(). I'm
almost convinced that this is the cause for Betabug B08008 reported bij <Someone>. Can anyone confirm he is using 95/98? I decided
for the easy way out and removed the code that uses TransparentBlt completely. I see not much reason to use it if it is a) buggy and
b) we have an alternative that works perfectly. This is attached as trans.patch.
- The rest of the patch only changes the BitBlt() in mhsplash.c to a nhapply_image_transparent().
2002-11-03 15:26:41 +00:00
nethack.allison
71eb636e14 win32 (from <Someone>)
This patch is an improvement for menu/text dialogs.
This is a code carried over from Windows CE port. It changes
text and menu windows from "system popup" to plain "child"
windows of the main nethack window. Nethack main window can
now be resized/moved/minimized when menu/text window is up.
Menu/text windows will always stay inside the main window and
move along with it.

<Someone>
2002-08-28 04:53:50 +00:00
nethack.allison
ea31aa03dc (from <Someone>)
> Questions are being appended in the message window, some showing
> up on the same line. This is really noticeable with the
> end-of-game disclosure questions. Questions should always be
> presented on a new line.

At end of game is probably the only place, since then more than one
question is asked in the same turn. Anyhow, here's the patch, in
mswproc.c  [...]

- No checkboxes in menu if menu is PICK_NONE. mhmenu.c

- About box changed to splash screen. This last thing is open
for discussion, as the splash screen currently does not give
exactly the ame information as the about box (or the v command).
Maybe the splash should be enhanced? Anyway, it looks better than
the About-box. I didn't remove the About-box code and resource yet
until this discussion is had. mhmain.c

<Someone>
2002-08-25 12:29:35 +00:00
nethack.allison
d70a3772f3 WIN32: File Save still enabled during #quit disclosure processing
> Below is the result of your feedback form.  It was submitted by
> <email deleted> on Tuesday, June 4, 2002 at 21:04:54
> After alt-Q or F)ile, Q)uitting, it is still possible to F)ile, S)ave your
> game.  By doing this after you are shown your inventory [fully identified] and
> attributes (It must be done before the last "Do you want to view your %1"
> dialog is answered--usually conduct), which means you can know what you are
> holding-- although it won't be officially identified.  But you can use it to
> avoid putting on, say, an amulet of strangulation by mistake.
2002-06-29 17:43:01 +00:00
nethack.allison
63e0b1ec2d (from <Someone>)
Two things:
1. This patch causes the window placement of the main window to be
written to the registry, and to be restored upon the next start
of the program. I had to move the creation of the main window to init_nhwindows,
as the registry is not read until then.

2.  Implement support for wc_popup_dialog (or rather, support for not having
popup windows.) It asks getlin questions and get_ext_cmd on the
message window, much like the TTY port does it.

The get_ext_cmd procedure is almost but not quite the same as the
one for TTY, and I think it is better: It autocompletes the extended
command you type, but if you keep on typing it doesn't add those letters
after the completed command, but just keeps track of how many (correct)
characters you typed. If you type a different character than the
autocompleted command has, it shows you what you typed again. If you
press backspace, it deletes the characters you typed, and if autocompletion
is no longer possible, it removes the autocompleted part. The effect
of this is that you can type as many letters as you want when typing
an extended command, as long as it is enough to identify one command;
and you only have to delete the characters you actually typed if you made
a mistake. I think autocompletion is a lot less obtrusive this way.

Some notes about the patch:
- Both mswin_getlin and mswin_get_ext_cmd now have two versions, with
  and without a popup.
- yn_question was changed so that it displays a caret, which is a lot
  nicer IMHO.
- I had to implement a new NetHack Windows Message parameter,
  "MSNH_MSG_CARET", to make it possible to show and hide the caret in
  the message window. Normally the caret is created and destroyed by the
  window that owns it, but in NetHack the input focus is always on the
  main window, while the caret is in the message window, which happens
  to be the only one that knows how large the caret should be.
- mswin_putstr_ex's last parameter changed from boolean to int; the
  semantics are enhanced so that a negative last parameter means "delete
  that many characters from the input line". The string to be deleted is
  passed in as well, although it is currently not used.
- A rather large chunk of code finds out where the last string that was
  displayed on the message window ended. This is necessary to place the
  caret at the right spot. The caret is always positioned there, even if
  it is hidden or non-existing.
- mswin_get_nh_event was changed to actually process and empty the
  message queue, and called from mswin_putstr_ex to make sure the
  message window is updated before the next step is done. Without this,
  the caret is positioned before the last message is painted, which
  makes its x-position after the last character of the previous line.
2002-03-27 12:17:26 +00:00
nethack.allison
bff7b7e431 (from Yitzhak)
This band adds handling for the "5" key in the numeric keypad.  This is
called VK_CLEAR in the VK_ constants.  Using this band, and with
NumLock off, doing 5 will send NetHack the letter 'g'.  Doing SHIFT-5 will
send 'G'.  Without this band and with NumLock off, 5 does nothing.  With
NumLock on, 5 sends 5.
2002-03-20 10:44:13 +00:00
nethack.allison
ac5851dbf6 (from Yitzhak) mhmain, ntty 2002-03-18 00:43:15 +00:00
nethack.allison
855e6eef88 (from Yitzhak) ALT-H
This patch disables ALT-H in NetHack mode.  Before patch: ALT-H in NetHack
mode brings down the Help menu in the menu bar.  After patch: ALT-H does
nothing in NetHack mode.  In both cases, in Windows mode, ALT-H brings
down the Help menu in the menu bar.   I can easily write a patch to have
ALT-H in NetHack mode act the same as '?'.

Explanation:
return 0: this window proc has processed this event.
return DefWindowProc(): process using default window proc.

ALT-H is the only key for which DefWindowProc() does something special AND
reaches the else.
2002-03-17 17:03:45 +00:00
nethack.allison
723e17b6ee (from Yitzhak)
This is the part of Yitzhak's patch not currently under discussion.
2002-03-16 18:54:16 +00:00
nethack.allison
4c1c02aa95 missing porthelp band
This band was accidentally left out of the patch for porthelp the other day.
2002-03-12 15:50:46 +00:00
nethack.allison
c3c3ebb119 (from Yitzhak)
patch: rollback alt-key changes
2002-03-11 22:33:21 +00:00
nethack.allison
185196bdbe (from Yitzhak)
rollback alt-b
2002-03-11 11:28:46 +00:00
nethack.allison
300b7b7495 (from <Someone>)
Fix crash.
WIN_MAP was used without before initialization in mswin_select_map_mode
2002-03-11 04:36:54 +00:00
nethack.allison
db2bdaadcb (from Yitzhak) part2
part 2 touches only port files

Makes Borland happy with current sources.
Fixes bug in WM_PAINT handling in rip/splash code.
Fixes getline() bug (H0009)
Tidies up source.
Fixes up copyright notices.
Adds TODO docs for Borland. (Removes "TODO" note)
Small changes to defaults formatting.
Fixes ALT key on Graphical Port non NetHack mode.
Hilites pet in Graphical Port text mode.

Also Implements windowcolors for status and message window in graphical port.
On graphical port,
tested to see it actually works.

Tested on platforms Makefile MSC/BCC Graphical/Console, MSC IDE for
compile and run and performing hilite pet in graphical text, not
displaying rawio, alt key.
2002-03-10 17:41:11 +00:00
nethack.allison
c58e5d7afd (from <Someone>)
This patch implements Michael's idea to have a "NetHack mode" for
keypresses. It only does the Alt-keys now, but it should be easy
to extend to pressing space in dialogs; I left that out as we still
have to agree on a new dialog look.

The setting that you choose from the menu is stored in the registry.
Reading and writing the registry is done on init_nhwindows and
exit_nhwindows; there also is a menu item to delete the registry
settings (which makes sure they are not stored again this session.)
This provides a framework for future registry settings.

Also,
Alt-tab should show the app title when a menu or text window is up.

I left the app title as it was, although I still favour "Graphical
Version" or "With Graphics"; Anyway, that's only one resource string.
2002-03-08 22:23:04 +00:00