Commit graph

13409 commits

Author SHA1 Message Date
Eric House
b8e29423c4 cleanup 2024-01-05 08:46:19 -08:00
Eric House
6018392160 send/handle all invitations at once
I'm trying to reproduce with initial invitations the stalls I'm seeing
with rematches (rarely)
2024-01-04 20:28:49 -08:00
Eric House
8388b27002 add comments about problems with signed gameIDs 2024-01-04 18:03:38 -08:00
Eric House
ac71aac787 add tile count to summary 2024-01-04 11:14:30 -08:00
Eric House
f5526652b5 remove old ifdef'd-out code 2024-01-04 09:50:24 -08:00
Eric House
c91865c991 use invite's channelNo for first incoming message
A rare stall resulted when the invitee on channel 2 responded
first. It would get assigned channel 1 and so the invitation on that
channel would get deleted. If it hadn't already reached the mqtt
server it would never be delivered. My fix is to use an invitation's
channel instead IFF its address matches the return address of the
incoming message. I'm not sure what happens if there's somehow a mix
of invited (via rematch) and invited-some-other-way players. None of
this matters for two-device games anyway.
2024-01-04 09:50:24 -08:00
Eric House
7219206214 get rid of ancient ifdef 2024-01-04 09:50:24 -08:00
Eric House
c68050e190 add summary 2024-01-04 09:50:24 -08:00
Eric House
6f6714596a add board size tests
These fail in a way that I think is unique to the curses app, so I'm
not fixing them right away.
2024-01-04 09:50:24 -08:00
Eric House
fcf1e49c16 fix double dispose in curses app 2024-01-04 09:50:24 -08:00
Eric House
4ffaa5dd73 cleanup -- should be no behavior/code change 2024-01-04 09:50:24 -08:00
Eric House
c167183e37 add core detection and board/tray size to test script 2024-01-04 09:50:24 -08:00
Eric House
78cbf7aa7b add upgrading of app mid-script 2024-01-04 09:50:24 -08:00
Eric House
d1061327c7 add ability to use new and old versions of app
TODO: upgrade mid-game
2024-01-04 09:50:24 -08:00
Eric House
bfa1c73b5e log sum of incoming invites 2024-01-04 09:50:24 -08:00
Eric House
9443bf14a4 make it work on android too 2024-01-04 09:50:24 -08:00
Eric House
5794cc43e3 log gameID wherever possible in comms.c and server.c 2024-01-04 09:50:24 -08:00
Eric House
52a1de0463 add fromRematch to existing api to avoid race condition 2024-01-04 09:50:24 -08:00
Eric House
b5de43e3dc fix assertion failure in mixed-version rematch case 2024-01-04 09:50:24 -08:00
Eric House
ffc64bc5dd cleanup/refactor 2024-01-04 09:50:24 -08:00
Eric House
f2c1f21da2 refactor 2024-01-04 09:50:24 -08:00
Eric House
7275569842 fix crash assuming wrong stream version 2024-01-04 09:50:24 -08:00
Eric House
713ce151e9 don't print duplicate status line 2024-01-04 09:50:24 -08:00
Eric House
e2414ff3bd fix NPE crash
Not sure why it happens with one old game...
2024-01-04 09:50:24 -08:00
Eric House
0ba0dcff19 replace 'make default' with remembering last choice as default
Decided it's too difficult to unset the default and not bad to just
click "ok" a second time.
2024-01-04 09:50:24 -08:00
Eric House
3d8f2886f2 more test scripts tweaks 2024-01-04 09:50:24 -08:00
Eric House
35ef711c42 print gameid as hex 2024-01-04 09:50:24 -08:00
Eric House
87557ce769 support more devices, and look for stalls 2024-01-04 09:50:24 -08:00
Eric House
f0ca490b3c fix stuff test script found 2024-01-04 09:50:24 -08:00
Eric House
3e6edd3ec4 remove the offer to reinvite from rematched games
Now that rematching creates all the invitations and an expectation of
how the invitees will be ordered it'll confuse things if unexpected
players show up. So don't allow players to send additional
invitations.
2024-01-04 09:50:24 -08:00
Eric House
1181e908dc Add option to choose how rematch-game players will be ordered
When rematching, some users have a convention that e.g. lowest scoring
player in the "parent" game goes first. So allow that, providing the
choice on each rematch until a default has been chosen. Support
changing that default in a new prefs setting.

