From 57c2c3eb452e209f4ab3f574098b85152b2258ac Mon Sep 17 00:00:00 2001 From: Anonymus Raccoon Date: Sat, 2 May 2020 17:44:47 +0200 Subject: [PATCH] Using real enemies name --- CMakeLists.txt | 1 - include/components/attack_component.h | 1 + prefabs/enemies/bee.gcprefab | 3 +- prefabs/enemies/evil_seed.gcprefab | 3 +- prefabs/enemies/flower.gcprefab | 3 +- prefabs/enemies/mushroom.gcprefab | 3 +- prefabs/enemies/shrump.gcprefab | 3 +- prefabs/enemies/t-rex.gcprefab | 5 ++- prefabs/enemies/turnipor.gcprefab | 3 +- src/components/attack_component.c | 2 ++ src/components/combat_holder.c | 50 --------------------------- src/game_loader.c | 1 - src/systems/combat_manager.c | 2 +- src/systems/combat_methods.c | 2 +- 14 files changed, 13 insertions(+), 69 deletions(-) delete mode 100644 src/components/combat_holder.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 7447c49..a662ddd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -291,7 +291,6 @@ add_executable(my_rpg include/components/player_component.h src/enemy_dataloader.c include/enemy.h - src/components/combat_holder.c include/components/combat_holder.h src/components/dialog_methods.c src/components/attack_component.c diff --git a/include/components/attack_component.h b/include/components/attack_component.h index c44bb9a..de3ee16 100644 --- a/include/components/attack_component.h +++ b/include/components/attack_component.h @@ -21,6 +21,7 @@ typedef struct attack_holder { struct attack_component { gc_component base; attack_holder *attacks; + char *name; }; extern const struct attack_component attack_component; diff --git a/prefabs/enemies/bee.gcprefab b/prefabs/enemies/bee.gcprefab index 4eaacb2..44e8ea1 100644 --- a/prefabs/enemies/bee.gcprefab +++ b/prefabs/enemies/bee.gcprefab @@ -8,8 +8,7 @@ - - + diff --git a/prefabs/enemies/evil_seed.gcprefab b/prefabs/enemies/evil_seed.gcprefab index eb2621d..f4d015b 100644 --- a/prefabs/enemies/evil_seed.gcprefab +++ b/prefabs/enemies/evil_seed.gcprefab @@ -8,8 +8,7 @@ - - + diff --git a/prefabs/enemies/flower.gcprefab b/prefabs/enemies/flower.gcprefab index 6c69b74..5db8f34 100644 --- a/prefabs/enemies/flower.gcprefab +++ b/prefabs/enemies/flower.gcprefab @@ -8,8 +8,7 @@ - - + diff --git a/prefabs/enemies/mushroom.gcprefab b/prefabs/enemies/mushroom.gcprefab index 1983f17..dced40a 100644 --- a/prefabs/enemies/mushroom.gcprefab +++ b/prefabs/enemies/mushroom.gcprefab @@ -8,8 +8,7 @@ - - + diff --git a/prefabs/enemies/shrump.gcprefab b/prefabs/enemies/shrump.gcprefab index e25ea1d..a54e1e4 100644 --- a/prefabs/enemies/shrump.gcprefab +++ b/prefabs/enemies/shrump.gcprefab @@ -8,8 +8,7 @@ - - + diff --git a/prefabs/enemies/t-rex.gcprefab b/prefabs/enemies/t-rex.gcprefab index e0b8164..30357a3 100644 --- a/prefabs/enemies/t-rex.gcprefab +++ b/prefabs/enemies/t-rex.gcprefab @@ -2,14 +2,13 @@ - + - - + diff --git a/prefabs/enemies/turnipor.gcprefab b/prefabs/enemies/turnipor.gcprefab index 97e487c..7f36f45 100644 --- a/prefabs/enemies/turnipor.gcprefab +++ b/prefabs/enemies/turnipor.gcprefab @@ -8,8 +8,7 @@ - - + diff --git a/src/components/attack_component.c b/src/components/attack_component.c index 75cba7f..c2dda3d 100644 --- a/src/components/attack_component.c +++ b/src/components/attack_component.c @@ -14,6 +14,7 @@ static void ctr(void *component, va_list args) struct attack_component *cmp = (struct attack_component *)component; cmp->attacks = va_arg(args, attack_holder *); + cmp->name = va_arg(args, char *); } static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n) @@ -22,6 +23,7 @@ static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n) int i = 0; char *name; + cmp->name = xml_getproperty(n, "name"); cmp->attacks = malloc(sizeof(attack_holder) * xml_getchildcount(n)); if (!cmp->attacks) return; diff --git a/src/components/combat_holder.c b/src/components/combat_holder.c deleted file mode 100644 index 70aecd6..0000000 --- a/src/components/combat_holder.c +++ /dev/null @@ -1,50 +0,0 @@ -/* -** EPITECH PROJECT, 2020 -** my_rpg -** File description: -** combat_holder.c -*/ - -#include "engine.h" -#include "components/combat_holder.h" - -static void ctr(void *component, va_list args) -{ - struct combat_holder *cmp = component; - - cmp->name = va_arg(args, char *); -} - -static void fdctr(gc_entity *entity, gc_scene *scene, \ -void *component, node *n) -{ - struct combat_holder *cmp = component; - - cmp->name = xml_getproperty(n, "name"); -} - -static void dtr(void *component) -{ - (void)component; -} - -static char *serialize(void *component) -{ - (void)component; - return (NULL); -} - -const struct combat_holder combat_holder = { - base: { - name: "combat_holder", - size: sizeof(struct combat_holder), - dependencies: (char *[]){ - NULL - }, - ctr: &ctr, - fdctr: &fdctr, - dtr: &dtr, - serialize: &serialize, - destroy: &component_destroy - } -}; \ No newline at end of file diff --git a/src/game_loader.c b/src/game_loader.c index f8fc95b..9819b12 100644 --- a/src/game_loader.c +++ b/src/game_loader.c @@ -143,7 +143,6 @@ int register_customcmps(gc_engine *engine, bool map_editor) engine->add_component(engine, &xp_component); engine->add_component(engine, &player_component); engine->add_component(engine, &attack_component); - engine->add_component(engine, &combat_holder); engine->add_system(engine, new_system(&combat_manager, engine)); engine->add_component(engine, &health_component); engine->finish_physics(engine); diff --git a/src/systems/combat_manager.c b/src/systems/combat_manager.c index 4a2e172..161a2e5 100644 --- a/src/systems/combat_manager.c +++ b/src/systems/combat_manager.c @@ -101,7 +101,7 @@ static void dtr(void *system, gc_engine *engine) const struct combat_manager combat_manager = { base: { name: "combat_manager", - component_name: "combat_holder", + component_name: "attack_component", size: sizeof(struct combat_manager), ctr: &ctr, dtr: &dtr, diff --git a/src/systems/combat_methods.c b/src/systems/combat_methods.c index b031ccc..649a49c 100644 --- a/src/systems/combat_methods.c +++ b/src/systems/combat_methods.c @@ -156,7 +156,7 @@ gc_scene *scene, gc_engine *engine) return; } this->next_enemy_attack = &enemy_attack->attacks[random() % count]; - snprintf(str, 150, "%s uses attack %s.", "The bee", \ + snprintf(str, 150, "%s uses %s.", enemy_attack->name, \ this->next_enemy_attack->name); if ((line = dialog_add_line(dialog, NULL, str, NULL))) line->callback = &defend_callback;