static void HandleAddedPiece(square s, void *param) { piece_addition_settings * const settings = param; if (!is_square_empty(s)) { if (settings->type==piece_addition_initial) { WriteSquare(&output_plaintext_engine,stdout,s); output_plaintext_message(OverwritePiece); underworld_make_space(nr_ghosts); underworld[nr_ghosts-1].walk = get_walk_of_piece_on_square(s); underworld[nr_ghosts-1].flags = being_solved.spec[s]; underworld[nr_ghosts-1].on = s; } else { move_effect_journal_do_circe_volcanic_remember(move_effect_reason_diagram_setup, s); move_effect_journal_do_piece_removal(move_effect_reason_diagram_setup, s); } } if (settings->type==piece_addition_twinning) move_effect_journal_do_piece_creation(move_effect_reason_diagram_setup, s,settings->walk, settings->spec, no_side); else occupy_square(s,settings->walk,settings->spec); }
static void HandleAddedPiece(square s, void *param) { piece_addition_settings * const settings = param; if (!is_square_empty(s)) { move_effect_journal_do_circe_volcanic_remember(move_effect_reason_diagram_setup,s); move_effect_journal_do_piece_removal(move_effect_reason_diagram_setup,s); } move_effect_journal_do_piece_creation(move_effect_reason_diagram_setup, s,settings->walk, settings->spec, no_side); }
/* Place the opposite king as part of playing a move * @param moving side at the move */ static void place_king(Side moving) { Side const other_side = advers(moving); Flags king_flags = all_royals_flags|BIT(Royal)|BIT(other_side); TraceFunctionEntry(__func__); TraceEnumerator(Side,moving,""); TraceFunctionParamListEnd(); move_effect_journal_do_piece_creation(move_effect_reason_republican_king_insertion, king_placement[nbply], King, king_flags, trait[nbply]); TraceFunctionExit(__func__); TraceFunctionResultEnd(); }