From c30a5581ad0f89e25bc34e294a7afd59f86ecffb Mon Sep 17 00:00:00 2001 From: Ragot mathis <5OLE1L@localhost.localdomain> Date: Wed, 15 Apr 2020 15:20:51 +0200 Subject: [PATCH 1/4] adding component xp --- Makefile | 4 ++- include/components/xp_component.h | 28 ++++++++++++++++ prefabs/player.gcprefab | 1 + src/components/xp_component.c | 54 +++++++++++++++++++++++++++++++ src/components/xp_methods.c | 27 ++++++++++++++++ 5 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 include/components/xp_component.h create mode 100644 src/components/xp_component.c create mode 100644 src/components/xp_methods.c diff --git a/Makefile b/Makefile index 4e01a6b..b5b652e 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,9 @@ SRC = src/main.c \ src/map_editor/selectors.c \ src/map_editor/toolbar.c \ src/components/health_component.c \ - src/components/health_methods.c + src/components/health_methods.c \ + src/components/xp_component.c \ + src/components/xp_methods.c OBJ = $(SRC:%.c=%.o) diff --git a/include/components/xp_component.h b/include/components/xp_component.h new file mode 100644 index 0000000..6292435 --- /dev/null +++ b/include/components/xp_component.h @@ -0,0 +1,28 @@ +/* +** EPITECH PROJECT, 2019 +** Gamacon +** File description: +** xp_component +*/ + +#ifndef MY_RPG_HEALTH_COMPONENT_H +#define MY_RPG_HEALTH_COMPONENT_H + +#include +#include "component.h" + +struct xp_component +{ + gc_component base; + int xp; + bool full; +}; + +void add_xp(struct xp_component *this, gc_engine *engine, \ +unsigned int amount); +void rem_xp(struct xp_component *this, gc_engine *engine, \ +unsigned int amount); + +extern const struct xp_component xp_component; + +#endif //MY_RPG_HEALTH_COMPONENT_H diff --git a/prefabs/player.gcprefab b/prefabs/player.gcprefab index ddd6f0c..aa53be2 100644 --- a/prefabs/player.gcprefab +++ b/prefabs/player.gcprefab @@ -37,5 +37,6 @@ + \ No newline at end of file diff --git a/src/components/xp_component.c b/src/components/xp_component.c new file mode 100644 index 0000000..a5b5687 --- /dev/null +++ b/src/components/xp_component.c @@ -0,0 +1,54 @@ +/* +** EPITECH PROJECT, 2020 +** My3D +** File description: +** xp component +*/ + +#include "xml.h" +#include "component.h" +#include "components/xp_component.h" + +static void ctr(void *component, va_list args) +{ + struct xp_component *cmp = (struct xp_component *)\ +component; + cmp->xp = va_arg(args, int); + cmp->full = false; +} + +static void fdctr(gc_entity *entity, gc_scene *scene, \ +void *component, node *n) +{ + struct xp_component *cmp = (struct xp_component *)\ +component; + + cmp->xp = xml_getintprop(n, "xp"); + cmp->full = false; +} + +static void dtr(void *component) +{ + (void)component; +} + +static char *serialize(void *component) +{ + (void)component; + return (NULL); +} + +const struct xp_component xp_component = { + base: { + name: "xp_component", + size: sizeof(struct xp_component), + dependencies: (char *[]){ + NULL + }, + ctr: &ctr, + fdctr: &fdctr, + dtr: &dtr, + serialize: &serialize, + destroy: &component_destroy + } +}; \ No newline at end of file diff --git a/src/components/xp_methods.c b/src/components/xp_methods.c new file mode 100644 index 0000000..8a1a4ff --- /dev/null +++ b/src/components/xp_methods.c @@ -0,0 +1,27 @@ +/* +** EPITECH PROJECT, 2020 +** My3D +** File description: +** xp methods +*/ + +#include "components/xp_component.h" +#include "engine.h" + +void add_xp(struct xp_component *this, gc_engine *engine, \ +unsigned int amount) +{ + if (this->full) + return; + this->xp += amount; + if (this->xp >= 100) + this->full = true; + engine->trigger_event(engine, "add_xp", this->xp, amount); +} + +void rem_xp(struct xp_component *this, gc_engine *engine, \ +unsigned int amount) +{ + this->xp -= amount; + engine->trigger_event(engine, "rem_xp", this->xp, amount); +} \ No newline at end of file From 70f990ee68db6bc3a015aab5a582351e6028c129 Mon Sep 17 00:00:00 2001 From: Ragot mathis <5OLE1L@localhost.localdomain> Date: Wed, 15 Apr 2020 17:20:06 +0200 Subject: [PATCH 2/4] adding and print xp systeme --- CMakeLists.txt | 2 ++ include/components/game_display.h | 3 ++- include/components/xp_component.h | 4 ++-- prefabs/game.gcprefab | 6 ++++-- src/components/game_display.c | 8 ++++++++ src/components/xp_methods.c | 12 +++++++----- src/game_loader.c | 2 ++ src/systems/game_display_system.c | 18 ++++++++++++++++++ 8 files changed, 45 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ba0600..f34ecdc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -280,6 +280,8 @@ add_executable(my_rpg src/systems/game_display_system.c include/map_editor.h lib/gamacon/include/sfml_init.h + src/components/xp_component.c + src/components/xp_methods.c ) add_compile_options(-W -Wall -Wextra -Wshadow) diff --git a/include/components/game_display.h b/include/components/game_display.h index 90609ac..cab3569 100644 --- a/include/components/game_display.h +++ b/include/components/game_display.h @@ -9,7 +9,8 @@ typedef enum display_type { - SELECT_TILE_DISPLAY + SELECT_TILE_DISPLAY, + xp_display } display_type_enum; struct game_display diff --git a/include/components/xp_component.h b/include/components/xp_component.h index 6292435..9398d31 100644 --- a/include/components/xp_component.h +++ b/include/components/xp_component.h @@ -18,9 +18,9 @@ struct xp_component bool full; }; -void add_xp(struct xp_component *this, gc_engine *engine, \ +void xp_add(struct xp_component *this, gc_engine *engine, \ unsigned int amount); -void rem_xp(struct xp_component *this, gc_engine *engine, \ +void xp_rem(struct xp_component *this, gc_engine *engine, \ unsigned int amount); extern const struct xp_component xp_component; diff --git a/prefabs/game.gcprefab b/prefabs/game.gcprefab index b69e071..e9ab9de 100644 --- a/prefabs/game.gcprefab +++ b/prefabs/game.gcprefab @@ -156,7 +156,9 @@ - - + + + + \ No newline at end of file diff --git a/src/components/game_display.c b/src/components/game_display.c index f2161e6..ffc3942 100644 --- a/src/components/game_display.c +++ b/src/components/game_display.c @@ -26,10 +26,18 @@ static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n) struct renderer *rend = GETCMP(entity, renderer); char *display_type = xml_gettempprop(n, "stats"); + if (!display_type) { + my_printf("Please select properties\n"); + return; + } if (!my_strcmp(display_type, "selected_tile")) { cmp->type = SELECT_TILE_DISPLAY; return; } + if (!my_strcmp(display_type, "xp")) { + cmp->type = xp_display; + return; + } } static void dtr(void *component) diff --git a/src/components/xp_methods.c b/src/components/xp_methods.c index 8a1a4ff..b38ebf7 100644 --- a/src/components/xp_methods.c +++ b/src/components/xp_methods.c @@ -8,20 +8,22 @@ #include "components/xp_component.h" #include "engine.h" -void add_xp(struct xp_component *this, gc_engine *engine, \ +void xp_add(struct xp_component *this, gc_engine *engine, \ unsigned int amount) { if (this->full) return; this->xp += amount; - if (this->xp >= 100) + if (this->xp >= 100) { this->full = true; - engine->trigger_event(engine, "add_xp", this->xp, amount); + this->xp = 100; + } + engine->trigger_event(engine, "xp_add", this->xp, amount); } -void rem_xp(struct xp_component *this, gc_engine *engine, \ +void xp_rem(struct xp_component *this, gc_engine *engine, \ unsigned int amount) { this->xp -= amount; - engine->trigger_event(engine, "rem_xp", this->xp, amount); + engine->trigger_event(engine, "xp_rem", this->xp, amount); } \ No newline at end of file diff --git a/src/game_loader.c b/src/game_loader.c index 7b72dee..7325e2b 100644 --- a/src/game_loader.c +++ b/src/game_loader.c @@ -20,6 +20,7 @@ #include "components/game_display.h" #include "my.h" #include "map_editor.h" +#include "components/xp_component.h" const struct callback callbacks[] = { {"start_button", &start_button}, @@ -64,6 +65,7 @@ int register_customcmps(gc_engine *engine, bool map_editor) engine->add_component(engine, &map_manager_component); engine->add_component(engine, &game_display); engine->add_system(engine, &game_display_system); + engine->add_component(engine, &xp_component); engine->finish_physics(engine); for (int i = 0; callbacks[i].func; i++) engine->add_callback(engine, my_strdup(callbacks[i].name), \ diff --git a/src/systems/game_display_system.c b/src/systems/game_display_system.c index e9c72ba..f8c42cd 100644 --- a/src/systems/game_display_system.c +++ b/src/systems/game_display_system.c @@ -10,6 +10,7 @@ #include #include "components/game_display.h" #include "components/game_manager.h" +#include "components/xp_component.h" #include "map_editor.h" #include "text.h" #include "components/renderer.h" @@ -27,6 +28,19 @@ void display_current_texture(gc_scene *scene, struct renderer *rend) ((gc_sprite *)rend->data)->texture = map->selected_texture; } +void display_current_xp(gc_scene *scene, struct renderer *rend) +{ + gc_entity *player = scene->get_entity(scene, 50); + struct xp_component *xp; + static char str[10]; + + if (!player) + return; + xp = GETCMP(player, xp_component); + snprintf(str, 10, "%d/100", xp->xp); + ((gc_text *)rend->data)->text = str; +} + static void update_entity(gc_engine *engine, void *system, gc_entity *entity, \ float dtime) { @@ -38,6 +52,10 @@ float dtime) display_current_texture(scene, rend); return; } + if (disp->type == xp_display && rend->type == GC_TXTREND) { + display_current_xp(scene, rend); + return; + } } static void destroy(void *system, gc_engine *engine) From 36daed1632b3c0a477ecff473678bf828907d1fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Le=20Bihan?= Date: Wed, 15 Apr 2020 19:21:32 +0200 Subject: [PATCH 3/4] added houses on the map --- assets/sprites/houses/Deluxe_Barn.png | Bin 0 -> 8661 bytes assets/sprites/houses/Well.png | Bin 0 -> 3552 bytes .../generic-rpg-house-inn.png | Bin prefabs/game.gcprefab | 3 ++ prefabs/map_entities.gcprefab | 41 +++++++++++++----- 5 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 assets/sprites/houses/Deluxe_Barn.png create mode 100644 assets/sprites/houses/Well.png rename assets/sprites/{items => houses}/generic-rpg-house-inn.png (100%) diff --git a/assets/sprites/houses/Deluxe_Barn.png b/assets/sprites/houses/Deluxe_Barn.png new file mode 100644 index 0000000000000000000000000000000000000000..4e4e3261de65cd190a952b79398f35358257f989 GIT binary patch literal 8661 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 NakO=!+~4mL^M5U|o;&~m literal 0 HcmV?d00001 diff --git a/assets/sprites/items/generic-rpg-house-inn.png b/assets/sprites/houses/generic-rpg-house-inn.png similarity index 100% rename from assets/sprites/items/generic-rpg-house-inn.png rename to assets/sprites/houses/generic-rpg-house-inn.png diff --git a/prefabs/game.gcprefab b/prefabs/game.gcprefab index f26ef1a..544e410 100644 --- a/prefabs/game.gcprefab +++ b/prefabs/game.gcprefab @@ -99,6 +99,9 @@ + + + diff --git a/prefabs/map_entities.gcprefab b/prefabs/map_entities.gcprefab index fd7c84e..ad929dd 100644 --- a/prefabs/map_entities.gcprefab +++ b/prefabs/map_entities.gcprefab @@ -1,4 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3029,16 +3059,7 @@ - - - - - - - - - - + From 119287dcb4bc67fd0b4e00dc6ffe4f918eeb06a1 Mon Sep 17 00:00:00 2001 From: Anonymus Raccoon Date: Thu, 16 Apr 2020 13:56:02 +0200 Subject: [PATCH 4/4] Fixing a bug with the player id --- src/main_menu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main_menu.c b/src/main_menu.c index b3f4fe5..8ba9e8d 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -26,12 +26,12 @@ enum gc_mousekeys __) return (true); } engine->change_scene(engine, scene); - if (prefab_load(engine, "prefabs/map_entities.gcprefab") < 0) - return (true); if (prefab_load(engine, "prefabs/player.gcprefab") < 0) { my_printf("Could not load the player.\n"); return (true); } + if (prefab_load(engine, "prefabs/map_entities.gcprefab") < 0) + return (true); if (engine->get_callback(engine, "map_manage_click")) if (prefab_load(engine, "prefabs/editor_ui.gcprefab") < 0) my_printf("Couldn't load the map editor's ui.\n");