Replace more than 30 duplicate grass tuft placement calls with a single function call.

Remove few obsolete hillSize variables.
Remove one duplicate undesired grass tuft placement call from flood.

Differential Revision: https://code.wildfiregames.com/D201
Reviewed By: bb
This was SVN commit r19282.
This commit is contained in:
elexis 2017-03-09 12:18:14 +00:00
parent 5b699e29ea
commit f98100bdaf
36 changed files with 75 additions and 502 deletions

View file

@ -172,7 +172,6 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 2;
var tAngle = randFloat(-PI/3, 4*PI/3);
@ -185,20 +184,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aBush1, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aBush1, clBaseResource, radius);
}
RMS.SetProgress(30);

View file

@ -218,20 +218,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);

View file

@ -198,20 +198,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);

View file

@ -154,20 +154,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);

View file

@ -177,20 +177,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
log("Creating islands...");

View file

@ -166,21 +166,8 @@ for (var i = 0; i < numPlayers; i++)
false, clBaseResource, tX, tZ
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
var hillSize = PI * radius * radius;
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(10);

View file

@ -185,20 +185,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(10);

View file

@ -203,20 +203,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
// create the city patch
var cityRadius = radius/2;

View file

@ -187,7 +187,7 @@ for (var i = 0; i < numPlayers; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 2;
var tAngle = randFloat(0, TWO_PI);
@ -200,20 +200,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);

View file

@ -218,7 +218,7 @@ for (var i = 0; i < numPlayers; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 2;
var tAngle = randFloat(-PI/3, 4*PI/3);
@ -231,20 +231,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aBush1, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aBush1, clBaseResource, radius);
}
RMS.SetProgress(40);

View file

@ -203,7 +203,7 @@ for (var i=0; i < numIslands; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 2;
var tAngle = randFloat(-PI/3, 4*PI/3);

View file

@ -117,9 +117,6 @@ for (var i = 0; i < numPlayers; i++)
addToClass(ix-5, iz, clPlayer);
addToClass(ix, iz-5, clPlayer);
// calculate size based on the radius
var hillSize = PI * radius * radius;
// create the city patch
var cityRadius = radius/3;
var placer = new ClumpPlacer(PI*cityRadius*cityRadius, 0.6, 0.3, 10, ix, iz);
@ -179,20 +176,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(10);

View file

@ -206,20 +206,7 @@ for (let i = 0; i < numPlayers; ++i)
break;
}
// Create grass tufts
num = (PI * radius * radius) / 250;
for (let j = 0; j < num; ++j)
{
let gAngle = randFloat(0, TWO_PI);
let gDist = radius - (5 + randInt(7));
let gX = round(fx + gDist * cos(gAngle));
let gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2, 5, 0, 1, -PI/8, PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(40);
@ -408,21 +395,6 @@ createForests(
random_terrain
);
log("Creating grass tufts...");
let num = (PI * radius * radius) / 250;
for (let j = 0; j < num; ++j)
{
let gAngle = randFloat(0, TWO_PI);
let gDist = radius - (5 + randInt(7));
let gX = round(fx + gDist * cos(gAngle));
let gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2, 5, 0, 1, -PI / 8, PI / 8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0, [avoidClasses(clMountain, 2, clPlayer, 2, clDirt, 0), stayClasses(clHill, 8)]);
}
log("Creating small grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 1, 2, 0, 1, -PI / 8, PI / 8)]

View file

@ -180,7 +180,7 @@ for (var i = 0; i < numPlayers; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 2;
var tAngle = randFloat(0, TWO_PI);
@ -193,20 +193,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);

View file

@ -186,7 +186,7 @@ for (var i = 0; i < numPlayers; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 2;
var tAngle = randFloat(-PI/3, 4*PI/3);
@ -199,20 +199,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);

View file

@ -242,7 +242,7 @@ for (var i = 0; i < numPlayers; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 2;
var tAngle = randFloat(-PI/3, 4*PI/3);
@ -255,20 +255,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);

View file

@ -113,9 +113,6 @@ for (var i = 0; i < numPlayers; i++)
addToClass(ix-5, iz, clPlayer);
addToClass(ix, iz-5, clPlayer);
// calculate size based on the radius
var hillSize = PI * radius * radius;
// create the city patch
var cityRadius = radius/3;
var placer = new ClumpPlacer(PI*cityRadius*cityRadius, 0.6, 0.3, 10, ix, iz);
@ -175,20 +172,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(10);

View file

@ -525,20 +525,7 @@ createObjectGroups(group, 0,
scaleByMapSize(10, 20), 100
);
log("Creating grass tufts...");
let num = (PI * radius * radius) / 250;
for (let j = 0; j < num; ++j)
{
let gAngle = randFloat(0, TWO_PI);
let gDist = radius - (5 + randInt(7));
let gX = round(fx + gDist * cos(gAngle));
let gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2, 5, 0, 1, -PI / 8, PI / 8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0, [stayClasses(clLand, 5)]);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius, [stayClasses(clLand, 5)]);
log("Creating small grass tufts...");
let planetm = random_terrain == 7 ? 8 : 1;

