Commit graph

125 commits

Author SHA1 Message Date
ehouse
5fb7bb95d4 selInfo can't be left null when board created, as selPlayer is 0.
Point at pti[0] to fix crasher.
2008-07-18 09:03:54 +00:00
ehouse
52650992ee combine all per-player arrays in board into a single array of structs.
access can then be via a ptr, more effecient and faster.  The change
seems to save 1K of generated code.  No changes to algorithms, only to
field access.
2008-07-18 07:49:00 +00:00
ehouse
e83786759c break board.c up so isn't too large for 68K on palm when compiled for
debugging.
2008-07-17 05:06:08 +00:00
ehouse
2923f301a5 Fix cosmetic problems when changing focus and board overlaps tray.
The goal is to have the tray drawn on top, even if it's otherwise
hidden, when the whole thing's focussed.  Fix is to inval and
recalculate rects more often as focus changes or tray is hidden.
2008-06-07 23:14:26 +00:00
ehouse
e60d338488 Remove all tabs. No code changes. 2008-05-31 03:26:16 +00:00
ehouse
d053f0731f Fix so curses-only builds and curses build doesn't segfault. 2008-05-26 00:27:48 +00:00
ehouse
ca7c14128a fix bug: don't advance arrow if unable to move tile to board (introduced with recent tile index changes) 2008-05-24 16:21:03 +00:00
ehouse
73e0313263 Fix bug that number key tries to move tile to board even during trade.
Generalize use of number to select tile in tray so that during trade
keys will toggle selected tiles.  Letters too.
2008-05-19 01:18:43 +00:00
ehouse
1d5446bfdf Trying to give smartphone users way to use keypad to move tiles to
board.  Enabling key-to-text works, but constants to turn it off
aren't in cegcc.  So for b2 add a quick hack where 1 means first tile
in tray, 7 means last (rightmost).  Enable and test on gtk.
2008-05-11 20:29:43 +00:00
ehouse
465daf0a15 While tap on draggable tile should not return it to tray, return-key on same tile should.
That's the only way to return a single tile on smartphone.
2008-05-11 16:20:37 +00:00
ehouse
83c6abdfae A bit of cleanup; no code change. 2008-05-11 15:23:22 +00:00
ehouse
f1ec47aa93 force miniwindow entirely onto board even if natural position is on
tray; fix overdrawing onto miniwindow by making timer proc return a
boolean and only redrawing (on wince) when it's true.
2008-04-12 15:36:31 +00:00
ehouse
72457bf28c add ability to scroll the board by dragging it. add new method
util_altKeyDown to allow user to choose between scrolling board and
dragging the hint rect when both are possible.  add adjustYOffset;
make it and board_setYOffset more tolerant of out-of-bounds inputs and
use that to simplify calling code.
2008-04-08 03:55:53 +00:00
ehouse
f1c8dd6190 Implement scrolling during drag via timer rather than by counting on
getting notified when pen is dragged off the board.  The latter won't
happen if the board is up against the edge of the screen.
2008-03-29 20:23:27 +00:00
ehouse
ffd7dffd27 When scrolling in response to a drag, invalidate under the tile both
before and after the scroll.  Otherwise on platforms where scrolling
is via a bitmove the old position gets scrolled away and never redrawn
leaving ghost tile parts lying around.
2008-03-15 14:00:05 +00:00
ehouse
ddafe8b97a Indicate empty cell with CELL_ISEMPTY rather than an empty string; fix
palm to not draw star on top of placed tile.
2008-03-14 09:36:42 +00:00
ehouse
88ef41af15 rewrite invalCellsUnderRect to be less stupid: start from rect passed
in rather than whole board.
2008-03-14 09:20:26 +00:00
ehouse
3dbf026372 fold hint-region-drag into dragdrpp, saving a bunch of code and
gaining scrolling during drag on small screens.
2008-03-13 12:23:22 +00:00
ehouse
0f18efb925 Make function static 2008-03-11 12:28:57 +00:00
ehouse
1eb2933d49 Don't return tile to tray on a simple tap when drag-drop is available; move
function between files.
2008-03-11 12:22:10 +00:00
ehouse
0988159795 add owner param to drawTileMidDrag so can color tiles correctly 2008-03-11 11:48:53 +00:00
ehouse
c26eed3462 merge with drag_n_drop branch: apply patch generated with this command on that branch: svn diff -r 2080:2087 2008-03-08 23:16:21 +00:00
ehouse
93f95588d8 add and call util_turnChanged 2008-02-26 13:46:33 +00:00
ehouse
ff457236ef Don't hide tray if there's only one player. 2008-02-16 15:53:00 +00:00
ehouse
df4c9fe442 Don't cast char array to long and write to it! Newer arm compilers
don't like this -- or maybe I was just lucky until now.
2008-02-04 06:13:11 +00:00
ehouse
f70bdb54ae Remove excessive focus logging; fix timer bug for BT by posting event so EvtGetEvent can exit 2007-12-06 05:26:44 +00:00
ehouse
b527110379 replace all __FUNCTION__ with __func__ 2007-12-02 19:13:25 +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
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
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
80efa73a50 Cleanup: compile warning and to make logging easier. 2007-02-08 15:17:23 +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
24a885918d cleanup: only one return per function. 2007-02-02 08:11:14 +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
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