Cleaning up

This commit is contained in:
AnonymusRaccoon
2020-03-12 19:45:22 +01:00
parent b24cbec163
commit 5cfcf253e3
11 changed files with 162 additions and 64 deletions

View File

@@ -69,7 +69,7 @@ add_executable(My3D
lib/gamacon/src/components/parallax_component.c
lib/gamacon/src/components/renderer.c
lib/gamacon/src/components/transform_component.c
lib/gamacon/src/components/isometry/vertex_component.c
lib/gamacon/src/components/vertex_component.c
lib/gamacon/src/deserializer/deserialize_entity.c
lib/gamacon/src/deserializer/prefab.c
lib/gamacon/src/engine/discard_player.c
@@ -206,13 +206,13 @@ add_executable(My3D
src/main_menu.c
lib/gamacon/src/components/clickable_component.c
lib/gamacon/include/components/clickable_component.h
lib/gamacon/src/systems/clickable_manager.c
lib/gamacon/src/systems/clickable_system.c
lib/gamacon/src/sfml_renderer/sfml_events.c
lib/my/my/my_str_replace.c
lib/gamacon/src/sfml_renderer/sfml_init.c
lib/gamacon/src/sfml_renderer/sfml_events.c
lib/gamacon/src/components/isometry/map_managment.c
lib/gamacon/include/map_managment.h
lib/gamacon/src/isometry/map_utils.c
lib/gamacon/include/map_utils.h
lib/xmlparser/src/otherget.c
src/options.c
lib/gamacon/src/components/input_component.c
@@ -233,7 +233,7 @@ add_executable(My3D
include/components/game_display.h
src/components/game_display.c
src/systems/game_display_system.c
lib/gamacon/src/components/tile_collision_manager.c
src/isometry/tile_collision_manager.c
lib/gamacon/include/tile_collision_manager.h
lib/gamacon/src/engine/event_manager.c
lib/gamacon/include/event_manager.h
@@ -242,21 +242,22 @@ add_executable(My3D
src/systems/game_manager_system.c
include/systems/game_manager_system.h
lib/gamacon/include/keybindings.h
src/components/isometry/map_interactions.c
src/isometry/map_interactions.c
include/map_interactions.h
lib/gamacon/include/keybindings.h
lib/gamacon/src/ui/tooltip.c
lib/gamacon/src/components/tooltip_component.c
lib/gamacon/include/components/tooltip_component.h
lib/gamacon/src/systems/tooltip_system.c
src/components/isometry/map_manager_component.c
src/components/map_manager_component.c
include/components/isometry/map_manager_component.h
lib/gamacon/src/components/isometry/vertex_data_loader.c
lib/gamacon/include/vertex_data_loader.h src/toolbar.c
lib/gamacon/src/isometry/vertex_data_loader.c
lib/gamacon/include/vertex_data_loader.h
src/toolbar.c
lib/gamacon/include/callbacks.h src/selectors.c
src/framerate.c
lib/gamacon/src/components/isometry/create_map_functions.c
lib/gamacon/include/create_map_functions.h
lib/gamacon/src/isometry/isometry.c
lib/gamacon/include/isometry.h
)
add_compile_options(-W -Wall -Wextra -Wshadow)

View File

@@ -6,7 +6,23 @@
##
SRC = src/main.c \
src/game_loader.c
src/game_loader.c \
src/framerate.c \
src/main_menu.c \
src/options.c \
src/selectors.c \
src/toolbar.c \
src/teams/absent.c \
src/teams/forgot.c \
src/systems/game_display_system.c \
src/systems/game_manager_system.c \
src/systems/teams_system.c \
src/isometry/map_interactions.c \
src/isometry/tile_collision_manager.c \
src/components/map_manager_component.c \
src/components/game_display.c \
src/components/game_manager.c \
src/components/teams_component.c
OBJ = $(SRC:%.c=%.o)
@@ -24,36 +40,36 @@ CC = gcc
all: build
build: $(OBJ)
$(MAKE) -C lib/gamacon
$(MAKE) -C lib/my
$(MAKE) -C lib/xmlparser
$(MAKE) -C lib/quadtree
$(CC) -o $(NAME) $(OBJ) $(LDFLAGS)
$(MAKE) -C lib/gamacon
$(MAKE) -C lib/my
$(MAKE) -C lib/xmlparser
$(MAKE) -C lib/quadtree
$(CC) -o $(NAME) $(OBJ) $(LDFLAGS)
clean:
$(MAKE) -C lib/gamacon clean
$(MAKE) -C lib/my clean
$(MAKE) -C lib/xmlparser clean
$(MAKE) -C lib/quadtree clean
$(RM) $(OBJ)
$(MAKE) -C lib/gamacon clean
$(MAKE) -C lib/my clean
$(MAKE) -C lib/xmlparser clean
$(MAKE) -C lib/quadtree clean
$(RM) $(OBJ)
fclean: clean
$(RM) $(NAME)
$(RM) $(NAME)
ffclean: fclean
$(MAKE) -C lib/my fclean
$(MAKE) -C lib/gamacon fclean
$(MAKE) -C lib/xmlparser fclean
$(MAKE) -C lib/quadtree fclean
$(MAKE) -C lib/my fclean
$(MAKE) -C lib/gamacon fclean
$(MAKE) -C lib/xmlparser fclean
$(MAKE) -C lib/quadtree fclean
re: fclean all
dbg: CFLAGS += -g
dbg: clean $(OBJ)
$(MAKE) -C lib/gamacon dbg
$(MAKE) -C lib/my
$(MAKE) -C lib/xmlparser dbg
$(MAKE) -C lib/quadtree dbg
$(CC) -o $(NAME) $(OBJ) $(LDFLAGS)
$(MAKE) -C lib/gamacon dbg
$(MAKE) -C lib/my
$(MAKE) -C lib/xmlparser dbg
$(MAKE) -C lib/quadtree dbg
$(CC) -o $(NAME) $(OBJ) $(LDFLAGS)
.PHONY: all build clean fclean ffclean

View File

@@ -10,7 +10,7 @@
#define MY3D_MAP_INTERACTIONS_H
#include "engine.h"
#include "vertex_component.h"
#include "components/vertex_component.h"
#include "keybindings.h"
enum modes_on_tile {

View File

@@ -6,22 +6,22 @@
##
SRC = src/printf.c \
src/printf_utility.c \
src/my_putlonglong_base.c \
src/formaters/string_formater.c \
src/formaters/string_nonprintable_formater.c \
src/formaters/char_formater.c \
src/formaters/int_formater.c \
src/formaters/uint_formater.c \
src/formaters/ptr_formater.c \
src/formaters/ubinary_formater.c \
src/formaters/octal_formater.c \
src/formaters/hexa_formater.c \
src/formaters/big_hexa_formater.c \
src/formaters/float_formater.c \
src/formaters/no_format.c \
src/get_nbr_size.c \
my/*.c
src/printf_utility.c \
src/my_putlonglong_base.c \
src/formaters/string_formater.c \
src/formaters/string_nonprintable_formater.c \
src/formaters/char_formater.c \
src/formaters/int_formater.c \
src/formaters/uint_formater.c \
src/formaters/ptr_formater.c \
src/formaters/ubinary_formater.c \
src/formaters/octal_formater.c \
src/formaters/hexa_formater.c \
src/formaters/big_hexa_formater.c \
src/formaters/float_formater.c \
src/formaters/no_format.c \
src/get_nbr_size.c \
my/*.c
OBJ = *.o
@@ -42,20 +42,20 @@ UT = ut
all: $(NAME)
$(NAME):
$(CC) -c $(SRC) $(INCLUDE) $(CFLAGS)
ar rc $(NAME) $(OBJ)
$(CC) -c $(SRC) $(INCLUDE) $(CFLAGS)
ar rc $(NAME) $(OBJ)
tests_run:
$(CC) -o $(UT) $(SRC) $(TESTS) $(INCLUDE) $(COVERAGE) $(CFLAGS)
./$(UT)
$(CC) -o $(UT) $(SRC) $(TESTS) $(INCLUDE) $(COVERAGE) $(CFLAGS)
./$(UT)
clean:
rm -rf $(OBJ)
rm -rf *.gc*
rm -rf $(OBJ)
rm -rf *.gc*
fclean: clean
rm -rf $(NAME)
rm -rf $(UT)
rm -rf $(NAME)
rm -rf $(UT)
re: fclean all

View File

@@ -9,7 +9,7 @@
#include "engine.h"
#include <malloc.h>
#include "utility.h"
#include "renderer.h"
#include "components/renderer.h"
#include "systems/sfml_renderer_system.h"
#include "limits.h"

View File

@@ -7,8 +7,8 @@
#include "engine.h"
#include "setup.h"
#include "map_managment.h"
#include "components/teams_component.h"
#include "components/isometry/map_manager_component.h"
#include "systems/teams_system.h"
#include <SFML/System.h>
#include "teams.h"
@@ -48,6 +48,7 @@ const struct callback callbacks[] = {
int register_customcmps(gc_engine *engine)
{
engine->add_component(engine, &map_manager_component);
engine->add_component(engine, &game_manager);
engine->add_system(engine, new_system(&game_manager_system, engine));
engine->add_component(engine, &game_display);

View File

@@ -6,14 +6,14 @@
*/
#include "map_interactions.h"
#include "clickable_component.h"
#include "components/clickable_component.h"
#include "entity.h"
#include "my.h"
#include <math.h>
#include "components/transform_component.h"
#include "map_managment.h"
#include "map_utils.h"
#include <stdlib.h>
#include <components/isometry/map_manager_component.h>
#include "components/isometry/map_manager_component.h"
void click_tile(gc_engine *engine, struct map_manager_component *manager, \
struct tile *ret, bool is_left)

View File

@@ -0,0 +1,80 @@
/*
** EPITECH PROJECT, 2020
** Gamacon
** File description:
** tile collision_managment
*/
#include "tile_collision_manager.h"
#include "map_utils.h"
#include <math.h>
#define INF 10000
bool is_on_segment(gc_vector2 p, gc_vector2 q, gc_vector2 r)
{
if (q.x <= fmaxf(p.x, r.x) && q.x >= fminf(p.x, r.x) && \
q.y <= fmaxf(p.y, r.y) && q.y >= fminf(p.y, r.y))
return (true);
return (false);
}
int orientation(gc_vector2 p, gc_vector2 q, gc_vector2 r)
{
int tmp = (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
if (tmp == 0)
return (0);
return ((tmp > 0) ? 1 : 2);
}
bool gc_vector2_do_intersect(gc_vector2 p1, gc_vector2 q1, gc_vector2 p2, gc_vector2 q2)
{
int o1 = orientation(p1, q1, p2);
int o2 = orientation(p1, q1, q2);
int o3 = orientation(p2, q2, p1);
int o4 = orientation(p2, q2, q1);
if (o1 != o2 && o3 != o4)
return (true);
if (o1 == 0 && is_on_segment(p1, p2, q1))
return (true);
if (o2 == 0 && is_on_segment(p1, q2, q1))
return (true);
if (o3 == 0 && is_on_segment(p2, p1, q2))
return (true);
if (o4 == 0 && is_on_segment(p2, q1, q2))
return (true);
return (false);
}
bool is_point_in_polygon(gc_vector2 *polygon, int n, gc_vector2 p)
{
gc_vector2 segment = {-INF, p.y};
int count = 0;
int next = 0;
int i = 0;
if (n < 3)
return (false);
do {
next = (i + 1) % n;
if (gc_vector2_do_intersect(polygon[i], polygon[next], p, segment)) {
if (orientation(polygon[i], p, polygon[next]) == 0)
return (is_on_segment(polygon[i], p, polygon[next]));
count++;
}
i = next;
} while (i != 0);
return (count & 1);
}
bool is_pos_in_tile(gc_vector2 pos, struct tile *tile)
{
struct vertex **c = tile->corners;
gc_vector2 corners[4];
for (int i = 0; i < 4; i++)
corners[i] = get_tile_coords_to_pixels(c[i]->x, c[i]->y, c[i]->z);
return (is_point_in_polygon(corners, 4, pos));
}