From 9a6f3e77309929e218619426f204c2be721ee45e Mon Sep 17 00:00:00 2001 From: Anonymus Raccoon Date: Sun, 3 May 2020 15:26:16 +0200 Subject: [PATCH] Coding style --- CMakeLists.txt | 2 +- include/components/game_display.h | 9 ++-- include/player_utilities.h | 5 +++ lib/gamacon | 2 +- src/combat/attacks.c | 2 +- src/components/dialog_methods.c | 4 +- src/components/game_display.c | 25 ++++++----- src/main.c | 10 ++--- src/systems/combat_methods.c | 34 ++------------ src/systems/combat_utility.c | 45 +++++++++++++++++++ .../controllers/keyboard_controller_system.c | 7 +-- src/systems/game_display_system.c | 8 ++-- src/systems/game_manager_system.c | 6 +-- 13 files changed, 93 insertions(+), 66 deletions(-) create mode 100644 src/systems/combat_utility.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 9533225..8ad3578 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -324,7 +324,7 @@ add_executable(my_rpg src/npc/mage.c src/combat/boss.c src/components/combat_holder.c -) + src/systems/combat_utility.c) add_compile_options(-W -Wall -Wextra -Wshadow) diff --git a/include/components/game_display.h b/include/components/game_display.h index c913e9e..55c1281 100644 --- a/include/components/game_display.h +++ b/include/components/game_display.h @@ -1,6 +1,9 @@ -// -// Created by anonymus-raccoon on 3/3/20. -// +/* +** EPITECH PROJECT, 2019 +** MUL_my_runner_2019 +** File description: +** game_loader +*/ #ifndef _TEAMS_COMPONENT_H_ #define _TEAMS_COMPONENT_H_ diff --git a/include/player_utilities.h b/include/player_utilities.h index 5b1a55d..a201f78 100644 --- a/include/player_utilities.h +++ b/include/player_utilities.h @@ -13,4 +13,9 @@ void set_combat_player(gc_engine *engine, gc_entity *main_player, \ gc_entity *combat_player); +bool get_player_and_enemy(gc_scene *sce, gc_entity **player, \ +gc_entity **enemy); +void combat_create_enemy(struct combat_manager *this, gc_engine *engine, \ +char *enemy_name); + #endif //MY_RPG_PLAYER_UTILITIES_H diff --git a/lib/gamacon b/lib/gamacon index ef4d013..0b2da32 160000 --- a/lib/gamacon +++ b/lib/gamacon @@ -1 +1 @@ -Subproject commit ef4d01357a0ed6bc15a8b0a801c5d1ab424ceca2 +Subproject commit 0b2da3249cbdf0b5d860e74caf51f9f57bfd594c diff --git a/src/combat/attacks.c b/src/combat/attacks.c index b3752c0..bc74346 100644 --- a/src/combat/attacks.c +++ b/src/combat/attacks.c @@ -92,7 +92,7 @@ void enemy_attack(gc_engine *engine, gc_entity *from, gc_entity *enemy) struct combat_manager *this = GETSYS(engine, combat_manager); struct health_component *enemy_health = GETCMP(enemy, health_component); struct renderer *rend = GETCMP(from, renderer); - int max = 10 - this->last_enemy_damage; + int max = 10 - this->last_enemy_damage; this->last_enemy_damage = MAX(MIN(random() % max, 10), 0); if (this->last_attack && !my_strcmp(this->last_attack, "shield")) diff --git a/src/components/dialog_methods.c b/src/components/dialog_methods.c index 6eeb4df..ac95460 100644 --- a/src/components/dialog_methods.c +++ b/src/components/dialog_methods.c @@ -9,8 +9,8 @@ #include "utility.h" #include -struct dialog_line *dialog_add_line(struct dialog_holder *this, char *name, char *text, \ -struct dialog_input *inputs) +struct dialog_line *dialog_add_line(struct dialog_holder *this, char *name, \ +char *text, struct dialog_input *inputs) { struct dialog_line *line = malloc(sizeof(*line)); int count = 0; diff --git a/src/components/game_display.c b/src/components/game_display.c index 0550dc7..7ccf6e7 100644 --- a/src/components/game_display.c +++ b/src/components/game_display.c @@ -20,6 +20,18 @@ static void ctr(void *component, va_list args) cmp->type = va_arg(args, display_type_enum); } +static void inventory_fdctr(struct game_display *cmp, char *display_type) +{ + if (!my_strcmp(display_type, "inventory_1")) + cmp->type = INVENTORY_SLOT_1; + if (!my_strcmp(display_type, "inventory_2")) + cmp->type = INVENTORY_SLOT_2; + if (!my_strcmp(display_type, "inventory_3")) + cmp->type = INVENTORY_SLOT_3; + if (!my_strcmp(display_type, "inventory_4")) + cmp->type = INVENTORY_SLOT_4; +} + static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n) { struct game_display *cmp = (struct game_display *)component; @@ -30,9 +42,9 @@ static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n) my_printf("Please select properties\n"); return; } - if (!my_strcmp(display_type, "selected_tile")) { + if (!my_strcmp(display_type, "selected_tile")) cmp->type = SELECT_TILE_DISPLAY; - } if (!my_strcmp(display_type, "xp")) { + if (!my_strcmp(display_type, "xp")) { cmp->type = XP_DISPLAY; rend->destroy = &text_safe_destroy; } if (!my_strcmp(display_type, "health_ennemy")) { @@ -41,15 +53,8 @@ static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n) } if (!my_strcmp(display_type, "health")) { cmp->type = HEALTH_DISPLAY; rend->destroy = &text_safe_destroy; - } if (!my_strcmp(display_type, "inventory_1")) { - cmp->type = INVENTORY_SLOT_1; - } if (!my_strcmp(display_type, "inventory_2")) { - cmp->type = INVENTORY_SLOT_2; - } if (!my_strcmp(display_type, "inventory_3")) { - cmp->type = INVENTORY_SLOT_3; - } if (!my_strcmp(display_type, "inventory_4")) { - cmp->type = INVENTORY_SLOT_4; } + inventory_fdctr(cmp, display_type); } static void dtr(void *component) diff --git a/src/main.c b/src/main.c index b6b5e0d..a51cc0d 100644 --- a/src/main.c +++ b/src/main.c @@ -13,13 +13,13 @@ int usage(char *bin) return (0); } -int main(int argc, char **argv) +int main(int argc, char **av) { bool map_editor = false; - if (argc != 1 && !my_strcmp(argv[1], "-h")) - return (usage(argv[0])); - if (argc > 1 && (!my_strcmp(argv[1], "-e") || !my_strcmp(argv[1], "--editor"))) - map_editor = true; + if (argc != 1 && !my_strcmp(av[1], "-h")) + return (usage(av[0])); + if (argc > 1) + map_editor = !my_strcmp(av[1], "-e") || !my_strcmp(av[1], "--editor"); return (start_game(map_editor)); } \ No newline at end of file diff --git a/src/systems/combat_methods.c b/src/systems/combat_methods.c index 649a49c..066f454 100644 --- a/src/systems/combat_methods.c +++ b/src/systems/combat_methods.c @@ -7,7 +7,7 @@ #include #include -#include +#include "components/renderer.h" #include "systems/combat_manager.h" #include "tile.h" #include "prefab.h" @@ -23,9 +23,7 @@ void combat_start(gc_engine *engine, char *enemy_name) { struct combat_manager *this = GETSYS(engine, combat_manager); - gc_list *li = engine->scene->get_data(engine->scene, "enemies", NULL); gc_scene *scene = scene_create(engine, "prefabs/combat.gcprefab"); - struct enemy *enemy = NULL; gc_entity *player; gc_entity *player_combat; @@ -42,30 +40,7 @@ void combat_start(gc_engine *engine, char *enemy_name) engine->change_scene(engine, scene); load_attacks(scene); dialog_next(engine); - for (; li; li = li->next) { - enemy = li->data; - if ((!enemy_name && random() % 100 < enemy->spawn_rate) - || (enemy_name && !my_strcmp(enemy_name, enemy->name))) - break; - } - if ((this->current_enemy = enemy)) - prefab_load(engine, enemy->prefab_src); -} - -bool get_player_and_enemy(gc_scene *sce, gc_entity **player, gc_entity **enemy) -{ - gc_list *enemies = sce->get_entity_by_cmp(sce, "attack_component"); - - if (enemies && enemies->next && ((gc_entity *)enemies->data)->id == 50) { - *player = enemies->data; - *enemy = enemies->next->data; - } else if (enemies && enemies->next) { - *enemy = enemies->data; - *player = enemies->next->data; - } - if (!enemy || !player) - return (false); - return (true); + combat_create_enemy(this, engine, enemy_name); } void attack_callback(gc_engine *engine, int index) @@ -146,9 +121,8 @@ gc_scene *scene, gc_engine *engine) int count; struct dialog_line *line; - if (!get_player_and_enemy(scene, &player, &enemy)) - return; - if (!(enemy_attack = GETCMP(enemy, attack_component))) + if (!get_player_and_enemy(scene, &player, &enemy) + ||!(enemy_attack = GETCMP(enemy, attack_component))) return; for (count = 0; enemy_attack->attacks[count].name; count++); if (count == 0) { diff --git a/src/systems/combat_utility.c b/src/systems/combat_utility.c new file mode 100644 index 0000000..4ded3df --- /dev/null +++ b/src/systems/combat_utility.c @@ -0,0 +1,45 @@ +/* +** EPITECH PROJECT, 2020 +** my_rpg +** File description: +** combat_utility.c +*/ + +#include +#include "engine.h" +#include "prefab.h" +#include "enemy.h" +#include "my.h" +#include "systems/combat_manager.h" + +void combat_create_enemy(struct combat_manager *this, gc_engine *engine, \ +char *enemy_name) +{ + gc_list *li = this->game_scene->get_data(this->game_scene, "enemies", NULL); + struct enemy *enemy = NULL; + + for (; li; li = li->next) { + enemy = li->data; + if ((!enemy_name && random() % 100 < enemy->spawn_rate) + || (enemy_name && !my_strcmp(enemy_name, enemy->name))) + break; + } + if ((this->current_enemy = enemy)) + prefab_load(engine, enemy->prefab_src); +} + +bool get_player_and_enemy(gc_scene *sce, gc_entity **player, gc_entity **enemy) +{ + gc_list *enemies = sce->get_entity_by_cmp(sce, "attack_component"); + + if (enemies && enemies->next && ((gc_entity *)enemies->data)->id == 50) { + *player = enemies->data; + *enemy = enemies->next->data; + } else if (enemies && enemies->next) { + *enemy = enemies->data; + *player = enemies->next->data; + } + if (!*enemy || !*player) + return (false); + return (true); +} \ No newline at end of file diff --git a/src/systems/controllers/keyboard_controller_system.c b/src/systems/controllers/keyboard_controller_system.c index 07d2d22..b7eefbb 100644 --- a/src/systems/controllers/keyboard_controller_system.c +++ b/src/systems/controllers/keyboard_controller_system.c @@ -30,16 +30,11 @@ gc_entity *entity, float dtime) (void)dtime; } - -static void ctr(void *system, va_list args) -{ -} - const gc_system keyboard_controller_system = { name: "keyboard_controller_system", component_name: "keyboard_controller", size: sizeof(gc_system), - ctr: &ctr, + ctr: NULL, dtr: NULL, check_dependencies: &system_check_dependencies, update_entity: &keyboard_update_entity, diff --git a/src/systems/game_display_system.c b/src/systems/game_display_system.c index eaf0da6..abb6168 100644 --- a/src/systems/game_display_system.c +++ b/src/systems/game_display_system.c @@ -30,7 +30,7 @@ void display_current_texture(gc_scene *scene, struct renderer *rend) ((gc_sprite *)rend->data)->texture = map->selected_texture; } -void display_current_health(gc_scene *scene, struct renderer *rend, bool is_player) +void display_health(gc_scene *scene, struct renderer *rend, bool is_player) { gc_list *entities = scene->get_entity_by_cmp(scene, "health_component"); gc_entity *entity = NULL; @@ -41,7 +41,7 @@ void display_current_health(gc_scene *scene, struct renderer *rend, bool is_play if (!entities) return; - for (; entities; entities = entities->next ) { + for (; entities; entities = entities->next) { entity = entities->data; if ((entity->id == 50 && is_player) || (entity->id != 50 && !is_player)) break; @@ -85,9 +85,9 @@ float dtime) if (disp->type == XP_DISPLAY) display_current_xp(scene, rend); if (disp->type == HEALTH_DISPLAY) - display_current_health(scene, rend, true); + display_health(scene, rend, true); if (disp->type == HEALTH_DISPLAY_ENNEMY) - display_current_health(scene, rend, false); + display_health(scene, rend, false); default: break; } diff --git a/src/systems/game_manager_system.c b/src/systems/game_manager_system.c index 7f4c16c..b3f2f16 100644 --- a/src/systems/game_manager_system.c +++ b/src/systems/game_manager_system.c @@ -24,7 +24,7 @@ bool toggle_pause(gc_engine *engine) scene->is_paused = !scene->is_paused; if (scene->is_paused) { - prefab_load(engine,"prefabs/pause.gcprefab"); + prefab_load(engine, "prefabs/pause.gcprefab"); return (true); } list = scene->get_entity_by_cmp(scene, "tag_component"); @@ -40,9 +40,9 @@ static void key_pressed(gc_engine *engine, va_list args) gc_keybindings key = va_arg(args, gc_keybindings); if (key == ESCAPE) - toggle_pause(engine); + toggle_pause(engine); if (key == KEY_E) - toggle_inventory(engine); + toggle_inventory(engine); } static void combat_ended(gc_engine *engine, va_list args)