| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
For now this affects all watchers, but it would probably make more sense
to make it a client-side option instead.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Sometimes, they're there to emphasize a break between two sections of code,
which is good. In a majority of cases, though, they're just inconsistent.
|
|
|
|
|
| |
That is, unless you count the ones in ncurses' headers, which I can't
do anything except suppress.
|
|
|
|
|
| |
The code was written assuming wint_t's are unsigned and therefore
positive if not 0. This is not necessarily true for all environments.
|
| |
|
| |
|
|
|
|
| |
A hard limit of 60 seconds of CPU time per level.
|
| |
|
|
|
|
|
| |
For some nonsensical reason, tigetstr takes a char * instead of
a const char *.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
If the terminfo "kbs" (key_backspace) attribute is ctrl-h, curses will
treat any occurence of ctrl-h as KEY_BACKSPACE. Work around that by
converting back to CK_BKSP == 0x8 (ctrl-h) if kbs is set ctrl-h.
However, on sane terminals where backspace generates ctrl-?, don't smash
the two.
Fixes #7013.
|
|
|
|
|
|
| |
Idea being avoiding lag caused by TCP ACK etc. Crawl process provides
messages like always, but also sends a special flush message to the
WebTiles server that causes them to actually be delivered.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This avoids unnecessary non-inlined copies.
Also, we had a few large functions that had no reason for inlining, let's
have them be regular ones.
I also made "static inline" always use the same order, for easier grepping.
|
|
|
|
|
| |
This is incomplete, partially because of me getting bored, partially because
of doubts about the point of leaving simple addition/etc in parentheses.
|
| |
|
|
|
|
|
|
|
|
|
| |
These accumulate but never get removed; no wonder compilation times keep
rising.
The includes.sh script has lots of false negatives (and positives...), and
can't check .h files which cause the biggest slowdown, it'd be nice to run
multidelta on those somehow.
|
|
|
|
|
|
|
| |
Logic is unified between console and tiles. We now use the full available
size instead of leaving the last line for some reason.
It should be relatively easy to make it respect tile_menu_icons = false,
although I'm not sure it's worth bothering.
|
| |
|
|
|
|
|
| |
We already handle the SIGWINCH elsewhere. This prevents an "Unknown
command" message every time the terminal size changes.
|
|
|
|
|
|
| |
Also, instead of inc_max_mp() which does a bunch of stuff like adding notes
(suppressed), healing you, etc, just increase max_mp directly. It's used
only during player creation.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Apparently initscr() isn't enough to set LINES and COLS: we have to call
refresh() as well on a SIGWINCH.
Furthermore, if the resize decreased the message window size, we could
end up drawing too many lines (from msgwin.show()) before the message
window's lines vector is resized. Since we can't do the resize from
show() (it is const), handle only the last height() lines. Likewise
for message_window::place_cursor().
Fixes #5544.
|
|
|
|
|
|
| |
There's a new crop of infinite loop bugs, they're hard to debug in DGL due
to permissions (only Napkin can attach gdb) so backtraces would be nice, and
taking 100% CPU on a public server is very detrimental to players.
|
|
|
|
|
| |
Ubuntu and now Debian enable it by default for package builds (but not
regular gcc use), which causes spam.
|
| |
|
|
|
|
|
|
|
| |
If you somehow die, fsim would hang on a non-displayed prompt; delays would
make a single run take a week spent in sleep().
Note that fsim is currently completely broken by UCC changes.
|
| |
|
|
|
|
|
|
|
| |
This organizes the game-specific javascript into proper modules, and
converts all messages from Crawl to JS objects. This means that the
game javascript is now loaded asynchronically, which should fix the
browser hang when starting a game.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
server record ttyrecs.
Crawl compiled with WEBTILES=y should now be playable
normally (i.e. indistinguishable from one compiled without WEBTILES)
when run from a terminal. (This is not yet completely the case.)
The Webtiles data is written on a Unix-domain datagram socket; the
Crawl parameter -webtiles-socket determines a path on which the Crawl
process receives control messages.
The Webtiles server then runs Crawl in a pseudo-terminal and records its
console output into a ttyrec file.
The goal of all this is of course to be able to watch Webtiles games
from ssh, and later the reverse.
|
| |
|
|
|
|
|
| |
Having different prototypes for different ports without a good reason is bad.
After unification, it's easier to have, for example, two ports at once.
|
|
|
|
|
|
| |
Besides being non-standard and present only on some platforms, it cannot be
extended to Unicode as some characters expand or contract while being
upper/lowercased.
|
|
|
|
|
| |
Why the original coder did that instead of actually including the system
headers is beyond me.
|
| |
|
|
|
|
|
|
|
|
|
| |
Note that it is easy to get into an infinite loop using it. This is nothing
new as improper use of sendkeys() or while(1) could already cause that, but
I'm afraid that making it _easier_ to accidentally cause such damage might
be a bad idea.
If so, we can #ifndef DGAMELAUNCH it.
|
| |
|
|
|
|
| |
Even worse, it had two redundant implementations.
|
|
|
|
| |
(Ok, ok, on Windows it's a ConsoleHandler but does basically the same).
|
|
|
|
|
| |
The API doesn't provide a way to giveback a function key, so let's do our
own giveback buffer.
|
| |
|
|\
| |
| |
| |
| | |
There are some issues left, like incorrect wrapping in some cases, but
we can fix them later.
|
| | |
|
| |
| |
| |
| | |
One was actually wrong, too -- mangling redefined explosions.
|
| | |
|