mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-14 20:47:54 +01:00
new API for passing rack to engine in order to print possible moves.
This commit is contained in:
parent
b60c12e91c
commit
48e1062399
2 changed files with 65 additions and 0 deletions
|
@ -1612,6 +1612,61 @@ assignTilesToAll( ServerCtxt* server )
|
|||
|
||||
} /* assignTilesToAll */
|
||||
|
||||
#ifdef TEXT_MODEL
|
||||
void
|
||||
server_assignTiles( ServerCtxt* server, XP_U16 turn,
|
||||
Tile* tiles, XP_U16 nTiles )
|
||||
{
|
||||
TrayTileSet newTiles;
|
||||
XP_U16 ii;
|
||||
|
||||
newTiles.nTiles = nTiles;
|
||||
|
||||
if ( server->pool == NULL ) {
|
||||
server->pool = pool_make( MPPARM_NOCOMMA(server->mpool) );
|
||||
pool_initFromDict( server->pool,
|
||||
model_getDictionary(server->vol.model) );
|
||||
}
|
||||
|
||||
for ( ii = 0; ii < nTiles; ++ii ) {
|
||||
newTiles.tiles[ii] = tiles[ii];
|
||||
}
|
||||
pool_removeTiles( server->pool, &newTiles );
|
||||
model_assignPlayerTiles( server->vol.model, turn, &newTiles );
|
||||
}
|
||||
|
||||
void
|
||||
server_genMoveList( ServerCtxt* server, MovePrintFunc proc,
|
||||
void* closure )
|
||||
{
|
||||
XP_U16 turn = 0;
|
||||
XP_Bool ignore;
|
||||
const TrayTileSet* tileSet;
|
||||
ModelCtxt* model = server->vol.model;
|
||||
MoveInfo ignoreMI;
|
||||
|
||||
tileSet = model_getPlayerTiles( model, turn );
|
||||
|
||||
EngineCtxt* engine = server_getEngineFor( server, turn );
|
||||
engine_reset( engine );
|
||||
engine_setPrinter( engine, proc, closure );
|
||||
|
||||
(void)engine_findMove( server_getEngineFor( server, turn ),
|
||||
model, turn, tileSet->tiles, tileSet->nTiles,
|
||||
XP_FALSE, 1, &ignore, &ignoreMI );
|
||||
}
|
||||
|
||||
void
|
||||
server_genMoveListWith( ServerCtxt* server,
|
||||
Tile* tiles, XP_U16 nTiles,
|
||||
MovePrintFunc proc, void* closure )
|
||||
{
|
||||
server_assignTiles( server, 0, tiles, nTiles );
|
||||
server_genMoveList( server, proc, closure );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef XWFEATURE_STANDALONE_ONLY
|
||||
static void
|
||||
getPlayerTime( ServerCtxt* server, XWStreamCtxt* stream, XP_U16 turn )
|
||||
|
|
|
@ -98,6 +98,16 @@ XP_S16 server_countTilesInPool( ServerCtxt* server );
|
|||
|
||||
XP_Bool server_do( ServerCtxt* server );
|
||||
|
||||
#ifdef TEXT_MODEL
|
||||
void server_assignTiles( ServerCtxt* server, XP_U16 turn,
|
||||
Tile* tiles, XP_U16 nTiles );
|
||||
void server_genMoveList( ServerCtxt* server, MovePrintFunc proc,
|
||||
void* closure );
|
||||
void server_genMoveListWith( ServerCtxt* server,
|
||||
Tile* tiles, XP_U16 nTiles,
|
||||
MovePrintFunc proc, void* closure );
|
||||
#endif
|
||||
|
||||
XP_Bool server_commitMove( ServerCtxt* server );
|
||||
XP_Bool server_commitTrade( ServerCtxt* server, TileBit bits );
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue