Commit graph

355 commits

Author SHA1 Message Date
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
ehouse
e61414933f do a better job of rejecting messages that have strayed in from a different game. 2006-09-15 07:33:59 +00:00
ehouse
5d64862ba6 new strutils macro syntax 2006-09-15 07:32:39 +00:00
ehouse
b5402eabc2 params become const 2006-09-15 07:32:04 +00:00
ehouse
9dd96a58d7 params become const; new macro syntax for strutils 2006-09-15 07:31:24 +00:00
ehouse
d382431922 modify MEM_DEBUG versions of strdup utils to record the __FILE__ and
__LINE__ of callers rather than their own to assist in leak detection.
2006-09-15 07:30:00 +00:00
ehouse
35b3b7132a Make formal param const; add initial value to relay-only field so
asserts don't fail b/c of uninitialized value; don't typedef array:
make array field of struct.
2006-09-14 01:25:40 +00:00
ehouse
5568d8fdca Check state before accepting post-connection messages; and always set
state when completing connection process.
2006-09-10 18:58:10 +00:00
ehouse
10d6394641 use tmp buffer to avoid copying one byte at a time. 2006-09-10 18:53:03 +00:00
ehouse
975226cc4e remove param from util_addrChange; add comms_getIsServer; save bt_addr
as part of comms.
2006-09-08 07:14:24 +00:00
ehouse
41a36b2352 make formal params const where possible 2006-09-02 05:30:51 +00:00
ehouse
4322fd2820 when logging state transitions, don't unless there's a change 2006-09-02 05:29:59 +00:00
ehouse
4cfe07923d fix bug checking crosschecks with more than 32 tiles. 2006-09-02 05:29:13 +00:00
ehouse
9c06582029 bug fix: reset stack data stream before getting length and writing. Assert
so easier to catch similar problems.
2006-09-01 04:32:57 +00:00
ehouse
af7767389c use stream_getSize to detect corrupt (truncated) messages. 2006-08-29 13:18:12 +00:00
ehouse
9d541a7d91 make getSize return diff between what's been written and what's already
been read.
2006-08-29 13:13:43 +00:00
ehouse
7d48f2e430 Put up BT device browser while user is picking connection method
rather than when trying to send for first time, then pass address
through from conns dialog to bt code.
2006-08-26 21:12:10 +00:00
ehouse
9d8e5a4f3e add LOG_HEX 2006-08-26 20:28:48 +00:00
ehouse
3c6405d0d1 First shot at bluetooth support (turned off in Makefile by default).
A full robot vs. robot game now works between two Treos.  Added UI to
choose BT as transport mechanism, and added new send proc to establish
socket connection between host and guest.  Works only for two devices:
no piconet yet.  No error recovery, ability to quit game in middle,
start new game, etc.
2006-08-23 04:44:55 +00:00
ehouse
b99f993760 Fix assert: implicit cast to boolean doesn't work when bit being
tested is outside the low-order byte.
2006-08-22 04:20:40 +00:00
ehouse
f561989644 Set -Wunused-parameter for those versions of gcc that support it, and
deal with the output by removing params where possible and elsewhere
by adding XP_UNUSED macro wrapping __attribute__((unused)).  There
should be NO change in function in spite of the large number of files.
2006-08-16 13:44:44 +00:00
ehouse
c298ecb1f1 optimize for the case where tiles are < 32. Previous imlementation of
64-tiles support increases engine times by ~5%.  This removes that effect.
I can't measure any slowdown vs. pre-change engines.
2006-08-12 01:59:03 +00:00
ehouse
cbddf0c194 Base the number of bytes used to store tiles on the number in the
current dictionary.  This allows us to continue to open games saved
with older code using older dictionaries while still supporting the
new format for up to 64 tiles.  Old versions may crash when opening
games created by new versions, but that's probably ok.
2006-08-10 01:21:31 +00:00
ehouse
e84cb5b8eb increase possible number of unique tiles from 32 to 64 in order to
support Slovak which has 40.  This change is preliminary: it seems to
work for both existing and dicts with >32 chars, but it breaks backwards
compatibility: existing saved games will crash this code.  I think the
fix is to deduce the number of bits per tile from the number in the
dictionary being used, but that's not in yet.
2006-08-09 04:56:34 +00:00
ehouse
7850b9e064 add another const 2006-08-09 04:52:43 +00:00
ehouse
897e50bf42 was being just a bit too cute 2006-08-09 04:49:17 +00:00
ehouse
7c61b21365 make some ptrs const 2006-08-09 04:48:34 +00:00
ehouse
49a709f3db Replace a bunch of doMirror parameters with a single function, called
after a flip, that invalidates y,x for every x,y that's invalid.
2006-07-07 08:27:13 +00:00
ehouse
ef2101f4f8 in juggle, need to adjust rows after swapping to get passwd fields enabled
in sync with passwd checkbox.
2006-07-02 00:34:41 +00:00
ehouse
4fd379d663 newg_juggle returns bool indicating whether anything changed 2006-06-29 03:38:25 +00:00
ehouse
c6598bef8a randIntArray runs once and returns whether array is modified. Tray calls
again until it is.  newgame calls once: it's possible that juggling won't
do anything.  Still pending: do we tell users when nothing changed, or
leave them to figure out that it's not a bug?
2006-06-27 06:30:44 +00:00
ehouse
99571a7580 remove unused parameter 2006-06-26 04:39:48 +00:00
ehouse
765638289b Rewrite juggle to just create a second set of players in juggled order.
The previous too-cute algorithm failed when any player wasn't moving.
2006-06-24 01:20:44 +00:00
ehouse
1f81e62f12 add missing include file 2006-06-22 03:36:51 +00:00
ehouse
c4de8b5ba5 disable juggle button if only one player active; copy all four players when saving game state after dismissal. 2006-06-18 19:02:47 +00:00
ehouse
851946ffbc add ifdef for compile with some optional condition 2006-06-16 01:46:47 +00:00
ehouse
9259d5e91d move randIntArray to strutils, and use instead of similar code to juggle tiles in tray. 2006-06-16 01:19:11 +00:00
ehouse
cc4ebf2ad2 Fix juggle so it works for 3 players too. 2006-06-15 13:05:56 +00:00
ehouse
c956b0858a cleanup; fix compile of non-debug win32 version 2006-06-11 20:12:20 +00:00
ehouse
c56b7d0b94 You can always change passwd for local player. 2006-06-10 16:10:33 +00:00
ehouse
3b82ae9c13 Add new attributes to cover strings for number of players and remote
column head; make enabled an enum to differentiate between hidden and
disabled.
2006-06-10 05:45:53 +00:00
ehouse
8c8313a2ca Fix to compile in STANDALONE mode, e.g. for current PPC. 2006-06-08 01:51:34 +00:00
ehouse
cbe5ed2779 Refer to players as "remote" rather than "not local" to be consistent
with Palm and PPC; fix juggle bug by adjusting lines after moving them.
2006-06-08 01:26:18 +00:00
ehouse
00291dc997 change newgame api names; implement juggle; change getter to take a
callback to copy strings that will go out of scope before the getter
returns (e.g. wince).  Use changed API in gtk dialog.
2006-06-07 01:45:03 +00:00
ehouse
cd2d88fd5e make a param const 2006-06-07 01:26:55 +00:00
ehouse
db53197bdd add common/nwgamest.{c,h} to make new game dialog logic cross-platform 2006-06-07 01:26:04 +00:00
ehouse
995192ad56 trivial optimization: add 1 only once 2006-05-30 04:34:35 +00:00
ehouse
091dc33ae8 fix scrolling and invalidation for flipped boards, and especially
where the board is still not fully visible when the tray is hidden.
2006-05-28 16:08:58 +00:00
ehouse
b6d30d9009 clear multiple tile selection when trade ends even if cancelled 2006-05-23 01:53:18 +00:00
ehouse
633d9eef55 Get rid of hard-coded tile number limit in server_formatRemainingTiles 2006-05-23 01:52:20 +00:00
ehouse
033a19e032 Increase size of buffer used to accumulate letters for "tiles left"
dialog.  French has 15 "E"s, and the old buffer size allowed an
overflow (crash) when at least 13 of any letter were left.
2006-05-21 01:54:48 +00:00
ehouse
e8273bc9f0 Finish scrollbar work by passing number of visible rows to
util_trayHiddenChange, which means an API change.  In board, calculate
bottom of board based on bottom of tray when tray is hidden, and round
so that it's an exact multiple of cell height.  In wince, take
advantage of the new parameter to fix the scrollbar so that very
constrained boards can be scrolled even when the tray is hidden.
2006-05-19 13:44:05 +00:00
ehouse
2658da4563 Reset divider location on new game. 2006-05-19 13:31:18 +00:00
ehouse
cbd67a5e21 First attempt to set board bounds based on tray bottom if tray
overlaps board.
2006-05-17 06:12:40 +00:00
ehouse
e28e40a04c for vertical scoreboards, force miniwindow to be entirely inside the board. 2006-05-14 15:27:29 +00:00
ehouse
11322f0e4d Since board can now sometimes only partially hide tray, introduce
distinction between obscuring and completely hiding.  In former case,
erase the tray rather than draw it partially hidden.  This means
drawing the tray before rather than after the board, which is a big
change that so far doesn't seem to have hurt anything.  If it does, it
might be necessary to draw it before and after the board.
2006-05-12 08:03:08 +00:00
ehouse
a774a73778 tweak score layout, and remove a U8 that was overflowing on win32 2006-05-10 13:42:44 +00:00
ehouse
14c973354b API change: board is responsible for figuring tile size and giving
extra pixels to divider.
2006-05-06 14:42:38 +00:00
ehouse
b0c4e9e91e Include name of dict so it can get printed. 2006-04-30 13:58:24 +00:00
ehouse
4e2b080be5 Add, and use, stream_putString. Saves 500 bytes on win32. 2006-04-25 13:31:15 +00:00
ehouse
0dbc2e6557 don't exclude BEYOND_IR-only fields 2006-04-07 03:08:23 +00:00
ehouse
13b7fa62aa Add macros to draw.h, and use 'em for wince, so that a platform can choose to call draw.h methods via a vtable or static linking. 2006-04-01 21:01:20 +00:00
ehouse
6866e09003 no harm in copying field when feature not available; may help newer
version to open file.
2006-03-04 16:07:21 +00:00
ehouse
942979ddd0 fix b5 crasher: check for stream equivalence with the older version
now that current version's been upped.  Rename old version to better
indicate when it was current.
2006-03-04 06:12:38 +00:00
ehouse
8f72bf6b56 new directories to ignore 2006-02-18 14:08:04 +00:00
ehouse
9ff5259d4e add const decls to draw.h and dictnry.h functions where appropriate,
and modify "subclass" methods to match.  Should be no code change, but
this makes the intent of the APIs clearer.
2006-02-18 06:39:40 +00:00
ehouse
3f0353c681 makefile cleanup 2006-02-17 07:27:36 +00:00
ehouse
cf602d7905 make remDim 16-bit so doesn't overflow on large-screened devices 2006-02-14 04:53:45 +00:00
ehouse
44b8126f65 debug macros and wierd rewrite of code using random and mod. This makes it work on ce! 2006-01-31 06:42:53 +00:00
ehouse
dcd31cd092 update email address in header comments: no code change 2006-01-08 01:25:02 +00:00
ehouse
7c6babc53f fix bug truncating tray display in history by adding size param to
formatTray()
2005-10-30 18:35:21 +00:00
ehouse
cb4672b8b9 fix unset var warning 2005-10-30 16:14:13 +00:00
ehouse
2b58da4cdf New scheme for accepting and limiting reconnections. Now device must
send player counts, local and expected.  Based on these the relay
accepts connections, declares the game full and ready for message
forwarding, and decides whether to accept a reconnect.
2005-10-02 15:39:38 +00:00
ehouse
93534b268a make transmitted vars smaller where possible; new relay identifying
scheme where cookie is used only to connect, and is replaced for
reconnects by a relay-generated name that's supposed to be unique
across all games on all relays; let relay assign non-servers' hostIDs
rather than doing 'em randomly; use hostIDs for comms-level protocol's
channelNo where possible to avoid tripping over duplicate messages
2005-10-01 16:01:39 +00:00
ehouse
dba2a915ad new constant 2005-10-01 15:52:16 +00:00
ehouse
ef58bf8faf stream version change 2005-10-01 15:51:54 +00:00