The place I chose to enforce the order was on the host as invitees are
registering and being assigned slots. But by then there's no longer
any connection to the game that was rematched, e.g. to use its
scores. So during the rematched game creation process I create and
store with the new game the necessary ordering information. For the
3-and-4 device case, it was also necessary to tweak the information
about other guests that the host sends guests (added during earlier
work on rematching.)
2024-01-04 09:50:24 -08:00
Eric House
2936869b45 show host as part of each game display 2024-01-04 09:50:24 -08:00
Eric House
7b4f9ede41 cleanup: renaming only (server->host) 2024-01-04 09:50:24 -08:00
perro tuerto
8f6b4e1d86
Translated using Weblate (Spanish)
Currently translated at 100.0% (890 of 890 strings)
2024-01-04 15:09:45 +01:00
perro tuerto
5462f69591
Translated using Weblate (Spanish)
Currently translated at 100.0% (890 of 890 strings)
2024-01-03 00:11:00 +00:00
复予
80fa685576
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (890 of 890 strings)
2023-12-24 14:21:30 +00:00
复予
772850ccb7
Translated using Weblate (Chinese (Simplified))
Currently translated at 91.4% (814 of 890 strings)
2023-12-22 04:13:53 +01:00
复予
39add62d77
Translated using Weblate (Chinese (Simplified))
Currently translated at 86.2% (768 of 890 strings)
2023-12-20 13:08:51 +01:00
joaooliva
d691967889
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (890 of 890 strings)
2023-12-16 05:10:31 +00:00
ssantos
004b88700c
Translated using Weblate (German)
Currently translated at 100.0% (890 of 890 strings)
2023-12-16 05:10:30 +00:00
Eric House
f377ec6bef add missing package 2023-12-05 19:33:01 -08:00
Eric House
57b78141e9 remove dead (relay) code 2023-12-04 09:31:11 -08:00
Eric House
434096046b log to file even if --debug not on 2023-12-03 21:09:33 -08:00
Eric House
c31bc3c0eb improve rematch test 2023-12-02 14:45:25 -08:00
Eric House
c726477878 cleanup 2023-11-30 11:03:27 -08:00
Eric House
d021bb4029 add test for rematch (once for now) 2023-11-29 17:11:51 -08:00
Eric House
be9159fc35 add support for tray and board sizes 2023-11-29 11:33:12 -08:00
Eric House
b3123c5a48 add better status printing 2023-11-29 11:12:18 -08:00
Eric House
c099ea30e6 remove unnecessary saves
all games are saved on app-shutdown now
2023-11-27 21:32:48 -08:00
Eric House
55e36e10a7 new script to run many games per device
I need it to be much closer to Android....
2023-11-27 21:32:43 -08:00
Eric House
47004a0e08 linux: remove ask to accept duplicate invitations 2023-11-26 19:58:07 -08:00
Eric House
e2f9c1c699 implement mqtt msg ack for linux 2023-11-26 19:58:07 -08:00
Ranforingus
63b3517135
Translated using Weblate (Dutch)
Currently translated at 56.1% (500 of 890 strings)
2023-11-23 17:05:26 +00:00
ssantos
ee38db0c6a
Translated using Weblate (Portuguese)
Currently translated at 100.0% (890 of 890 strings)
2023-11-20 22:06:10 +00:00
Olga Akhtirskaia
dc61e8c11f
Translated using Weblate (Ukrainian)
Currently translated at 1.9% (17 of 890 strings)
2023-11-18 10:04:08 +01:00
Eric House
3b7994c291 changelog and version strings for release 2023-11-09 17:52:26 -08:00
Eric House
bdfe98a990 warn user when opening quashed game 2023-11-09 17:52:26 -08:00
Eric House
738552da2e remove dead code 2023-11-09 17:52:26 -08:00
gallegonovato
acc4b27137
Translated using Weblate (Spanish)
Currently translated at 100.0% (890 of 890 strings)
2023-11-08 21:33:46 +01:00
Eric House
c9f1863c1e remove posts to noSuchGame()
Looks like ack() does all we need, with new param
2023-11-07 19:55:36 -08:00
Eric House
67cf8518de pass topic to ack() (so unretain can work) 2023-11-07 19:55:32 -08:00
Eric House
b962b18dff include devid in ack payload
So server can choose to unretain.
2023-11-06 17:24:20 -08:00
Eric House
e78d9fbc33 add quashed to summary, and show as part of games-list state 2023-11-06 13:11:34 -08:00
Eric House
e44584e652 linux: add option to delete orphaned game 2023-11-06 13:11:34 -08:00
Eric House
3dcac063b5 show quashed state in net state icon (DEBUG only) 2023-11-06 13:11:34 -08:00
gallegonovato
14d66e7851
Translated using Weblate (Spanish)
Currently translated at 100.0% (889 of 889 strings)
2023-11-06 00:33:05 +01:00
Eric House
259357a818 reduce sending of dead-game mqtt messages
Two cases dealt with here. First, if my opponent deletes the game when
I have an un-ack'd message, I'll keep sending it forever. Fix is to
flip a bit in comms in response to a game_gone event so no more
sending will happen. (Better than emptying the queue, as it leaves
open the possibility of resurrecting the game with code changes
later.) Second, if there's a retained message from a dead game I'll
keep receiving it until it's replaced, and if the game's dead it never
will be. Fix is to add a new api endpoint noSuchGame() to the relay2
server and to call it on receiving a message for which I have no game
to deliver it to. The endpoint "unretains" the message so I won't get
it again unless it's resent.
2023-11-05 12:01:43 -08:00
Alejandro Rodriguez
0528e5b5fd
Translated using Weblate (Spanish)
Currently translated at 100.0% (889 of 889 strings)
2023-11-05 00:10:04 +01:00
gallegonovato
36e1157e06
Translated using Weblate (Spanish)
Currently translated at 100.0% (889 of 889 strings)
2023-11-05 00:10:04 +01:00
Eric House
28318eb38a shorten file path in logs
Couldn't figure out how to do it at compile-time on Android.
2023-10-29 08:09:37 -07:00
Eric House
2331cde2e7 fix to work on python3-only system
Note: I haven't actually verified that it still works.
2023-10-28 11:41:42 -07:00
Eric House
26ea25c011 fix to compile with old and new glib versions 2023-10-28 11:31:07 -07:00
Eric House
a73e2c02eb script to build github head (while travis builds broken) 2023-10-27 11:39:49 -07:00
Eric House
b876ae1ff8 add restart menuitem (debug builds only) 2023-10-27 09:05:13 -07:00
Eric House
7ca5fe7cc9 don't run off end of array
I can't reproduce what this fixes, but if I could it'd be a crash for
sure.
2023-10-26 19:31:47 -07:00
Eric House
ee2a4aaf72 fix failure to deliver ACKs on MQTT
My combining messages logic failed for ACKs, sending the queue but not
the ACK unless the ACK was in the queue. Appending it at send time is
fraught, so I am instead adding ACKs to the queue, but not persisting
them, so they only last long enough to be sent after they're
added. Seems to fix a common problem of games failing to get ACKs for
their final messages after they finish.
2023-10-26 15:37:50 -07:00
Eric House
dabb812cab fix assertions where env can't be looked up
use AttachCurrentThread(), but also fix a refcounting error in rematch
that was likely triggering the need to use it. This is all DEBUG code
so low-risk.
2023-10-26 12:28:41 -07:00
Eric House
2a9b999b99 cleanup 2023-10-25 13:55:51 -07:00
Eric House
629696144f Fix ARM compile by copying rather than casting struct ptr 2023-10-25 13:55:51 -07:00
gallegonovato
50ec6abb99
Translated using Weblate (Spanish)
Currently translated at 99.8% (887 of 888 strings)
2023-10-25 12:02:37 +00:00
eulalio
732733fc89
Translated using Weblate (Spanish)
Currently translated at 99.7% (886 of 888 strings)
2023-10-20 04:20:43 +00:00
gallegonovato
819b329ee5
Translated using Weblate (Spanish)
Currently translated at 99.7% (886 of 888 strings)
2023-10-20 04:20:42 +00:00
gallegonovato
3866763b6f
Translated using Weblate (Spanish)
Currently translated at 80.9% (719 of 888 strings)
2023-10-18 06:06:04 +02:00
eulalio
1cb4591f21
Translated using Weblate (Spanish)
Currently translated at 80.9% (719 of 888 strings)
2023-10-18 06:06:03 +02:00
eulalio
b934838224
Translated using Weblate (Spanish)
Currently translated at 69.5% (618 of 888 strings)
2023-10-11 17:01:17 +02:00
Max Digital
e3dea4552c
Translated using Weblate (Ukrainian)
Currently translated at 0.9% (8 of 888 strings)
2023-10-11 17:01:16 +02:00
eulalio
753d8788e5
Translated using Weblate (Spanish)
Currently translated at 65.0% (578 of 888 strings)
2023-10-03 12:11:12 +02:00
eulalio
fd13691f4c
Translated using Weblate (Spanish)
Currently translated at 63.5% (564 of 888 strings)
2023-09-30 17:00:18 +02:00
eulalio
44dd33c47a
Translated using Weblate (Spanish)
Currently translated at 61.8% (549 of 888 strings)
2023-09-26 17:00:25 +02:00
eulalio
cd65b9a321
Translated using Weblate (Spanish)
Currently translated at 61.2% (544 of 888 strings)
2023-09-24 19:00:24 +02:00
eulalio
391dbb462c
Translated using Weblate (Spanish)
Currently translated at 60.6% (539 of 888 strings)
2023-09-23 18:00:13 +02:00
eulalio
b1e0f0edfe
Translated using Weblate (Spanish)
Currently translated at 60.0% (533 of 888 strings)
2023-09-21 16:02:15 +00:00
eulalio
385a29a8e3
Translated using Weblate (Spanish)
Currently translated at 59.2% (526 of 888 strings)
2023-09-20 15:59:52 +02:00
ssantos
aa3d73db8c
Translated using Weblate (Portuguese)
Currently translated at 100.0% (888 of 888 strings)
2023-09-20 15:59:52 +02:00
eulalio
27164c5065
Translated using Weblate (Spanish)
Currently translated at 58.2% (517 of 888 strings)
2023-09-17 16:00:48 +00:00
ssantos
1ef6419703
Translated using Weblate (German)
Currently translated at 99.7% (886 of 888 strings)
2023-09-17 16:00:47 +00:00
eulalio
54c630447d
Translated using Weblate (Spanish)
Currently translated at 56.5% (502 of 888 strings)
2023-09-14 16:51:42 +02:00
eulalio
563e61f142
Translated using Weblate (Spanish)
Currently translated at 56.1% (499 of 888 strings)
2023-09-13 13:50:06 +02:00
eulalio
3310d9dba1
Translated using Weblate (Spanish)
Currently translated at 55.1% (490 of 888 strings)
2023-09-10 16:59:53 +02:00
eulalio
1dad3d44a8
Translated using Weblate (Spanish)
Currently translated at 54.6% (485 of 888 strings)
2023-09-10 15:19:45 +02:00