Commit graph

1286 commits

Author SHA1 Message Date
Eric House
8bf65622b5 fix crash duplicating no-address network game
An edge case, but: doing "new from" on a game without any connection
types crashed because of an assertion in comms that assumed
addr_setType() was being called on zero-initialized flags, which
shouldn't have been a requirement. Pulled that as well as java code that
added RELAY-type connectivity to any game that had none. If a game has
none, leave it that way.
2017-01-07 07:41:38 -08:00
Eric House
68104bcf83 remove logging 2016-12-19 22:21:51 -08:00
Eric House
33326d38a7 wifi direct: harvest and send mac address
Grab and store the local device's mac address. Add p2p as a type of
address, represented by the mac address of the recipient. Include the
local device's address in invitations sent when specified by user. Now
the WifiDirectService class is being passed a packet and the address of
the recipient; it will next need to set up sockets with every device it
encounters and map them to their mac addresses so that it can do a send.
2016-11-14 08:06:53 -08:00
Eric House
e6561cbcac debugging aids
commented-out logging of drawCell, with flags; debug-build checks that
static rects passed to java draw code aren't being used by multiple
threads at once.
2016-11-12 07:20:28 -08:00
Eric House
abf4aa4d80 switch to clang
add option, and invoke it, to build jni code with clang rather than gcc.
2016-09-30 11:13:30 -07:00
Eric House
7994c42691 allow board cells to be wider than tall
There are some screen dimensions, especially with dual-pane mode, where
the board is just bit narrower than the screen. Rather than have narrow
white borders, allow the cells to take up the slack. The API takes an
upper bound on the ratio of width to height so things shouldn't get too
odd looking.
2016-09-15 20:37:29 -07:00
Eric House
4c923ead08 add isLocal param to server_getCurrentTurn
I want to store this information separately in summaries tables so
e.g. games can be displayed sorted by whether it's the local player's
turn.
2016-08-26 06:58:55 -07:00
Eric House
3b24aab8c3 add new jni call board_containsPt()
for use debugging layouts/orientation changes later
2016-08-15 17:26:10 -07:00
Eric House
87150c7d91 replace assertion with logging and dropping event
Until I figure out why I'm see it, as it's getting in the way of other
things.
2016-08-13 17:16:20 -07:00
Eric House
bf7a38da08 copy more state into board being used for snapshot 2016-08-05 21:19:49 -07:00
Eric House
8b142e4a56 use new board_drawSnapshot() from android
BoardCanvas wouldn't render anything without an associated dict via
dictChanged()
2016-08-05 11:51:47 -07:00
Eric House
0c6283ea63 add board_drawSnapshot
Toward something that should work with android: pass a potentially
unique draw context into new method that creates a new board just for
the draw and makes its scoreboard and tray disappear.
2016-08-05 10:23:39 -07:00
Eric House
3c0a128266 produce, store and display actual snapshot
Done in a way that won't work for Android just to try out the gtk
way. Tweaks and reuses the existing draw context and board, which is
precisely what the android version can't easily do.
2016-08-05 09:42:55 -07:00
Eric House
df6c1e0d3a make beginDraw return a boolean so can abort
When a gtk3 window's shutting down it appears we can't get a cairo_t*
for it. This change makes it possible to turn that fact into aborting
the whole draw operation.
2016-08-04 15:12:05 -07:00
Eric House
eb6fb508bf fix crash dragging tiles
Add new begin() and end() methods around all drawing and get/destroy
cairo context there.
2016-08-03 15:50:17 -07:00
Eric House
2faf9c5334 bug: update lastturn timestamp for single-player games too 2016-07-25 08:38:24 -07:00
Eric House
406eb77f54 post notification (rather than just play sound) when turn comes into
boarddelegate but it's not visible
2016-04-14 22:16:18 -07:00
Eric House
8c9e3ce14c use pthreads mutex to synchronize alloc and free operations in (debug
only) mpool. I'm getting assertions about failure to free now that
multiple threads are accessing open games, but I think they're bogus:
due to multiple threads modifying the leak-detection counters. This
seems to fix the assertions I was seeing in mpool_destroy().
2016-04-09 11:54:08 -07:00
Eric House
2ca0fe5ca4 add board_getSelPlayer() 2016-03-06 06:34:49 -08:00
Eric House
4402b81bdf fix crash (assertion failure) finding words associated with a cell
when there's a trade above it on the move stack.
2016-03-04 19:29:42 -08:00
Eric House
841715a78b pass constant 2016-02-21 08:01:27 -08:00
Eric House
86883eb51a handle tap on scoreboard by showing last move summary (as happens for
long-tap) when option to switch users is disabled.
2016-02-18 07:46:36 -08:00
Eric House
5084e70843 fix bug: if you're iterating through hints and you drag a tile to the
left of tray divider (without moving divider) it may still be included
in hinted moves. Fix is to reset engine whenever the set of tiles left
of divider changes.
2016-02-05 07:29:51 -08:00
Eric House
19713a40ad add param to comms_resendAll to limit type of message sent
(e.g. BT). Meant to be used when a single type has become available.
2016-02-02 07:01:48 -08:00
Eric House
efd47d731a send the correctly calculated hash value, and up strings for another
release.  This is the minimum required for a new release on top of the
previous one, but not enough if released on this branch!
2016-01-03 20:23:46 -08:00
Eric House
22dde029c8 Merge tag 'android_beta_100' into android_branch
ready for release
2016-01-03 11:36:37 -08:00
Eric House
ccb86f0358 0 len is ok 2016-01-01 21:05:28 -08:00
Eric House
6a0bcaee26 add missing parameter 2016-01-01 19:48:22 -08:00
Eric House
ebcae1a523 move hashing into memstream impl, and reintroduce the old/broken
treatment of the final 8 bits. I'll need to release a version that
still produces the incorrect hash for compatibility with existing
clients that expect it, but that also looks for the correct hash. When
that's out there I can do a new release that sends the correct hash.
2016-01-01 17:57:14 -08:00
Eric House
4813c95976 cleanup: rename function and remove unused param 2015-12-31 15:47:48 -08:00
Eric House
02d5d26c60 when a move comes in whose hash doesn't match the top of the move
stack, go down the stack looking for a match. If it's found, pop down
to that point then apply the move. This fixes stalls in the test
engine when undo is enabled, and so I assume that undos and turns are
somehow coming in out-of-order. Should be rare that this happens.
2015-12-31 06:04:55 -08:00
Eric House
c9264eecac add debug-only code to assert that the hash on the move stack remains
unchanged across a push and pop. Was used to verify memstream.c change
just committed.
2015-12-30 06:31:02 -08:00
Eric House
a2ca381890 remove assert when hashes don't match. As currently implemented, this
can happen when somebody does an undo, since the ordering of undos and
moves is not assured. The result is a temporary (I think) stall, where
a move is rejected because the hash doesn't match, but that will be
accepted later when the undo's been processed and the hash will now
match.
2015-12-30 05:59:06 -08:00
Eric House
89138edae1 when dumping stream, preserve the subset of bits in the last word
that's real data. This fixes assertions that after popping a move off
the move stack the hash is the same as before it was pushed. It may or
may not be sufficient to fix reported stalls, but it's certainly
necessary.
2015-12-30 05:56:01 -08:00
Eric House
c96861b329 wrap hash-related logging in ifdefs so can be easily turned on 2015-12-29 19:00:30 -08:00
Eric House
5e3f7d0731 remove logging 2015-12-29 18:58:28 -08:00
Eric House
299b8ddc70 assert when hashes don't match. This may be legit, but I need to
understand when it can happen because I think it's the cause of games
failing to communicate in the field
2015-12-29 07:11:05 -08:00
Eric House
78d435c8cc fix what are errors with new compiler 2015-12-29 07:09:50 -08:00
Eric House
7cb1714568 fix compile -- new compiler, probably 2015-12-21 17:46:50 -08:00
Eric House
0b0bd02e79 remove logging 2015-11-20 23:15:24 -08:00
Eric House
87517edd6f fix counting of messages sent by "Resend messages" menuitem: actually
count them, and do so based on new msgNo passed from comms that's
concatenation of channelNo and msgID so that duplicates (over multiple
transports) aren't counted twice.
2015-09-30 06:50:04 -07:00
Eric House
122335c53c Merge branch 'android_branch' into relay_noconn
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2015-09-17 07:00:04 -07:00
Eric House
b8822f72bc Change return types to match recent signature change. Apparently the
NDK's compiler is configured to be stricter than Ubuntu's.
2015-09-17 06:51:15 -07:00
Eric House
cba1293bec make return value void since it's never used 2015-09-15 20:54:01 -07:00
Eric House
05d0974823 Merge remote-tracking branch 'origin/android_branch' into android_branch
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2015-09-15 20:46:35 -07:00
Eric House
c8fcc32c2c When two moves are identical (i.e. a one-letter word that forms two
words words) drop one when looking for hints
2015-09-14 08:49:52 -07:00
Eric House
759cd36162 Merge branch 'android_branch' of ssh://git.code.sf.net/p/xwords/git into android_branch
Conflicts:
	xwords4/android/XWords4-dbg/AndroidManifest.xml
	xwords4/android/scripts/mkvariant.sh
2015-09-10 18:34:28 -07:00
Eric House
e5cf0ee4fb Merge branch 'android_branch' into relay_noconn
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2015-08-19 07:44:17 -07:00
Eric House
255ca56ed7 when no moves found, reset engine and try again. Works around bug
where you do "hint", then "prev hint" and get told there are no moves
found only to have the next "prev hint" succeed. This is a hack, but
the right fix is eluding me, and will certainly be riskier.
2015-08-19 07:43:00 -07:00
Eric House
884eda0603 cleanup: use temp ptr to avoid too many dereferences 2015-08-18 08:00:22 -07:00