mirror of
https://github.com/zoriya/My3D.git
synced 2025-12-05 22:16:15 +00:00
Coding style
This commit is contained in:
12
.gitmodules
vendored
12
.gitmodules
vendored
@@ -1,9 +1,9 @@
|
||||
[submodule "Gamacon"]
|
||||
path = lib/gamacon
|
||||
url = https://github.com/AnonymusRaccoon/Gamacon
|
||||
path = lib/gamacon
|
||||
url = https://github.com/AnonymusRaccoon/Gamacon
|
||||
[submodule "lib/xmlparser"]
|
||||
path = lib/xmlparser
|
||||
url = https://github.com/AnonymusRaccoon/xmlParser
|
||||
path = lib/xmlparser
|
||||
url = https://github.com/AnonymusRaccoon/xmlParser
|
||||
[submodule "lib/quadtree"]
|
||||
path = lib/quadtree
|
||||
url = https://github.com/AnonymusRaccoon/quadtree
|
||||
path = lib/quadtree
|
||||
url = https://github.com/AnonymusRaccoon/quadtree
|
||||
|
||||
42
Makefile
42
Makefile
@@ -6,7 +6,7 @@
|
||||
##
|
||||
|
||||
SRC = src/main.c \
|
||||
src/game_loader.c
|
||||
src/game_loader.c
|
||||
|
||||
OBJ = $(SRC:%.c=%.o)
|
||||
|
||||
@@ -24,36 +24,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
|
||||
@@ -9,15 +9,15 @@
|
||||
|
||||
typedef enum display_type
|
||||
{
|
||||
HAPPINESS_DISPLAY,
|
||||
STUPIDITY_DISPLAY,
|
||||
SELECT_TILE_DISPLAY
|
||||
HAPPINESS_DISPLAY,
|
||||
STUPIDITY_DISPLAY,
|
||||
SELECT_TILE_DISPLAY
|
||||
} display_type;
|
||||
|
||||
struct game_display
|
||||
{
|
||||
gc_component base;
|
||||
display_type type;
|
||||
gc_component base;
|
||||
display_type type;
|
||||
};
|
||||
|
||||
const struct game_display game_display;
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
|
||||
struct game_manager
|
||||
{
|
||||
gc_component base;
|
||||
int happiness;
|
||||
int stupidity;
|
||||
gc_component base;
|
||||
int happiness;
|
||||
int stupidity;
|
||||
};
|
||||
|
||||
const struct game_manager game_manager;
|
||||
|
||||
@@ -9,18 +9,18 @@
|
||||
|
||||
enum brush
|
||||
{
|
||||
MOVE,
|
||||
RESET,
|
||||
ROTATE,
|
||||
TEXTURE
|
||||
MOVE,
|
||||
RESET,
|
||||
ROTATE,
|
||||
TEXTURE
|
||||
};
|
||||
|
||||
struct map_manager_component
|
||||
{
|
||||
gc_component base;
|
||||
bool tile_mode;
|
||||
enum brush brush;
|
||||
void *selected_texture;
|
||||
gc_component base;
|
||||
bool tile_mode;
|
||||
enum brush brush;
|
||||
void *selected_texture;
|
||||
};
|
||||
|
||||
const struct map_manager_component map_manager_component;
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
|
||||
struct teams_component
|
||||
{
|
||||
gc_component base;
|
||||
float next_teams;
|
||||
float delay;
|
||||
char **prefabs;
|
||||
int *prefabs_size;
|
||||
int prefab_count;
|
||||
gc_component base;
|
||||
float next_teams;
|
||||
float delay;
|
||||
char **prefabs;
|
||||
int *prefabs_size;
|
||||
int prefab_count;
|
||||
};
|
||||
|
||||
const struct teams_component teams_component;
|
||||
|
||||
@@ -14,12 +14,12 @@
|
||||
#include "keybindings.h"
|
||||
|
||||
enum modes_on_tile {
|
||||
VERTEX_0 = 2,
|
||||
VERTEX_1 = 4,
|
||||
VERTEX_2 = 8,
|
||||
VERTEX_3 = 16,
|
||||
ALL_VERTICES = 30,
|
||||
INVERT_ADD_VALUE = 1
|
||||
VERTEX_0 = 2,
|
||||
VERTEX_1 = 4,
|
||||
VERTEX_2 = 8,
|
||||
VERTEX_3 = 16,
|
||||
ALL_VERTICES = 30,
|
||||
INVERT_ADD_VALUE = 1
|
||||
};
|
||||
|
||||
bool tile_interact(gc_engine *engine, gc_entity *entity, gc_vector2 pos, \
|
||||
|
||||
Submodule lib/gamacon updated: 576221a8e2...0062aa990e
@@ -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
|
||||
|
||||
|
||||
@@ -66,6 +66,6 @@ int my_getnbr(const char *str)
|
||||
break;
|
||||
}
|
||||
if (count <= 0)
|
||||
return (0);
|
||||
return (0);
|
||||
return init_print(str, count, start_index);
|
||||
}
|
||||
|
||||
@@ -1,20 +1,23 @@
|
||||
//
|
||||
// Created by anonymus-raccoon on 2/27/20.
|
||||
//
|
||||
/*
|
||||
** EPITECH PROJECT, 2020
|
||||
** My3D
|
||||
** File description:
|
||||
** my_str_replace
|
||||
*/
|
||||
|
||||
#include "my.h"
|
||||
|
||||
char *my_str_replace(char *str, const char *to_replace, char c)
|
||||
{
|
||||
char *p;
|
||||
int len = my_strlen(to_replace);
|
||||
char *p;
|
||||
int len = my_strlen(to_replace);
|
||||
|
||||
while ((p = my_strstr(str, to_replace))) {
|
||||
*p = c;
|
||||
p++;
|
||||
for (char *ptr = p + len - 1; *ptr; ptr++, p++)
|
||||
*p = *ptr;
|
||||
*p = '\0';
|
||||
}
|
||||
return (str);
|
||||
while ((p = my_strstr(str, to_replace))) {
|
||||
*p = c;
|
||||
p++;
|
||||
for (char *ptr = p + len - 1; *ptr; ptr++, p++)
|
||||
*p = *ptr;
|
||||
*p = '\0';
|
||||
}
|
||||
return (str);
|
||||
}
|
||||
@@ -15,7 +15,7 @@ char *my_strdup(const char *src)
|
||||
char *ret = malloc(sizeof(char) * (length + 1));
|
||||
|
||||
if (!ret)
|
||||
return (NULL);
|
||||
return (NULL);
|
||||
for (int i = 0; i < length; i++)
|
||||
ret[i] = src[i];
|
||||
ret[length] = '\0';
|
||||
|
||||
@@ -55,7 +55,7 @@ char *tostr(int n)
|
||||
char *ret = malloc(sizeof(char) * (count + 1));
|
||||
|
||||
if (!ret)
|
||||
return (NULL);
|
||||
return (NULL);
|
||||
|
||||
putnbr_in(n, base, ret, count);
|
||||
ret[count] = '\0';
|
||||
|
||||
@@ -1,176 +0,0 @@
|
||||
/*
|
||||
** EPITECH PROJECT, 2019
|
||||
** Tests
|
||||
** File description:
|
||||
** test_disp_stdarg
|
||||
*/
|
||||
|
||||
#include <criterion/criterion.h>
|
||||
#include <criterion/redirect.h>
|
||||
#include "my.h"
|
||||
|
||||
Test(disp, first, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("Insane %s, %c, %d, %s\n", "Yes", '8', 15, "Nope");
|
||||
cr_assert_stdout_eq_str("Insane Yes, 8, 15, Nope\n");
|
||||
}
|
||||
|
||||
Test(disp, faketag, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("Insane %Y, %c, %d, %s\n", '8', 15, "Nope");
|
||||
cr_assert_stdout_eq_str("Insane %Y, 8, 15, Nope\n");
|
||||
}
|
||||
|
||||
Test(disp, str, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("Insane %s\n", "156615");
|
||||
cr_assert_stdout_eq_str("Insane 156615\n");
|
||||
}
|
||||
|
||||
Test(disp, uints, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("Insane %u\n", 156615);
|
||||
cr_assert_stdout_eq_str("Insane 156615\n");
|
||||
}
|
||||
|
||||
Test(disp, characters, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("Insane %c\n", '^');
|
||||
cr_assert_stdout_eq_str("Insane ^\n");
|
||||
}
|
||||
|
||||
Test(disp, ints, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("Insane %d, %i\n", 15, -15);
|
||||
cr_assert_stdout_eq_str("Insane 15, -15\n");
|
||||
}
|
||||
|
||||
Test(disp, ptr, .init = cr_redirect_stdout)
|
||||
{
|
||||
int ptr = 15;
|
||||
char *str = malloc(sizeof(char) * 25);
|
||||
|
||||
my_printf("Insane %p\n", &ptr);
|
||||
sprintf(str, "Insane %p\n", &ptr);
|
||||
cr_assert_stdout_eq_str(str);
|
||||
}
|
||||
|
||||
Test(disp, nonprintable, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("Insane %S\n", "\aYes\a");
|
||||
cr_assert_stdout_eq_str("Insane \\007Yes\\007\n");
|
||||
}
|
||||
|
||||
Test(disp, binary, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%b\n", 153152);
|
||||
cr_assert_stdout_eq_str("100101011001000000\n");
|
||||
}
|
||||
|
||||
Test(disp, octal, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%o\n", 153152);
|
||||
cr_assert_stdout_eq_str("453100\n");
|
||||
}
|
||||
|
||||
Test(disp, hexa, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%x\n", 1561356523);
|
||||
cr_assert_stdout_eq_str("5d1068eb\n");
|
||||
}
|
||||
|
||||
Test(disp, bighexa, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%X\n", 1561356523);
|
||||
cr_assert_stdout_eq_str("5D1068EB\n");
|
||||
}
|
||||
|
||||
Test(disp, uintneg, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%u\n", -500);
|
||||
cr_assert_stdout_eq_str("4294966796\n");
|
||||
}
|
||||
|
||||
Test(disp, noformat, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%%\n");
|
||||
cr_assert_stdout_eq_str("%\n");
|
||||
}
|
||||
|
||||
Test(disp, floats, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%f\n", 13.684);
|
||||
cr_assert_stdout_eq_str("13.684\n");
|
||||
}
|
||||
|
||||
Test(disp, morefloat, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%f\n", 18.138613);
|
||||
cr_assert_stdout_eq_str("18.138613\n");
|
||||
}
|
||||
|
||||
Test(my_printf, mouliS, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%S", "mouline\atte\n");
|
||||
cr_assert_stdout_eq_str("mouline\\007tte\\012");
|
||||
}
|
||||
|
||||
Test(my_printf, simplePtr, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%p", 3456789);
|
||||
cr_assert_stdout_eq_str("0x34bf15");
|
||||
}
|
||||
|
||||
Test(my_printf, intLength, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%05i", 15);
|
||||
cr_assert_stdout_eq_str("00015");
|
||||
}
|
||||
|
||||
Test(my_printf, intPlusSize, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%0+5i", 15);
|
||||
cr_assert_stdout_eq_str("+0015");
|
||||
}
|
||||
|
||||
Test(my_printf, intLengthSpace, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("% 05i", 15);
|
||||
cr_assert_stdout_eq_str(" 0015");
|
||||
}
|
||||
|
||||
Test(my_printf, intLengthSpacePlus, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("% 0+5i", -15);
|
||||
cr_assert_stdout_eq_str("-0015");
|
||||
}
|
||||
|
||||
Test(my_printf, xLength, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%05X", 15);
|
||||
cr_assert_stdout_eq_str("0000F");
|
||||
}
|
||||
|
||||
Test(my_printf, xPlusSize, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%0+5X", 15);
|
||||
cr_assert_stdout_eq_str("0000F");
|
||||
}
|
||||
|
||||
Test(my_printf, xLengthSpace, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%#X", -15);
|
||||
cr_assert_stdout_eq_str("0XFFFFFFF1");
|
||||
}
|
||||
|
||||
Test(my_printf, xLengthSpacePlus, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%# +X", -15);
|
||||
cr_assert_stdout_eq_str("0XFFFFFFF1");
|
||||
}
|
||||
|
||||
Test(my_printf, stringWithMax, .init = cr_redirect_stdout)
|
||||
{
|
||||
my_printf("%# +03s", "ABCDEFG");
|
||||
cr_assert_stdout_eq_str("ABC");
|
||||
}
|
||||
Submodule lib/xmlparser updated: 91f3604772...edee81e3ae
@@ -4,7 +4,7 @@
|
||||
<sprite name="check" src="assets/ui/check.png" />
|
||||
<sprite name="cross" src="assets/ui/cross.png" />
|
||||
<sprite name="front_panel" src="assets/ui/front_panel.png" />
|
||||
<sprite name="button_background" src="assets/ui/button_background.png" />
|
||||
<sprite name="button_background" src="assets/ui/button_background.png" />
|
||||
<sprite name="happiness" src="assets/ui/happiness.png" />
|
||||
<sprite name="clown" src="assets/ui/clown.png" />
|
||||
<sprite name="tile_select" src="assets/ui/tile_select.png" />
|
||||
@@ -17,11 +17,11 @@
|
||||
<sprite name="comparator_on" src="assets/sprites/comparator_on.png" />
|
||||
<sprite name="mossy_cobblestone" src="assets/sprites/cobblestone_mossy.png" />
|
||||
<sprite name="command_block" src="assets/sprites/command_block.png" />
|
||||
<sprite name="black_background" src="assets/ui/black_background.png" />
|
||||
<sprite name="black_background" src="assets/ui/black_background.png" />
|
||||
<sprite name="crafting_table" src="assets/sprites/crafting_table_top.png" />
|
||||
<sprite name="grass_top" src="assets/sprites/grass_top.png" />
|
||||
<sprite name="grass_side" src="assets/sprites/grass_side.png" />
|
||||
<music src="assets/musics/music.ogg"/>
|
||||
<music src="assets/musics/music.ogg"/>
|
||||
<font src="assets/fonts/roboto.ttf" />
|
||||
|
||||
<tiles>
|
||||
@@ -33,7 +33,7 @@
|
||||
</tiles>
|
||||
</data>
|
||||
<gc_entities>
|
||||
<camera x="0" y="300" />
|
||||
<camera x="0" y="300" />
|
||||
<gc_entity>
|
||||
<clickable_component click="map_manage_click"/>
|
||||
<map_manager_component />
|
||||
@@ -47,38 +47,38 @@
|
||||
</renderer>
|
||||
</gc_entity>
|
||||
|
||||
<gc_entity>
|
||||
<game_manager happiness="50%" stupidity="0%" />
|
||||
<teams_component delay="10">
|
||||
<prefab src="prefabs/teams/forgot_register.gcprefab" height="20%" />
|
||||
<prefab src="prefabs/teams/absent.gcprefab" height="20%" />
|
||||
</teams_component>
|
||||
</gc_entity>
|
||||
<gc_entity>
|
||||
<game_manager happiness="50%" stupidity="0%" />
|
||||
<teams_component delay="10">
|
||||
<prefab src="prefabs/teams/forgot_register.gcprefab" height="20%" />
|
||||
<prefab src="prefabs/teams/absent.gcprefab" height="20%" />
|
||||
</teams_component>
|
||||
</gc_entity>
|
||||
|
||||
<panel src="panel" x="7%" y="3%" width="37%" height="6%"/>
|
||||
<button sprite="tile_select" x="3%" y="3%" width="%" height="3%" tooltip="Select a tile." tooltip_x="5" tooltip_y="-5" size="15" click="tile_select" />
|
||||
<button sprite="vertex_select" x="7%" y="3%" width="%" height="3%" tooltip="Select a Vertex." tooltip_y="-5" size="15" click="vertex_select" />
|
||||
<button sprite="up_down" x="12%" y="3%" width="%" height="3%" tooltip="Move a tiles.\n - Up with left click.\n - Down with right click" tooltip_y="-15" size="15" click="up_down" />
|
||||
<button sprite="reset" x="15%" y="3%" width="%" height="3%" tooltip="Reset the height of a tile." tooltip_y="-5" size="15" click="reset" />
|
||||
<button sprite="rotate" x="19%" y="3%" width="%" height="3%" tooltip="Rotate a texture" tooltip_y="-5" size="15" click="rotate" />
|
||||
<button sprite="texture" x="23%" y="3%" width="%" height="3%" tooltip="Change the texture of a tile" tooltip_y="-5" size="15" click="texture" />
|
||||
<panel src="panel" x="7%" y="3%" width="37%" height="6%"/>
|
||||
<button sprite="tile_select" x="3%" y="3%" width="%" height="3%" tooltip="Select a tile." tooltip_x="5" tooltip_y="-5" size="15" click="tile_select" />
|
||||
<button sprite="vertex_select" x="7%" y="3%" width="%" height="3%" tooltip="Select a Vertex." tooltip_y="-5" size="15" click="vertex_select" />
|
||||
<button sprite="up_down" x="12%" y="3%" width="%" height="3%" tooltip="Move a tiles.\n - Up with left click.\n - Down with right click" tooltip_y="-15" size="15" click="up_down" />
|
||||
<button sprite="reset" x="15%" y="3%" width="%" height="3%" tooltip="Reset the height of a tile." tooltip_y="-5" size="15" click="reset" />
|
||||
<button sprite="rotate" x="19%" y="3%" width="%" height="3%" tooltip="Rotate a texture" tooltip_y="-5" size="15" click="rotate" />
|
||||
<button sprite="texture" x="23%" y="3%" width="%" height="3%" tooltip="Change the texture of a tile" tooltip_y="-5" size="15" click="texture" />
|
||||
|
||||
<panel src="panel" x="30%" y="3%" width="%" height="6%"/>
|
||||
<button sprite="texture" x="30%" y="3%" width="%" height="3%" tooltip="Select the texture to draw." tooltip_y="-5" size="15" click="switch_texture">
|
||||
<game_display stats="selected_tile" />
|
||||
</button>
|
||||
<panel src="panel" x="30%" y="3%" width="%" height="6%"/>
|
||||
<button sprite="texture" x="30%" y="3%" width="%" height="3%" tooltip="Select the texture to draw." tooltip_y="-5" size="15" click="switch_texture">
|
||||
<game_display stats="selected_tile" />
|
||||
</button>
|
||||
|
||||
<panel src="panel" x="100%" y="50%" width="50%" height="120%"/>
|
||||
<text text="TEAMS" x="88%" y="40"/>
|
||||
<panel src="panel" x="100%" y="50%" width="50%" height="120%"/>
|
||||
<text text="TEAMS" x="88%" y="40"/>
|
||||
|
||||
<panel src="panel" x="50%" y="98%" width="120%" height="4%"/>
|
||||
<panel src="happiness" x="3%" y="98%" width="%" height="3%"/>
|
||||
<text text="100%" x="6%" y="98%" size="13" tooltip="The level of happiness of your students.\n" padding_x="17" tooltip_x="10" tooltip_y="5">
|
||||
<game_display stats="happiness" />
|
||||
</text>
|
||||
<panel src="clown" x="10%" y="98%" width="%" height="3%" />
|
||||
<text text="100%" x="13%" y="98%" size="13" tooltip="The level of stupidity of your students.\nThey start doing stupid things if you'are too kind with them.\n\nYou will loose if this stat reach 100%" padding_x="17" tooltip_x="10" tooltip_y="5">
|
||||
<game_display stats="stupidity" />
|
||||
</text>
|
||||
<panel src="panel" x="50%" y="98%" width="120%" height="4%"/>
|
||||
<panel src="happiness" x="3%" y="98%" width="%" height="3%"/>
|
||||
<text text="100%" x="6%" y="98%" size="13" tooltip="The level of happiness of your students.\n" padding_x="17" tooltip_x="10" tooltip_y="5">
|
||||
<game_display stats="happiness" />
|
||||
</text>
|
||||
<panel src="clown" x="10%" y="98%" width="%" height="3%" />
|
||||
<text text="100%" x="13%" y="98%" size="13" tooltip="The level of stupidity of your students.\nThey start doing stupid things if you'are too kind with them.\n\nYou will loose if this stat reach 100%" padding_x="17" tooltip_x="10" tooltip_y="5">
|
||||
<game_display stats="stupidity" />
|
||||
</text>
|
||||
</gc_entities>
|
||||
</gc_scene>
|
||||
@@ -5,9 +5,9 @@
|
||||
<font src="assets/fonts/roboto.ttf" />
|
||||
</data>
|
||||
<gc_entities>
|
||||
<panel src="panel" x="50%" y="45%" width="300" height="69%"/>
|
||||
<text text="Game Over" x="50%" y="25%" resize="false"/>
|
||||
<button text="Retry" x="50%" y="60%" click="start_button" color="black" width="200" resize="false" />
|
||||
<button text="Exit" x="50%" y="72%" click="quit" color="black" width="200" resize="false" />
|
||||
<panel src="panel" x="50%" y="45%" width="300" height="69%"/>
|
||||
<text text="Game Over" x="50%" y="25%" resize="false"/>
|
||||
<button text="Retry" x="50%" y="60%" click="start_button" color="black" width="200" resize="false" />
|
||||
<button text="Exit" x="50%" y="72%" click="quit" color="black" width="200" resize="false" />
|
||||
</gc_entities>
|
||||
</gc_scene>
|
||||
@@ -6,10 +6,10 @@
|
||||
<font src="assets/fonts/roboto.ttf" />
|
||||
</data>
|
||||
<gc_entities>
|
||||
<panel src="panel" x="25%" y="45%" width="300" height="69%"/>
|
||||
<text text="Game Over" x="25%" y="25%" resize="false"/>
|
||||
<panel src="martine" x="75%" y="50%" width="20%" height="%" />
|
||||
<button text="Retry" x="25%" y="60%" click="start_button" color="black" width="200" resize="false" />
|
||||
<button text="Exit" x="25%" y="72%" click="quit" color="black" width="200" resize="false" />
|
||||
<panel src="panel" x="25%" y="45%" width="300" height="69%"/>
|
||||
<text text="Game Over" x="25%" y="25%" resize="false"/>
|
||||
<panel src="martine" x="75%" y="50%" width="20%" height="%" />
|
||||
<button text="Retry" x="25%" y="60%" click="start_button" color="black" width="200" resize="false" />
|
||||
<button text="Exit" x="25%" y="72%" click="quit" color="black" width="200" resize="false" />
|
||||
</gc_entities>
|
||||
</gc_scene>
|
||||
@@ -5,11 +5,11 @@
|
||||
<font src="assets/fonts/roboto.ttf" />
|
||||
</data>
|
||||
<gc_entities>
|
||||
<camera x="0" y="0" />
|
||||
<panel src="panel" x="50%" y="45%" width="300" height="69%"/>
|
||||
<text text="DPR tycoon" x="50%" y="25%" resize="false"/>
|
||||
<button text="Start Game" x="50%" y="50%" click="start_button" color="black" width="200" resize="false" />
|
||||
<button text="Options" x="50%" y="61%" click="options" color="black" width="200" resize="false" />
|
||||
<button text="Quit game" x="50%" y="72%" click="quit" color="black" width="200" resize="false" />
|
||||
<camera x="0" y="0" />
|
||||
<panel src="panel" x="50%" y="45%" width="300" height="69%"/>
|
||||
<text text="DPR tycoon" x="50%" y="25%" resize="false"/>
|
||||
<button text="Start Game" x="50%" y="50%" click="start_button" color="black" width="200" resize="false" />
|
||||
<button text="Options" x="50%" y="61%" click="options" color="black" width="200" resize="false" />
|
||||
<button text="Quit game" x="50%" y="72%" click="quit" color="black" width="200" resize="false" />
|
||||
</gc_entities>
|
||||
</gc_scene>
|
||||
@@ -1,26 +1,26 @@
|
||||
<gc_scene>
|
||||
<data>
|
||||
<sprite name="panel" src="assets/ui/panel.png" />
|
||||
<sprite name="button_background" src="assets/ui/button_background.png" />
|
||||
<sprite name="check" src="assets/ui/check.png" />
|
||||
<sprite name="cross" src="assets/ui/cross.png" />
|
||||
<sprite name="left" src="assets/ui/left.png" />
|
||||
<sprite name="right" src="assets/ui/right.png" />
|
||||
<font src="assets/fonts/roboto.ttf" />
|
||||
</data>
|
||||
<gc_entities>
|
||||
<panel src="panel" x="50%" y="45%" width="40%" height="65%" />
|
||||
<text text="Options" x="50%" y="25%" />
|
||||
<text text="Framerate" x="41%" y="40%"/>
|
||||
<button x="53%" y="40%" click="framerate_down" sprite="left" width="2%" height="4%" />
|
||||
<text x="59%" y="40%" size="18" text_id="52" />
|
||||
<button x="65%" y="40%" click="framerate_up" sprite="right" width="2%" height="4%" />
|
||||
<text text="Fullscreen" x="45%" y="50%" />
|
||||
<button x="60%" y="50%" click="fullscreen" sprite="cross" width="5%" height="%" background_id="50" />
|
||||
<text text="Resolution" x="41%" y="60%"/>
|
||||
<button x="53%" y="60%" click="resolution_down" sprite="left" width="2%" height="4%" />
|
||||
<text x="59%" y="60%" size="18" text_id="51" />
|
||||
<button x="65%" y="60%" click="resolution_up" sprite="right" width="2%" height="4%" />
|
||||
<button text="Back" x="50%" y="72%" click="goto_main_menu" color="black" width="200" resize="false" />
|
||||
</gc_entities>
|
||||
<data>
|
||||
<sprite name="panel" src="assets/ui/panel.png" />
|
||||
<sprite name="button_background" src="assets/ui/button_background.png" />
|
||||
<sprite name="check" src="assets/ui/check.png" />
|
||||
<sprite name="cross" src="assets/ui/cross.png" />
|
||||
<sprite name="left" src="assets/ui/left.png" />
|
||||
<sprite name="right" src="assets/ui/right.png" />
|
||||
<font src="assets/fonts/roboto.ttf" />
|
||||
</data>
|
||||
<gc_entities>
|
||||
<panel src="panel" x="50%" y="45%" width="40%" height="65%" />
|
||||
<text text="Options" x="50%" y="25%" />
|
||||
<text text="Framerate" x="41%" y="40%"/>
|
||||
<button x="53%" y="40%" click="framerate_down" sprite="left" width="2%" height="4%" />
|
||||
<text x="59%" y="40%" size="18" text_id="52" />
|
||||
<button x="65%" y="40%" click="framerate_up" sprite="right" width="2%" height="4%" />
|
||||
<text text="Fullscreen" x="45%" y="50%" />
|
||||
<button x="60%" y="50%" click="fullscreen" sprite="cross" width="5%" height="%" background_id="50" />
|
||||
<text text="Resolution" x="41%" y="60%"/>
|
||||
<button x="53%" y="60%" click="resolution_down" sprite="left" width="2%" height="4%" />
|
||||
<text x="59%" y="60%" size="18" text_id="51" />
|
||||
<button x="65%" y="60%" click="resolution_up" sprite="right" width="2%" height="4%" />
|
||||
<button text="Back" x="50%" y="72%" click="goto_main_menu" color="black" width="200" resize="false" />
|
||||
</gc_entities>
|
||||
</gc_scene>
|
||||
@@ -1,7 +1,7 @@
|
||||
<gc_entities>
|
||||
<button sprite="black_background" x="50%" y="50%" width="100%" height="100%" click="catch" tag="pause" />
|
||||
<panel src="panel" x="50%" y="45%" width="300" height="69%" tag="pause" />
|
||||
<text text="Pause" x="50%" y="25%" resize="false" tag="pause"/>
|
||||
<button text="Resume" x="50%" y="61%" click="toggle_pause" color="black" width="200" resize="false" tag="pause" />
|
||||
<button text="Quit to menu" x="50%" y="72%" click="goto_main_menu" color="black" width="200" resize="false" tag="pause" />
|
||||
<button sprite="black_background" x="50%" y="50%" width="100%" height="100%" click="catch" tag="pause" />
|
||||
<panel src="panel" x="50%" y="45%" width="300" height="69%" tag="pause" />
|
||||
<text text="Pause" x="50%" y="25%" resize="false" tag="pause"/>
|
||||
<button text="Resume" x="50%" y="61%" click="toggle_pause" color="black" width="200" resize="false" tag="pause" />
|
||||
<button text="Quit to menu" x="50%" y="72%" click="goto_main_menu" color="black" width="200" resize="false" tag="pause" />
|
||||
</gc_entities>
|
||||
@@ -1,6 +1,6 @@
|
||||
<gc_entities>
|
||||
<panel src="front_panel" x="89%" y="80%" width="20%" height="8%" tag="teams" />
|
||||
<text text="I was absent today at the talk.\nCould you set my status as present?" x="89%" y="82%" color="black" size="9" tag="teams" />
|
||||
<button sprite="check" x="85%" y="85%" width="3%" height="%" click="absent_check" tag="teams" />
|
||||
<button sprite="cross" x="93%" y="85%" width="3%" height="%" click="absent_cross" tag="teams" />
|
||||
<panel src="front_panel" x="89%" y="80%" width="20%" height="8%" tag="teams" />
|
||||
<text text="I was absent today at the talk.\nCould you set my status as present?" x="89%" y="82%" color="black" size="9" tag="teams" />
|
||||
<button sprite="check" x="85%" y="85%" width="3%" height="%" click="absent_check" tag="teams" />
|
||||
<button sprite="cross" x="93%" y="85%" width="3%" height="%" click="absent_cross" tag="teams" />
|
||||
</gc_entities>
|
||||
@@ -1,6 +1,6 @@
|
||||
<gc_entities>
|
||||
<panel src="front_panel" x="89%" y="80%" width="20%" height="8%" tag="teams" />
|
||||
<text text="I forgot to register for the module,\n could you register me?" x="89%" y="82%" color="black" size="9" tag="teams" />
|
||||
<button sprite="front_panel" text="LMFAO" color="black" size="9" x="89%" y="86%" width="17%" height="5%" click="forgot_lmfao" tag="teams" />
|
||||
<button sprite="front_panel" text="It's the first and the last time." color="black" size="9" x="89%" y="90%" width="17%" height="5%" click="forgot_ok" tag="teams" />
|
||||
<panel src="front_panel" x="89%" y="80%" width="20%" height="8%" tag="teams" />
|
||||
<text text="I forgot to register for the module,\n could you register me?" x="89%" y="82%" color="black" size="9" tag="teams" />
|
||||
<button sprite="front_panel" text="LMFAO" color="black" size="9" x="89%" y="86%" width="17%" height="5%" click="forgot_lmfao" tag="teams" />
|
||||
<button sprite="front_panel" text="It's the first and the last time." color="black" size="9" x="89%" y="90%" width="17%" height="5%" click="forgot_ok" tag="teams" />
|
||||
</gc_entities>
|
||||
@@ -1,160 +1,160 @@
|
||||
<gc_map >
|
||||
<vertex_data>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<vertex_data>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
<line>
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
<row height="0" />
|
||||
</line>
|
||||
</vertex_data>
|
||||
<tiles_data>
|
||||
<texture x="0" y="0" name="cobblestone" />
|
||||
|
||||
@@ -16,56 +16,56 @@
|
||||
|
||||
static void ctr(void *component, va_list args)
|
||||
{
|
||||
struct game_display *cmp = (struct game_display *)component;
|
||||
struct game_display *cmp = (struct game_display *)component;
|
||||
|
||||
cmp->type = va_arg(args, display_type);
|
||||
cmp->type = va_arg(args, display_type);
|
||||
}
|
||||
|
||||
static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n)
|
||||
{
|
||||
struct game_display *cmp = (struct game_display *)component;
|
||||
struct renderer *rend = GETCMP(entity, renderer);
|
||||
char *display_type = xml_gettempprop(n, "stats");
|
||||
struct game_display *cmp = (struct game_display *)component;
|
||||
struct renderer *rend = GETCMP(entity, renderer);
|
||||
char *display_type = xml_gettempprop(n, "stats");
|
||||
|
||||
if (!my_strcmp(display_type, "selected_tile")) {
|
||||
cmp->type = SELECT_TILE_DISPLAY;
|
||||
return;
|
||||
}
|
||||
if (!my_strcmp(display_type, "happiness"))
|
||||
cmp->type = HAPPINESS_DISPLAY;
|
||||
else
|
||||
cmp->type = STUPIDITY_DISPLAY;
|
||||
if (!rend || rend->type != GC_TXTREND) {
|
||||
my_printf("Using a game display without a text renderer.\n");
|
||||
return;
|
||||
}
|
||||
((gc_text *)rend->data)->text = malloc(sizeof(char) * 10);
|
||||
if (((gc_text *)rend->data)->text)
|
||||
((gc_text *)rend->data)->text[0] = '\0';
|
||||
if (!my_strcmp(display_type, "selected_tile")) {
|
||||
cmp->type = SELECT_TILE_DISPLAY;
|
||||
return;
|
||||
}
|
||||
if (!my_strcmp(display_type, "happiness"))
|
||||
cmp->type = HAPPINESS_DISPLAY;
|
||||
else
|
||||
cmp->type = STUPIDITY_DISPLAY;
|
||||
if (!rend || rend->type != GC_TXTREND) {
|
||||
my_printf("Using a game display without a text renderer.\n");
|
||||
return;
|
||||
}
|
||||
((gc_text *)rend->data)->text = malloc(sizeof(char) * 10);
|
||||
if (((gc_text *)rend->data)->text)
|
||||
((gc_text *)rend->data)->text[0] = '\0';
|
||||
}
|
||||
|
||||
static void dtr(void *component)
|
||||
{
|
||||
(void)component;
|
||||
(void)component;
|
||||
}
|
||||
|
||||
static char *serialize(void *component)
|
||||
{
|
||||
(void)component;
|
||||
return (NULL);
|
||||
(void)component;
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
const struct game_display game_display = {
|
||||
base: {
|
||||
name: "game_display",
|
||||
size: sizeof(struct game_display),
|
||||
dependencies: (char *[]) {
|
||||
NULL
|
||||
},
|
||||
ctr: &ctr,
|
||||
fdctr: &fdctr,
|
||||
dtr: &dtr,
|
||||
serialize: &serialize,
|
||||
destroy: &component_destroy
|
||||
}
|
||||
base: {
|
||||
name: "game_display",
|
||||
size: sizeof(struct game_display),
|
||||
dependencies: (char *[]) {
|
||||
NULL
|
||||
},
|
||||
ctr: &ctr,
|
||||
fdctr: &fdctr,
|
||||
dtr: &dtr,
|
||||
serialize: &serialize,
|
||||
destroy: &component_destroy
|
||||
}
|
||||
};
|
||||
@@ -13,44 +13,44 @@
|
||||
|
||||
static void ctr(void *component, va_list args)
|
||||
{
|
||||
struct game_manager *cmp = (struct game_manager *)component;
|
||||
struct game_manager *cmp = (struct game_manager *)component;
|
||||
|
||||
cmp->happiness = va_arg(args, int);
|
||||
cmp->stupidity = va_arg(args, int);
|
||||
cmp->happiness = va_arg(args, int);
|
||||
cmp->stupidity = va_arg(args, int);
|
||||
}
|
||||
|
||||
static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n)
|
||||
{
|
||||
struct game_manager *cmp = (struct game_manager *)component;
|
||||
struct game_manager *cmp = (struct game_manager *)component;
|
||||
|
||||
cmp->happiness = xml_getintprop(n, "happiness");
|
||||
cmp->stupidity = xml_getintprop(n, "stupidity");
|
||||
if (scene->get_entity_by_cmp(scene, "game_manager"))
|
||||
my_printf(MULTIPLE_GAME_MGR_ERROR);
|
||||
cmp->happiness = xml_getintprop(n, "happiness");
|
||||
cmp->stupidity = xml_getintprop(n, "stupidity");
|
||||
if (scene->get_entity_by_cmp(scene, "game_manager"))
|
||||
my_printf(MULTIPLE_GAME_MGR_ERROR);
|
||||
}
|
||||
|
||||
static void dtr(void *component)
|
||||
{
|
||||
(void)component;
|
||||
(void)component;
|
||||
}
|
||||
|
||||
static char *serialize(void *component)
|
||||
{
|
||||
(void)component;
|
||||
return (NULL);
|
||||
(void)component;
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
const struct game_manager game_manager = {
|
||||
base: {
|
||||
name: "game_manager",
|
||||
size: sizeof(struct game_manager),
|
||||
dependencies: (char *[]) {
|
||||
NULL
|
||||
},
|
||||
ctr: &ctr,
|
||||
fdctr: &fdctr,
|
||||
dtr: &dtr,
|
||||
serialize: &serialize,
|
||||
destroy: &component_destroy
|
||||
}
|
||||
base: {
|
||||
name: "game_manager",
|
||||
size: sizeof(struct game_manager),
|
||||
dependencies: (char *[]) {
|
||||
NULL
|
||||
},
|
||||
ctr: &ctr,
|
||||
fdctr: &fdctr,
|
||||
dtr: &dtr,
|
||||
serialize: &serialize,
|
||||
destroy: &component_destroy
|
||||
}
|
||||
};
|
||||
@@ -18,52 +18,52 @@
|
||||
void click_tile(gc_engine *engine, struct map_manager_component *manager, \
|
||||
struct tile *ret, bool is_left)
|
||||
{
|
||||
bool r = manager->brush == RESET;
|
||||
bool r = manager->brush == RESET;
|
||||
|
||||
switch (manager->brush) {
|
||||
case ROTATE:
|
||||
ret->data = (ret->data + (is_left ? 1 : -1U)) % 4;
|
||||
break;
|
||||
case TEXTURE:
|
||||
ret->texture = manager->selected_texture;
|
||||
break;
|
||||
case MOVE:
|
||||
case RESET:
|
||||
move_tile(engine, ret, ALL_VERTICES | is_left, r);
|
||||
break;
|
||||
}
|
||||
switch (manager->brush) {
|
||||
case ROTATE:
|
||||
ret->data = (ret->data + (is_left ? 1 : -1U)) % 4;
|
||||
break;
|
||||
case TEXTURE:
|
||||
ret->texture = manager->selected_texture;
|
||||
break;
|
||||
case MOVE:
|
||||
case RESET:
|
||||
move_tile(engine, ret, ALL_VERTICES | is_left, r);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool tile_interact(gc_engine *engine, gc_entity *entity, gc_vector2 pos, \
|
||||
enum gc_mousekeys key)
|
||||
{
|
||||
struct vertex_component *map = GETCMP(entity, vertex_component);
|
||||
struct map_manager_component *manager = GETCMP(entity, map_manager_component);
|
||||
struct tile *ret = get_tile_from_pos(map, pos);
|
||||
bool r = manager->brush == RESET;
|
||||
int ind;
|
||||
struct vertex_component *map = GETCMP(entity, vertex_component);
|
||||
struct map_manager_component *manager = GETCMP(entity, map_manager_component);
|
||||
struct tile *ret = get_tile_from_pos(map, pos);
|
||||
bool r = manager->brush == RESET;
|
||||
int ind;
|
||||
|
||||
if (!map || !manager) {
|
||||
my_printf("map not found\n");
|
||||
return (false);
|
||||
}
|
||||
if (!ret)
|
||||
return (false);
|
||||
if (manager->tile_mode)
|
||||
click_tile(engine, manager, ret, key == GC_LEFT);
|
||||
else {
|
||||
ind = get_index_nearest_vertex(ret, pos);
|
||||
move_tile(engine, ret, ((int) pow(2, ind + 1)) | (key == GC_LEFT), r);
|
||||
}
|
||||
return (false);
|
||||
if (!map || !manager) {
|
||||
my_printf("map not found\n");
|
||||
return (false);
|
||||
}
|
||||
if (!ret)
|
||||
return (false);
|
||||
if (manager->tile_mode)
|
||||
click_tile(engine, manager, ret, key == GC_LEFT);
|
||||
else {
|
||||
ind = get_index_nearest_vertex(ret, pos);
|
||||
move_tile(engine, ret, ((int) pow(2, ind + 1)) | (key == GC_LEFT), r);
|
||||
}
|
||||
return (false);
|
||||
}
|
||||
|
||||
void move_tile(gc_engine *engine, struct tile *ret, char mode, bool r)
|
||||
{
|
||||
int val = (mode & INVERT_ADD_VALUE) ? ADD_VALUE : -ADD_VALUE;
|
||||
int val = (mode & INVERT_ADD_VALUE) ? ADD_VALUE : -ADD_VALUE;
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (mode & (int)pow(2, i + 1))
|
||||
ret->corners[i]->z += (r) ? -ret->corners[i]->z : val;
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (mode & (int)pow(2, i + 1))
|
||||
ret->corners[i]->z += (r) ? -ret->corners[i]->z : val;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
//
|
||||
// Created by anonymus-raccoon on 3/10/20.
|
||||
//
|
||||
/*
|
||||
** EPITECH PROJECT, 2020
|
||||
** My3D
|
||||
** File description:
|
||||
** map_manager_component
|
||||
*/
|
||||
|
||||
#include <components/isometry/map_manager_component.h>
|
||||
#include "engine.h"
|
||||
@@ -11,45 +14,45 @@
|
||||
|
||||
static void ctr(void *comp, va_list args)
|
||||
{
|
||||
struct map_manager_component *cmp = (struct map_manager_component *)comp;
|
||||
struct map_manager_component *cmp = (struct map_manager_component *)comp;
|
||||
|
||||
cmp->tile_mode = true;
|
||||
cmp->brush = MOVE;
|
||||
cmp->tile_mode = true;
|
||||
cmp->brush = MOVE;
|
||||
}
|
||||
|
||||
static void fdctr(gc_entity *entity, gc_scene *scene, void *comp, node *n)
|
||||
{
|
||||
struct map_manager_component *cmp = (struct map_manager_component *)comp;
|
||||
void **data = scene->get_data(scene, "tiles", NULL);
|
||||
struct map_manager_component *cmp = (struct map_manager_component *)comp;
|
||||
void **data = scene->get_data(scene, "tiles", NULL);
|
||||
|
||||
cmp->tile_mode = true;
|
||||
cmp->brush = MOVE;
|
||||
if (data)
|
||||
cmp->selected_texture = data[0];
|
||||
cmp->tile_mode = true;
|
||||
cmp->brush = MOVE;
|
||||
if (data)
|
||||
cmp->selected_texture = data[0];
|
||||
}
|
||||
|
||||
static void dtr(void *component)
|
||||
{
|
||||
(void)component;
|
||||
(void)component;
|
||||
}
|
||||
|
||||
static char *serialize(void *component)
|
||||
{
|
||||
(void)component;
|
||||
return (NULL);
|
||||
(void)component;
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
const struct map_manager_component map_manager_component = {
|
||||
base: {
|
||||
name: "map_manager_component",
|
||||
size: sizeof(struct map_manager_component),
|
||||
dependencies: (char *[]){
|
||||
NULL
|
||||
},
|
||||
ctr: &ctr,
|
||||
fdctr: &fdctr,
|
||||
dtr: &dtr,
|
||||
serialize: &serialize,
|
||||
destroy: &component_destroy
|
||||
}
|
||||
base: {
|
||||
name: "map_manager_component",
|
||||
size: sizeof(struct map_manager_component),
|
||||
dependencies: (char *[]){
|
||||
NULL
|
||||
},
|
||||
ctr: &ctr,
|
||||
fdctr: &fdctr,
|
||||
dtr: &dtr,
|
||||
serialize: &serialize,
|
||||
destroy: &component_destroy
|
||||
}
|
||||
};
|
||||
@@ -13,57 +13,57 @@
|
||||
|
||||
static void ctr(void *component, va_list args)
|
||||
{
|
||||
struct teams_component *cmp = (struct teams_component *)component;
|
||||
struct teams_component *cmp = (struct teams_component *)component;
|
||||
|
||||
cmp->delay = va_arg(args, double);
|
||||
cmp->next_teams = cmp->delay;
|
||||
cmp->delay = va_arg(args, double);
|
||||
cmp->next_teams = cmp->delay;
|
||||
}
|
||||
|
||||
static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n)
|
||||
{
|
||||
struct teams_component *cmp = (struct teams_component *)component;
|
||||
struct teams_component *cmp = (struct teams_component *)component;
|
||||
|
||||
cmp->delay = xml_getfloatprop(n, "delay");
|
||||
cmp->next_teams = cmp->delay;
|
||||
cmp->prefab_count = xml_getchildcount_filtered(n, "prefab");
|
||||
cmp->prefabs = malloc(sizeof(char *) * cmp->prefab_count);
|
||||
cmp->prefabs_size = malloc(sizeof(int) * cmp->prefab_count);
|
||||
n = n->child;
|
||||
if (!cmp->prefabs || !cmp->prefab_count) {
|
||||
cmp->prefabs = NULL;
|
||||
cmp->prefabs_size = NULL;
|
||||
cmp->prefab_count = 0;
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < cmp->prefab_count; i++) {
|
||||
cmp->prefabs[i] = xml_getproperty(n, "src");
|
||||
cmp->prefabs_size[i] = xml_getintprop(n, "height");
|
||||
n = n->next;
|
||||
}
|
||||
cmp->delay = xml_getfloatprop(n, "delay");
|
||||
cmp->next_teams = cmp->delay;
|
||||
cmp->prefab_count = xml_getchildcount_filtered(n, "prefab");
|
||||
cmp->prefabs = malloc(sizeof(char *) * cmp->prefab_count);
|
||||
cmp->prefabs_size = malloc(sizeof(int) * cmp->prefab_count);
|
||||
n = n->child;
|
||||
if (!cmp->prefabs || !cmp->prefab_count) {
|
||||
cmp->prefabs = NULL;
|
||||
cmp->prefabs_size = NULL;
|
||||
cmp->prefab_count = 0;
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < cmp->prefab_count; i++) {
|
||||
cmp->prefabs[i] = xml_getproperty(n, "src");
|
||||
cmp->prefabs_size[i] = xml_getintprop(n, "height");
|
||||
n = n->next;
|
||||
}
|
||||
}
|
||||
|
||||
static void dtr(void *component)
|
||||
{
|
||||
(void)component;
|
||||
(void)component;
|
||||
}
|
||||
|
||||
static char *serialize(void *component)
|
||||
{
|
||||
(void)component;
|
||||
return (NULL);
|
||||
(void)component;
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
const struct teams_component teams_component = {
|
||||
base: {
|
||||
name: "teams_component",
|
||||
size: sizeof(struct teams_component),
|
||||
dependencies: (char *[]) {
|
||||
NULL
|
||||
},
|
||||
ctr: &ctr,
|
||||
fdctr: &fdctr,
|
||||
dtr: &dtr,
|
||||
serialize: &serialize,
|
||||
destroy: &component_destroy
|
||||
}
|
||||
base: {
|
||||
name: "teams_component",
|
||||
size: sizeof(struct teams_component),
|
||||
dependencies: (char *[]) {
|
||||
NULL
|
||||
},
|
||||
ctr: &ctr,
|
||||
fdctr: &fdctr,
|
||||
dtr: &dtr,
|
||||
serialize: &serialize,
|
||||
destroy: &component_destroy
|
||||
}
|
||||
};
|
||||
@@ -1,6 +1,9 @@
|
||||
//
|
||||
// Created by anonymus-raccoon on 3/11/20.
|
||||
//
|
||||
/*
|
||||
** EPITECH PROJECT, 2020
|
||||
** My3D
|
||||
** File description:
|
||||
** framerate
|
||||
*/
|
||||
|
||||
#include "entity.h"
|
||||
#include "engine.h"
|
||||
@@ -11,57 +14,56 @@
|
||||
#include "limits.h"
|
||||
|
||||
static const int framerates[] = {
|
||||
30,
|
||||
60,
|
||||
120,
|
||||
INT_MAX
|
||||
30,
|
||||
60,
|
||||
120,
|
||||
INT_MAX
|
||||
};
|
||||
|
||||
void framerate_set_text(gc_entity *entity, gc_engine *engine)
|
||||
{
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
struct renderer *renderer;
|
||||
char *framerate;
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
struct renderer *renderer;
|
||||
char *framerate;
|
||||
|
||||
if (!entity)
|
||||
return;
|
||||
renderer = GETCMP(entity, renderer);
|
||||
if (!rend || !renderer || renderer->type != GC_TXTREND)
|
||||
return;
|
||||
framerate = tostr(rend->framerate);
|
||||
free(((gc_text *)renderer->data)->text);
|
||||
((gc_text *)renderer->data)->text = framerate;
|
||||
if (!entity)
|
||||
return;
|
||||
renderer = GETCMP(entity, renderer);
|
||||
if (!rend || !renderer || renderer->type != GC_TXTREND)
|
||||
return;
|
||||
framerate = tostr(rend->framerate);
|
||||
free(((gc_text *)renderer->data)->text);
|
||||
((gc_text *)renderer->data)->text = framerate;
|
||||
}
|
||||
|
||||
|
||||
bool framerate_down(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
int i = 2;
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
int i = 2;
|
||||
|
||||
if (!rend || rend->is_fullscreen)
|
||||
return (false);
|
||||
while (i > 0 && framerates[i] >= rend->framerate)
|
||||
i--;
|
||||
sfRenderWindow_setFramerateLimit(rend->window, framerates[i]);
|
||||
rend->framerate = framerates[i];
|
||||
framerate_set_text(engine->scene->get_entity(engine->scene, 52), engine);
|
||||
return (true);
|
||||
if (!rend || rend->is_fullscreen)
|
||||
return (false);
|
||||
while (i > 0 && framerates[i] >= rend->framerate)
|
||||
i--;
|
||||
sfRenderWindow_setFramerateLimit(rend->window, framerates[i]);
|
||||
rend->framerate = framerates[i];
|
||||
framerate_set_text(engine->scene->get_entity(engine->scene, 52), engine);
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool framerate_up(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
int i = 0;
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
int i = 0;
|
||||
|
||||
if (!rend || rend->is_fullscreen)
|
||||
return (false);
|
||||
while (framerates[i] <= rend->framerate)
|
||||
i++;
|
||||
if (framerates[i] == INT_MAX)
|
||||
return (true);
|
||||
sfRenderWindow_setFramerateLimit(rend->window, framerates[i]);
|
||||
rend->framerate = framerates[i];
|
||||
framerate_set_text(engine->scene->get_entity(engine->scene, 52), engine);
|
||||
return (true);
|
||||
if (!rend || rend->is_fullscreen)
|
||||
return (false);
|
||||
while (framerates[i] <= rend->framerate)
|
||||
i++;
|
||||
if (framerates[i] == INT_MAX)
|
||||
return (true);
|
||||
sfRenderWindow_setFramerateLimit(rend->window, framerates[i]);
|
||||
rend->framerate = framerates[i];
|
||||
framerate_set_text(engine->scene->get_entity(engine->scene, 52), engine);
|
||||
return (true);
|
||||
}
|
||||
@@ -19,44 +19,44 @@
|
||||
#include "map_interactions.h"
|
||||
|
||||
const struct callback callbacks[] = {
|
||||
{"start_button", &start_button},
|
||||
{"options", &options},
|
||||
{"goto_main_menu", &goto_main_menu},
|
||||
{"quit", &quit},
|
||||
{"fullscreen", &fullscreen},
|
||||
{"map_manage_click", &tile_interact},
|
||||
{"resolution_down", &resolution_down},
|
||||
{"resolution_up", &resolution_up},
|
||||
{"framerate_up", &framerate_up},
|
||||
{"framerate_down", &framerate_down},
|
||||
{"absent_check", &absent_check},
|
||||
{"absent_cross", &absent_cross},
|
||||
{"forgot_lmfao", &forgot_lmfao},
|
||||
{"forgot_ok", &forgot_ok},
|
||||
{"catch", &catch},
|
||||
{"toggle_pause", &toggle_pause},
|
||||
{"toggle_pause", &toggle_pause},
|
||||
{"tile_select", &tile_select},
|
||||
{"vertex_select", &vertex_select},
|
||||
{"up_down", &up_down},
|
||||
{"reset", &reset},
|
||||
{"rotate", &rotate},
|
||||
{"texture", &texture},
|
||||
{"switch_texture", &switch_texture},
|
||||
{NULL, NULL}
|
||||
{"start_button", &start_button},
|
||||
{"options", &options},
|
||||
{"goto_main_menu", &goto_main_menu},
|
||||
{"quit", &quit},
|
||||
{"fullscreen", &fullscreen},
|
||||
{"map_manage_click", &tile_interact},
|
||||
{"resolution_down", &resolution_down},
|
||||
{"resolution_up", &resolution_up},
|
||||
{"framerate_up", &framerate_up},
|
||||
{"framerate_down", &framerate_down},
|
||||
{"absent_check", &absent_check},
|
||||
{"absent_cross", &absent_cross},
|
||||
{"forgot_lmfao", &forgot_lmfao},
|
||||
{"forgot_ok", &forgot_ok},
|
||||
{"catch", &catch},
|
||||
{"toggle_pause", &toggle_pause},
|
||||
{"toggle_pause", &toggle_pause},
|
||||
{"tile_select", &tile_select},
|
||||
{"vertex_select", &vertex_select},
|
||||
{"up_down", &up_down},
|
||||
{"reset", &reset},
|
||||
{"rotate", &rotate},
|
||||
{"texture", &texture},
|
||||
{"switch_texture", &switch_texture},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
int register_customcmps(gc_engine *engine)
|
||||
{
|
||||
engine->add_component(engine, &game_manager);
|
||||
engine->add_system(engine, new_system(&game_manager_system, engine));
|
||||
engine->add_component(engine, &game_display);
|
||||
engine->add_system(engine, &game_display_system);
|
||||
engine->add_component(engine, &teams_component);
|
||||
engine->add_system(engine, &teams_system);
|
||||
engine->add_component(engine, &game_manager);
|
||||
engine->add_system(engine, new_system(&game_manager_system, engine));
|
||||
engine->add_component(engine, &game_display);
|
||||
engine->add_system(engine, &game_display_system);
|
||||
engine->add_component(engine, &teams_component);
|
||||
engine->add_system(engine, &teams_system);
|
||||
engine->finish_physics(engine);
|
||||
for (int i = 0; callbacks[i].func; i++)
|
||||
engine->add_callback(engine, callbacks[i].name, callbacks[i].func);
|
||||
engine->add_callback(engine, callbacks[i].name, callbacks[i].func);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ int create_game_scene(gc_engine *engine)
|
||||
return (0);
|
||||
}
|
||||
|
||||
int start_game()
|
||||
int start_game(void)
|
||||
{
|
||||
gc_engine *engine = engine_create();
|
||||
sfClock *clock = sfClock_create();
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
//
|
||||
// Created by anonymus-raccoon on 2/24/20.
|
||||
//
|
||||
/*
|
||||
** EPITECH PROJECT, 2020
|
||||
** My3D
|
||||
** File description:
|
||||
** main_menu
|
||||
*/
|
||||
|
||||
#include <systems/sfml_renderer_system.h>
|
||||
#include "engine.h"
|
||||
@@ -10,56 +13,56 @@
|
||||
|
||||
bool start_button(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
gc_scene *scene = scene_create(engine, "prefabs/game.gcprefab");
|
||||
if (!scene) {
|
||||
engine->should_close = true;
|
||||
my_printf("The game scene couldn't be loaded.\n");
|
||||
return (true);
|
||||
}
|
||||
engine->change_scene(engine, scene);
|
||||
return (true);
|
||||
gc_scene *scene = scene_create(engine, "prefabs/game.gcprefab");
|
||||
if (!scene) {
|
||||
engine->should_close = true;
|
||||
my_printf("The game scene couldn't be loaded.\n");
|
||||
return (true);
|
||||
}
|
||||
engine->change_scene(engine, scene);
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool options(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
gc_scene *scene = scene_create(engine, "prefabs/options.gcprefab");
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
gc_scene *scene = scene_create(engine, "prefabs/options.gcprefab");
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
|
||||
if (!scene) {
|
||||
engine->should_close = true;
|
||||
my_printf("The option scene couldn't be loaded.\n");
|
||||
return (true);
|
||||
}
|
||||
engine->change_scene(engine, scene);
|
||||
entity = engine->scene->get_entity(engine->scene, 50);
|
||||
if (rend)
|
||||
checkbox_update(engine->scene, entity, rend->is_fullscreen);
|
||||
entity = engine->scene->get_entity(engine->scene, 51);
|
||||
resolution_set_text(entity, engine);
|
||||
entity = engine->scene->get_entity(engine->scene, 52);
|
||||
framerate_set_text(entity, engine);
|
||||
return (true);
|
||||
if (!scene) {
|
||||
engine->should_close = true;
|
||||
my_printf("The option scene couldn't be loaded.\n");
|
||||
return (true);
|
||||
}
|
||||
engine->change_scene(engine, scene);
|
||||
entity = engine->scene->get_entity(engine->scene, 50);
|
||||
if (rend)
|
||||
checkbox_update(engine->scene, entity, rend->is_fullscreen);
|
||||
entity = engine->scene->get_entity(engine->scene, 51);
|
||||
resolution_set_text(entity, engine);
|
||||
entity = engine->scene->get_entity(engine->scene, 52);
|
||||
framerate_set_text(entity, engine);
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool goto_main_menu(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
gc_scene *scene = scene_create(engine, "prefabs/mainmenu.gcprefab");
|
||||
if (!scene) {
|
||||
engine->should_close = true;
|
||||
my_printf("The option scene couldn't be loaded.\n");
|
||||
return (true);
|
||||
}
|
||||
engine->change_scene(engine, scene);
|
||||
return (true);
|
||||
gc_scene *scene = scene_create(engine, "prefabs/mainmenu.gcprefab");
|
||||
if (!scene) {
|
||||
engine->should_close = true;
|
||||
my_printf("The option scene couldn't be loaded.\n");
|
||||
return (true);
|
||||
}
|
||||
engine->change_scene(engine, scene);
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool quit(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
engine->should_close = true;
|
||||
return (true);
|
||||
engine->should_close = true;
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool catch(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
return (true);
|
||||
return (true);
|
||||
}
|
||||
143
src/options.c
143
src/options.c
@@ -1,6 +1,9 @@
|
||||
//
|
||||
// Created by anonymus-raccoon on 3/2/20.
|
||||
//
|
||||
/*
|
||||
** EPITECH PROJECT, 2020
|
||||
** My3D
|
||||
** File description:
|
||||
** options
|
||||
*/
|
||||
|
||||
#include "engine.h"
|
||||
#include "setup.h"
|
||||
@@ -14,99 +17,99 @@
|
||||
#include <limits.h>
|
||||
|
||||
static const gc_vector2i resolutions[] = {
|
||||
{800, 600},
|
||||
{1280, 720},
|
||||
{1920, 1080},
|
||||
{INT_MAX, INT_MAX}
|
||||
{800, 600},
|
||||
{1280, 720},
|
||||
{1920, 1080},
|
||||
{INT_MAX, INT_MAX}
|
||||
};
|
||||
|
||||
int checkbox_update(gc_scene *s, gc_entity *entity, bool checked)
|
||||
{
|
||||
struct renderer *renderer;
|
||||
char *sprite = checked ? "check" : "cross";
|
||||
struct renderer *renderer;
|
||||
char *sprite = checked ? "check" : "cross";
|
||||
|
||||
if (!entity)
|
||||
return (-1);
|
||||
renderer = GETCMP(entity, renderer);
|
||||
if (!renderer || renderer->type != GC_TEXTUREREND)
|
||||
return (-1);
|
||||
if (!entity)
|
||||
return (-1);
|
||||
renderer = GETCMP(entity, renderer);
|
||||
if (!renderer || renderer->type != GC_TEXTUREREND)
|
||||
return (-1);
|
||||
|
||||
((gc_sprite *)renderer->data)->texture = s->get_data(s, "sprite", sprite);
|
||||
return (0);
|
||||
((gc_sprite *)renderer->data)->texture = s->get_data(s, "sprite", sprite);
|
||||
return (0);
|
||||
}
|
||||
|
||||
void resolution_set_text(gc_entity *entity, gc_engine *engine)
|
||||
{
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
struct renderer *renderer;
|
||||
char *resolution = malloc(sizeof(char) * 10);
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
struct renderer *renderer;
|
||||
char *resolution = malloc(sizeof(char) * 10);
|
||||
|
||||
if (!entity)
|
||||
return;
|
||||
renderer = GETCMP(entity, renderer);
|
||||
if (!rend || !renderer || renderer->type != GC_TXTREND)
|
||||
return;
|
||||
snprintf(resolution, 10, "%ix%i", rend->resolution.x, rend->resolution.y);
|
||||
if (rend->is_fullscreen)
|
||||
my_strcpy(resolution, "auto");
|
||||
free(((gc_text *)renderer->data)->text);
|
||||
((gc_text *)renderer->data)->text = resolution;
|
||||
if (!entity)
|
||||
return;
|
||||
renderer = GETCMP(entity, renderer);
|
||||
if (!rend || !renderer || renderer->type != GC_TXTREND)
|
||||
return;
|
||||
snprintf(resolution, 10, "%ix%i", rend->resolution.x, rend->resolution.y);
|
||||
if (rend->is_fullscreen)
|
||||
my_strcpy(resolution, "auto");
|
||||
free(((gc_text *)renderer->data)->text);
|
||||
((gc_text *)renderer->data)->text = resolution;
|
||||
}
|
||||
|
||||
bool fullscreen(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
|
||||
if (!rend)
|
||||
return (false);
|
||||
rend->is_fullscreen = !rend->is_fullscreen;
|
||||
if (checkbox_update(engine->scene, entity, rend->is_fullscreen) < 0)
|
||||
return (false);
|
||||
sfRenderWindow_destroy(rend->window);
|
||||
if (rend->is_fullscreen)
|
||||
rend->window = sfRenderWindow_create(sfVideoMode_getDesktopMode(), \
|
||||
if (!rend)
|
||||
return (false);
|
||||
rend->is_fullscreen = !rend->is_fullscreen;
|
||||
if (checkbox_update(engine->scene, entity, rend->is_fullscreen) < 0)
|
||||
return (false);
|
||||
sfRenderWindow_destroy(rend->window);
|
||||
if (rend->is_fullscreen)
|
||||
rend->window = sfRenderWindow_create(sfVideoMode_getDesktopMode(), \
|
||||
"My3D", sfFullscreen | sfClose, NULL);
|
||||
else
|
||||
rend->window = sfRenderWindow_create((sfVideoMode){rend->resolution.x, \
|
||||
else
|
||||
rend->window = sfRenderWindow_create((sfVideoMode){rend->resolution.x, \
|
||||
rend->resolution.y, 32}, "My3D", sfDefaultStyle, NULL);
|
||||
resolution_set_text(engine->scene->get_entity(engine->scene, 51), engine);
|
||||
return (true);
|
||||
resolution_set_text(engine->scene->get_entity(engine->scene, 51), engine);
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool resolution_down(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
int i = 2;
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
int i = 2;
|
||||
|
||||
if (!rend || rend->is_fullscreen)
|
||||
return (false);
|
||||
while (i > 0 && resolutions[i].x >= rend->resolution.x)
|
||||
i--;
|
||||
sfRenderWindow_setSize(rend->window, (sfVector2u){
|
||||
resolutions[i].x,
|
||||
resolutions[i].y
|
||||
});
|
||||
rend->resolution = resolutions[i];
|
||||
resolution_set_text(engine->scene->get_entity(engine->scene, 51), engine);
|
||||
return (true);
|
||||
if (!rend || rend->is_fullscreen)
|
||||
return (false);
|
||||
while (i > 0 && resolutions[i].x >= rend->resolution.x)
|
||||
i--;
|
||||
sfRenderWindow_setSize(rend->window, (sfVector2u){
|
||||
resolutions[i].x,
|
||||
resolutions[i].y
|
||||
});
|
||||
rend->resolution = resolutions[i];
|
||||
resolution_set_text(engine->scene->get_entity(engine->scene, 51), engine);
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool resolution_up(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
int i = 0;
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
int i = 0;
|
||||
|
||||
if (!rend || rend->is_fullscreen)
|
||||
return (false);
|
||||
while (resolutions[i].x <= rend->resolution.x)
|
||||
i++;
|
||||
if (resolutions[i].x == INT_MAX)
|
||||
return (true);
|
||||
sfRenderWindow_setSize(rend->window, (sfVector2u){
|
||||
resolutions[i].x,
|
||||
resolutions[i].y
|
||||
});
|
||||
rend->resolution = resolutions[i];
|
||||
resolution_set_text(engine->scene->get_entity(engine->scene, 51), engine);
|
||||
return (true);
|
||||
if (!rend || rend->is_fullscreen)
|
||||
return (false);
|
||||
while (resolutions[i].x <= rend->resolution.x)
|
||||
i++;
|
||||
if (resolutions[i].x == INT_MAX)
|
||||
return (true);
|
||||
sfRenderWindow_setSize(rend->window, (sfVector2u){
|
||||
resolutions[i].x,
|
||||
resolutions[i].y
|
||||
});
|
||||
rend->resolution = resolutions[i];
|
||||
resolution_set_text(engine->scene->get_entity(engine->scene, 51), engine);
|
||||
return (true);
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
//
|
||||
// Created by anonymus-raccoon on 3/11/20.
|
||||
//
|
||||
/*
|
||||
** EPITECH PROJECT, 2020
|
||||
** My3D
|
||||
** File description:
|
||||
** selectors
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <components/isometry/map_manager_component.h>
|
||||
@@ -9,26 +12,26 @@
|
||||
|
||||
bool tile_select(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->tile_mode = true;
|
||||
return (true);
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->tile_mode = true;
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool vertex_select(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->tile_mode = false;
|
||||
return (true);
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->tile_mode = false;
|
||||
return (true);
|
||||
}
|
||||
@@ -18,52 +18,52 @@
|
||||
|
||||
void display_current_texture(gc_scene *scene, struct renderer *rend)
|
||||
{
|
||||
gc_list *li = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *map;
|
||||
gc_list *li = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *map;
|
||||
|
||||
if (!li)
|
||||
return;
|
||||
map = GETCMP(li->data, map_manager_component);
|
||||
((gc_sprite *)rend->data)->texture = map->selected_texture;
|
||||
if (!li)
|
||||
return;
|
||||
map = GETCMP(li->data, map_manager_component);
|
||||
((gc_sprite *)rend->data)->texture = map->selected_texture;
|
||||
|
||||
}
|
||||
|
||||
static void update_entity(gc_engine *engine, void *system, gc_entity *entity, \
|
||||
float dtime)
|
||||
{
|
||||
struct game_display *disp = GETCMP(entity, game_display);
|
||||
struct renderer *rend = GETCMP(entity, renderer);
|
||||
struct game_manager *manager;
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *entities = scene->get_entity_by_cmp(scene, "game_manager");
|
||||
struct game_display *disp = GETCMP(entity, game_display);
|
||||
struct renderer *rend = GETCMP(entity, renderer);
|
||||
struct game_manager *manager;
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *entities = scene->get_entity_by_cmp(scene, "game_manager");
|
||||
|
||||
if (!entities)
|
||||
return;
|
||||
manager = GETCMP(entities->data, game_manager);
|
||||
if (disp->type == SELECT_TILE_DISPLAY && rend->type == GC_TEXTUREREND){
|
||||
display_current_texture(scene, rend);
|
||||
return;
|
||||
}
|
||||
if (rend->type != GC_TXTREND)
|
||||
return;
|
||||
if (disp->type == HAPPINESS_DISPLAY)
|
||||
sprintf(((gc_text *)rend->data)->text, "%d%%", manager->happiness);
|
||||
else
|
||||
sprintf(((gc_text *)rend->data)->text, "%d%%", manager->stupidity);
|
||||
if (!entities)
|
||||
return;
|
||||
manager = GETCMP(entities->data, game_manager);
|
||||
if (disp->type == SELECT_TILE_DISPLAY && rend->type == GC_TEXTUREREND){
|
||||
display_current_texture(scene, rend);
|
||||
return;
|
||||
}
|
||||
if (rend->type != GC_TXTREND)
|
||||
return;
|
||||
if (disp->type == HAPPINESS_DISPLAY)
|
||||
sprintf(((gc_text *)rend->data)->text, "%d%%", manager->happiness);
|
||||
else
|
||||
sprintf(((gc_text *)rend->data)->text, "%d%%", manager->stupidity);
|
||||
}
|
||||
|
||||
static void destroy(void *system)
|
||||
{
|
||||
(void)system;
|
||||
(void)system;
|
||||
}
|
||||
|
||||
const gc_system game_display_system = {
|
||||
name: "game_display_system",
|
||||
component_name: "game_display",
|
||||
size: sizeof(gc_system),
|
||||
ctr: NULL,
|
||||
dtr: NULL,
|
||||
check_dependencies: &system_check_dependencies,
|
||||
update_entity: &update_entity,
|
||||
destroy: &destroy
|
||||
name: "game_display_system",
|
||||
component_name: "game_display",
|
||||
size: sizeof(gc_system),
|
||||
ctr: NULL,
|
||||
dtr: NULL,
|
||||
check_dependencies: &system_check_dependencies,
|
||||
update_entity: &update_entity,
|
||||
destroy: &destroy
|
||||
};
|
||||
@@ -1,6 +1,9 @@
|
||||
//
|
||||
// Created by anonymus-raccoon on 3/9/20.
|
||||
//
|
||||
/*
|
||||
** EPITECH PROJECT, 2020
|
||||
** My3D
|
||||
** File description:
|
||||
** game_manager_system
|
||||
*/
|
||||
|
||||
#include <components/tag_component.h>
|
||||
#include <systems/sfml_renderer_system.h>
|
||||
@@ -12,68 +15,68 @@
|
||||
|
||||
bool toggle_pause(gc_engine *engine)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list;
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list;
|
||||
|
||||
scene->is_paused = !scene->is_paused;
|
||||
if (scene->is_paused) {
|
||||
prefab_load(engine, "prefabs/pause.gcprefab");
|
||||
return (true);
|
||||
}
|
||||
list = scene->get_entity_by_cmp(scene, "tag_component");
|
||||
for (gc_list *li = list; li; li = li->next ) {
|
||||
if (!my_strcmp(GETCMP(li->data, tag_component)->tag, "pause"))
|
||||
((gc_entity *)li->data)->destroy(li->data, scene);
|
||||
}
|
||||
return (true);
|
||||
scene->is_paused = !scene->is_paused;
|
||||
if (scene->is_paused) {
|
||||
prefab_load(engine, "prefabs/pause.gcprefab");
|
||||
return (true);
|
||||
}
|
||||
list = scene->get_entity_by_cmp(scene, "tag_component");
|
||||
for (gc_list *li = list; li; li = li->next) {
|
||||
if (!my_strcmp(GETCMP(li->data, tag_component)->tag, "pause"))
|
||||
((gc_entity *)li->data)->destroy(li->data, scene);
|
||||
}
|
||||
return (true);
|
||||
}
|
||||
|
||||
static void key_pressed(gc_engine *engine, va_list args)
|
||||
{
|
||||
gc_keybindings key = va_arg(args, gc_keybindings);
|
||||
gc_keybindings key = va_arg(args, gc_keybindings);
|
||||
|
||||
if (key == ESCAPE)
|
||||
toggle_pause(engine);
|
||||
if (key == ESCAPE)
|
||||
toggle_pause(engine);
|
||||
}
|
||||
|
||||
static void update_entity(gc_engine *engine, void *system, gc_entity *entity, \
|
||||
float dtime)
|
||||
{
|
||||
struct game_manager *manager = GETCMP(entity, game_manager);
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
gc_scene *gameover_scene = NULL;
|
||||
struct game_manager *manager = GETCMP(entity, game_manager);
|
||||
struct sfml_renderer_system *rend = GETSYS(engine, sfml_renderer_system);
|
||||
gc_scene *gameover_scene = NULL;
|
||||
|
||||
if (manager->happiness <= 0)
|
||||
gameover_scene = scene_create(engine, "prefabs/go/happiness.gcprefab");
|
||||
if (manager->stupidity >= 100)
|
||||
gameover_scene = scene_create(engine, "prefabs/go/stupidity.gcprefab");
|
||||
if (manager->happiness <= 0)
|
||||
gameover_scene = scene_create(engine, "prefabs/go/happiness.gcprefab");
|
||||
if (manager->stupidity >= 100)
|
||||
gameover_scene = scene_create(engine, "prefabs/go/stupidity.gcprefab");
|
||||
|
||||
if (gameover_scene)
|
||||
engine->change_scene(engine, gameover_scene);
|
||||
if (engine->is_keypressed(sfKeyLeft))
|
||||
sfView_move(rend->view, (sfVector2f){-10, 0});
|
||||
if (engine->is_keypressed(sfKeyRight))
|
||||
sfView_move(rend->view, (sfVector2f){10, 0});
|
||||
if (engine->is_keypressed(sfKeyDown))
|
||||
sfView_move(rend->view, (sfVector2f){0, 10});
|
||||
if (engine->is_keypressed(sfKeyUp))
|
||||
sfView_move(rend->view, (sfVector2f){0, -10});
|
||||
if (gameover_scene)
|
||||
engine->change_scene(engine, gameover_scene);
|
||||
if (engine->is_keypressed(sfKeyLeft))
|
||||
sfView_move(rend->view, (sfVector2f){-10, 0});
|
||||
if (engine->is_keypressed(sfKeyRight))
|
||||
sfView_move(rend->view, (sfVector2f){10, 0});
|
||||
if (engine->is_keypressed(sfKeyDown))
|
||||
sfView_move(rend->view, (sfVector2f){0, 10});
|
||||
if (engine->is_keypressed(sfKeyUp))
|
||||
sfView_move(rend->view, (sfVector2f){0, -10});
|
||||
}
|
||||
|
||||
static void ctr(void *system, va_list list)
|
||||
{
|
||||
gc_engine *engine = va_arg(list, gc_engine *);
|
||||
gc_engine *engine = va_arg(list, gc_engine *);
|
||||
|
||||
engine->add_event_listener(engine, "key_pressed", &key_pressed);
|
||||
engine->add_event_listener(engine, "key_pressed", &key_pressed);
|
||||
}
|
||||
|
||||
const gc_system game_manager_system = {
|
||||
name: "game_cycle",
|
||||
component_name: "game_manager",
|
||||
size: sizeof(gc_system),
|
||||
ctr: ctr,
|
||||
dtr: NULL,
|
||||
check_dependencies: &system_check_dependencies,
|
||||
update_entity: &update_entity,
|
||||
destroy: &system_destroy
|
||||
name: "game_cycle",
|
||||
component_name: "game_manager",
|
||||
size: sizeof(gc_system),
|
||||
ctr: ctr,
|
||||
dtr: NULL,
|
||||
check_dependencies: &system_check_dependencies,
|
||||
update_entity: &update_entity,
|
||||
destroy: &system_destroy
|
||||
};
|
||||
@@ -18,77 +18,77 @@
|
||||
|
||||
void pm_destroy(gc_scene *scene, int prefab_id)
|
||||
{
|
||||
for (gc_list *ent = scene->entities; ent; ent = ent->next)
|
||||
if (((gc_entity *)ent->data)->prefab_id == prefab_id)
|
||||
((gc_entity *)ent->data)->destroy(ent->data, scene);
|
||||
for (gc_list *ent = scene->entities; ent; ent = ent->next)
|
||||
if (((gc_entity *)ent->data)->prefab_id == prefab_id)
|
||||
((gc_entity *)ent->data)->destroy(ent->data, scene);
|
||||
}
|
||||
|
||||
void pm_clicked(gc_engine *engine, gc_entity *entity)
|
||||
{
|
||||
float y_pos = GETCMP(entity, fixed_to_cam)->pos.y;
|
||||
float y_pos = GETCMP(entity, fixed_to_cam)->pos.y;
|
||||
|
||||
pm_destroy(engine->scene, entity->prefab_id);
|
||||
teams_move_up(engine->scene, -15, y_pos);
|
||||
pm_destroy(engine->scene, entity->prefab_id);
|
||||
teams_move_up(engine->scene, -15, y_pos);
|
||||
}
|
||||
|
||||
bool teams_move_up(gc_scene *scene, float amount, float y_level)
|
||||
{
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "tag_component");
|
||||
struct fixed_to_cam *fc;
|
||||
struct tag_component *tc;
|
||||
int pm_to_destroy = -1;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "tag_component");
|
||||
struct fixed_to_cam *fc;
|
||||
struct tag_component *tc;
|
||||
int pm_to_destroy = -1;
|
||||
|
||||
for (; list; list = list->next) {
|
||||
tc = GETCMP(list->data, tag_component);
|
||||
if (my_strcmp(tc->tag, "teams"))
|
||||
continue;
|
||||
fc = GETCMP(list->data, fixed_to_cam);
|
||||
if (!fc || fc->pos.y > y_level)
|
||||
continue;
|
||||
fc->pos.y -= amount;
|
||||
if (fc->pos.y < 15)
|
||||
pm_to_destroy = ((gc_entity *)list->data)->prefab_id;
|
||||
}
|
||||
if (pm_to_destroy != -1)
|
||||
pm_destroy(scene, pm_to_destroy);
|
||||
return (pm_to_destroy != -1);
|
||||
for (; list; list = list->next) {
|
||||
tc = GETCMP(list->data, tag_component);
|
||||
if (my_strcmp(tc->tag, "teams"))
|
||||
continue;
|
||||
fc = GETCMP(list->data, fixed_to_cam);
|
||||
if (!fc || fc->pos.y > y_level)
|
||||
continue;
|
||||
fc->pos.y -= amount;
|
||||
if (fc->pos.y < 15)
|
||||
pm_to_destroy = ((gc_entity *)list->data)->prefab_id;
|
||||
}
|
||||
if (pm_to_destroy != -1)
|
||||
pm_destroy(scene, pm_to_destroy);
|
||||
return (pm_to_destroy != -1);
|
||||
}
|
||||
|
||||
static void update_entity(gc_engine *engine, void *system, gc_entity *entity, \
|
||||
float dtime)
|
||||
{
|
||||
struct teams_component *team = GETCMP(entity, teams_component);
|
||||
struct game_manager *manager = GETCMP(entity, game_manager);
|
||||
int index;
|
||||
struct teams_component *team = GETCMP(entity, teams_component);
|
||||
struct game_manager *manager = GETCMP(entity, game_manager);
|
||||
int index;
|
||||
|
||||
if (!manager) {
|
||||
my_printf("No game manager found. Teams is disabled.\n");
|
||||
return;
|
||||
}
|
||||
if (engine->scene->is_paused)
|
||||
return;
|
||||
team->next_teams -= dtime;
|
||||
if (team->next_teams < 0 && team->prefab_count) {
|
||||
index = random() % team->prefab_count;
|
||||
team->next_teams = team->delay;
|
||||
if (teams_move_up(engine->scene, team->prefabs_size[index], 1000))
|
||||
manager->happiness -= 10;
|
||||
prefab_load(engine, team->prefabs[index]);
|
||||
}
|
||||
if (!manager) {
|
||||
my_printf("No game manager found. Teams is disabled.\n");
|
||||
return;
|
||||
}
|
||||
if (engine->scene->is_paused)
|
||||
return;
|
||||
team->next_teams -= dtime;
|
||||
if (team->next_teams < 0 && team->prefab_count) {
|
||||
index = random() % team->prefab_count;
|
||||
team->next_teams = team->delay;
|
||||
if (teams_move_up(engine->scene, team->prefabs_size[index], 1000))
|
||||
manager->happiness -= 10;
|
||||
prefab_load(engine, team->prefabs[index]);
|
||||
}
|
||||
}
|
||||
|
||||
static void destroy(void *system)
|
||||
{
|
||||
(void)system;
|
||||
(void)system;
|
||||
}
|
||||
|
||||
const gc_system teams_system = {
|
||||
name: "teams_system",
|
||||
component_name: "teams_component",
|
||||
size: sizeof(gc_system),
|
||||
ctr: NULL,
|
||||
dtr: NULL,
|
||||
check_dependencies: &system_check_dependencies,
|
||||
update_entity: &update_entity,
|
||||
destroy: &destroy
|
||||
name: "teams_system",
|
||||
component_name: "teams_component",
|
||||
size: sizeof(gc_system),
|
||||
ctr: NULL,
|
||||
dtr: NULL,
|
||||
check_dependencies: &system_check_dependencies,
|
||||
update_entity: &update_entity,
|
||||
destroy: &destroy
|
||||
};
|
||||
@@ -1,6 +1,9 @@
|
||||
//
|
||||
// Created by anonymus-raccoon on 3/6/20.
|
||||
//
|
||||
/*
|
||||
** EPITECH PROJECT, 2020
|
||||
** My3D
|
||||
** File description:
|
||||
** absent
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "components/game_manager.h"
|
||||
@@ -10,26 +13,26 @@
|
||||
|
||||
bool absent_check(gc_engine *engine, gc_entity *entity)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *li = scene->get_entity_by_cmp(scene, "game_manager");
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *li = scene->get_entity_by_cmp(scene, "game_manager");
|
||||
|
||||
if (!li)
|
||||
return (false);
|
||||
GETCMP(li->data, game_manager)->happiness += 3;
|
||||
GETCMP(li->data, game_manager)->stupidity += random() % 5;
|
||||
pm_clicked(engine, entity);
|
||||
return (true);
|
||||
if (!li)
|
||||
return (false);
|
||||
GETCMP(li->data, game_manager)->happiness += 3;
|
||||
GETCMP(li->data, game_manager)->stupidity += random() % 5;
|
||||
pm_clicked(engine, entity);
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool absent_cross(gc_engine *engine, gc_entity *entity)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *li = scene->get_entity_by_cmp(scene, "game_manager");
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *li = scene->get_entity_by_cmp(scene, "game_manager");
|
||||
|
||||
if (!li)
|
||||
return (false);
|
||||
GETCMP(li->data, game_manager)->happiness -= 3;
|
||||
GETCMP(li->data, game_manager)->stupidity -= random() % 5;
|
||||
pm_clicked(engine, entity);
|
||||
return (true);
|
||||
if (!li)
|
||||
return (false);
|
||||
GETCMP(li->data, game_manager)->happiness -= 3;
|
||||
GETCMP(li->data, game_manager)->stupidity -= random() % 5;
|
||||
pm_clicked(engine, entity);
|
||||
return (true);
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
//
|
||||
// Created by anonymus-raccoon on 3/6/20.
|
||||
//
|
||||
/*
|
||||
** EPITECH PROJECT, 2020
|
||||
** My3D
|
||||
** File description:
|
||||
** forgot
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "components/game_manager.h"
|
||||
@@ -9,26 +12,26 @@
|
||||
|
||||
bool forgot_lmfao(gc_engine *engine, gc_entity *entity)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *li = scene->get_entity_by_cmp(scene, "game_manager");
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *li = scene->get_entity_by_cmp(scene, "game_manager");
|
||||
|
||||
if (!li)
|
||||
return (false);
|
||||
GETCMP(li->data, game_manager)->happiness -= 5;
|
||||
GETCMP(li->data, game_manager)->stupidity -= 5;
|
||||
pm_clicked(engine, entity);
|
||||
return (true);
|
||||
if (!li)
|
||||
return (false);
|
||||
GETCMP(li->data, game_manager)->happiness -= 5;
|
||||
GETCMP(li->data, game_manager)->stupidity -= 5;
|
||||
pm_clicked(engine, entity);
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool forgot_ok(gc_engine *engine, gc_entity *entity)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *li = scene->get_entity_by_cmp(scene, "game_manager");
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *li = scene->get_entity_by_cmp(scene, "game_manager");
|
||||
|
||||
if (!li)
|
||||
return (false);
|
||||
GETCMP(li->data, game_manager)->happiness += 2;
|
||||
GETCMP(li->data, game_manager)->stupidity += 6;
|
||||
pm_clicked(engine, entity);
|
||||
return (true);
|
||||
if (!li)
|
||||
return (false);
|
||||
GETCMP(li->data, game_manager)->happiness += 2;
|
||||
GETCMP(li->data, game_manager)->stupidity += 6;
|
||||
pm_clicked(engine, entity);
|
||||
return (true);
|
||||
}
|
||||
101
src/toolbar.c
101
src/toolbar.c
@@ -1,6 +1,9 @@
|
||||
//
|
||||
// Created by anonymus-raccoon on 3/11/20.
|
||||
//
|
||||
/*
|
||||
** EPITECH PROJECT, 2020
|
||||
** My3D
|
||||
** File description:
|
||||
** toolbar
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <components/isometry/map_manager_component.h>
|
||||
@@ -10,71 +13,71 @@
|
||||
|
||||
bool up_down(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->brush = MOVE;
|
||||
return (true);
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->brush = MOVE;
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool reset(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->brush = RESET;
|
||||
return (true);
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->brush = RESET;
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool rotate(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->brush = ROTATE;
|
||||
return (true);
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->brush = ROTATE;
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool texture(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->brush = TEXTURE;
|
||||
return (true);
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
manager->brush = TEXTURE;
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool switch_texture(gc_engine *engine, gc_entity *entity, gc_vector2 _)
|
||||
{
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
void **data = scene->get_data(scene, "tiles", NULL);
|
||||
static int index = 0;
|
||||
void *next = NULL;
|
||||
gc_scene *scene = engine->scene;
|
||||
gc_list *list = scene->get_entity_by_cmp(scene, "map_manager_component");
|
||||
struct map_manager_component *manager;
|
||||
void **data = scene->get_data(scene, "tiles", NULL);
|
||||
static int index = 0;
|
||||
void *next = NULL;
|
||||
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
index++;
|
||||
if (data)
|
||||
next = data[index % (arraylen(data) - 1)];
|
||||
manager->selected_texture = next;
|
||||
return (true);
|
||||
if (!list)
|
||||
return (false);
|
||||
manager = GETCMP(list->data, map_manager_component);
|
||||
index++;
|
||||
if (data)
|
||||
next = data[index % (arraylen(data) - 1)];
|
||||
manager->selected_texture = next;
|
||||
return (true);
|
||||
}
|
||||
Reference in New Issue
Block a user