/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "drawentity.h" #include "rpg/world/map.h" void drawEntities() { uint8_t x, y; entity_t *ent = MAP.entities; do { if(ent->type == ENTITY_TYPE_NULL) { ent++; continue; } x = ent->x * ENTITY_WIDTH + ent->subX; y = ent->y * ENTITY_HEIGHT + ent->subY; switch(ent->dir) { case ENTITY_DIR_UP: DrawTriangle( (Vector2){ x, y + ENTITY_HEIGHT }, (Vector2){ x + ENTITY_WIDTH, y + ENTITY_HEIGHT }, (Vector2){ x + ENTITY_WIDTH / 2, y }, RED ); break; case ENTITY_DIR_DOWN: DrawTriangle( (Vector2){ x, y }, (Vector2){ x + ENTITY_WIDTH / 2, y + ENTITY_HEIGHT }, (Vector2){ x + ENTITY_WIDTH, y }, RED ); break; case ENTITY_DIR_LEFT: DrawTriangle( (Vector2){ x + ENTITY_WIDTH, y }, (Vector2){ x, y + ENTITY_HEIGHT / 2 }, (Vector2){ x + ENTITY_WIDTH, y + ENTITY_HEIGHT }, RED ); break; case ENTITY_DIR_RIGHT: DrawTriangle( (Vector2){ x, y }, (Vector2){ x, y + ENTITY_HEIGHT }, (Vector2){ x + ENTITY_WIDTH, y + ENTITY_HEIGHT / 2 }, RED ); break; default: break; } ent++; } while(ent->type != ENTITY_TYPE_NULL); }