#include <stdio.h>
typedef struct {
- uint8_t x;
- uint16_t y;
+ uint16_t x;
+ uint8_t y;
uint8_t type;
} level_thing;
level_thing result;
result.y = blob[0] >> 4;
- result.x = ((blob[0] & 0xf) << 8) | blob[1];
+ result.x = ((blob[0] & 0x0f) << 8) | blob[1];
result.type = blob[2];
return result;
dest->type = &jumpnrun_enemy_type_data[thing.type];
- dest->spawn_pos.x = FIXED_POINT( thing.x * JUMPNRUN_TILE_PIXEL_WIDTH , 0);
- dest->spawn_pos.y = FIXED_POINT((thing.y + 1) * JUMPNRUN_TILE_PIXEL_HEIGHT - dest->type->animation_frames[0].height, 0);
+ dest->spawn_pos.x = FIXED_INT( thing.x * JUMPNRUN_TILE_PIXEL_WIDTH + fixed_point_cast_int(dest->type->hitbox.pos.x));
+ dest->spawn_pos.y = FIXED_INT((thing.y + 1) * JUMPNRUN_TILE_PIXEL_HEIGHT - fixed_point_cast_int(dest->type->hitbox.extent.y));
jumpnrun_enemy_despawn(dest);
}