Commit Graph

125 Commits

Author SHA1 Message Date
nethack.allison
2ce6152d63 B08021 scroll_amount wincap option
> - I'd like to see another option added: scroll_amount. In
>   combination with scroll_margin, this would control the amount
>   of squares the screen is scrolled when the scroll_margin is
>   reached (currently, this amount is 1, but if I recall
>   correctly, it used to be more). For example, if both were 5,
>   when you came within 5 spaces of the left screen border, the
>   screen would shift 5 spaces to the right).
2002-08-23 01:03:59 +00:00
nethack.allison
b3417655da B08002 - win32gui: message window sizing (from <Someone>)
>>>  - When I set font and font size of the message window, the
>>>  message window size doesn't calculate correctly to show the
>>>  number of message lines specified. For example, I set the font
>>>  size to 6, and the number of messages to display to 8. Now
>>>  there is whitespace at the top of my message window. When I
>>>  set the font size to 14 now, I see only 5.5 message lines.
>>>  This is unintuitive: the interface should recalculate the
>>>  window size needed to display the correct number of lines.
>>>
>>  I agree, especially since the message window size is
>>  recalculated correctly if you save and restore. An easy way out
>>  would be to set those options to DISP_IN_GAME.
>
>  That seems like a good work-around until the proper fix is done.

The patch is attached. I moved the code that was computing the font
size to mswin_message_window_size(). This will cause the message
window to resize properly if the message font size changes. There
are also 2 minor bits in mswproc.c to invalidate the message window
when the font changes.
2002-08-21 23:14:27 +00:00
nethack.allison
411195c75f suggestions from <Someone> 2002-08-21 11:02:56 +00:00
nethack.allison
c5c963e5ca (from <Someone>)
> - When I pick up something, the count is displayed to the right.
>   I'd like this count to stay visible when I switch to another
>   item in the list.
2002-08-20 00:04:34 +00:00
nethack.allison
289c2635bb win32gui: hide perm_invent option from the options menu in the game 2002-08-18 01:53:05 +00:00
nethack.allison
0c31ade8df fix reported beta-tester problem of not being able
to select capital letter at some prompts.
2002-08-18 00:16:43 +00:00
nethack.allison
3ea4cad695 (from <Someone>)
there is a maximum of 200 characters for a message line
now. That should be TBUFSZ.
2002-08-13 00:38:03 +00:00
nethack.allison
0fef89bfe3 win32 message window (from <Someone>)
three new features for the message window we discussed:
- Graying out lines that are old -- slightly cleaner than <Someone>'s version.
- Message concatenation.
- --More-- prompt if there are more messages this turn than fit in the
  window.
As a by-product of these changes, some other things have changed, too:
- The message lines array is now used in a round-robin way, i.e. the
  messages are no longer copied one line up when adding a new message.
- clear_nhwindow no longer redraws the window, which significantly
  reduces screen flicker.
- A caret bug was fixed.
- The last line is no longer highlighted, as this seems unnecessary
  since the most recent messages are in a different colour
- A bug was fixed that caused two lines too many to be drawn on each
  paint.
2002-08-12 11:19:04 +00:00
nethack.allison
00653d2f9a win32gui: case insensitive mswin_yn_function()
Address a complaint by <Someone> about
mswin_yn_function() requiring lowercase 'n',
when the tty port tty_yn_function() accepts
upper or lower.
2002-08-06 02:44:08 +00:00
nethack.allison
8a9c09a8b1 (From <Someone>)
> It's probably best to empty
> mswin_update_inventory() in win\win32\. If I
> remember correctly there is some code in there now
> which probably behaves badly if perm_invent is
> switched on
2002-07-19 13:42:24 +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
e996f36748 from <Someone>
In item-selection menus, as you know one can press "=" to select all
rings, say.  This doesn't work if the letters run out before you get to
the rings, however (because there are so many items).

Menu code did not check group accelerators on items without assigned letters
(if the letters run out). Fixed.
2002-06-01 23:55:07 +00:00
nethack.allison
31e40def94 (from <Someone>)
Allow someone to resume their game by clicking on a saved game, if they
have an association set up.
2002-04-21 13:22:57 +00:00
nethack.allison
20472e645c (from <Someone>)
W340-6 fix
fixed: mswin_menu_size incremented width of the actual menu window
each time being called. This only happens if "show window content
while dragging" option is set in Windows desktop settings.
2002-04-18 22:21:05 +00:00
nethack.allison
d493eb8d90 (from <Someone>)
The pet image was garbled because it was reduced to the size of the pet mark
bitmap
in the function that draws pet mark transparently over the pet tile (32x32
image was reduced to 16x16 and then stretched again)

