235 |
DEAD, // marble is dead |
DEAD, // marble is dead |
236 |
RESURRECTED, // has been resurrected; about to respawn |
RESURRECTED, // has been resurrected; about to respawn |
237 |
APPEARING, |
APPEARING, |
238 |
|
RISING, // appear in vortex |
239 |
DISAPPEARING, |
DISAPPEARING, |
240 |
}; |
}; |
241 |
State state; |
State state; |
316 |
else if (state == SINKING) { |
else if (state == SINKING) { |
317 |
if (m == "getout") change_state(NORMAL); |
if (m == "getout") change_state(NORMAL); |
318 |
} |
} |
319 |
|
else if (state == FALLING) { |
320 |
|
if (m == "rise") change_state(RISING); |
321 |
|
} |
322 |
} |
} |
323 |
|
|
324 |
void BasicBall::think(double dtime) |
void BasicBall::think(double dtime) |
392 |
set_model("invisible"); |
set_model("invisible"); |
393 |
change_state(DEAD); |
change_state(DEAD); |
394 |
break; |
break; |
395 |
case FALLING: |
case FALLING: { |
396 |
sound::PlaySound("shatter"); |
set_model(kind+"-fallen"); // invisible |
397 |
set_model(kind+"-fallen"); |
Item *it = GetItem(GridPos(get_pos())); |
398 |
change_state(DEAD); |
if (it && it->is_kind("it-vortex")) { |
399 |
|
SendMessage(it, "warp", Value(reinterpret_cast<int>(this))); |
400 |
|
} |
401 |
|
else { |
402 |
|
sound::PlaySound("shatter"); |
403 |
|
change_state(DEAD); |
404 |
|
} |
405 |
break; |
break; |
406 |
|
} |
407 |
case JUMPING: |
case JUMPING: |
408 |
set_model(kind); |
set_model(kind); |
409 |
change_state(NORMAL); |
change_state(NORMAL); |
412 |
set_model(kind); |
set_model(kind); |
413 |
change_state(NORMAL); |
change_state(NORMAL); |
414 |
break; |
break; |
415 |
|
case RISING: |
416 |
|
set_model(kind); |
417 |
|
change_state(JUMPING); |
418 |
|
break; |
419 |
case DISAPPEARING: |
case DISAPPEARING: |
420 |
set_model("ring-anim"); |
set_model("ring-anim"); |
421 |
break; |
break; |
480 |
set_model_cb(kind+"-jump"); |
set_model_cb(kind+"-jump"); |
481 |
break; |
break; |
482 |
case APPEARING: |
case APPEARING: |
483 |
|
case RISING: |
484 |
set_model_cb(kind+"-appear"); |
set_model_cb(kind+"-appear"); |
485 |
world::GrabActor(this); |
world::GrabActor(this); |
486 |
break; |
break; |