WIP converting to separate states. Don't think I want this.

This commit is contained in:
2025-01-03 20:21:36 -05:00
parent 717f29fcb3
commit 4be582a7a4
7 changed files with 56 additions and 48 deletions

View File

@@ -16,37 +16,37 @@ ErrorContext *gamepad_handle_button_down(void *appstate, SDL_Event *event)
FAIL_ZERO_RETURN(errctx, appstate, ERR_NULLPOINTER, "Player actor does not exist");
if ( event->gbutton.button == SDL_GAMEPAD_BUTTON_DPAD_DOWN ) {
SDL_Log("Processing dpad down : state %d", player->state);
BITMASK_ADD(player->state, ACTOR_STATE_MOVING_DOWN);
SDL_Log("Processing dpad down : state %d", player->logicstate);
BITMASK_ADD(player->logicstate, ACTOR_STATE_MOVING_DOWN);
if ( !player->movement_controls_face ) {
BITMASK_DEL(player->state, ACTOR_STATE_FACE_ALL);
BITMASK_ADD(player->state, ACTOR_STATE_FACE_DOWN);
BITMASK_DEL(player->visualstate, ACTOR_STATE_FACE_ALL);
BITMASK_ADD(player->visualstate, ACTOR_STATE_FACE_DOWN);
}
SDL_Log("New state : %d", player->state);
SDL_Log("New state : %d", player->logicstate);
} else if ( event->gbutton.button == SDL_GAMEPAD_BUTTON_DPAD_UP ) {
SDL_Log("Processing dpad up");
BITMASK_ADD(player->state, ACTOR_STATE_MOVING_UP);
BITMASK_ADD(player->logicstate, ACTOR_STATE_MOVING_UP);
if ( !player->movement_controls_face ) {
BITMASK_DEL(player->state, ACTOR_STATE_FACE_ALL);
BITMASK_ADD(player->state, ACTOR_STATE_FACE_UP);
BITMASK_DEL(player->visualstate, ACTOR_STATE_FACE_ALL);
BITMASK_ADD(player->visualstate, ACTOR_STATE_FACE_UP);
}
SDL_Log("New state : %d", player->state);
SDL_Log("New state : %d", player->logicstate);
} else if ( event->gbutton.button == SDL_GAMEPAD_BUTTON_DPAD_LEFT ) {
SDL_Log("Processing dpad left");
BITMASK_ADD(player->state, ACTOR_STATE_MOVING_LEFT);
BITMASK_ADD(player->logicstate, ACTOR_STATE_MOVING_LEFT);
if ( !player->movement_controls_face ) {
BITMASK_DEL(player->state, ACTOR_STATE_FACE_ALL);
BITMASK_ADD(player->state, ACTOR_STATE_FACE_LEFT);
BITMASK_DEL(player->visualstate, ACTOR_STATE_FACE_ALL);
BITMASK_ADD(player->visualstate, ACTOR_STATE_FACE_LEFT);
}
SDL_Log("New state : %d", player->state);
SDL_Log("New state : %d", player->logicstate);
} else if ( event->gbutton.button == SDL_GAMEPAD_BUTTON_DPAD_RIGHT ) {
SDL_Log("Processing dpad right");
BITMASK_ADD(player->state, ACTOR_STATE_MOVING_RIGHT);
BITMASK_ADD(player->logicstate, ACTOR_STATE_MOVING_RIGHT);
if ( !player->movement_controls_face ) {
BITMASK_DEL(player->state, ACTOR_STATE_FACE_ALL);
BITMASK_ADD(player->state, ACTOR_STATE_FACE_RIGHT);
BITMASK_DEL(player->visualstate, ACTOR_STATE_FACE_ALL);
BITMASK_ADD(player->visualstate, ACTOR_STATE_FACE_RIGHT);
}
SDL_Log("New state : %d", player->state);
SDL_Log("New state : %d", player->logicstate);
}
SUCCEED_RETURN(errctx);
}
@@ -64,24 +64,24 @@ ErrorContext *gamepad_handle_button_up(void *appstate, SDL_Event *event)
if ( event->gbutton.button == SDL_GAMEPAD_BUTTON_DPAD_DOWN ) {
SDL_Log("processing down release");
BITMASK_DEL(player->state, ACTOR_STATE_MOVING_DOWN);
BITMASK_DEL(player->logicstate, ACTOR_STATE_MOVING_DOWN);
player->curSpriteFrameId = 0;
SDL_Log("New state : %d", player->state);
SDL_Log("New state : %d", player->logicstate);
} else if ( event->gbutton.button == SDL_GAMEPAD_BUTTON_DPAD_UP) {
SDL_Log("processing up release");
BITMASK_DEL(player->state, ACTOR_STATE_MOVING_UP);
BITMASK_DEL(player->logicstate, ACTOR_STATE_MOVING_UP);
player->curSpriteFrameId = 0;
SDL_Log("New state : %d", player->state);
SDL_Log("New state : %d", player->logicstate);
} else if ( event->gbutton.button == SDL_GAMEPAD_BUTTON_DPAD_RIGHT ) {
SDL_Log("processing right release");
BITMASK_DEL(player->state, ACTOR_STATE_MOVING_RIGHT);
BITMASK_DEL(player->logicstate, ACTOR_STATE_MOVING_RIGHT);
player->curSpriteFrameId = 0;
SDL_Log("New state : %d", player->state);
SDL_Log("New state : %d", player->logicstate);
} else if ( event->gbutton.button == SDL_GAMEPAD_BUTTON_DPAD_LEFT) {
SDL_Log("processing left release");
BITMASK_DEL(player->state, ACTOR_STATE_MOVING_LEFT);
BITMASK_DEL(player->logicstate, ACTOR_STATE_MOVING_LEFT);
player->curSpriteFrameId = 0;
SDL_Log("New state : %d", player->state);
SDL_Log("New state : %d", player->logicstate);
}
SUCCEED_RETURN(errctx);
}