Fixing a bug with the serializer

This commit is contained in:
Anonymus Raccoon
2020-04-14 19:36:23 +02:00
parent b86cc1ee17
commit 9bdc5e7b2c
3 changed files with 11 additions and 8 deletions
+6 -4
View File
@@ -60,6 +60,7 @@ bool vertex_serialize(struct vertex_component *ve, gc_scene *scene, \
const char *file)
{
int fd = open(file, O_WRONLY | O_CREAT | O_TRUNC, 0644);
gc_data *texture;
if (fd < 0)
return (false);
@@ -71,13 +72,14 @@ const char *file)
dprintf(fd, "\t\t</line>\n");
}
dprintf(fd, "\t</vertex_data>\n\t<tiles_data>\n");
for (int i = 0; ve->map[i].corners[0]; i++)
for (int i = 0; ve->map[i].corners[0]; i++) {
texture = scene->get_data_ptr(scene, ve->map[i].texture);
dprintf(fd, "\t\t<tile x=\"%d\" y=\"%d\" texture=\"%s\" %s/>\n", \
ve->map[i].corners[0]->x, ve->map[i].corners[0]->y, \
scene->get_data_ptr(scene, ve->map[i].texture)->name, \
ve->map[i].solid ? "solid=\"true\"" : "");
texture ? texture->name : "", ve->map[i].solid ? "solid=\"true\"" : "");
}
dprintf(fd, "\t</tiles_data>\n</gc_map>\n");
return (true);
return (!close(fd));
}
const struct vertex_component vertex_component = {
+2 -2
View File
@@ -81,7 +81,7 @@ void sfmlrenderer_settextpos(sfText *text, gc_entity *entity, sfFloatRect bounds
struct renderer *rend = GETCMP(entity, renderer);
struct transform_component *tra = GETCMP(entity, transform_component);
int ori_x = 0;
int ori_y = bounds.height;
int ori_y = rend->render_mode_y == RENDER_MODE_REVERSED ? 0 : bounds.height;
if (rend->render_mode_x == RENDER_MODE_CENTERED)
ori_x = bounds.width / 2;
@@ -104,7 +104,7 @@ gc_text *txt, float dt)
gc_vector2 screen_size = engine->get_screen_size(engine);
if (txt->resize)
size = MIN(800 / screen_size.x, 600 / screen_size.y);
size = 1 / MAX(800 / screen_size.x, 600 / screen_size.y);
sfText_setString(this->text, txt->text);
if (!txt->font)
my_printf("%s has a font not loaded. Rendering impossible.", txt->font);
+3 -2
View File
@@ -29,8 +29,7 @@ gc_entity *new_text(gc_engine *engine, gc_scene *scene, node *n)
(gc_vector2){0, 0}, (gc_vector2){0, 0}));
entity->add_component(entity, new_component(&renderer_component,
GC_TXTREND, xml_getproperty(n, "text"),
scene->get_data(scene, "font", NULL),
xml_getintprop(n, "size"),
scene->get_data(scene, "font", NULL), xml_getintprop(n, "size"),
xml_gettempprop(n, "color"), xml_getbool(n, "resize", true)));
entity->add_component(entity, new_component(&fixed_to_cam,
entity, (gc_vector2){xml_getintprop(n, "x"), xml_getintprop(n, "y")},
@@ -39,6 +38,8 @@ gc_entity *new_text(gc_engine *engine, gc_scene *scene, node *n)
if (xml_hasproperty(n, "tag"))
entity->add_component(entity, new_component(&tag_component,
xml_getproperty(n, "tag")));
if (xml_hasproperty(n, "y_top") && GETCMP(entity, renderer))
GETCMP(entity, renderer)->render_mode_y = RENDER_MODE_REVERSED;
return (entity);
}