From e6359255a4deb88cf45dbb4021c036d75b66eda4 Mon Sep 17 00:00:00 2001 From: Anonymus Raccoon Date: Tue, 14 Apr 2020 13:44:56 +0200 Subject: [PATCH] Adding a save button --- assets/ui/save.png | Bin 0 -> 301 bytes include/map_editor.h | 2 ++ lib/gamacon | 2 +- prefabs/editor_ui.gcprefab | 19 ++++++++++--------- prefabs/game.gcprefab | 1 + src/game_loader.c | 1 + src/map_editor/map_interactions.c | 1 - src/map_editor/selectors.c | 25 +++++++++++++++++++++++++ 8 files changed, 40 insertions(+), 11 deletions(-) create mode 100644 assets/ui/save.png diff --git a/assets/ui/save.png b/assets/ui/save.png new file mode 100644 index 0000000000000000000000000000000000000000..fa418a7d5d594ec02b80bd684018807a0aec92ca GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtFP<)rAr*{ouL<%vC5p5?ta04O zEq>@hyFmtb)0`%S_Bl^(~7M~7Ox|QkjM(}NklGl;?z7BpnE9aKH21O^c19A)H6Z$XkH#jt~S2#?z z0Z|}yP%QY%gyg2VH4J()9^5>(B7}JzN5$5eSqG$6T5GUas4&-wc-qOCO*E|wqwP9A=POw9_{0EyYc7O)D;4*a}w_bYAk4| uWHe1W?3GfH&FCJ&E4$B~?;_B(_jwQSUHm=cu$2YS{|uh4elF{r5}E*I_k0-u literal 0 HcmV?d00001 diff --git a/include/map_editor.h b/include/map_editor.h index 34f0140..2080c35 100644 --- a/include/map_editor.h +++ b/include/map_editor.h @@ -40,6 +40,8 @@ bool texture(gc_engine *engine, gc_entity *entity, gc_vector2 _, enum gc_mousekeys __); bool switch_texture(gc_engine *engine, gc_entity *entity, gc_vector2 _, enum gc_mousekeys __); +bool save_map(gc_engine *engine, gc_entity *entity, gc_vector2 _, +enum gc_mousekeys __); enum brush { diff --git a/lib/gamacon b/lib/gamacon index 5941597..ac3ff0a 160000 --- a/lib/gamacon +++ b/lib/gamacon @@ -1 +1 @@ -Subproject commit 59415972ed68b09f1274c8d9b7975de056514348 +Subproject commit ac3ff0adbfbd6585bd8ec783d5f55df73200de28 diff --git a/prefabs/editor_ui.gcprefab b/prefabs/editor_ui.gcprefab index ae21278..1ed6b2f 100644 --- a/prefabs/editor_ui.gcprefab +++ b/prefabs/editor_ui.gcprefab @@ -1,14 +1,15 @@ - - \ No newline at end of file diff --git a/prefabs/game.gcprefab b/prefabs/game.gcprefab index 5ccfbdc..a72339e 100644 --- a/prefabs/game.gcprefab +++ b/prefabs/game.gcprefab @@ -25,6 +25,7 @@ + diff --git a/src/game_loader.c b/src/game_loader.c index 2c75a02..7b72dee 100644 --- a/src/game_loader.c +++ b/src/game_loader.c @@ -46,6 +46,7 @@ const struct callback map_editor_callbacks[] = { {"rotate", &rotate}, {"texture", &texture}, {"switch_texture", &switch_texture}, + {"save", &save_map}, {NULL, NULL} }; diff --git a/src/map_editor/map_interactions.c b/src/map_editor/map_interactions.c index f501b2a..e03f35a 100644 --- a/src/map_editor/map_interactions.c +++ b/src/map_editor/map_interactions.c @@ -36,7 +36,6 @@ struct tile *ret, bool is_left) bool map_onclick(gc_engine *engine, gc_entity *entity, gc_vector2 pos, \ enum gc_mousekeys key) { - printf("Map clicked\n"); struct vertex_component *map = GETCMP(entity, vertex_component); struct map_manager_component *m = GETCMP(entity, map_manager_component); struct transform_component *tc = GETCMP(entity, transform_component); diff --git a/src/map_editor/selectors.c b/src/map_editor/selectors.c index f09384c..2a51e3b 100644 --- a/src/map_editor/selectors.c +++ b/src/map_editor/selectors.c @@ -6,6 +6,8 @@ */ #include +#include +#include #include "map_editor.h" #include "engine.h" #include "entity.h" @@ -36,4 +38,27 @@ enum gc_mousekeys __) manager = GETCMP(list->data, map_manager_component); manager->tile_mode = false; return (true); +} + +bool save_map(gc_engine *engine, gc_entity *entity, gc_vector2 _, +enum gc_mousekeys __) +{ + gc_scene *scene = engine->scene; + gc_list *list = scene->get_entity_by_cmp(scene, "vertex_component"); + struct vertex_component *map; + time_t t; + struct tm *tm; + char save_file[1024]; + + time(&t); + tm = localtime(&t); + my_strcpy(save_file, "map-"); + strftime(save_file + 4, sizeof(save_file) - 4, "%d-%m-%Y %H:%M:%S", tm); + my_strcat(save_file, ".gcmap"); + if (!list) + return (false); + map = GETCMP(list->data, vertex_component); + my_printf("Saving the map to the file: %s\n", save_file); + vertex_serialize(map, save_file); + return (true); } \ No newline at end of file