View file

@ -182,20 +182,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
//create docks
var dockLocation = getTIPIADBON([ix, iz], [mapSize / 2, mapSize / 2], [-3 , 2.6], 0.5, 3);

View file

@ -160,7 +160,7 @@ for (var i = 0; i < numPlayers; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 5;
var tAngle = randFloat(0, TWO_PI);
@ -173,20 +173,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);

View file

@ -411,8 +411,6 @@ for (var i = 1; i <= numPlayers; i++)
);
createObjectGroup(group, 0);
var radius = scaleByMapSize(15,25);
var hillSize = PI * radius * radius;
// create starting trees
var num = 5;
var tAngle = randFloat(-PI/3, 4*PI/3);

View file

@ -165,7 +165,7 @@ for (var i = 0; i < numPlayers; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 5;
var tAngle = randFloat(0, TWO_PI);
@ -178,20 +178,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);

View file

@ -185,20 +185,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
//create docks
var dockLocation = getTIPIADBON([ix, iz], [mapSize / 2, mapSize / 2], [-3 , 2.6], 0.5, 3);

View file

@ -154,7 +154,7 @@ for (var i = 0; i < numPlayers; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 2;
var tAngle = randFloat(-PI/3, 4*PI/3);
@ -167,20 +167,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aBush1, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aBush1, clBaseResource, radius);
}
RMS.SetProgress(30);

View file

@ -401,20 +401,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(30);

View file

@ -161,20 +161,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(15);

View file

@ -189,7 +189,7 @@ for (var i = 0; i < numPlayers; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 2;
var tAngle = randFloat(-PI/3, 4*PI/3);
@ -202,20 +202,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);

View file

@ -228,6 +228,28 @@ function placeDefaultChicken(playerX, playerZ, tileClass, constraint = undefined
break;
}
}
/**
* Typically used for placing grass tufts around the civic centers.
*/
function placeDefaultDecoratives(playerX, playerZ, template, tileclass, radius, constraint = undefined)
{
for (let i = 0; i < PI * radius * radius / 250; ++i)
{
let angle = randFloat(0, 2 * PI);
let dist = radius - randIntInclusive(5, 11);
createObjectGroup(
new SimpleGroup(
[new SimpleObject(template, 2, 5, 0, 1, -PI/8, PI/8)],
false,
tileclass,
Math.round(playerX + dist * Math.cos(angle)),
Math.round(playerZ + dist * Math.sin(angle))
), 0, constraint);
}
}
/////////////////////////////////////////////////////////////////////////////////////////
// paintTerrainBasedOnHeight
//

View file

