Skip to content

Commit

Permalink
ds_map_write_ini
Browse files Browse the repository at this point in the history
  • Loading branch information
omicronrex committed Jan 24, 2025
1 parent 9644290 commit 35bd027
Show file tree
Hide file tree
Showing 2 changed files with 119 additions and 73 deletions.
158 changes: 85 additions & 73 deletions gm82core.gej
Original file line number Diff line number Diff line change
Expand Up @@ -1538,148 +1538,149 @@
"returntype": 2
},
{
"name": "ds_list_equal",
"name": "ds_bag_add",
"extname": "",
"calltype": 2,
"helpline": "ds_list_equal(list1,list2)",
"helpline": "ds_bag_add(bag,item,[item...])",
"hidden": false,
"argtypes": [
2,
2
],
"argtypes": null,
"returntype": 2
},
{
"name": "ds_list_add_many",
"name": "ds_bag_clear",
"extname": "",
"calltype": 2,
"helpline": "ds_list_add_many(list,val...])",
"helpline": "ds_bag_clear(bag)",
"hidden": false,
"argtypes": null,
"argtypes": [
2
],
"returntype": 2
},
{
"name": "ds_map_add_copy",
"name": "ds_bag_create",
"extname": "",
"calltype": 2,
"helpline": "ds_map_add_copy(src,dest)",
"helpline": "ds_bag_create()",
"hidden": false,
"argtypes": [
2,
2
],
"argtypes": [],
"returntype": 2
},
{
"name": "ds_map_get",
"name": "ds_bag_destroy",
"extname": "",
"calltype": 2,
"helpline": "ds_map_get(map,key)",
"helpline": "ds_bag_destroy(bag)",
"hidden": false,
"argtypes": [
2,
2
],
"returntype": 2
},
{
"name": "ds_map_read_ini",
"name": "ds_bag_empty",
"extname": "",
"calltype": 2,
"helpline": "ds_map_read_ini(map,filename)",
"helpline": "ds_bag_empty(bag)",
"hidden": false,
"argtypes": [
2,
2
],
"returntype": 2
},
{
"name": "ds_map_read_ini_string",
"name": "ds_bag_grab",
"extname": "",
"calltype": 2,
"helpline": "ds_map_read_ini_string(map,string)",
"helpline": "ds_bag_grab(bag)",
"hidden": false,
"argtypes": [
2,
2
],
"returntype": 2
},
{
"name": "ds_map_set",
"name": "ds_bag_remove",
"extname": "",
"calltype": 2,
"helpline": "ds_map_set(map,key,value)",
"helpline": "ds_bag_remove(bag,item)",
"hidden": false,
"argtypes": [
2,
2,
2
],
"returntype": 2
},
{
"name": "ds_map_set_many",
"name": "ds_bag_size",
"extname": "",
"calltype": 2,
"helpline": "ds_map_set_many(map,key1,value1,key2,value2...)",
"helpline": "ds_bag_size(bag)",
"hidden": false,
"argtypes": null,
"argtypes": [
2
],
"returntype": 2
},
{
"name": "ds_stack_push_many",
"name": "ds_grid_set_many",
"extname": "",
"calltype": 2,
"helpline": "ds_stack_push_many(stack,val...)",
"helpline": "ds_grid_set_many(grid,x1,y1,value1,x2,y2,value2...)",
"hidden": false,
"argtypes": null,
"returntype": 2
},
{
"name": "ds_queue_enqueue_many",
"name": "ds_list_add_many",
"extname": "",
"calltype": 2,
"helpline": "ds_queue_enqueue_many(queue,val...)",
"helpline": "ds_list_add_many(list,val...])",
"hidden": false,
"argtypes": null,
"returntype": 2
},
{
"name": "ds_priority_add_many",
"name": "ds_list_equal",
"extname": "",
"calltype": 2,
"helpline": "ds_priority_add_many(queue,val1,prio1,val2,prio2...)",
"helpline": "ds_list_equal(list1,list2)",
"hidden": false,
"argtypes": null,
"argtypes": [
2,
2
],
"returntype": 2
},
{
"name": "ds_grid_set_many",
"name": "ds_map_add_copy",
"extname": "",
"calltype": 2,
"helpline": "ds_grid_set_many(grid,x1,y1,value1,x2,y2,value2...)",
"helpline": "ds_map_add_copy(src,dest)",
"hidden": false,
"argtypes": null,
"argtypes": [
2,
2
],
"returntype": 2
},
{
"name": "is_undefined",
"name": "ds_map_get",
"extname": "",
"calltype": 2,
"helpline": "is_undefined(value)",
"helpline": "ds_map_get(map,key)",
"hidden": false,
"argtypes": [
2,
2
],
"returntype": 2
},
{
"name": "ds_map_search",
"name": "ds_map_read_ini",
"extname": "",
"calltype": 2,
"helpline": "ds_map_search(map,value)",
"helpline": "ds_map_read_ini(map,filename)",
"hidden": false,
"argtypes": [
2,
Expand All @@ -1688,30 +1689,34 @@
"returntype": 2
},
{
"name": "ds_bag_create",
"name": "ds_map_read_ini_string",
"extname": "",
"calltype": 2,
"helpline": "ds_bag_create()",
"helpline": "ds_map_read_ini_string(map,string)",
"hidden": false,
"argtypes": [],
"argtypes": [
2,
2
],
"returntype": 2
},
{
"name": "ds_bag_clear",
"name": "ds_map_read_safe",
"extname": "",
"calltype": 2,
"helpline": "ds_bag_clear(bag)",
"helpline": "ds_map_read_safe(map,str)",
"hidden": false,
"argtypes": [
2,
2
],
"returntype": 2
},
{
"name": "ds_bag_remove",
"name": "ds_map_search",
"extname": "",
"calltype": 2,
"helpline": "ds_bag_remove(bag,item)",
"helpline": "ds_map_search(map,value)",
"hidden": false,
"argtypes": [
2,
Expand All @@ -1720,78 +1725,85 @@
"returntype": 2
},
{
"name": "ds_bag_destroy",
"name": "ds_map_set",
"extname": "",
"calltype": 2,
"helpline": "ds_bag_destroy(bag)",
"helpline": "ds_map_set(map,key,value)",
"hidden": false,
"argtypes": [
2,
2,
2
],
"returntype": 2
},
{
"name": "ds_bag_add",
"name": "ds_map_set_many",
"extname": "",
"calltype": 2,
"helpline": "ds_bag_add(bag,item,[item...])",
"helpline": "ds_map_set_many(map,key1,value1,key2,value2...)",
"hidden": false,
"argtypes": null,
"returntype": 2
},
{
"name": "ds_bag_grab",
"name": "ds_map_write_ini",
"extname": "",
"calltype": 2,
"helpline": "ds_bag_grab(bag)",
"helpline": "ds_map_write_ini(map,filename)",
"hidden": false,
"argtypes": [
2,
2
],
"returntype": 2
},
{
"name": "ds_bag_size",
"name": "ds_priority_add_many",
"extname": "",
"calltype": 2,
"helpline": "ds_bag_size(bag)",
"helpline": "ds_priority_add_many(queue,val1,prio1,val2,prio2...)",
"hidden": false,
"argtypes": [
2
],
"argtypes": null,
"returntype": 2
},
{
"name": "ds_bag_empty",
"name": "ds_queue_enqueue_many",
"extname": "",
"calltype": 2,
"helpline": "ds_bag_empty(bag)",
"helpline": "ds_queue_enqueue_many(queue,val...)",
"hidden": false,
"argtypes": [
2
],
"argtypes": null,
"returntype": 2
},
{
"name": "__gm82core_bag_check",
"name": "ds_stack_push_many",
"extname": "",
"calltype": 2,
"helpline": "",
"hidden": true,
"helpline": "ds_stack_push_many(stack,val...)",
"hidden": false,
"argtypes": null,
"returntype": 2
},
{
"name": "ds_map_read_safe",
"name": "is_undefined",
"extname": "",
"calltype": 2,
"helpline": "ds_map_read_safe(map,str)",
"helpline": "is_undefined(value)",
"hidden": false,
"argtypes": [
2,
2
],
"returntype": 2
},
{
"name": "__gm82core_bag_check",
"extname": "",
"calltype": 2,
"helpline": "",
"hidden": true,
"argtypes": null,
"returntype": 2
}
],
"constants": []
Expand Down
34 changes: 34 additions & 0 deletions source/data_structures.gml
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@
__p=string_pos("=",__str)
if (string_pos("[",__str) && string_pos("]",__str) && !__p)
__section=string_replace(string_replace(__str,"[",""),"]","")+" "
if (__section==" ") __section=""
else if (__p) {
ds_map_add(__map,__section+string_copy(__str,1,__p-1),string_delete(__str,1,__p))
}
Expand All @@ -178,6 +179,38 @@
return 0


#define ds_map_write_ini
///ds_map_write_ini(map,filename)
//map: ds map index
//filename: string, file to save
//Returns: whether the function was successful
//Writes a dsmap into an ini file. Spaces are used to split key sections.
var __map,__f,__section,__key,__val,__p;

__map=argument0

ini_open("temp.ini")
__key=ds_map_find_first(__map) repeat (ds_map_size(__map)) {
__val=ds_map_find_value(__map,__key)
__p=string_pos(" ",__key)
if (__p) {
__section=string_copy(__key,1,__p-1)
__key=string_delete(__key,1,__p)
} else __section=""
ini_write_string(__section,__key,string_better(__val))
__key=ds_map_find_next(__map,__key)}
ini_close()

sleep(1) //always sleep after file i/o!
file_delete(argument1)
sleep(1)
file_rename("temp.ini",argument1)
sleep(1)
file_delete("temp.ini")

return file_exists(argument1)


#define ds_map_read_ini_string
///ds_map_read_ini_string(map,string)
//map: ds map index
Expand All @@ -200,6 +233,7 @@
__p=string_pos("=",__str)
if (string_pos("[",__str) && string_pos("]",__str) && !__p)
__section=string_replace(string_replace(__str,"[",""),"]","")+" "
if (__section==" ") __section=""
else if (__p) {
ds_map_add(__map,__section+string_copy(__str,1,__p-1),string_delete(__str,1,__p))
}
Expand Down

0 comments on commit 35bd027

Please sign in to comment.