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;