Fixed player turn bug

This commit is contained in:
2026-06-26 14:24:13 -05:00
parent d326f6c1ac
commit e53775b97f
+14 -3
View File
@@ -33,14 +33,25 @@ void playerInput(entity_t *entity) {
// Can player act?
if(UI_FOCUS.count > 0) return;
// Turn
// Turn - only if not already holding the direction we face
const playerinputdirmap_t *dirMap = PLAYER_INPUT_DIR_MAP;
bool_t holdingFaced = false;
do {
if(!inputIsDown(dirMap->action)) continue;
if(entity->direction == dirMap->direction) continue;
return entityTurn(entity, dirMap->direction);
if(entity->direction != dirMap->direction) continue;
holdingFaced = true;
break;
} while((++dirMap)->action != 0xFF);
if(!holdingFaced) {
dirMap = PLAYER_INPUT_DIR_MAP;
do {
if(!inputIsDown(dirMap->action)) continue;
if(entity->direction == dirMap->direction) continue;
return entityTurn(entity, dirMap->direction);
} while((++dirMap)->action != 0xFF);
}
// Walk / Run
bool_t running = inputIsDown(INPUT_ACTION_CANCEL);
dirMap = PLAYER_INPUT_DIR_MAP;