Commit graph

79 commits

Author SHA1 Message Date
Eric House
2a6931fdcf add and start using indexeddb via emscripten APIs
Replace a couple of load/store actions with new APIs that do so
asynchronously (using indexeddb underneath, via emscripten APIs.)
Required restructuring how app starts. More changes to come. The idea is
to replace wordlist storage: this'll keep 'em smaller and not require
conversion to string.
2021-03-19 14:27:04 -07:00
Eric House
dd78abb116 separate dbg and rel directories 2021-03-19 14:27:04 -07:00
Eric House
664913b2eb fix NPE when len not initialized
Duh....
2021-03-19 14:27:04 -07:00
Eric House
d5e7dc4c97 game from a downloaded wordlist works!!!! 2021-03-19 14:27:04 -07:00
Eric House
5e9863adaf snapshot: downloading wordlist seems to work 2021-03-19 14:27:04 -07:00
Eric House
2ab2f5642e add name button and store wordlist
As a p.o.c., load the built-in wordlist into storage once, and
thereafter use it from there rather than as a file. Now it can go away
and a wordlist for the user's locale be downloaded and stored instead.
2021-03-19 14:27:04 -07:00
Eric House
0508fe1418 hide device buttons sometimes 2021-03-19 14:27:04 -07:00
Eric House
06b530c443 add notion of index to storage
I'm heading toward being able to know what all the games are by how
they're stored in a xplatform way. This is a start. Adding a second key
to storage, and looking at grouping everything where one key or the
other matches.
2021-03-19 14:27:04 -07:00
Eric House
39161a1170 just some notes 2021-03-19 14:27:04 -07:00
Eric House
4eede76780 add callback called when window regains focus
I need to redraw the canvas then, but haven't figured out yet.
2021-03-19 14:27:04 -07:00
Eric House
6b650907b2 regression: notify remote when deleted game messaged 2021-03-19 14:27:04 -07:00
Eric House
c801243dd5 hide game buttons when no game visible 2021-03-19 14:27:04 -07:00
Eric House
ffc42ed5e0 remove deleted games from games list
Was getting crashes since they could still be looked up
2021-03-19 14:27:04 -07:00
Eric House
61be81cf1a invite known players 2021-03-19 14:27:04 -07:00
Eric House
280390990f use new scheme to simplify blank picking 2021-03-19 14:27:04 -07:00
Eric House
ae05e62a5a Don't fail when two games have same name
Needed to change how callbacks worked, and that temporarily killed
sorting. Will fix.
2021-03-19 14:27:04 -07:00
Eric House
ab6abea6a7 use a callback instead of malloc inside js 2021-03-19 14:27:04 -07:00
Eric House
534e245048 change load-from-storage to not require free() 2021-03-19 14:27:04 -07:00
Eric House
03d76fbacd use name from invitation 2021-03-19 14:27:04 -07:00
Eric House
523c9b270a keep games open and switch between them
Motiviation was to be able to deliver a message in the background, but
at least for now it's easier not to close games again. Can always do
that later if it's a memory problem.
2021-03-19 14:27:04 -07:00
Eric House
c8f22f5fb1 register with mqtt host 2021-03-19 14:27:04 -07:00
Eric House
033290bd69 cleanup, esp around js callbacks 2021-03-19 14:27:04 -07:00
Eric House
940e2569c9 fix exiting when another tab opened. And cleanup. 2021-03-19 14:27:04 -07:00
Eric House
41cd3d8f39 open game to receive message 2021-03-19 14:27:04 -07:00
Eric House
e2beccc85c sort games, fix buttons 2021-03-19 14:27:04 -07:00
Eric House
5b645abae8 cleanup 2021-03-19 14:27:04 -07:00
Eric House
3d87d4f60a name the closed game 2021-03-19 14:27:04 -07:00
Eric House
208a6b764c don't report as deleted a game that's just closed 2021-03-19 14:27:04 -07:00
Eric House
b386abcf9d make stuff better 2021-03-19 14:27:04 -07:00
Eric House
79433de160 sending invites works
though play after it still glitchy
2021-03-19 14:27:04 -07:00
Eric House
43874a6a5d new game works
Only two options: local game with one robot, or networked needing to
invite someone.
2021-03-19 14:27:04 -07:00
Eric House
57783756d6 rename and open seem to work 2021-03-19 14:27:04 -07:00
Eric House
0c99b8490b implement new game and open game (roughly) 2021-03-19 14:27:04 -07:00
Eric House
9ec8952fdb move game stuff into separate struct 2021-03-19 14:27:04 -07:00
Eric House
3a0d0befc7 toward allowing multiple games 2021-03-19 14:27:04 -07:00
Eric House
c79d634458 add blank-picker dialog 2021-03-19 14:27:04 -07:00
Eric House
b80f3fdf06 implement wasm_util_remSelected 2021-03-19 14:27:04 -07:00
Eric House
ae4985e518 ask for username if not provided 2021-03-19 14:27:04 -07:00
Eric House
007e1e4acb add alert for asking user for string 2021-03-19 14:27:04 -07:00
Eric House
540cf73496 cleanup: fetch checkboxes rather than pass in 2021-03-19 14:27:04 -07:00
Eric House
88e44d45ff fix so keyboard input works
Emscripen was hogging all keyboard events even when canvas didn't have
focus. There's an arcane way to fix that in js.
2021-03-19 14:27:04 -07:00
Eric House
74109ce172 fix to send after connect 2021-03-19 14:27:04 -07:00
Eric House
d53ab92af3 show game-over details 2021-03-19 14:27:04 -07:00
Eric House
5a061f5786 notify, and stop using, when another tab starts up
I'm wrestling with how to have concurrent tabs open. They can't be on
the same game because both can't connect using same MQTT dev id (and
they'd quickly get the saved state screwed up.) Only problem is
sometimes a tab in a new window doesn't have access to localstorage and
so is able to connect on its own. But later that state isn't reachable
any more: relaunch firefox and you get back the to the older state.
2021-03-19 14:27:04 -07:00
Eric House
eec86e099d make alert and confirm non-blocking
Using a custom div and callbacks. TODO: make it floating so it's more
dialog-like. But that's just css at this point.
2021-03-19 14:27:04 -07:00
Eric House
7dc949fb38 choose font sizes to fit
Make on demand rather than guessing. Only wind up with six or so, so the
linear search is probably ok.
2021-03-19 14:27:04 -07:00
Eric House
fddac79dd8 rebase, and handle changed draw api 2021-03-19 14:27:04 -07:00
Eric House
96829b5478 fix so release build builds
without MEMDEBUG defined that is
2021-03-19 14:27:04 -07:00
Eric House
02a193902f get trade working 2021-03-19 14:26:18 -07:00
Eric House
bf5db08357 get rid of sGlobals! 2021-03-19 14:26:18 -07:00