summaryrefslogtreecommitdiff
path: root/src/save.c
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-01-02 13:59:28 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-02 13:59:28 (GMT)
commit4741e7682af209b7cf92900167566a2ce14d4036 (patch)
tree9c626848b141a37d828ad88e93da89d5c9ebbb43 /src/save.c
parentdc676157809b91a5dbd78aa2a2b585161385aa98 (diff)
downloadpowder-4741e7682af209b7cf92900167566a2ce14d4036.zip
powder-4741e7682af209b7cf92900167566a2ce14d4036.tar.gz
Save active menu
Diffstat (limited to 'src/save.c')
-rw-r--r--src/save.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/save.c b/src/save.c
index f872491..faf53ec 100644
--- a/src/save.c
+++ b/src/save.c
@@ -530,6 +530,10 @@ void *build_save_OPS(int *size, int orig_x0, int orig_y0, int orig_w, int orig_h
bson_append_bool(&b, "paused", sys_pause);
bson_append_int(&b, "gravityMode", gravityMode);
bson_append_int(&b, "airMode", airMode);
+
+ //bson_append_int(&b, "leftSelectedElement", sl);
+ //bson_append_int(&b, "rightSelectedElement", sr);
+ bson_append_int(&b, "activeMenu", active_menu);
if(partsData)
bson_append_binary(&b, "parts", BSON_BIN_USER, partsData, partsDataLen);
if(partsPosData)
@@ -862,6 +866,35 @@ int parse_save_OPS(void *save, int size, int replace, int x0, int y0, unsigned c
fprintf(stderr, "Wrong type for %s\n", bson_iterator_key(&iter));
}
}
+ /*else if((strcmp(bson_iterator_key(&iter), "leftSelectedElement")==0 || strcmp(bson_iterator_key(&iter), "rightSelectedElement")) && replace)
+ {
+ if(bson_iterator_type(&iter)==BSON_INT && bson_iterator_int(&iter) > 0 && bson_iterator_int(&iter) < PT_NUM)
+ {
+ if(bson_iterator_key(&iter)[0] == 'l')
+ {
+ sl = bson_iterator_int(&iter);
+ }
+ else
+ {
+ sr = bson_iterator_int(&iter);
+ }
+ }
+ else
+ {
+ fprintf(stderr, "Wrong type for %s\n", bson_iterator_key(&iter));
+ }
+ }*/
+ else if(strcmp(bson_iterator_key(&iter), "activeMenu")==0 && replace)
+ {
+ if(bson_iterator_type(&iter)==BSON_INT && bson_iterator_int(&iter) > 0 && bson_iterator_int(&iter) < SC_TOTAL && msections[bson_iterator_int(&iter)].doshow)
+ {
+ active_menu = bson_iterator_int(&iter);
+ }
+ else
+ {
+ fprintf(stderr, "Wrong value for %s\n", bson_iterator_key(&iter));
+ }
+ }
}
//Read wall and fan data