Merge branch 'android_branch' into android_bt

This commit is contained in:
Eric House 2012-05-05 17:33:21 -07:00
commit 3b3439371f
4 changed files with 34 additions and 32 deletions

View file

@ -72,8 +72,6 @@ static void buildModelFromStack( ModelCtxt* model, StackCtxt* stack,
MovePrintFuncPost mpfpo, void* closure );
static void setPendingCounts( ModelCtxt* model, XP_S16 turn );
static XP_S16 setContains( const TrayTileSet* tiles, Tile tile );
static void sortTiles( TrayTileSet* dest, const TrayTileSet* src );
static void removeTile( TrayTileSet* tiles, XP_U16 index );
static void loadPlayerCtxt( const ModelCtxt* model, XWStreamCtxt* stream,
XP_U16 version, PlayerCtxt* pc );
static void writePlayerCtxt( const ModelCtxt* model, XWStreamCtxt* stream,
@ -2413,16 +2411,6 @@ writePlayerCtxt( const ModelCtxt* model, XWStreamCtxt* stream,
}
} /* writePlayerCtxt */
static void
removeTile( TrayTileSet* tiles, XP_U16 index )
{
XP_U16 ii;
--tiles->nTiles;
for ( ii = index; ii < tiles->nTiles; ++ii ) {
tiles->tiles[ii] = tiles->tiles[ii+1];
}
}
static XP_S16
setContains( const TrayTileSet* tiles, Tile tile )
{
@ -2439,23 +2427,6 @@ setContains( const TrayTileSet* tiles, Tile tile )
return result;
}
static void
sortTiles( TrayTileSet* dest, const TrayTileSet* src )
{
TrayTileSet tmp = *src;
dest->nTiles = 0;
while ( 0 < tmp.nTiles ) {
XP_U16 ii, smallest;
for ( smallest = ii = 0; ii < tmp.nTiles; ++ii ) {
if ( tmp.tiles[ii] < tmp.tiles[smallest] ) {
smallest = ii;
}
}
dest->tiles[dest->nTiles++] = tmp.tiles[smallest];
removeTile( &tmp, smallest );
}
}
#ifdef CPLUS
}
#endif

View file

@ -104,9 +104,11 @@ static XP_U32
augmentFor( XP_U32 hash, const StackEntry* entry )
{
switch( entry->moveType ) {
case ASSIGN_TYPE:
hash = augmentHash( hash, (XP_U8*)&entry->u.assign,
sizeof(entry->u.assign) );
case ASSIGN_TYPE: {
TrayTileSet tiles;
sortTiles( &tiles, &entry->u.assign.tiles );
hash = augmentHash( hash, (XP_U8*)&tiles, sizeof(tiles) );
}
break;
case MOVE_TYPE:
hash = augmentHash( hash, (XP_U8*)&entry->u.move,

View file

@ -73,6 +73,33 @@ traySetFromStream( XWStreamCtxt* stream, TrayTileSet* ts )
ts->nTiles = (XP_U8)nTiles;
} /* traySetFromStream */
void
removeTile( TrayTileSet* tiles, XP_U16 index )
{
XP_U16 ii;
--tiles->nTiles;
for ( ii = index; ii < tiles->nTiles; ++ii ) {
tiles->tiles[ii] = tiles->tiles[ii+1];
}
}
void
sortTiles( TrayTileSet* dest, const TrayTileSet* src )
{
TrayTileSet tmp = *src;
dest->nTiles = 0;
while ( 0 < tmp.nTiles ) {
XP_U16 ii, smallest;
for ( smallest = ii = 0; ii < tmp.nTiles; ++ii ) {
if ( tmp.tiles[ii] < tmp.tiles[smallest] ) {
smallest = ii;
}
}
dest->tiles[dest->nTiles++] = tmp.tiles[smallest];
removeTile( &tmp, smallest );
}
}
#if 0
static void
signedToStream( XWStreamCtxt* stream, XP_U16 nBits, XP_S32 num )

View file

@ -34,6 +34,8 @@ XP_U16 bitsForMax( XP_U32 n );
void traySetToStream( XWStreamCtxt* stream, const TrayTileSet* ts );
void traySetFromStream( XWStreamCtxt* stream, TrayTileSet* ts );
void sortTiles( TrayTileSet* dest, const TrayTileSet* src );
void removeTile( TrayTileSet* tiles, XP_U16 index );
XP_S32 signedFromStream( XWStreamCtxt* stream, XP_U16 nBits );
void signedToStream( XWStreamCtxt* stream, XP_U16 nBits, XP_S32 num );