From 0b5ad41899dc18af8aa30e722abea9c8cf3aaf94 Mon Sep 17 00:00:00 2001 From: ehouse Date: Sat, 7 Jun 2008 23:07:31 +0000 Subject: [PATCH] Fix crasher: don't start a board-scroll operation and attempt to end by dropping a tile. (This part is to detect that no drag actuall happened.) --- common/model.c | 7 +++++-- common/model.h | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/common/model.c b/common/model.c index be6c418f2..1ce70a6e3 100644 --- a/common/model.c +++ b/common/model.c @@ -1054,10 +1054,11 @@ model_moveBoardToTray( ModelCtxt* model, XP_S16 turn, } } /* model_moveBoardToTray */ -void +XP_Bool model_moveTileOnBoard( ModelCtxt* model, XP_S16 turn, XP_U16 colCur, XP_U16 rowCur, XP_U16 colNew, XP_U16 rowNew ) { + XP_Bool found = XP_FALSE; PlayerCtxt* player = &model->players[turn]; XP_S16 index = player->nPending; @@ -1079,10 +1080,12 @@ model_moveTileOnBoard( ModelCtxt* model, XP_S16 turn, XP_U16 colCur, incrPendingTileCountAt( model, colNew, rowNew ); invalidateScore( model, turn ); + found = XP_TRUE; break; } } -} + return found; +} /* model_moveTileOnBoard */ void model_resetCurrentTurn( ModelCtxt* model, XP_S16 whose ) diff --git a/common/model.h b/common/model.h index 3ac57f120..b3897e140 100644 --- a/common/model.h +++ b/common/model.h @@ -140,8 +140,8 @@ void model_moveBoardToTray( ModelCtxt* model, XP_S16 turn, XP_U16 col, XP_U16 row, XP_U16 trayOffset ); void model_moveTrayToBoard( ModelCtxt* model, XP_S16 turn, XP_U16 col, XP_U16 row, XP_S16 tileIndex, Tile blankFace ); -void model_moveTileOnBoard( ModelCtxt* model, XP_S16 turn, XP_U16 colCur, - XP_U16 rowCur, XP_U16 colNew, XP_U16 rowNew ); +XP_Bool model_moveTileOnBoard( ModelCtxt* model, XP_S16 turn, XP_U16 colCur, + XP_U16 rowCur, XP_U16 colNew, XP_U16 rowNew ); XP_S16 model_trayContains( ModelCtxt* model, XP_S16 turn, Tile tile );