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; u 21) 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; } }