src/mess/drivers/glasgow.c
| r6468 | r6469 | |
| 162 | 162 | board_row++; |
| 163 | 163 | board_row &= 7; |
| 164 | 164 | |
| 165 | | /* See if any pieces moved on the board */ |
| 165 | /* See if we are moving a piece */ |
| 166 | 166 | data = input_port_read(space->machine, keynames[board_row]); |
| 167 | 167 | |
| 168 | 168 | if ((data != 0xff) && (!mouse_down)) |
| 169 | 169 | { |
| 170 | | /* Moving a white piece onto a blank, or taking a black piece */ |
| 171 | | if ((mouse_hold > 6) && (m_board[board_row][pos_to_num(data)].piece < 7)) |
| 170 | /* Moving a piece onto a blank */ |
| 171 | if ((mouse_hold) && (!m_board[board_row][pos_to_num(data)].piece)) |
| 172 | 172 | { |
| 173 | 173 | m_board[board_row][pos_to_num(data)].piece = mouse_hold; |
| 174 | 174 | mouse_hold = 0; |
| 175 | 175 | } |
| 176 | 176 | else |
| 177 | | /* Moving a black piece onto a blank, or taking a white piece */ |
| 178 | | if ((mouse_hold) && (mouse_hold < 7) |
| 179 | | && ((m_board[board_row][pos_to_num(data)].piece > 6) || (!(m_board[board_row][pos_to_num(data)].piece)))) |
| 177 | /* Picking up a piece */ |
| 178 | if ((!mouse_hold) && (m_board[board_row][pos_to_num(data)].piece)) |
| 180 | 179 | { |
| 181 | | m_board[board_row][pos_to_num(data)].piece = mouse_hold; |
| 182 | | mouse_hold = 0; |
| 183 | | } |
| 184 | | else |
| 185 | | /* Picking up a white piece */ |
| 186 | | if (m_board[board_row][pos_to_num(data)].piece > 6) |
| 187 | | { |
| 188 | 180 | mouse_hold = m_board[board_row][pos_to_num(data)].piece; |
| 189 | 181 | m_board[board_row][pos_to_num(data)].piece = 0; |
| 190 | 182 | } |
| 191 | | else |
| 192 | | /* Picking up a black piece */ |
| 193 | | if ((m_board[board_row][pos_to_num(data)].piece) && (m_board[board_row][pos_to_num(data)].piece < 7)) |
| 194 | | { |
| 195 | | mouse_hold = m_board[board_row][pos_to_num(data)].piece; |
| 196 | | m_board[board_row][pos_to_num(data)].piece = 0; |
| 197 | | } |
| 198 | 183 | |
| 199 | 184 | mouse_down = board_row + 1; |
| 200 | 185 | |