/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "entitydir.h" #include "assert/assert.h" entitydir_t entityDirGetOpposite(const entitydir_t dir) { switch(dir) { case ENTITY_DIR_NORTH: return ENTITY_DIR_SOUTH; case ENTITY_DIR_SOUTH: return ENTITY_DIR_NORTH; case ENTITY_DIR_EAST: return ENTITY_DIR_WEST; case ENTITY_DIR_WEST: return ENTITY_DIR_EAST; default: return dir; } } void entityDirGetRelative( const entitydir_t from, worldunits_t *outX, worldunits_t *outY ) { assertValidEntityDir(from, "Invalid direction provided"); assertNotNull(outX, "Output X pointer cannot be NULL"); assertNotNull(outY, "Output Y pointer cannot be NULL"); switch(from) { case ENTITY_DIR_NORTH: *outX = 0; *outY = -1; break; case ENTITY_DIR_EAST: *outX = 1; *outY = 0; break; case ENTITY_DIR_SOUTH: *outX = 0; *outY = 1; break; case ENTITY_DIR_WEST: *outX = -1; *outY = 0; break; } }