Also added: use Windows-provided TransparentBlt where available.
2002-04-18 22:11:34 +00:00
nethack.allison
841db8164d Get rid of some win32 warnings from recent patches
mhmenu.c(798) : warning C4101: 'dtp' : unreferenced local variable
mhmenu.c(1273) : warning C4101: 'wbuf' : unreferenced local variable
mhmenu.c(1290) : warning C4101: 'drawRect' : unreferenced local variable
mhmenu.c(1289) : warning C4101: 'dtp' : unreferenced local variable
2002-04-16 21:40:55 +00:00
nethack.allison
a41aec240e W340-3 menu columns
In some menus the options columns didn't line up perfectly
when very long items were present.
2002-04-11 14:08:46 +00:00
nethack.allison
817bdf58e7 B/U/C Priest suggestion by Pat
- also a win32 dsp file modification
2002-04-07 12:51:28 +00:00
nethack.allison
28e7cd5c0e #741 (from <Someone>)
Another fatal bug in win32 graphical interface
"Too many "dead" NHW_TEXT windows around. Repeating #? 15 times will produce
the same result."

>Wizard, wearing gray dragon scale mail and wielding Magicbane. The
>Dark One teleports next to me and I get the message "The Dark One
>casts a spell at you! A field of force surrounds you!". Then I get
>3 windows popping up: "Oops." "The dungeon collapses." "ERROR: No
>windows available..." and the game exits.

> I wish I could reproduce this reliably.  Here's the method I've been using
> to do it:
>
> - Equip character (+4 gdsm, Magicbane, unicorn horn, see invisible,
> telepathy, key, "gain ability" potions to max out, enhance dagger skill
> to max, level change to 14)
> - Teleport down to the portal entrance.  Go through the portal, get
> permission to go down to see the Dark One.
> - Go down to the Dark One's level, teleport over, open up his door, and
> basically just try to head back to the entrance and kill him.
>
> Two different things have happened while doing this so far.  (I've been
> able to get errors something like 5 times out of many tries, and I haven't
> been about to do it at all in the TTY version - only the windows
> one.)  Either I get the above message I mentioned to you, which seems to
> happen at a random time, or I get a slightly different result - "Oops,
> program initialization failed, ERROR: No windows available".  This second
> result happened once _after_ I had killed the Dark One and was trying to
> #quit.
>
2002-04-02 01:26:25 +00:00
nethack.allison
d3cef1b49b (from Yitzhak)
fixes a little problem noticed in mhsplash.c while trying to
figure out my debugger problems.
2002-04-01 21:27:23 +00:00
nethack.allison
df39d363b2 #R733 (from <Someone>)
- fix a buffer overflow in the win32 graphical interface
2002-04-01 21:23:38 +00:00
nethack.allison
add3dcf7ee (from Yitzhak) 2002-04-01 19:55:37 +00:00
nethack.allison
14ec6fe03b some 3.4.1 preparation
Update patchlevel.h
Update some strings from 3.4.0 to 3.4.1.
2002-03-29 06:30:33 +00:00
nethack.allison
e52620da26 (from Yitzhak)
- mostly from Yitzhak, with a modification based on subsequent discussion.

After installing everything (mail, cvs, etc) I found the compile was
broken.

Yitzhak: This fixes the compile.  I used LONG for the types because using DWORD
conflicted in Borland with signed/unsigned compare mismatches.

[Also works around some perm_invent code destined for a later patch that got
rolled in prematurely]
2002-03-28 14:24:29 +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
1b705ec5e2 (from <Someone>)
- use windowcolors settings for text backgroud/foreground color
2002-03-25 00:01:31 +00:00
nethack.allison
c624f53776 W340-4 (from <Someone>)
Date: Sun, 24 Mar 2002 15:40:30 -0800
<email deleted>
Subject: patch: nethack-graphical - menu window colors

- W340-4  (menu checkboxes have a hard-coded white inner part)
- use windowcolors settings for menu backgroud/foreground color

<Someone>
2002-03-24 23:57:19 +00:00
nethack.allison
20779fba75 #R675: bug in win32 GUI (division by zero)
(from <Someone>)

>The tile size is actually set just once in mhmap.c so validation can be done
>in one place. The patch is attached.
>
><email deleted>
on Sunday, March 24, 2002 at 16:15:50
---------------------------------------------------------------------------

