Пример #1
0
void createRandomBlock(BlockInfo& block, double size[3], double location[3])
{
  block.initalized = true;
  block.size[0] = size[0];
  block.size[1] = size[1];
  block.size[2] = size[2];
  block.location[0] = location[0];
  block.location[1] = location[1];
  block.location[2] = location[2];
  
  int numOfTrees = rand() % 10;
  for(int ii = 0; ii < numOfTrees; ii++)
  {
    block.trees.push_back(TreeInfo(rand()%100/25.0 + 4, // Width
                                   rand()%100/50.0 + 3, // Height
                                   rand()%100/5.0 - 10,
                                   rand()%100/5.0 - 10,
                                   0));
    
  }
  int numOfRocks = rand() % 5 - 2 ; // More likely to not draw rocks
  
  //block.rocks.push_back(RockInfo(0, -8.5, 0, 3.5, 1.5, 3, 15));
  for(int ii = 0; ii < numOfRocks; ii++)
  {
    block.rocks.push_back(RockInfo(rand()%100/5.0 - 10, // X
                                   rand()%100/5.0 - 10, // Y
                                   -.5, //Z
                                   rand()%100/25.0 + 1, // Width
                                   rand()%100/50.0 + 2, // Height
                                   rand()%100/50.0 + 1, // depth
                                   15));
    
  }
  
  int numOfHouses = rand() % 15 - 13;
  for(int ii = 0; ii < numOfHouses; ii++)
  {
     block.houses.push_back(HouseInfo(rand()%100/5.0 - 10, // X,
                                      rand()%100/5.0 - 10, // Y
                                      0, // Z
                                      rand()%2 + 3,
                                      rand()%2 + 3,
                                      rand()%3 + 44,
                                      rand() %360));
  }
  
  block.maxHeight = 10;
  block.randomSeed = rand();
}
Пример #2
0
void initStaticBlocks()
{
  if(!blocks[0][0].initalized)
  {
    //Create Initial Blocks;
    BlockInfo& block = blocks[0][0];
    block.size[0] = BLOCK_SIZE;
    block.size[1] = BLOCK_SIZE;
    block.size[2] = BLOCK_SIZE_Z;
    block.location[0] = 0;
    block.location[1] = 0;
    block.location[2] = 0;
    block.randomSeed = rand();
    block.trees.push_back(TreeInfo(6, 3, 0, 0, 0));
    block.trees.push_back(TreeInfo(6, 3, 3, 4, 0));
    block.trees.push_back(TreeInfo(5.6, 3, 2, 6, 0));
    block.trees.push_back(TreeInfo(5.1, 2.4, 6, 7, 0));
    block.trees.push_back(TreeInfo(8, 2.8, -4, 3, 0));
    block.trees.push_back(TreeInfo(7, .8, -8, 7, 0));
    block.trees.push_back(TreeInfo(2.5, 4.0, -7, 1, 0));
    block.trees.push_back(TreeInfo(6, 5.0, -3, -4, 0));
    block.trees.push_back(TreeInfo(9, 7, -9, -9, 0));
    block.trees.push_back(TreeInfo(5.0, 3.5, 6, -4, 0));
    block.trees.push_back(TreeInfo(6.6, 4, 8, -7, 0));
    block.rocks.push_back(RockInfo(0, -8.5, 0, 3.5, 1.5, 3, 15));
    block.rocks.push_back(RockInfo(0, -7.5, -1, 1.5, 1.5, 2, 10));
    block.maxHeight = 9; // FromTree
    block.initalized = true;
  }
  if (!blocks[0][1].initalized)
  {
    BlockInfo& block = blocks[0][1];
    block.size[0] = BLOCK_SIZE;
    block.size[1] = BLOCK_SIZE;
    block.size[2] = BLOCK_SIZE_Z;
    block.location[0] = 0;
    block.location[1] = BLOCK_SIZE;
    block.location[2] = 0;
    block.randomSeed = rand();
    block.trees.push_back(TreeInfo(7, 3.6, 6, -4, 0));
    block.trees.push_back(TreeInfo(4.5, 4.0, 8, -7, 0));
    block.trees.push_back(TreeInfo(6, 4.5, -8, 7, 0));
    block.rocks.push_back(RockInfo(-4, 5, -.1, 1, 2, 1, 10));
    block.rocks.push_back(RockInfo(-5, 1, -.1, 1, 3, 2, 10));
    block.houses.push_back(HouseInfo(2.5, 2.5, 0, 5, 4, 4, 0));
    block.maxHeight = 10;//From House
    block.initalized = true;
  }
}
GameInitSettings::GameInitSettings(Stream& stream) {
	gameType = (GAMETYPE) stream.readSint8();
	HouseID = (HOUSETYPE) stream.readSint8();

	filename = stream.readString();

	mission = stream.readUint8();
	randomSeed = stream.readUint32();

	concreteRequired = stream.readBool();
	fogOfWar = stream.readBool();

	Uint32 numHouseInfo = stream.readUint32();
	for(Uint32 i=0;i<numHouseInfo;i++) {
        houseInfoList.push_back(HouseInfo(stream));
	}
}