Page MenuHomeWildfire Games

Move ElevationPainter above the SmoothElevationPainter
ClosedPublic

Authored by elexis on Oct 25 2017, 10:48 PM.

Details

Summary

While cleaning a magic 4, an increment operator, repeated sums and unneeded helper variables of the ElevationPainter, move the simple ElevationPainter just above the SmoothElevationPainter and add a JSdo comment on its mechanism.
Move the constants that are only used by the SmoothElevationPainter to the SmoothElevationPainter.

Test Plan

Notice that the destructing assignment, the for...of loop and the repeated construction of the [[0, 0], ...] array each slow down the loop by some microseconds.
Waste an hour lifetime to do tests on Pyrenean Sierra or Deep Forest, which are the only maps using this painter.
Take my word for it that the sm45 doesn't improve the performance of these aspects or try it yourself: https://github.com/leper/0ad/tree/sm45
Read the createArea function and note that the greatest part of performance of rmgen is repeatedly randomizing of placer coordinates until the constraint is met and that the painter is only executed in O(n) on the given points,
hence those milliseconds being irrelevant.

Diff Detail

Repository
rP 0 A.D. Public Repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

elexis created this revision.Oct 25 2017, 10:48 PM
elexis edited the test plan for this revision. (Show Details)Oct 25 2017, 10:51 PM
Vulcan added a subscriber: Vulcan.Oct 25 2017, 10:51 PM

Build is green

Updating workspaces...
Build (release)...
Build (debug)...
Running release tests...
Running cxxtest tests (307 tests)...................................................................................................................................................................................................................................................................................................................OK!
Running debug tests...
Running cxxtest tests (307 tests)...................................................................................................................................................................................................................................................................................................................OK!
Checking XML files...

http://jenkins-master:8080/job/phabricator/2166/ for more details.

Executing section Default...
Executing section Source...
Executing section JS...

binaries/data/mods/public/maps/random/rmgen/painter.js
| 108| »   for·(var·i=0;·i·<·length;·i++)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 142| »   »   »   var·i=0;
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 156| »   »   for·(var·dx=-1;·dx<=1;·dx++)
|    | [NORMAL] JSHintBear:
|    | 'dx' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 158| »   »   »   var·nx·=·px+dx;
|    | [NORMAL] JSHintBear:
|    | 'nx' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 159| »   »   »   for·(var·dz=-1;·dz<=1;·dz++)
|    | [NORMAL] JSHintBear:
|    | 'dz' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 161| »   »   »   »   var·nz·=·pz+dz;
|    | [NORMAL] JSHintBear:
|    | 'nz' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 233| »   »   ||·(g_Map.inMapBounds(x-1,·z)·&&·g_Map.area[x-1][z]·==·areaID)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 234| »   »   ||·(g_Map.inMapBounds(x,·z-1)·&&·g_Map.area[x][z-1]·==·areaID)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 235| »   »   ||·(g_Map.inMapBounds(x-1,·z-1)·&&·g_Map.area[x-1][z-1]·==·areaID)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 265| »   for·(var·i=0;·i·<·length;·i++)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 288| »   for·(var·i=0;·i·<·length;·i++)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 290| »   »   var·x·=·pts[i].x;
|    | [NORMAL] JSHintBear:
|    | 'x' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 291| »   »   var·z·=·pts[i].z;
|    | [NORMAL] JSHintBear:
|    | 'z' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 292| »   »   for·(var·dx=-1;·dx·<=·2;·dx++)
|    | [NORMAL] JSHintBear:
|    | 'dx' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 294| »   »   »   var·nx·=·x+dx;
|    | [NORMAL] JSHintBear:
|    | 'nx' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 295| »   »   »   for·(var·dz=-1;·dz·<=·2;·dz++)
|    | [NORMAL] JSHintBear:
|    | 'dz' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 297| »   »   »   »   var·nz·=·z+dz;
|    | [NORMAL] JSHintBear:
|    | 'nz' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 346| »   »   for·(var·dx=-1;·dx·<=·1;·dx++)
|    | [NORMAL] JSHintBear:
|    | 'dx' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 348| »   »   »   var·nx·=·px+dx;
|    | [NORMAL] JSHintBear:
|    | 'nx' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 349| »   »   »   for·(var·dz=-1;·dz·<=·1;·dz++)
|    | [NORMAL] JSHintBear:
|    | 'dz' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 351| »   »   »   »   var·nz·=·pz+dz;
|    | [NORMAL] JSHintBear:
|    | 'nz' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 366| »   for·(var·i·=·0;·i·<·length;·++i)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 368| »   »   var·pt·=·heightPts[i];
|    | [NORMAL] JSHintBear:
|    | 'pt' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 369| »   »   var·px·=·pt.x;
|    | [NORMAL] JSHintBear:
|    | 'px' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 370| »   »   var·pz·=·pt.z;
|    | [NORMAL] JSHintBear:
|    | 'pz' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 377| »   »   »   for·(var·dx=-1;·dx·<=·1;·dx++)
|    | [NORMAL] JSHintBear:
|    | 'dx' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 379| »   »   »   »   var·nx·=·px+dx;
|    | [NORMAL] JSHintBear:
|    | 'nx' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 380| »   »   »   »   for·(var·dz=-1;·dz·<=·1;·dz++)
|    | [NORMAL] JSHintBear:
|    | 'dz' is already defined.

binaries/data/mods/public/maps/random/rmgen/painter.js
| 382| »   »   »   »   »   var·nz·=·pz+dz;
|    | [NORMAL] JSHintBear:
|    | 'nz' is already defined.
Executing section XML GUI...

http://jenkins-master:8080/job/phabricator_lint/631/ for more details.

This revision was automatically updated to reflect the committed changes.