1316 |
newstate = CLOSING; |
newstate = CLOSING; |
1317 |
else if (m == "openclose") |
else if (m == "openclose") |
1318 |
newstate = (state==OPEN || state==OPENING) ? CLOSING : OPENING; |
newstate = (state==OPEN || state==OPENING) ? CLOSING : OPENING; |
1319 |
else if (m == "signal") |
else if (m == "signal") |
1320 |
newstate = ival > 0 ? OPENING : CLOSING; |
newstate = ival > 0 ? OPENING : CLOSING; |
1321 |
|
|
1322 |
if (newstate==OPENING && (state==CLOSED || state==CLOSING)) |
if (newstate==OPENING && (state==CLOSED || state==CLOSING)) |
1603 |
shogun stone when shifting from one shogun target to a second |
shogun stone when shifting from one shogun target to a second |
1604 |
adjacent shogun target. */ |
adjacent shogun target. */ |
1605 |
|
|
1606 |
|
GridPos my_pos = get_pos(); |
1607 |
|
|
1608 |
// Remove/modify source stone: |
// Remove/modify source stone: |
1609 |
if (Holes newholes = Holes(holes & ~smallest)) { |
if (Holes newholes = Holes(holes & ~smallest)) { |
1610 |
set_holes(newholes); |
set_holes(newholes); |
1612 |
init_model(); |
init_model(); |
1613 |
} |
} |
1614 |
else { |
else { |
1615 |
SendMessage(GetItem(get_pos()), "noshogun"); |
SendMessage(GetItem(my_pos), "noshogun"); |
1616 |
KillStone(get_pos()); |
KillStone(my_pos); |
1617 |
} |
} |
1618 |
|
|
1619 |
// Modify/create target stone: |
// Modify/create target stone: |
1620 |
if (target) { |
if (target) { |
1621 |
target->add_hole(smallest); |
target->add_hole(smallest); |
1622 |
play_sound("st-magic"); |
sound::PlaySound("st-magic", my_pos.center()); // object already disappeared |
1623 |
} |
} |
1624 |
else // create new |
else // create new |
1625 |
SetStone(destpos, new ShogunStone(smallest)); |
SetStone(destpos, new ShogunStone(smallest)); |
1626 |
|
|
1627 |
player::IncMoveCounter(); |
player::IncMoveCounter(); |
1628 |
play_sound("st-move"); |
sound::PlaySound("st-move", my_pos.center()); |
1629 |
} |
} |
1630 |
|
|
1631 |
|
|
2498 |
void |
void |
2499 |
Turnstile_Pivot_Base::handleActorsAndItems(bool clockwise, Object *impulse_sender) { |
Turnstile_Pivot_Base::handleActorsAndItems(bool clockwise, Object *impulse_sender) { |
2500 |
GridPos pv_pos = get_pos(); |
GridPos pv_pos = get_pos(); |
2501 |
V2 pv_center(pv_pos.x+.5, pv_pos.y+.5); |
V2 pv_center(pv_pos.center()); |
2502 |
|
|
2503 |
const int to_index[3][3] = { |
const int to_index[3][3] = { |
2504 |
{ 0, 7, 6 }, // x == 0 |
{ 0, 7, 6 }, // x == 0 |