diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 0000000..7f6b15b
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,20 @@
+{
+ "eqeqeq": true,
+ "esnext": true,
+ "forin": true,
+ "freeze": true,
+ "futurehostile": true,
+ "latedef": true,
+ "laxbreak": true,
+ "maxcomplexity": 100,
+ "maxdepth": 3,
+ "maxparams": 5,
+ "noarg": true,
+ "nocomma": true,
+ "node": true,
+ "nonbsp": true,
+ "nonew": true,
+ "undef": true,
+ "unused": true,
+ "varstmt": true
+}
diff --git a/Makefile.am b/Makefile.am
index 2fc3379..78665a5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -31,7 +31,12 @@ modindex: $(nsindex)
standalone: lasertank.js
lasertank.js: modindex
- ./node_modules/.bin/browserify -s lasertank --debug src/index.js > "$@"
+ ./node_modules/.bin/browserify \
+ -t strictify \
+ -s lasertank \
+ --debug \
+ src/index.js \
+ > "$@"
test: check
check:
diff --git a/package.json.in b/package.json.in
index bbb64e9..cc41e4b 100644
--- a/package.json.in
+++ b/package.json.in
@@ -20,7 +20,8 @@
"devDependencies": {
"chai": ">=1.9.1",
"mocha": ">=1.18.2",
- "browserify": "~12"
+ "browserify": "~12",
+ "strictify": "~0.2"
},
"licenses": [
diff --git a/src/ClassicGame.js b/src/ClassicGame.js
index ce6f116..0449713 100644
--- a/src/ClassicGame.js
+++ b/src/ClassicGame.js
@@ -18,17 +18,17 @@
*/
-var Class = require( 'easejs' ).Class,
- Game = require( './Game' ),
- ClassicGameObjectFactory = require( './ClassicGameObjectFactory' ),
- ClassicMap = require( './ClassicMap' ),
- ClassicTileDfn = require( './ClassicTileDfn' ),
- LtgLoader = require( './LtgLoader' ),
- MapBounds = require( './MapBounds' ),
- MapRender = require( './MapRender' ),
- MapSet = require( './MapSet' ),
- MapState = require( './MapState' ),
- TileMasker = require( './TileMasker' );
+const Class = require( 'easejs' ).Class,
+ Game = require( './Game' ),
+ ClassicGameObjectFactory = require( './ClassicGameObjectFactory' ),
+ ClassicMap = require( './ClassicMap' ),
+ ClassicTileDfn = require( './ClassicTileDfn' ),
+ LtgLoader = require( './LtgLoader' ),
+ MapBounds = require( './MapBounds' ),
+ MapRender = require( './MapRender' ),
+ MapSet = require( './MapSet' ),
+ MapState = require( './MapState' ),
+ TileMasker = require( './TileMasker' );
/**
* Facade for the classic (original) game of LaserTank
@@ -92,7 +92,7 @@ module.exports = Class( 'ClassicGame' )
*/
__construct: function( ltg_data, lvl_data )
{
- var _self = this;
+ const _self = this;
this._ltgLoader = LtgLoader();
this._masker = TileMasker( ClassicTileDfn() );
@@ -127,9 +127,9 @@ module.exports = Class( 'ClassicGame' )
this._render.clearCanvas();
}
- var map = this._mapSet.getMapByNumber( 1 ),
- map_state = MapState( map, this._gameObjFactory ),
- bounds = MapBounds( map );
+ const map = this._mapSet.getMapByNumber( 1 ),
+ map_state = MapState( map, this._gameObjFactory ),
+ bounds = MapBounds( map );
// render the first map (hardcoded for now)
this._render = MapRender( ctx, this._tileSet )
@@ -138,7 +138,7 @@ module.exports = Class( 'ClassicGame' )
// POC
window.onkeydown = function( event )
{
- var dir;
+ let dir;
switch ( event.keyCode )
{
@@ -171,8 +171,8 @@ module.exports = Class( 'ClassicGame' )
'public setTileData': function( data, callback )
{
// get tile metadata
- var _self = this,
- meta = this._ltgLoader.fromString( data );
+ const _self = this,
+ meta = this._ltgLoader.fromString( data );
this._masker.getMaskedTiles( meta.tiles, meta.mask, function( tdata )
{
diff --git a/src/ClassicGameObjectFactory.js b/src/ClassicGameObjectFactory.js
index 4c36d5d..f20cb9a 100644
--- a/src/ClassicGameObjectFactory.js
+++ b/src/ClassicGameObjectFactory.js
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-var Class = require( 'easejs' ).Class,
- GameObjectFactory = require( './GameObjectFactory' ),
- GameObject = require( './gameobjs/GameObject' ),
- Tank = require( './gameobjs/Tank' );
+const Class = require( 'easejs' ).Class,
+ GameObjectFactory = require( './GameObjectFactory' ),
+ GameObject = require( './gameobjs/GameObject' ),
+ Tank = require( './gameobjs/Tank' );
module.exports = Class( 'ClassicGameObjectFactory' )
diff --git a/src/ClassicMap.js b/src/ClassicMap.js
index e436fb7..c8a8c88 100644
--- a/src/ClassicMap.js
+++ b/src/ClassicMap.js
@@ -40,8 +40,8 @@
* display.
*/
-var Class = require( 'easejs' ).Class,
- Map = require( './Map' );
+const Class = require( 'easejs' ).Class,
+ Map = require( './Map' );
/**
@@ -170,8 +170,8 @@ module.exports = Class( 'ClassicMap' )
*/
'public getObjects': function()
{
- var tiles = this._getDataSegment( '_GOSIZE', false ).split( '' ),
- i = tiles.length;
+ const tiles = this._getDataSegment( '_GOSIZE', false ).split( '' );
+ let i = tiles.length;
while ( i-- )
{
@@ -192,8 +192,8 @@ module.exports = Class( 'ClassicMap' )
{
stripnull = ( arguments.length < 2 ) ? true : !!stripnull;
- var s = this.__self.$( name ),
- data = this._data.substr( ( this._offset + s[ 0 ] ), s[ 1 ] );
+ const s = this.__self.$( name ),
+ data = this._data.substr( ( this._offset + s[ 0 ] ), s[ 1 ] );
return ( stripnull )
? data.split( '\0' )[ 0 ]
@@ -247,7 +247,7 @@ module.exports = Class( 'ClassicMap' )
{
// get the tunnel id by stripping off the tunnel bitmask and then grab
// the associated color
- var tunnel_id = ( ( +oid ^ this.__self.$( '_TMASK' ) ) / 2 );
+ const tunnel_id = ( ( +oid ^ this.__self.$( '_TMASK' ) ) / 2 );
return this.__self.$( '_TCOLORS' )[ tunnel_id ] || 'black';
},
@@ -311,9 +311,10 @@ module.exports = Class( 'ClassicMap' )
*/
'public getMapDifficulty': function()
{
- var val = this._getDataSegment( '_DIFFSIZE', false ),
- i = val.length,
- n = 0;
+ const val = this._getDataSegment( '_DIFFSIZE', false );
+
+ let i = val.length,
+ n = 0;
// first, convert the value to an integer (from little-endian)
while ( i-- ) n += ( val.charCodeAt( i ) << ( 8 * i ) );
diff --git a/src/ClassicTileDfn.js b/src/ClassicTileDfn.js
index 0fef088..d506850 100644
--- a/src/ClassicTileDfn.js
+++ b/src/ClassicTileDfn.js
@@ -17,8 +17,8 @@
* along with this program. If not, see .
*/
-var Class = require( 'easejs' ).Class,
- TileDfn = require( './TileDfn' );
+const Class = require( 'easejs' ).Class,
+ TileDfn = require( './TileDfn' );
/**
diff --git a/src/FileLoader.js b/src/FileLoader.js
index 28ab62d..52bbc6b 100644
--- a/src/FileLoader.js
+++ b/src/FileLoader.js
@@ -21,7 +21,7 @@
* specs, as it depends on FileReader.
*/
-var Class = require( 'easejs' ).Class;
+const Class = require( 'easejs' ).Class;
/**
@@ -100,12 +100,12 @@ module.exports = Class( 'FileLoader',
*/
'private _loadFile': function( event )
{
- var _self = this,
- files = event.target.files;
+ const _self = this,
+ files = event.target.files;
if ( files.length === 0 ) return;
- var reader = new FileReader();
+ const reader = new FileReader();
reader.onload = function( revent )
{
_self._callback.call( this.__inst, null, revent.target.result );
diff --git a/src/Game.js b/src/Game.js
index 30a4cf2..c3467f5 100644
--- a/src/Game.js
+++ b/src/Game.js
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-var Interface = require( 'easejs' ).Interface;
+const Interface = require( 'easejs' ).Interface;
/**
diff --git a/src/GameObjectFactory.js b/src/GameObjectFactory.js
index a9bec24..eff3e8c 100644
--- a/src/GameObjectFactory.js
+++ b/src/GameObjectFactory.js
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-var Interface = require( 'easejs' ).Interface;
+const Interface = require( 'easejs' ).Interface;
module.exports = Interface( 'GameObjectFactory',
diff --git a/src/LtgLoader.js b/src/LtgLoader.js
index 5c41bf0..bc3be30 100644
--- a/src/LtgLoader.js
+++ b/src/LtgLoader.js
@@ -42,7 +42,7 @@
* identify the file as a bitmap image.)
*/
-var Class = require( 'easejs' ).Class;
+const Class = require( 'easejs' ).Class;
/**
@@ -73,7 +73,7 @@ module.exports = Class( 'LtgLoader',
*/
'public fromString': function( ltg_data )
{
- var mask_offset = this._getMaskOffsetFromData( ltg_data );
+ const mask_offset = this._getMaskOffsetFromData( ltg_data );
return {
name: this._getNameFromData( ltg_data ),
@@ -112,7 +112,7 @@ module.exports = Class( 'LtgLoader',
sgmt = this.__self.$( sgmt );
}
- var data = String.prototype.substr.apply( ltg_data, sgmt );
+ const data = String.prototype.substr.apply( ltg_data, sgmt );
return ( stripnull )
? data.split( '\x00' )[ 0 ]
@@ -187,8 +187,9 @@ module.exports = Class( 'LtgLoader',
// grab the data and don't bother stripping off the null bytes (it would
// function the same with them stripped, but let's avoid the confusion
// since we are supposed to be working with a 32-bit value)
- var data = this._getDataSegment( ltg_data, '_POS_MOFF', false ),
- i = data.length,
+ const data = this._getDataSegment( ltg_data, '_POS_MOFF', false );
+
+ let i = data.length,
offset = 0;
// convert the DWORD entry (little-endian format, 32-bit) into an
@@ -234,7 +235,7 @@ module.exports = Class( 'LtgLoader',
*/
'private _getGameBitmap': function( ltg_data, mask_offset )
{
- var bmp_offset = this.__self.$( '_OFFSET_HEADER_END' );
+ const bmp_offset = this.__self.$( '_OFFSET_HEADER_END' );
// return the bitmap data up until the mask offset
return ltg_data.substr( bmp_offset, ( mask_offset - bmp_offset ) );
diff --git a/src/Map.js b/src/Map.js
index 7e7b46e..ef07389 100644
--- a/src/Map.js
+++ b/src/Map.js
@@ -29,7 +29,7 @@
* tunnel identified by index 0 is 0x40, index 1 is 0x42, and so on.
*/
-var Interface = require( 'easejs' ).Interface;
+const Interface = require( 'easejs' ).Interface;
/**
diff --git a/src/MapAction.js b/src/MapAction.js
index ed21069..601753b 100644
--- a/src/MapAction.js
+++ b/src/MapAction.js
@@ -17,8 +17,8 @@
* along with this program. If not, see .
*/
-var Class = require( 'easejs' ).Class,
- MapBounds = require( './MapBounds' );
+const Class = require( 'easejs' ).Class,
+ MapBounds = require( './MapBounds' );
module.exports = Class( 'MapAction',
@@ -57,7 +57,7 @@ module.exports = Class( 'MapAction',
'public move': function()
{
- var method = [
+ const method = [
'getLeftPos',
'getUpperPos',
'getRightPos',
diff --git a/src/MapBounds.js b/src/MapBounds.js
index ed4884e..829b7e3 100644
--- a/src/MapBounds.js
+++ b/src/MapBounds.js
@@ -17,8 +17,8 @@
* along with this program. If not, see .
*/
-var Class = require( 'easejs' ).Class,
- Map = require( './Map' );
+const Class = require( 'easejs' ).Class,
+ Map = require( './Map' );
/**
@@ -55,7 +55,8 @@ module.exports = Class( 'MapBounds',
}
// we are only interested in the dimensions of the map
- var dimen = map.getDimensions();
+ const dimen = map.getDimensions();
+
this._mw = dimen[ 0 ];
this._mh = dimen[ 1 ];
},
diff --git a/src/MapRender.js b/src/MapRender.js
index 8820d3f..ccdf305 100644
--- a/src/MapRender.js
+++ b/src/MapRender.js
@@ -17,8 +17,8 @@
* along with this program. If not, see .
*/
-var Class = require( 'easejs' ).Class,
- MapState = require( './MapState' );
+const Class = require( 'easejs' ).Class,
+ MapState = require( './MapState' );
/**
@@ -97,8 +97,8 @@ module.exports = Class( 'MapRender',
*/
'private _lockCanvas': function()
{
- var o = this._ctx,
- l = this.__self.$( '_LOCK' );
+ const o = this._ctx,
+ l = this.__self.$( '_LOCK' );
// simple one-line check to both set the lock and fail if the lock is
// already set (implying that something else is already rendering to the
@@ -127,7 +127,7 @@ module.exports = Class( 'MapRender',
*/
'public freeCanvas': function()
{
- var c = this._ctxObj.canvas;
+ const c = this._ctxObj.canvas;
// clear any running animations
this._clearAnimation();
@@ -148,8 +148,8 @@ module.exports = Class( 'MapRender',
*/
'private _getObjCanvas': function()
{
- var canvas = this._ctx.canvas,
- canvas_obj = document.createElement( 'canvas' );
+ const canvas = this._ctx.canvas,
+ canvas_obj = document.createElement( 'canvas' );
// mimic the dimensions and positions of the original canvas
canvas_obj.style.position = 'absolute';
@@ -179,33 +179,31 @@ module.exports = Class( 'MapRender',
throw TypeError( 'Invalid MapState provided' );
}
- var objs = map.getObjects(),
- size = map.getDimensions(),
- omap = map.getObjectTileMap(),
- sizex = size[ 0 ],
- sizey = size[ 1 ],
- i = objs.length,
+ const objs = map.getObjects(),
+ size = map.getDimensions(),
+ sizex = size[ 0 ],
+ sizey = size[ 1 ],
- // tiles to animate
- anim = [],
+ // tiles to animate
+ anim = [],
- // get the width and height from one of the tiles
- t = this._tiles.dirt.data,
- w = t.width,
- h = t.height;
+ // get the width and height from one of the tiles
+ t = this._tiles.dirt.data,
+ w = t.width,
+ h = t.height;
this._clearCanvases();
- var _self = this;
+ const _self = this;
map_state.onChange( function( obj, pos )
{
- var oid = objs[ pos ],
- tid = ( obj ) ? obj.getTid() : 'dirt',
- tile = ( _self._tiles[ tid ] || {} ).first,
+ const oid = objs[ pos ],
+ tid = ( obj ) ? obj.getTid() : 'dirt',
+ tile = ( _self._tiles[ tid ] || {} ).first,
- v = _self._getTileVector( pos, sizex, sizey, w, h ),
- x = v[ 0 ],
- y = v[ 1 ];
+ v = _self._getTileVector( pos, sizex, sizey, w, h ),
+ x = v[ 0 ],
+ y = v[ 1 ];
if ( obj === null )
{
@@ -280,8 +278,8 @@ module.exports = Class( 'MapRender',
*/
'private _clearCanvases': function()
{
- var ctx = this._ctxObj,
- c = ctx.canvas;
+ const ctx = this._ctxObj,
+ c = ctx.canvas;
// we need only clear the overlay (to which masked tiles are rendered)
ctx.clearRect( 0, 0, c.width, c.height );
@@ -297,7 +295,7 @@ module.exports = Class( 'MapRender',
*/
'private _canAnimate': function( tid )
{
- var tdata = this._tiles[ tid ];
+ const tdata = this._tiles[ tid ];
return ( tdata.next !== tdata );
},
@@ -317,7 +315,7 @@ module.exports = Class( 'MapRender',
*/
'private _drawTile': function( tile, x, y )
{
- var ctx = ( tile.masked ) ? this._ctxObj : this._ctx;
+ const ctx = ( tile.masked ) ? this._ctxObj : this._ctx;
ctx.putImageData( tile.data, x, y );
@@ -349,7 +347,7 @@ module.exports = Class( 'MapRender',
*/
'private _renderTunnel': function( x, y, color )
{
- var tdata = this._tiles.tunnel.data;
+ const tdata = this._tiles.tunnel.data;
// fill tile with the appropriate background color for this tile
this._ctx.fillStyle = color;
@@ -373,24 +371,24 @@ module.exports = Class( 'MapRender',
*/
'private _beginAnimation': function( anim )
{
- var _self = this;
+ const _self = this;
// clear any existing rendering animations
this._clearAnimation();
- return this._animTimer = setInterval( function()
+ return ( this._animTimer = setInterval( function()
{
- var i = anim.length;
+ let i = anim.length;
while ( i-- )
{
- var cur = anim[ i ];
+ const cur = anim[ i ];
// draw next frame
cur[ 0 ] = cur[ 0 ].next;
_self._drawTile.apply( _self, anim[ i ] );
}
- }, this.__self.$( '_ANIM_INTERVAL' ) );
+ }, this.__self.$( '_ANIM_INTERVAL' ) ) );
},
diff --git a/src/MapSet.js b/src/MapSet.js
index 8f3a2c5..63b19fc 100644
--- a/src/MapSet.js
+++ b/src/MapSet.js
@@ -21,7 +21,7 @@
* file.
*/
-var Class = require( 'easejs' ).Class;
+const Class = require( 'easejs' ).Class;
@@ -85,7 +85,7 @@ module.exports = Class( 'MapSet',
*/
'private _mapDataCheck': function()
{
- var n = ( this._data.length / this._mapCtor.getMapSize() );
+ const n = ( this._data.length / this._mapCtor.getMapSize() );
// if the result is not an integer, then it is either not an LVL, the
// file is corrupt, or we were given the wrong Map constructor
diff --git a/src/MapState.js b/src/MapState.js
index bd4f97a..7879e03 100644
--- a/src/MapState.js
+++ b/src/MapState.js
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-var Class = require( 'easejs' ).Class,
- MapAction = require( './MapAction' ),
- GameObjectFactory = require( './GameObjectFactory' ),
- GameObject = require( './gameobjs/GameObject' );
+const Class = require( 'easejs' ).Class,
+ MapAction = require( './MapAction' ),
+ GameObjectFactory = require( './GameObjectFactory' ),
+ GameObject = require( './gameobjs/GameObject' );
/**
@@ -92,7 +92,7 @@ module.exports = Class( 'MapState',
*/
'public flush': function()
{
- var _self = this;
+ const _self = this;
// emit the change event for each game object
this._forEachObj( function( obj, pos )
@@ -143,8 +143,8 @@ module.exports = Class( 'MapState',
*/
'private _emitChange': function( obj, pos )
{
- var i = -1,
- l = this._stateCallbacks.length;
+ const l = this._stateCallbacks.length;
+ let i = -1;
while ( ++i < l )
{
@@ -153,7 +153,7 @@ module.exports = Class( 'MapState',
if ( obj === null )
{
- var _self = this;
+ const _self = this;
this._objs[ pos ].forEach( function( o )
{
if ( o === null ) return;
@@ -178,12 +178,12 @@ module.exports = Class( 'MapState',
*/
'private _initObjects': function( objs, objmap )
{
- var i = objs.length;
+ let i = objs.length;
while ( i-- )
{
- var val = objs[ i ],
- obj = this._createObj( objmap[ val ] );
+ const val = objs[ i ],
+ obj = this._createObj( objmap[ val ] );
this._objs[ i ] = [];
this._addObj( obj, i );
@@ -214,7 +214,7 @@ module.exports = Class( 'MapState',
*/
'private _createObj': function( tid, from )
{
- var obj = this._objFactory.createObject( tid );
+ const obj = this._objFactory.createObject( tid );
// if a previous object was provided, copy over its mutable attributes
if ( from )
@@ -301,8 +301,7 @@ module.exports = Class( 'MapState',
*/
'private _replaceObj': function( cur, newobj, pos )
{
- var o = this._objs[ pos ],
- i = o.length;
+ const o = this._objs[ pos ];
// type checks
if ( !( Array.isArray( o ) ) )
@@ -316,29 +315,27 @@ module.exports = Class( 'MapState',
throw TypeError( "Invalid GameObject or null provided: " + newobj );
}
- var free = null;
+ let i = o.length,
+ free = null;
- ( function()
+ while ( i-- )
{
- while ( i-- )
+ if ( o[ i ] === cur )
{
- if ( o[ i ] === cur )
- {
- o[ i ] = newobj;
- return;
- }
- else if ( o[ i ] === null )
- {
- // record this as a free position for additions
- free = i;
- }
+ o[ i ] = newobj;
+ return;
}
+ else if ( o[ i ] === null )
+ {
+ // record this as a free position for additions
+ free = i;
+ }
+ }
- // not found; add
- if ( newobj === null ) return;
- else if ( free ) o[ i ] = newobj;
- else o.push( newobj );
- } )();
+ // not found; add
+ if ( newobj === null ) return;
+ else if ( free ) o[ i ] = newobj;
+ else o.push( newobj );
// notify observers of the change
this._emitChange( newobj, pos );
@@ -435,7 +432,7 @@ module.exports = Class( 'MapState',
}
// replace game object with a new one
- var newobj = this._createObj( state, cur );
+ const newobj = this._createObj( state, cur );
this._replaceObj( cur, newobj, pos );
return newobj;
@@ -460,11 +457,11 @@ module.exports = Class( 'MapState',
*/
'private _createStateCallback': function( cur, pos, c )
{
- var _self = this;
+ const _self = this;
return function( state )
{
- var newobj = _self._changeState( cur, state, pos );
+ const newobj = _self._changeState( cur, state, pos );
if ( typeof c === 'function' )
{
@@ -493,7 +490,7 @@ module.exports = Class( 'MapState',
*/
'private _createMoveCallback': function( obj, pos, c )
{
- var _self = this;
+ const _self = this;
return function( dest )
{
@@ -523,11 +520,11 @@ module.exports = Class( 'MapState',
*/
'public movePlayer': function( direction, bounds )
{
- var _self = this,
- player = this._player;
+ const _self = this,
+ player = this._player;
// XXX: tightly coupled
- var action = MapAction(
+ const action = MapAction(
bounds,
this._createMoveCallback( player, this._playerPos, function( pos )
{
@@ -535,10 +532,14 @@ module.exports = Class( 'MapState',
} )
);
- var sc = this._createStateCallback( player, this._playerPos, function( o )
- {
- _self._player = o;
- } );
+ const sc = this._createStateCallback(
+ player,
+ this._playerPos,
+ function( o )
+ {
+ _self._player = o;
+ }
+ );
action.direction = direction;
action.srcPos = this._playerPos;
diff --git a/src/TileDfn.js b/src/TileDfn.js
index 80a0988..031ff34 100644
--- a/src/TileDfn.js
+++ b/src/TileDfn.js
@@ -75,7 +75,7 @@
* thinice - thin ice
*/
- var Interface = require( 'easejs' ).Interface;
+ const Interface = require( 'easejs' ).Interface;
/**
diff --git a/src/TileMasker.js b/src/TileMasker.js
index 72f0087..8f76c8f 100644
--- a/src/TileMasker.js
+++ b/src/TileMasker.js
@@ -63,8 +63,8 @@
* rendering.
*/
-var Class = require( 'easejs' ).Class,
- TileDfn = require( './TileDfn' );
+const Class = require( 'easejs' ).Class,
+ TileDfn = require( './TileDfn' );
/**
* Slices tiles and applies masks
@@ -137,7 +137,7 @@ module.exports = Class( 'TileMasker',
// rather than accepting a context, we will create our own canvas in
// memory to perform our operations (it will not be added to the DOM, so
// these operations will not be visible to the user)
- var context = document.createElement( 'canvas' ).getContext( '2d' );
+ let context = document.createElement( 'canvas' ).getContext( '2d' );
// size the canvas so that it can fit the entire tileset
context.canvas.width = this._setWidth;
@@ -161,8 +161,8 @@ module.exports = Class( 'TileMasker',
'private _calcSetDimensions': function( tile_dfn )
{
// these vars are for clarity
- var sizes = tile_dfn.getTileDimensions(),
- n = this._tileDfn.length;
+ const sizes = tile_dfn.getTileDimensions(),
+ n = this._tileDfn.length;
// store values so that we do not have to make additional calls to our
// TileDfn instance
@@ -201,7 +201,7 @@ module.exports = Class( 'TileMasker',
*/
'public getMaskedTiles': function( bmp_game, bmp_mask, callback )
{
- var _self = this;
+ const _self = this;
this._getImageData( bmp_mask, function( data_mask )
{
@@ -248,26 +248,27 @@ module.exports = Class( 'TileMasker',
*/
'virtual protected getMaskedTileSet': function( data_mask, callback )
{
- var tdata = this._tileDfn,
- tiles = {},
- i = -1,
- len = tdata.length,
+ const tdata = this._tileDfn,
+ len = tdata.length,
- // shorten the names
- tw = this._tileWidth,
- th = this._tileHeight,
- xn = this._tilesPerRow;
+ // shorten the names
+ tw = this._tileWidth,
+ th = this._tileHeight,
+ xn = this._tilesPerRow;
+
+ let tiles = {},
+ i = -1;
// create each tile (preserving order, thus no decrementing)
while ( ++i < len )
{
- var id = tdata[ i ][ 0 ],
- mask = tdata[ i ][ 1 ],
+ const id = tdata[ i ][ 0 ],
+ mask = tdata[ i ][ 1 ];
- // calculate the X and Y position of this tile based on the tile
- // and bitmap dimensions
- x = ( ( i % xn ) * th ),
- y = ( ( Math.floor( i / xn ) ) * tw );
+ // calculate the X and Y position of this tile based on the tile
+ // and bitmap dimensions
+ const x = ( ( i % xn ) * th ),
+ y = ( ( Math.floor( i / xn ) ) * tw );
// the third index indicates whether or not a mask should be applied
// to the tile
@@ -297,7 +298,7 @@ module.exports = Class( 'TileMasker',
*/
'protected appendTileFrame': function( set, id, mask, data )
{
- var prev = set[ id ];
+ const prev = set[ id ];
set[ id ] = {
data: data,
@@ -314,7 +315,7 @@ module.exports = Class( 'TileMasker',
// if there was a previous entry, set its 'next' entry to our new frame,
// expanding the linked list
- prev && ( prev.next = set[ id ] )
+ if ( prev ) prev.next = set[ id ];
},
@@ -347,18 +348,19 @@ module.exports = Class( 'TileMasker',
*/
'virtual protected getMaskedTileData': function( data_mask, x, y )
{
- var raw = this.getTileData( x, y ),
- w = raw.width,
- h = raw.height,
- mw = data_mask.width,
- yi = h;
+ const raw = this.getTileData( x, y ),
+ w = raw.width,
+ h = raw.height,
+ mw = data_mask.width;
+
+ let yi = h;
// apply the mask to the raw tile data (simple and easy-to-understand
// algorithm; we can refine it later if need be), looping through each
// pixel
while ( yi-- )
{
- xi = w;
+ let xi = w;
while ( xi-- )
{
@@ -366,8 +368,8 @@ module.exports = Class( 'TileMasker',
// (remember that, although we are dealing with applying the
// mask to a single tile, the mask image contains all tiles, so
// we must calculate its position accordingly)
- var mi = ( ( ( yi + y ) * ( mw * 4 ) ) + ( ( xi + x ) * 4 ) ),
- mr = data_mask.data[ mi ];
+ const mi = ( ( ( yi + y ) * ( mw * 4 ) ) + ( ( xi + x ) * 4 ) ),
+ mr = data_mask.data[ mi ];
// manipulate the alpha channel of our tile; if the R value for
// the mask is not 0, then this pixel in our tile should be
@@ -414,8 +416,8 @@ module.exports = Class( 'TileMasker',
*/
'private _renderImage': function( bmp, callback )
{
- var _self = this,
- img = new Image();
+ const _self = this,
+ img = new Image();
img.onload = function()
{
@@ -437,7 +439,7 @@ module.exports = Class( 'TileMasker',
*/
'private _getImageData': function( bmp, callback )
{
- var _self = this;
+ const _self = this;
this._renderImage( bmp, function()
{
diff --git a/src/gameobjs/GameObject.js b/src/gameobjs/GameObject.js
index 206e80d..7d0abed 100644
--- a/src/gameobjs/GameObject.js
+++ b/src/gameobjs/GameObject.js
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-var Class = require( 'easejs' ).Class;
+const Class = require( 'easejs' ).Class;
module.exports = Class( 'GameObject',
diff --git a/src/gameobjs/Tank.js b/src/gameobjs/Tank.js
index 3d239fd..073aeae 100644
--- a/src/gameobjs/Tank.js
+++ b/src/gameobjs/Tank.js
@@ -17,8 +17,8 @@
* along with this program. If not, see .
*/
-var Class = require( 'easejs' ).Class,
- GameObject = require( './GameObject' );
+const Class = require( 'easejs' ).Class,
+ GameObject = require( './GameObject' );
module.exports = Class( 'Tank' )
@@ -26,12 +26,12 @@ module.exports = Class( 'Tank' )
{
'override public move': function( direction, c, sc )
{
- var state = [ 'tleft', 'tup', 'tright', 'tdown' ][ direction ];
+ const state = [ 'tleft', 'tup', 'tright', 'tdown' ][ direction ];
if ( state !== this.getTid() )
{
sc( state );
- return;
+ return this;
}
// let parent handle the movement
diff --git a/src/gameobjs/classic/TankDown.js b/src/gameobjs/classic/TankDown.js
index f2bc0dc..efbcf4e 100644
--- a/src/gameobjs/classic/TankDown.js
+++ b/src/gameobjs/classic/TankDown.js
@@ -17,8 +17,8 @@
* along with this program. If not, see .
*/
-var Class = require( 'easejs' ).Class,
- Tank = require( '../Tank' );
+const Class = require( 'easejs' ).Class,
+ Tank = require( '../Tank' );
module.exports = Class( 'TankDown' )
diff --git a/src/ui/MenuBar.js b/src/ui/MenuBar.js
index d7988e2..dd44473 100644
--- a/src/ui/MenuBar.js
+++ b/src/ui/MenuBar.js
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-var Class = require( 'easejs' ).Class;
+const Class = require( 'easejs' ).Class;
/**
@@ -68,16 +68,15 @@ module.exports = Class( 'MenuBar',
*/
'private _initMenuActivation': function()
{
- var _self = this,
- id = this._bar.id,
- menus = this._bar.parentNode.querySelectorAll( '#'+id+' > li > a' ),
- i = menus.length,
+ const id = this._bar.id,
+ menus = this._bar.parentNode.querySelectorAll( '#'+id+' > li > a' ),
+ click = function( event )
+ {
+ event.target.parentNode.parentNode.className += ' focus';
+ return false;
+ };
- click = function( event )
- {
- event.target.parentNode.parentNode.className += ' focus';
- return false;
- };
+ let i = menus.length;
// on menu click, apply focus class (this allows the menu to be opened
// properly on click rather than a simple CSS hover menu)
@@ -103,8 +102,8 @@ module.exports = Class( 'MenuBar',
*/
'private _hookMenuMouseOut': function()
{
- var _self = this,
- bar = this._bar;
+ const _self = this,
+ bar = this._bar;
this._bar.addEventListener( 'mouseout', function( event )
{
diff --git a/src/version.js.in b/src/version.js.in
index 94df6af..db60588 100644
--- a/src/version.js.in
+++ b/src/version.js.in
@@ -19,7 +19,7 @@
* this program. If not, see .
*/
-var major = @MAJOR@,
+let major = @MAJOR@,
minor = @MINOR@,
rev = @REV@,
suffix = '@SUFFIX@',