63 lines
1.5 KiB
C
63 lines
1.5 KiB
C
/**
|
|
* 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);
|
|
} |