mailversion: 1.10

nhversion: 3.4.0

nhfrom: 3.4.0 Official binary release for Windows 95/98/NT/2000/Me/XP
(nh340win.zip)

hardware: 1 Ghz AMD Athlon, 512 MB RAM etc. etc.
I don't think that the hardware is related to the problem because I found it.

software: I used Win 98 (1st edition) and MS VC++ 6.0 to find/fix the bug in
Nethack 3.4.0.

comments: steps to crash: start nethackw.exe - start a game - select "fit to
sreen" in the map menue - rezize the map until it is very very small -> crash
2002-03-24 23:53:28 +00:00
nethack.allison
4ac38da4d9 (from Yitzhak)
-Yitzhak provided this prior to release
 but it never made it in.
2002-03-23 20:17:18 +00:00
nethack.allison
f72ed65d1a (final patch from <Someone>)
This patch implements two things:
- space now dismisses a menu, text or menutext window when you are
  at the bottom of that window
- Page scrolling in menus now works as follows:
  pressing PgDn (or Space in NH mode) moves the focus down one page,
  and moves the scroll position down one page. The effect of this
  is that you always get a full new page of items (which is what
  NetHack players expect), and that the focus moved down one page
  (what Windows users expect.)
  The same (revers) goes for scrolling up a page.

A Windows user will still be a bit surprised when the focus is on
the top item, and he presses '>': he gets a new page of things instead
of the focus moving to the bottom of the page.
However, the PgUp/PgDn keys (which he probably uses) still have the
old Windows behaviour.
2002-03-20 13:05:58 +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
184ce30dad (from <Someone>)
This implements some items on the ToDo list:
- H0005: Space does the same as PgDn in text, menu and 'menutext'
        windows if NetHack mode is on.
- M0004: The cursor (caret) is hidden in text windows and menu
         windows.
         PgUp/PgDn/Up/Dn don't move the cursor, but scroll the
         window.
2002-03-19 22:37:22 +00:00
nethack.allison
e55d3509a1 (from Yitzhak)
accelerators
2002-03-18 21:44:09 +00:00
nethack.allison
ac5851dbf6 (from Yitzhak) mhmain, ntty 2002-03-18 00:43:15 +00:00
nethack.allison
dce21606ab (from Yitzhak) ALT-?
This patch allows ALT-? to do #? in NetHack mode by not doing
TranslateAccelerator in NetHack mode.  This relies on the short circuit
logic of || (much of NetHack code relies on it, it's just an explanatory note).
2002-03-17 17:07:22 +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
6c749785e8 Move tile2bmp.c to win/share
This is so it can be shared with Qt.
If, for some reason, we have to cut another source tarball for
3.4.0, then this will be included.  Otherwise, this will
turn out to be a post-3.4.0 patch.
2002-03-14 12:54:06 +00:00
nethack.allison
e8845e452f (from <Someone>)
- fixed bug as From a bug report.
  validxxxx functions cannot handle ROLE_RANDOM and ROLE_NONE
  parameters like ok_xxxx functions do
2002-03-12 23:07:59 +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
42e2a21aee win32 menus must accept all of the accelerators 2002-03-12 11:51:03 +00:00
nethack.allison
2baa20217f beta feedback - add more wc options
- splash_screen (boolean for whether to display splash screen at startup)
- player_selection:dialog|prompts

Also moves the font and window manipulation stuff in defaults.nh
further down the file, so that a tty users doesn't have to wade
through it all to find the character adjustment samples.
2002-03-12 05:15:40 +00:00
nethack.allison
d936f1a1bf (from Yitzhak) 2002-03-11 23:38:59 +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
3578bd38da (from <Someone>)
- changed splash screen fonts to measure in logical pixels rather that
points.
Points are 1/72 inch regardless of screen resolution. If screen resolution
changes so does visible image size. If font is measured in points then its
visible size remains the same. The text is getting cut off (or becomes to
small for the image) as a result.
2002-03-11 03:17:49 +00:00
nethack.allison
8669a4e053 Remove high-bit characters in recent comment 2002-03-11 02:40:43 +00:00
nethack.allison
c2d1eb267f various things
- a couple of README updates
- some color changes for windowcolors
- prevent crash From a bug report, but better than a crash. It
probably renders the map_mode:fit_to_screen ignored in defaults.nh.
2002-03-11 02:29:42 +00:00
nethack.allison
6f210425b1 Add win32 port help support. 2002-03-10 22:30:47 +00:00