static void aKOI_wait(STRUCTURE_ACTOR* actorx, GAME_PLAY* play) {
}

static void aKOI_setup_action(KOINOBORI_ACTOR* koinobori, int action) {
    static aSTR_MOVE_PROC process[8] = { &aKOI_wait, NULL, NULL, NULL, NULL, NULL, NULL, NULL };

    cKF_SkeletonInfo_R_init(&koinobori->structure_class.keyframe, koinobori->structure_class.keyframe.skeleton,
                            &cKF_ba_r_obj_e_koinobori, 1.0f, 1.0f, 1.0f, 0.5f, 0.0f, TRUE, NULL);
    koinobori->structure_class.action_proc = process[action];
    koinobori->structure_class.action = action;
}

static void aKOI_actor_move(ACTOR* actor, GAME* game) {
    GAME_PLAY* game_play = (GAME_PLAY*)game;
    KOINOBORI_ACTOR* koinobori = (KOINOBORI_ACTOR*)actor;

    GET_PLAYER_ACTOR(game_play);
    cKF_SkeletonInfo_R_play(&koinobori->structure_class.keyframe);
    koinobori->structure_class.action_proc(&koinobori->structure_class, game_play);

    sAdo_OngenPos((u32)actor, 0x35, &actor->world.position);
}

static void aKOI_actor_init(ACTOR* actor, GAME* game) {
    xyz_t pos = actor->home.position;

    mFI_SetFG_common(DUMMY_KOINOBORI, pos, FALSE);
    aKOI_actor_move(actor, game);
    actor->mv_proc = aKOI_actor_move;
}
