Dawn/src/dawn/rpg/entity/entitydirection.h
2024-10-06 21:01:05 -05:00

56 lines
1.2 KiB
C

/**
* Copyright (c) 2024 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "dawn.h"
typedef enum {
ENTITY_DIRECTION_SOUTH = 0,
ENTITY_DIRECTION_NORTH = 1,
ENTITY_DIRECTION_WEST = 2,
ENTITY_DIRECTION_EAST = 3
} entitydirection_t;
/**
* Returns the offset for a given direction.
*
* @param dir Direction to get offset for.
* @param x Pointer to store x offset.
* @param y Pointer to store y offset.
*/
void entityDirectionOffsetGet(
const entitydirection_t dir,
uint16_t *x,
uint16_t *y
);
/**
* Adds the offset for a given direction to the given x and y.
*
* @param dir Direction to get offset for.
* @param x Pointer to add x offset to.
* @param y Pointer to add y offset to.
*/
void entityDirectionOffsetAdd(
const entitydirection_t dir,
uint16_t *x,
uint16_t *y
);
/**
* Returns the direction to look at from one point to another.
*
* @param srcX Source X position.
* @param srcY Source Y position.
* @param trgX Target X position.
* @param trgY Target Y position.
* @return Direction to look at.
*/
entitydirection_t entityDirectionLookAt(
const uint16_t srcX, const uint16_t srcY,
const uint16_t trgX, const uint16_t trgY
);