180 if (trackstat != 0) { |
180 if (trackstat != 0) { |
181 for (; !(trackstat & 1); trackstat >>= 1) i++; |
181 for (; !(trackstat & 1); trackstat >>= 1) i++; |
182 } |
182 } |
183 |
183 |
184 if (!_remove_button_clicked) { |
184 if (!_remove_button_clicked) { |
185 uint32 p1 = 0; |
185 uint32 p1 = GB(i, 0, 3); |
186 SB(p1, 0, 1, _ctrl_pressed); |
186 SB(p1, 3, 1, _ctrl_pressed); |
187 SB(p1, 1, 1, _ctrl_pressed ^ (_cur_year < _patches.semaphore_build_before)); |
187 SB(p1, 4, 1, _cur_year < _patches.semaphore_build_before); |
188 SB(p1, 2, 3, i); |
|
189 |
188 |
190 DoCommandP(tile, p1, 0, CcPlaySound1E, |
189 DoCommandP(tile, p1, 0, CcPlaySound1E, |
191 CMD_BUILD_SIGNALS | CMD_AUTO | CMD_MSG(STR_1010_CAN_T_BUILD_SIGNALS_HERE)); |
190 CMD_BUILD_SIGNALS | CMD_AUTO | CMD_MSG(STR_1010_CAN_T_BUILD_SIGNALS_HERE)); |
192 } else { |
191 } else { |
193 DoCommandP(tile, i, 0, CcPlaySound1E, |
192 DoCommandP(tile, i, 0, CcPlaySound1E, |
363 } |
362 } |
364 |
363 |
365 static void HandleAutoSignalPlacement(void) |
364 static void HandleAutoSignalPlacement(void) |
366 { |
365 { |
367 TileHighlightData *thd = &_thd; |
366 TileHighlightData *thd = &_thd; |
368 byte trackstat = thd->drawstyle & 0xF; // 0..5 |
367 uint32 p2 = GB(thd->drawstyle, 0, 3); // 0..5 |
369 |
368 |
370 if (thd->drawstyle == HT_RECT) { // one tile case |
369 if (thd->drawstyle == HT_RECT) { // one tile case |
371 GenericPlaceSignals(TileVirtXY(thd->selend.x, thd->selend.y)); |
370 GenericPlaceSignals(TileVirtXY(thd->selend.x, thd->selend.y)); |
372 return; |
371 return; |
373 } |
372 } |
374 |
373 |
375 int p2 = 0; |
374 SB(p2, 3, 1, _ctrl_pressed); |
376 SB(p2, 0, 1, _ctrl_pressed); |
375 SB(p2, 4, 1, _cur_year < _patches.semaphore_build_before); |
377 SB(p2, 1, 1, _ctrl_pressed ^ (_cur_year < _patches.semaphore_build_before)); |
|
378 SB(p2, 2, 3, trackstat); |
|
379 SB(p2, 24, 8, _patches.drag_signals_density); |
376 SB(p2, 24, 8, _patches.drag_signals_density); |
380 |
377 |
381 /* _patches.drag_signals_density is given as a parameter such that each user |
378 /* _patches.drag_signals_density is given as a parameter such that each user |
382 * in a network game can specify his/her own signal density */ |
379 * in a network game can specify his/her own signal density */ |
383 DoCommandP( |
380 DoCommandP( |