TILE.C
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:
Windows编程
开发平台:
Visual C++
- /*==========================================================================
- *
- * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
- * Copyright (C) 1994-1995 ATI Technologies Inc. All Rights Reserved.
- *
- * File: tile.c
- * Content: tile loading and initialization functions
- *
- ***************************************************************************/
- #include "foxbear.h"
- /*
- * CreateTiles
- */
- HBITMAPLIST *CreateTiles( HBITMAPLIST *phBitmapList, USHORT n )
- {
- HBITMAPLIST *hTileList;
- USHORT i;
- hTileList = CMemAlloc( n, sizeof (HBITMAPLIST) );
- if( hTileList == NULL )
- {
- ErrorMessage( "hTileList in CreateTiles" );
- }
- for( i = 0; i < n; ++i )
- {
- hTileList[i].hBM = phBitmapList[i].hBM;
- }
- return hTileList;
- } /* CreateTiles */
- /*
- * DestroyTiles
- */
- BOOL DestroyTiles( HBITMAPLIST *phTileList )
- {
- MemFree( phTileList );
- return TRUE;
- } /* DestroyTiles */
- /*
- * getData
- */
- LPSTR getData(LPSTR fileName)
- {
- LPSTR p = NULL;
- HRSRC hRes;
- hRes = FindResource(NULL, fileName, RT_RCDATA);
- if( hRes != NULL )
- {
- p = LockResource(LoadResource(NULL, hRes));
- }
- return p;
- } /* getData */
- /*
- * CreatePosList
- */
- HPOSLIST *CreatePosList( LPSTR fileName, USHORT width, USHORT height )
- {
- HPOSLIST *hPosList;
- USHORT pos;
- LPSTR p;
- p = getData( fileName );
- if( p == NULL )
- {
- ErrorMessage( "p in CreatePosList" );
- }
- hPosList = CMemAlloc( width * height, sizeof (USHORT) );
- if( hPosList == NULL )
- {
- ErrorMessage( "posList in CreatePosList" );
- }
- for( pos = 0; pos < width * height; ++pos )
- {
- hPosList[pos] = (USHORT) getint(&p, 0) - 1;
- }
- return hPosList;
- } /* CreatePosList */
- /*
- * CreateSurfaceList
- */
- HSURFACELIST *CreateSurfaceList( LPSTR fileName, USHORT width, USHORT height )
- {
- HSURFACELIST *hSurfaceList;
- USHORT pos;
- USHORT value;
- LPSTR p;
- p = getData( fileName );
- if( p == NULL )
- {
- ErrorMessage( "p in CreateSurfaceList" );
- }
- hSurfaceList = CMemAlloc( width * height, sizeof (HSURFACELIST) );
- if( hSurfaceList == NULL )
- {
- ErrorMessage( "posList in CreateSurfaceList" );
- }
- for( pos = 0; pos < width * height; ++pos )
- {
- value = (USHORT) getint(&p, 0);
- if( value == 0 )
- {
- hSurfaceList[pos] = FALSE;
- }
- else
- {
- hSurfaceList[pos] = TRUE;
- }
- }
- return hSurfaceList;
- } /* CreateSurfaceList */
- /*
- * DestoryPosList
- */
- BOOL DestroyPosList ( HPOSLIST *posList )
- {
- if( posList == NULL )
- {
- ErrorMessage( "posList in DestroyPosList" );
- }
- MemFree( posList );
- return TRUE;
- } /* DestroyPosList */