Moogle's Bombed Out Building Code

From OPU Wiki

My magic code i've been working on for some time creates a building that is destroyed at map start.

void rubbleBuilder(map_id building,int curX,int curY,int player,int health,int boomsize)
{
//boom size 0 if you want building to remain set helth then
int i =0;
bool ok = false;	
Unit u2,boom;
	BuildingGroup &wall= CreateBuildingGroup(Player[player]);

	PlayerVehicleEnum earth(player);
		if(building==mapAdvancedLab)
		{
			TethysGame::CreateUnit(u2, mapAdvancedLab, LOCATION(curX, curY), player, mapNone, 0);
			
			CreateTubeOrWallLine(curX-3,curY-3,curX-1,curY-3,mapWall);
			CreateTubeOrWallLine(curX+1,curY-3,curX+3,curY-3,mapWall);

			CreateTubeOrWallLine(curX+3,curY+3,curX+3,curY-1,mapWall);		
			CreateTubeOrWallLine(curX+3,curY+1,curX+3,curY+3,mapWall);	

			CreateTubeOrWallLine(curX-3,curY-3,curX-3,curY-1,mapWall);		
			CreateTubeOrWallLine(curX-3,curY+1,curX-3,curY+3,mapWall);	

			CreateTubeOrWallLine(curX-3,curY+3,curX-1,curY+3,mapWall);
			CreateTubeOrWallLine(curX+1,curY+3,curX+3,curY+3,mapWall);;
			
		}
		else if(building==mapSpaceport)
		{
			TethysGame::CreateUnit(u2, mapSpaceport, LOCATION(curX, curY), player, mapNone, 0);
			
			CreateTubeOrWallLine(curX-4,curY-4,curX-1,curY-4,mapWall);
			CreateTubeOrWallLine(curX+1,curY-4,curX+3,curY-4,mapWall);

			CreateTubeOrWallLine(curX+4,curY-4,curX+4,curY-1,mapWall);		
			CreateTubeOrWallLine(curX+4,curY+1,curX+4,curY+3,mapWall);	

			CreateTubeOrWallLine(curX-4,curY-4,curX-4,curY-1,mapWall);		
			CreateTubeOrWallLine(curX-4,curY+1,curX-4,curY+3,mapWall);	

			CreateTubeOrWallLine(curX-4,curY+3,curX-1,curY+3,mapWall);
			CreateTubeOrWallLine(curX+1,curY+3,curX+4,curY+3,mapWall);
		}
		else if(building==mapCommandCenter)
		{
			TethysGame::CreateUnit(u2, mapCommandCenter, LOCATION(curX, curY), player, mapNone, 0);
			
			CreateTubeOrWallLine(curX-3,curY-3,curX-1,curY-3,mapWall);
			CreateTubeOrWallLine(curX+1,curY-3,curX+3,curY-3,mapWall);

			CreateTubeOrWallLine(curX+3,curY-3,curX+3,curY-1,mapWall);		
			CreateTubeOrWallLine(curX+3,curY+1,curX+3,curY+2,mapWall);	

			CreateTubeOrWallLine(curX-3,curY-3,curX-3,curY-1,mapWall);		
			CreateTubeOrWallLine(curX-3,curY+1,curX-3,curY+2,mapWall);	

			CreateTubeOrWallLine(curX-3,curY+2,curX-1,curY+2,mapWall);
			CreateTubeOrWallLine(curX+1,curY+2,curX+3,curY+2,mapWall);
		}
		else if(building==mapStandardLab)
		{
			TethysGame::CreateUnit(u2, mapStandardLab, LOCATION(curX, curY), player, mapNone, 0);
			
			CreateTubeOrWallLine(curX-3,curY-3,curX-1,curY-3,mapWall);
			CreateTubeOrWallLine(curX+1,curY-3,curX+3,curY-3,mapWall);

			CreateTubeOrWallLine(curX+3,curY-3,curX+3,curY-1,mapWall);		
			CreateTubeOrWallLine(curX+3,curY+1,curX+3,curY+2,mapWall);	

			CreateTubeOrWallLine(curX-3,curY-3,curX-3,curY-1,mapWall);		
			CreateTubeOrWallLine(curX-3,curY+1,curX-3,curY+2,mapWall);	

			CreateTubeOrWallLine(curX-3,curY+2,curX-1,curY+2,mapWall);
			CreateTubeOrWallLine(curX+1,curY+2,curX+3,curY+2,mapWall);
		}

		else if(building==mapTokamak)
		{			
			TethysGame::CreateUnit(u2, mapTokamak, LOCATION(curX, curY), player, mapNone, 0);
			
			CreateTubeOrWallLine(curX-3,curY-3,curX+2,curY-3,mapWall);
			CreateTubeOrWallLine(curX+2,curY-3,curX+2,curY+2,mapWall);		;	
			CreateTubeOrWallLine(curX+2,curY+2,curX-3,curY+2,mapWall);		
			CreateTubeOrWallLine(curX-3,curY+2,curX-3,curY-3,mapWall);
		}
		else if(building==mapGuardPost)
		{
			TethysGame::CreateUnit(u2, mapGuardPost, LOCATION(curX, curY), player, mapLaser, 0);
		//	createRubble(curX,curY);
			TethysGame::CreateWallOrTube(curX+1,curY,0,mapTube);
			TethysGame::CreateWallOrTube(curX,curY+1,3,mapTube);

		}
		else 
		{
			TethysGame::CreateUnit(u2, building, LOCATION(curX, curY), player, mapNone, 0);
		}
	
			if(health==-1)
			{
				for(int i=0;i<boomsize;i++)
				{
					TethysGame::CreateUnit(boom,mapScorpion , LOCATION(curX, curY), player, mapStarflare, 0);
				//	FightGroup &boomboom = CreateFightGroup(Player[player+1]);;
				//	boomboom.SetDeleteWhenEmpty(1);
					boom.DoAttack(u2);
				}
			}
			else
			{
				u2.SetDamage(health);
			}
}


--MoogleThe1337 19:28, 14 Jun 2005 (CDT)

Personal tools