Refator pass 1
This commit is contained in:
48
archive/rpg/entity/direction.c
Normal file
48
archive/rpg/entity/direction.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Dominic Masters
|
||||
*
|
||||
* This software is released under the MIT License.
|
||||
* https://opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
#include "direction.h"
|
||||
#include "assert/assert.h"
|
||||
|
||||
float_t directionToAngle(const direction_t dir) {
|
||||
switch(dir) {
|
||||
case DIRECTION_NORTH: return (M_PI_2);
|
||||
case DIRECTION_SOUTH: return -(M_PI_2);
|
||||
case DIRECTION_EAST: return 0;
|
||||
case DIRECTION_WEST: return (M_PI);
|
||||
default: return 0; // Should never happen
|
||||
}
|
||||
}
|
||||
|
||||
void directionGetVec2(const direction_t dir, vec2 out) {
|
||||
assertNotNull(out, "Output vector cannot be NULL");
|
||||
|
||||
switch(dir) {
|
||||
case DIRECTION_NORTH:
|
||||
out[0] = 0.0f;
|
||||
out[1] = 1.0f;
|
||||
break;
|
||||
|
||||
case DIRECTION_SOUTH:
|
||||
out[0] = 0.0f;
|
||||
out[1] = -1.0f;
|
||||
break;
|
||||
|
||||
case DIRECTION_EAST:
|
||||
out[0] = 1.0f;
|
||||
out[1] = 0.0f;
|
||||
break;
|
||||
|
||||
case DIRECTION_WEST:
|
||||
out[0] = -1.0f;
|
||||
out[1] = 0.0f;
|
||||
break;
|
||||
|
||||
default:
|
||||
assertUnreachable("Invalid direction");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user