ehouse
bd1222f2dc
Fix bug showing remote/robot moves only on host to include client too.
2007-12-02 22:07:24 +00:00
ehouse
b527110379
replace all __FUNCTION__ with __func__
2007-12-02 19:13:25 +00:00
ehouse
42615345c9
Re-add direct-via-ip transport, and implement for linux in order to
...
better test heartbeats. Fix so can play against Palm over BT.
Assertions failing on Linux when reset, but it's otherwise done.
2007-11-26 02:58:25 +00:00
ehouse
4e335550a7
Add file and line number to debug version of realloc and free.
2007-11-22 05:04:40 +00:00
ehouse
321acd1d42
Add and set a compile-time option so comms will set a periodic timer
...
and use it to send and check for heartbeats over any transport.
Caller must supply a reset proc which is called when heartbeat hasn't
been received in too long. No changes required to comms protocol, but
that means the heartbeat interval is fixed at compile time: can't be
negotiated, and the two ends had better agree. Currently tested with
linux host and PalmOS guest, where only the first heartbeat failure is
recovered from. So there's some debugging to be done still.
2007-11-18 23:43:27 +00:00
ehouse
9f1d02c7cd
Byte-swap psm field to callback on ARM: now both client and host work. Move SDP-related constants out where linux can use too.
2007-11-03 22:04:06 +00:00
ehouse
302abd3be5
fix log_hex to print nibbles in right order.
2007-09-27 02:56:35 +00:00
ehouse
e5d5584a04
add logging to help catch a recurring assertion
2007-09-15 13:46:59 +00:00
ehouse
4aa1f8188b
reset in/out var before each call to util_askPassword
2007-06-10 14:54:47 +00:00
ehouse
92f3f87543
Fix so compiles curses-only, and so curses cell can be 2x1 (for square board)
2007-06-01 02:08:04 +00:00
ehouse
5878ea6018
type name change only
2007-05-26 14:14:01 +00:00
ehouse
e891a26756
substitute macro for common sizeof(x)/sizeof(x[0]) pattern; no generated code change
2007-05-26 14:03:07 +00:00
ehouse
41b81f463e
Hide tray on turn transitions when more than one non-robot local player present in game.
2007-05-20 20:46:29 +00:00
ehouse
7795068a40
Fix bug where arrow gets placed in wrong cell when tapping on tentative tiles to remove them while board is flipped.
2007-05-18 04:09:10 +00:00
ehouse
b78dfc9d61
Up version for ship; build LocalizedStrIncludes.h per-platform;
...
include language in all platform obj directory names
2007-05-13 21:06:42 +00:00
ehouse
2f52acd5e6
cleanup (no change to generated code): remove old owner_hash code; replace empty formal lists with void.
2007-04-14 16:27:19 +00:00
ehouse
69912147de
When showing cell values, also show tile values if the don't-show tile values preference is set.
2007-04-06 01:41:16 +00:00
ehouse
ef4d986a45
fix bug where arrow replaces tile at edge of board by returning false
...
from figureNextLoc unless an empty space found.
2007-04-03 03:36:14 +00:00
ehouse
0b9f77d4c0
Don't call comms_start while opening game. Caller may still consider
...
another game open.
2007-03-18 23:55:58 +00:00
ehouse
f1cda6dad4
What I meant to check in. Need to save first....
2007-03-18 23:38:53 +00:00
ehouse
da551e1177
Always send BT reconnet message, even if there are messages to resend.
...
Fixes failure to reconnect when opening a saved BT game where the
other device is waiting and will need to resend.
2007-03-18 23:38:19 +00:00
ehouse
6dc75914a6
turn stringFromStream into macro to aid logging for leak detection. Debug builds only effected.
2007-03-18 23:31:51 +00:00
ehouse
5f75dfe213
define XW_PSM in accord with palm guidelines. Doesn't seem to matter...
2007-03-17 15:33:16 +00:00
ehouse
21e5e3ad23
Fix bug: scoreboard doesn't reflect connected state until some other
...
event causes update. Fix by calling turnChangeListener any time turn
changes, including on initial set.
2007-02-27 02:48:51 +00:00
ehouse
80efa73a50
Cleanup: compile warning and to make logging easier.
2007-02-08 15:17:23 +00:00
ehouse
51f726ddcf
Add a one-byte header to BT messages so one device can signal another
...
that a new game's begun without dropping the connection. On Palm,
remove connection-drop on new game. With this change starting a new
game takes imperciptible time, down from 30 seconds.
2007-02-08 02:53:10 +00:00
ehouse
a7313b1e30
Fix linked-list bug in removeFromQueue.
2007-02-07 11:58:01 +00:00
ehouse
a762f27846
deal with case where guest begins new game but connects to host that's
...
running the old game: the host may reply, but guest must not take that
as evidence of a connection having been established: don't remove sent
messages (this isn't an ACK), and don't assert later on.
2007-02-06 05:49:45 +00:00
ehouse
e6315e118f
enable juggle button after role change
2007-02-06 05:47:20 +00:00
ehouse
6af89b4182
Add assert; don't call comms if has been set to null (fixes device
...
reset); fix failure to install connCB (removes need to manually resend
messages when client starts up first.)
2007-02-04 17:13:01 +00:00
ehouse
2fe75a19a2
add const to a bunch of char* decls in APIs and variables; no code change
2007-02-03 17:54:20 +00:00
ehouse
916ea4abc2
name change only: Connectedness becomes DeviceRole
2007-02-02 08:34:37 +00:00
ehouse
13429bccd7
When role changes from client, where only local players are shown, to
...
host or standalone where all are shown, change the number shown
appropriately. The goal is to make the experience natural,
particularly for the common case where the players aren't changing.
Give up once user manually changes number shown.
2007-02-02 08:15:07 +00:00
ehouse
24a885918d
cleanup: only one return per function.
2007-02-02 08:11:14 +00:00
ehouse
c045c6503a
cleanup. No change in generated code.
2007-01-27 15:07:02 +00:00
ehouse
61a3e7835f
use varargs for LOG_RETURNF macro
2007-01-27 15:04:57 +00:00
ehouse
5349598984
forward declaration stops compiler warning
2007-01-27 15:04:19 +00:00
ehouse
b9e31acf6e
check and flip before hiliting cells. Fixes bug with feedback on hint
...
search on flipped board.
2007-01-23 04:09:26 +00:00
ehouse
17993fea06
Tweak scroll-of-focussed-board inval code so we don't inval the whole
...
board, which looks crappy. Instead inval only what was previously a
border row, and pass a new param to draw_vertScrollBoard so the
platform can choose not to scroll cells that will just get overwritten
with different bits.
2007-01-21 22:59:29 +00:00
ehouse
73bc1925fd
When scrolling a focussed board, inval everything. Otherwise border
...
cells scroll into the center drawn as border.
2007-01-21 18:05:25 +00:00
ehouse
3d318b679c
Change how flip works, keeping board data like invalFlags and limits
...
in sync with the board rather than the model and flipping coordinates
only in time to access the model or pass to engine. With that done,
drawing can skip any rows scrolled off-screen, and the board's
perimeter focus rect can be drawn and invalidated correctly on a
flipped, scrolled screen: zodiac, eventually.
2007-01-21 06:21:12 +00:00
ehouse
c5fe2a7589
Get rid of draw_eraseMiniWindow: just inval what's under it; make use
...
of CELL_ISCURSOR consistent: when focus not dived all elements have it
set (or only perimeter for board, settable at compile time); get rid
of draw_drawCursor since CELL_ISCURSOR is all that's needed;
2007-01-19 08:20:11 +00:00
ehouse
40832e6ea5
reintroduce board_handleKey
2007-01-18 02:42:37 +00:00
ehouse
313dad4357
Set focusHasDived before invalidating so newly focussed object drawn correctly.
2007-01-16 02:42:58 +00:00
ehouse
c1affa34d1
Fix bugs in recent focus/key changes.
2007-01-12 03:37:30 +00:00
ehouse
6df629c445
on keyDown, look at what keyUp will do and, if nothing, don't handle
...
the event. This lets focus transfer work as before there was keyDown.
2007-01-12 03:28:20 +00:00
ehouse
924fa5c12b
fix crash when linux is bt server: if no addr provided it's not a duplicate.
2007-01-09 02:43:09 +00:00
ehouse
e90db9776f
remove dead code.
2007-01-09 02:38:22 +00:00
ehouse
f3feef27f7
fix problems created by key-nav changes: don't drop hardware scroll
...
keys, and redraw after key-repeat if either up or down handled.
2007-01-07 05:25:28 +00:00
ehouse
0a4f1d3f7b
add board_handleKeyRepeat, and call it from palm and gtk. This lets a
...
held nav key walk the cursor across the board.
2007-01-07 04:32:29 +00:00
ehouse
4646ac5711
Clean up for non-keyboard and non-keyboard-nav cases. Wince is the
...
latter: make it compile again.
2007-01-07 01:01:20 +00:00
ehouse
bce76a3d34
Break key handling into keyUp and keyDown, and treat keyDown the same
...
as penDown. Idea is to be able to set timers to get bonus square
hints etc. without stylus. Works, but transitions are rough because
keyDown doesn't know whether keyUp will result in a focus change.
2007-01-06 17:32:08 +00:00
ehouse
c645534b83
Fix so IR-only multi-device build works again.
2007-01-06 16:46:45 +00:00
ehouse
0da7234190
bug fix: clear focusHasDived on pen event along with other focus state
2006-12-20 04:11:17 +00:00
ehouse
0bf123115f
Unfocus any board object whenever pen touches board
2006-11-27 01:13:48 +00:00
ehouse
c754d73770
When alt key pressed cursor can move onto occupied squares it normally skips.
2006-11-22 13:49:14 +00:00
ehouse
e86d4764c4
Post-Slovak change, 7 bits required to save face and blank bit. Use 7, but expect the old 6 for previous version streams.
2006-11-19 06:40:56 +00:00
ehouse
74ccc0ed34
When "dived" focus reaches and crosses border of object, return as if
...
not handled. This causes the platform to handle the key event itself,
typically by moving the focus to the next top-level object.
2006-11-17 13:41:13 +00:00
ehouse
0d013a0599
Two big changes. Pass focus bit into all or and players when focus
...
not dived and tray or scoreboard focussed. This lets platform decide
to display top-level focus via mods to all elements. Second, when
moving focus to top level from dived, claim not to have handled the
key event (but return true if needs redraw). This allows platform to
handle shifting focus without requiring callback (which removed.)
2006-11-14 06:46:04 +00:00
ehouse
9aa3759761
Debug-build macros to pass __LINE__ and __FILE__ for logging
2006-11-14 06:40:36 +00:00
ehouse
f1148754ba
Exit trade mode silently if user clicks 'D' when it's not his turn.
...
(Better than refusing because "not your turn".)
2006-11-13 02:01:54 +00:00
ehouse
fefa84abc1
bug: need to OR in inval value rather than replace.
2006-11-12 21:03:15 +00:00
ehouse
a84b519ab7
Break scoreboard code out into a new module. board.o was getting too
...
big on palm.
2006-11-12 20:09:00 +00:00
ehouse
f7aefbe075
new UNUSED macro for keynav
2006-11-12 15:20:36 +00:00
ehouse
f9dcd1820a
Add to draw APIs of individual elements (e.g. board cells) whether
...
they're focussed so that they can draw that during rather than after
everything else. On palm, use this to draw focus using the system
selected color rather than with the blue nav rect. Since a new param
was too much, add new enum type CellFlags and pass as bitvector to
draw APIs.
2006-11-12 14:36:15 +00:00
ehouse
bcac22bf9b
Refactor to not return from middle of function. No behavior change.
2006-11-11 22:38:20 +00:00
ehouse
7afafed41d
reject initial messages coming in on the same address a second time.
...
Fixes problem that surfaces when clients are more agressive about
resending early in game.
2006-11-11 22:37:36 +00:00
ehouse
f335da4a9a
Fix bug where sign extention on 16-bit processors caused too many bits
...
set in crosschecks.
2006-11-10 08:08:59 +00:00
ehouse
c91847f56f
When moving focus through tray, skip empty space; when through board,
...
skip cells with tiles permanently played. Space char raises focus but does
not move it laterally.
2006-11-09 06:05:40 +00:00
ehouse
80adc9fb6b
If no arrow visible, use cursor loc as destination when moving tile to tray.
2006-11-08 13:44:34 +00:00
ehouse
6c93fc0a0c
board doesn't handle focus-related keys unless it has the focus.
2006-11-08 05:04:44 +00:00
ehouse
46885ab05e
remove typo blocking compilation
2006-11-07 13:43:30 +00:00
ehouse
9a00908cdb
When internal focus reaches edge of object, move it back up and onto
...
the next object using a callback to the platform to determine what, if
any, object is next. Adjust curses platform to cooperate. Works
well. Palm is next.
2006-11-07 05:46:44 +00:00
ehouse
005fd92fd4
More progress on one-handed navigation: fix ncurses board clipped to
...
bottom of tray; add focus-related params to draw*Finished routines
(and simplify to one) so platforms don't have to save from Begin
routines (and stop palm doing that); check version of saved game, and
handle case where older binary tries to open newer version; redraw
Palm tray buttons after focus change to stop focus-rect ghosting; fix
annoying overlap in saved games dialog; palm version goes to a3.
2006-11-05 16:54:18 +00:00
ehouse
b0102f8baa
Lots of progress on one-handed navigation: add gadgets to stand in for board
...
scoreboard and tray on palm; make center drill into the focussed object and
spacebar come back up then move the focus among them. Integrate with other
focussable objects on main form. Go from separate drawCursor routines to
same for all three, with cursor only visible when focus is drilled down.
On curses, add a hilite rect routine that can be called after text is laid
down, and use for cursors.
2006-11-03 06:23:54 +00:00
ehouse
02b45a156c
debug functions to turn enums and defines into loggable strings
2006-11-03 06:19:27 +00:00
ehouse
6b1fc7e5e4
Fix crash on pre-fiveway palmos where FrmGetFocus always returns -1;
...
add new preference for whether small value nums are drawn in tiles in
tray.
2006-10-29 17:41:14 +00:00
ehouse
fb23dc11a7
New type XP_TriEnable meant to be used more than just for new games:
...
controls are hidden, disabled but visible, or enabled.
2006-10-28 13:21:32 +00:00
ehouse
5f6cab4c5f
add uninited state so can reload dialog with no assumptions about platform
...
widget state.
2006-10-23 13:56:43 +00:00
ehouse
ef7ad6f889
make IR the default conn type on Palm, where it's been the only type
...
until now.
2006-10-15 14:09:17 +00:00
ehouse
0c146fb800
add const to a few formal param declarations
2006-10-15 13:53:17 +00:00
ehouse
ffd8316280
Switch player count string for client in new game case.
2006-10-12 13:55:16 +00:00
ehouse
ba4f91d9e0
remove BEYOND_IR, replacing with XWFEATURE_RELAY and
...
XWFEATURE_BLUETOOTH. The goal is to be able to build to support
bluetooth only, or relay/ip only, e.g. for a palm bluetooth beta.
Seems to work.
2006-10-10 01:34:37 +00:00
ehouse
8c112261b0
Don't return from middle of function.
2006-10-07 03:37:40 +00:00
ehouse
a97631b7ca
Fix opening games and messages saved by last shipping version on Palm
...
by checking version and loading new fields conditionally. (Not yet
tested for current wince version.)
2006-10-05 01:17:03 +00:00
ehouse
bc80eae516
Put relay-only fields into a struct for easier identification. No code change.
2006-10-02 14:26:56 +00:00
ehouse
22ae4209ca
Fix longstanding bug removing too few messages from queue on ACK.
...
Print queue as part of stats.
2006-09-27 01:54:53 +00:00
ehouse
47565a3241
Tweak enable/disable logic to show fields for remote players for the
...
informational case that are hidden for new game case -- e.g. name,
which can be read but not set.
2006-09-24 21:10:17 +00:00
ehouse
a7e58126ed
Add more consts.
2006-09-24 15:28:15 +00:00
ehouse
12fec52152
bug: even empty strings need to be terminated.
2006-09-23 16:05:41 +00:00
ehouse
402b6c1c6f
fix ARM crash loading bt game saved on 68K: specify sizeof array
...
rather than struct wrapping it.
2006-09-23 16:04:53 +00:00
ehouse
3af93c2d4d
What I meant to check in. F***ing emacs. :-)
2006-09-23 15:22:26 +00:00
ehouse
20b2eee560
cleanup and remove logging.
2006-09-23 15:18:44 +00:00
ehouse
f64e3d2d3d
On bringup for bluetooth, resend any waiting messages rather than an
...
empty new one to get the connection started. This increases the
chances new games will connect without user having to hit resend.
2006-09-23 15:18:01 +00:00
ehouse
f5f715136b
When a client registering n players with server, send the first n,
...
ignoring local flag which nwgamest doesn't set in client case. When
resetting, destroy any engine allocated: plugs new leak.
2006-09-23 15:15:57 +00:00
ehouse
722f250c0f
set crosschecks inline
2006-09-23 15:12:10 +00:00
ehouse
f508fd853f
remove over-agressive attempt to detect out-of-order messages that was
...
breaking IR comms.
2006-09-17 05:06:46 +00:00
ehouse
a7d45aca6c
Prune excessive logging
2006-09-17 04:45:19 +00:00
ehouse
f1a00fa1b9
strutils syntax changes. Rough cut at reordering loading in game
...
info: when the device is a client and is starting a new game, we want
to start presenting only the local players. So load them first, and
reduce nPlayers down to the count of current local players. Works
well, but can probably be simplified.
2006-09-15 07:36:51 +00:00
ehouse
fab25fc820
do a better job of rejecting messages that have strayed in from a
...
different game; strutils syntax changes.
2006-09-15 07:34:39 +00:00