Changeset 45719
- Timestamp:
- 11/07/09 09:40:11 (5 weeks ago)
- Author:
- megath
- Message:
-
added default delays for the messages
- Location:
- scummvm/trunk/engines/teenagent
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r45718
|
r45719
|
|
| 300 | 300 | if (!message.empty()) { |
| 301 | 301 | message.clear(); |
| | 302 | message_timer = 0; |
| 302 | 303 | nextEvent(); |
| 303 | 304 | return true; |
| … |
… |
|
| 310 | 311 | intro = false; |
| 311 | 312 | message.clear(); |
| | 313 | message_timer = 0; |
| 312 | 314 | events.clear(); |
| 313 | 315 | sounds.clear(); |
| … |
… |
|
| 324 | 326 | if (!message.empty()) { |
| 325 | 327 | message.clear(); |
| | 328 | message_timer = 0; |
| 326 | 329 | nextEvent(); |
| 327 | 330 | return true; |
| … |
… |
|
| 343 | 346 | restart = false; |
| 344 | 347 | busy = processEventQueue(); |
| | 348 | if (!message.empty() && message_timer != 0) { |
| | 349 | if (--message_timer == 0) { |
| | 350 | message.clear(); |
| | 351 | nextEvent(); |
| | 352 | continue; |
| | 353 | } |
| | 354 | } |
| 345 | 355 | |
| 346 | 356 | if (current_event.type == SceneEvent::kCreditsMessage) { |
| … |
… |
|
| 550 | 560 | case SceneEvent::kMessage: { |
| 551 | 561 | message = current_event.message; |
| | 562 | message_timer = messageDuration(message); |
| 552 | 563 | Common::Point p( |
| 553 | 564 | (actor_animation_position.left + actor_animation_position.right) / 2, |
| … |
… |
|
| 678 | 689 | } |
| 679 | 690 | |
| | 691 | uint Scene::messageDuration(const Common::String &str) { |
| | 692 | uint words = 1; |
| | 693 | for(uint i = 0; i < str.size(); ++i) { |
| | 694 | if (str[i] == ' ' || str[i] == '\n') |
| | 695 | ++words; |
| | 696 | } |
| | 697 | words *= 7; //add text speed here |
| | 698 | if (words < 15) |
| | 699 | words = 15; |
| | 700 | |
| | 701 | return words; |
| | 702 | } |
| | 703 | |
| | 704 | |
| 680 | 705 | void Scene::displayMessage(const Common::String &str, byte color) { |
| 681 | 706 | //assert(!str.empty()); |
| … |
… |
|
| 684 | 709 | message_pos = messagePosition(str, position); |
| 685 | 710 | message_color = color; |
| | 711 | message_timer = messageDuration(message); |
| 686 | 712 | } |
| 687 | 713 | |
| 688 | 714 | void Scene::clear() { |
| 689 | 715 | message.clear(); |
| | 716 | message_timer = 0; |
| 690 | 717 | events.clear(); |
| 691 | 718 | current_event.clear(); |
-
|
r45718
|
r45719
|
|
| 143 | 143 | void setPalette(OSystem *system, const byte *palette, unsigned mul = 1); |
| 144 | 144 | static Common::Point messagePosition(const Common::String &str, Common::Point position); |
| | 145 | static uint messageDuration(const Common::String &str); |
| 145 | 146 | |
| 146 | 147 | bool processEventQueue(); |
| … |
… |
|
| 171 | 172 | Common::Point message_pos; |
| 172 | 173 | byte message_color; |
| | 174 | uint message_timer; |
| 173 | 175 | |
| 174 | 176 | typedef Common::List<SceneEvent> EventList; |
Download in other formats: