summaryrefslogtreecommitdiffstats
path: root/source/utils.js
diff options
context:
space:
mode:
authorBen Firshman <ben@firshman.co.uk>2010-09-20 00:30:56 +0100
committerBen Firshman <ben@firshman.co.uk>2010-09-20 00:30:56 +0100
commit6c415ef8e746dae2556f91b62f497807a9de55b1 (patch)
treef17274895cba27f38a23542f9708cac20acdf702 /source/utils.js
parenta765c54e36df50cb8f8e9e7b35e60c70e344f778 (diff)
downloadjsnes-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.js29
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;
}
};
+