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(); }
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)); } }