@ -235,8 +235,6 @@ function createBase(player, walls = true)
g_Gaia.chicken
);
var hillSize = PI * g_MapInfo.mapRadius * g_MapInfo.mapRadius;
// Create starting trees
var num = g_MapInfo.biome == g_BiomeSavanna ? 5 : 15;
for (var tries = 0; tries < 10; ++tries)
@ -255,20 +253,13 @@ function createBase(player, walls = true)
break;
}
// Create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; ++j)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = g_MapInfo.mapRadius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(g_Decoratives.grassShort, 2, 5, 0, 1, -PI / 8, PI / 8)],
false, g_TileClasses.baseResource, gX, gZ
);
createObjectGroup(group, 0, avoidClasses(g_TileClasses.baseResource, 4));
}
placeDefaultDecoratives(
fx,
fz,
g_Decoratives.grassShort,
g_TileClasses.baseResource,
g_MapInfo.mapRadius,
avoidClasses(g_TileClasses.baseResource, 4));
}
/**

View file

@ -167,20 +167,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aBush1, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aBush1, clBaseResource, radius);
}
RMS.SetProgress(30);

View file

@ -151,7 +151,7 @@ for (var i = 0; i < numPlayers; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 5;
var tAngle = randFloat(-PI/3, 4*PI/3);
@ -164,20 +164,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);

View file

@ -1601,20 +1601,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, [avoidClasses(clBaseResource,2), stayClasses(clPlayer, 3)]);
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(30);

View file

@ -169,20 +169,7 @@ for (var i = 0; i < numPlayers; i++)
placeObject(ux, uz, "skirmish/units/default_infantry_melee_b", id, uAngle);
}
// create grass tufts
var num = radius * radius * 3.14 / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
var group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
var tang = startAngle + (i+0.5)*TWO_PI/numPlayers;
var placer = new PathPlacer(fractionToTiles(0.5), fractionToTiles(0.5), fractionToTiles(0.5 + 0.5*cos(tang)), fractionToTiles(0.5 + 0.5*sin(tang)), scaleByMapSize(14,24), 0.4, 3*(scaleByMapSize(1,3)), 0.2, 0.05);
@ -210,7 +197,7 @@ paintTerrainBasedOnHeight(3.12, 29, 1, tCliff);
paintTileClassBasedOnHeight(3.12, 29, 1, clHill);
// create trigger points for treasures
group = new SimpleGroup( [new SimpleObject("special/trigger_point_B", 1,1, 0,0)], true, clWomen);
var group = new SimpleGroup( [new SimpleObject("special/trigger_point_B", 1,1, 0,0)], true, clWomen);
createObjectGroups(group, 0,
[avoidClasses(clForest, 5, clPlayer, 5, clHill, 5), stayClasses(clLand, 5)],
scaleByMapSize(40, 140), 100

View file

@ -180,7 +180,7 @@ for (var i = 0; i < numPlayers; i++)
true, clBaseResource, mX, mZ
);
createObjectGroup(group, 0);
var hillSize = PI * radius * radius;
// create starting trees
var num = 2;
var tAngle = randFloat(-PI/3, 4*PI/3);
@ -193,20 +193,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aBush1, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aBush1, clBaseResource, radius);
}
RMS.SetProgress(30);

View file

@ -1721,20 +1721,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
for (var i = 0; i < numPlayers; i++)

View file

@ -1490,20 +1490,7 @@ for (var i = 0; i < numPlayers; i++)
);
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
// create grass tufts
var num = hillSize / 250;
for (var j = 0; j < num; j++)
{
var gAngle = randFloat(0, TWO_PI);
var gDist = radius - (5 + randInt(7));
var gX = round(fx + gDist * cos(gAngle));
var gZ = round(fz + gDist * sin(gAngle));
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 2,5, 0,1, -PI/8,PI/8)],
false, clBaseResource, gX, gZ
);
createObjectGroup(group, 0);
}
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
for (var i = 0; i < numPlayers; i++)