www.pudn.com > Billy_The_1798759292004.zip > Plumber.h


 
#include  
#include  
 
#pragma comment(lib,"winmm.lib") 
 
struct Map 
{ 
	int			Level[22][16]; 
	char		*CurrentMap; 
	int			MapSizeX; 
	int			MapSizeY; 
}; 
struct Ball 
{ 
	bool		Moves; 
	char*		Dir; 
 
	int			x; 
	int			y; 
}; 
 
#define		FLAME			'f' 
#define		ARMEDWALL		'W' 
#define		WALL			'G' 
 
#define		CRATE			'C' 
#define		BOULDER			'B' 
#define		DYNAMITE		'D' 
 
#define		START			'S' 
#define		END				'E' 
 
#define		TOILETT			'T' 
#define		TOILETTCLOGGED	't' 
 
#define		CLOGGER			'c' 
#define		SHIFTKEY		's' 
#define		BRIDGEPLATE		'i' 
#define		SCUBBAGEAR		'g' 
 
#define		WATER			'w' 
#define		BRIDGE			'b' 
 
#define		BUTTON			'½' 
/*******************************************************************\ 
*							PLAYS SOUND								* 
\*******************************************************************/ 
void PlaySound(char *FileName, UINT Mode) 
{ 
	char FilePath[30]="Sounds\\"; 
 
	for(int u=0; u21) 
		TempX=0; 
	if(TempY<0) 
		TempY=15; 
	if(TempY>15) 
		TempY=0; 
 
	if(Walkable(Level[TempX][TempY])) 
	{ 
		Level[x][y]			=' '; 
		Level[TempX][TempY]	=Crate; 
		PlaySound("Crate.wav", SND_ASYNC); 
	} 
} 
/*******************************************************************\ 
*							MOVES BOULDER							* 
\*******************************************************************/ 
bool MoveBoulder(int Level[22][16], Ball &Boulder) 
{ 
	int TempX = Boulder.x; 
	int TempY = Boulder.y; 
 
	if(Boulder.Dir=="LEFT") 
		TempX--; 
	if(Boulder.Dir=="RIGHT") 
		TempX++; 
	if(Boulder.Dir=="DOWN") 
		TempY++; 
	if(Boulder.Dir=="UP") 
		TempY--; 
 
	if(TempX<0) 
		TempX=21; 
	if(TempX>21) 
		TempX=0; 
	if(TempY<0) 
		TempY=15; 
	if(TempY>15) 
		TempY=0; 
 
	if(Walkable(Level[TempX][TempY])) 
	{ 
		Level[Boulder.x][Boulder.y]=' '; 
		Level[TempX][TempY]=BOULDER; 
		Boulder.x=TempX; 
		Boulder.y=TempY; 
		 
		return true; 
	} 
	Level[Boulder.x][Boulder.y]=BOULDER; 
	return false; 
} 
/*******************************************************************\ 
*					CHECKS WITCH PIPE PIC TO DRAW					* 
\*******************************************************************/ 
void CheckWallPic(int X, int Y,int &xPos, int &yPos, int Level[22][16], int Wall) 
{ 
	int	 Walls	=5; 
 
	if(Level[X-1][Y]!=Wall) 
		Walls--; 
	if(Level[X+1][Y]!=Wall) 
		Walls--; 
	if(Level[X][Y+1]!=Wall) 
		Walls--; 
	if(Level[X][Y-1]!=Wall) 
		Walls--; 
 
	// IF THE WALL IS ALONE 
	if(Walls==1) 
	{ 
		xPos=3; 
		yPos=3; 
	} 
	else if(Walls==2) 
	{ 
		if(Level[X+1][Y]==Wall) 
		{ 
			xPos=0; 
			yPos=4; 
		} 
		if(Level[X-1][Y]==Wall) 
		{ 
			xPos=2; 
			yPos=4; 
		} 
		if(Level[X][Y-1]==Wall) 
		{ 
			xPos=1; 
			yPos=2; 
		} 
		if(Level[X][Y+1]==Wall) 
		{ 
			xPos=1; 
			yPos=0; 
		} 
	} 
	else if(Walls==3) 
	{ 
		// FROM LEFT TO RIGHT 
		if((Level[X-1][Y]==Wall && Level[X+1][Y]==Wall)) 
		{ 
			xPos=1; 
			yPos=4; 
		} 
		// FROM UP TO DOWN 
		if(Level[X][Y-1]==Wall && Level[X][Y+1]==Wall) 
		{ 
			xPos=1; 
			yPos=1; 
		} 
		// FROM LEFT TO UP 
		else if(Level[X-1][Y]==Wall && Level[X][Y-1]==Wall) 
		{ 
			xPos=5; 
			yPos=2; 
		} 
		// FROM LEFT TO DOWN 
		else if(Level[X-1][Y]==Wall && Level[X][Y+1]==Wall) 
		{ 
			xPos=5; 
			yPos=0; 
		} 
		// FROM RIGHT TO UP 
		else if(Level[X+1][Y]==Wall && Level[X][Y-1]==Wall) 
		{ 
			xPos=3; 
			yPos=2; 
		} 
		// FROM RIGHT TO DOWN 
		else if(Level[X+1][Y]==Wall && Level[X][Y+1]==Wall) 
		{ 
			xPos=3; 
			yPos=0; 
		} 
	} 
	else if(Walls==4) 
	{ 
		// NOT UP 
		if(Level[X-1][Y]==Wall && Level[X+1][Y]==Wall /**/ && Level[X][Y+1]==Wall) 
		{ 
			xPos=4; 
			yPos=0; 
		} 
		// NOT DOWN 
		else if(Level[X-1][Y]==Wall && Level[X][Y-1]==Wall /**/ && Level[X+1][Y]==Wall) 
		{ 
			xPos=4; 
			yPos=2; 
		} 
		// NOT LEFT 
		else if(Level[X][Y-1]==Wall && Level[X][Y+1]==Wall /**/ && Level[X+1][Y]==Wall) 
		{ 
			xPos=3; 
			yPos=1; 
		} 
		// NOT RIGHT 
		else if(Level[X][Y-1]==Wall && Level[X][Y+1]==Wall /**/ && Level[X-1][Y]==Wall) 
		{ 
			xPos=5; 
			yPos=1; 
		} 
	} 
	else if(Walls==5) 
	{ 
		xPos=4; 
		yPos=1; 
	} 
}