mirror of
https://github.com/zoriya/Gamacon.git
synced 2026-05-29 09:41:46 +00:00
Fixing a bug with the serializer
This commit is contained in:
@@ -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 = {
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user