diff options
author | Ben Firshman <ben@firshman.co.uk> | 2010-09-20 00:30:56 +0100 |
---|---|---|
committer | Ben Firshman <ben@firshman.co.uk> | 2010-09-20 00:30:56 +0100 |
commit | 6c415ef8e746dae2556f91b62f497807a9de55b1 (patch) | |
tree | f17274895cba27f38a23542f9708cac20acdf702 /source/utils.js | |
parent | a765c54e36df50cb8f8e9e7b35e60c70e344f778 (diff) | |
download | jsnes-6c415ef8e746dae2556f91b62f497807a9de55b1.zip jsnes-6c415ef8e746dae2556f91b62f497807a9de55b1.tar.gz jsnes-6c415ef8e746dae2556f91b62f497807a9de55b1.tar.bz2 |
Added state saving and loading
Diffstat (limited to 'source/utils.js')
-rw-r--r-- | source/utils.js | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/source/utils.js b/source/utils.js index 5afc5e3..842e328 100644 --- a/source/utils.js +++ b/source/utils.js @@ -17,9 +17,32 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ JSNES.Utils = { - arraycopy: function(src, srcPos, dest, destPos, length) { - for (var i=0; i<length; ++i) { - dest[destPos+i] = src[srcPos+i]; + copyArrayElements: function(src, srcPos, dest, destPos, length) { + for (var i = 0; i < length; ++i) { + dest[destPos + i] = src[srcPos + i]; } + }, + + copyArray: function(src) { + var dest = new Array(src.length); + for (var i = 0; i < src.length; i++) { + dest[i] = src[i]; + } + return dest; + }, + + fromJSON: function(obj, state) { + for (var i = 0; i < obj.JSON_PROPERTIES.length; i++) { + obj[obj.JSON_PROPERTIES[i]] = state[obj.JSON_PROPERTIES[i]]; + } + }, + + toJSON: function(obj) { + var state = {}; + for (var i = 0; i < obj.JSON_PROPERTIES.length; i++) { + state[obj.JSON_PROPERTIES[i]] = obj[obj.JSON_PROPERTIES[i]]; + } + return state; } }; + |