summaryrefslogtreecommitdiff
authorimm <imm>2002-09-20 21:17:49 (UTC)
committer imm <imm>2002-09-20 21:17:49 (UTC)
commit20c93734a4eada53d056f13558cbf60d6eff5bac (patch) (unidiff)
tree6ee73a9d1e5f9f5426ada0cb58ff60ad74bc876b
parent7027b4c29de455d457b7d62f52511216a8b76b9c (diff)
downloadopie-20c93734a4eada53d056f13558cbf60d6eff5bac.zip
opie-20c93734a4eada53d056f13558cbf60d6eff5bac.tar.gz
opie-20c93734a4eada53d056f13558cbf60d6eff5bac.tar.bz2
changed keys
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/kpacman/referee.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/noncore/games/kpacman/referee.cpp b/noncore/games/kpacman/referee.cpp
index 9edaabd..70916f0 100644
--- a/noncore/games/kpacman/referee.cpp
+++ b/noncore/games/kpacman/referee.cpp
@@ -605,473 +605,478 @@ void Referee::confTiming(bool defGroup)
605 introPostAnimationMS = cfg->readNumEntry("IntroPostAnimationMS", 1000); 605 introPostAnimationMS = cfg->readNumEntry("IntroPostAnimationMS", 1000);
606 if (defGroup || cfg->hasKey("LevelUpPreAnimationMS")) 606 if (defGroup || cfg->hasKey("LevelUpPreAnimationMS"))
607 levelUpPreAnimationMS = cfg->readNumEntry("LevelUpPreAnimationMS", 2000); 607 levelUpPreAnimationMS = cfg->readNumEntry("LevelUpPreAnimationMS", 2000);
608 if (defGroup || cfg->hasKey("LevelUpAnimationMS")) 608 if (defGroup || cfg->hasKey("LevelUpAnimationMS"))
609 levelUpAnimationMS = cfg->readNumEntry("LevelUpAnimationMS", 2000); 609 levelUpAnimationMS = cfg->readNumEntry("LevelUpAnimationMS", 2000);
610 if (defGroup || cfg->hasKey("EnergizerAnimationMS")) 610 if (defGroup || cfg->hasKey("EnergizerAnimationMS"))
611 energizerAnimationMS = cfg->readNumEntry("EnergizerAnimationMS", 200); 611 energizerAnimationMS = cfg->readNumEntry("EnergizerAnimationMS", 200);
612 APP_CONFIG_END( cfg ); 612 APP_CONFIG_END( cfg );
613} 613}
614 614
615void Referee::confScoring(bool defGroup) 615void Referee::confScoring(bool defGroup)
616{ 616{
617 APP_CONFIG_BEGIN( cfg ); 617 APP_CONFIG_BEGIN( cfg );
618 if (defGroup || cfg->hasKey("PointScore")) 618 if (defGroup || cfg->hasKey("PointScore"))
619 pointScore = cfg->readNumEntry("PointScore", 10); 619 pointScore = cfg->readNumEntry("PointScore", 10);
620 if (defGroup || cfg->hasKey("EnergizerScore")) 620 if (defGroup || cfg->hasKey("EnergizerScore"))
621 energizerScore = cfg->readNumEntry("EnergizerScore", 50); 621 energizerScore = cfg->readNumEntry("EnergizerScore", 50);
622 if (defGroup || cfg->hasKey("FruitScore")) 622 if (defGroup || cfg->hasKey("FruitScore"))
623 fillArray(fruitScore, cfg->readEntry("FruitScore", "100,300,500,,700,,1000,,2000,,3000,,5000"), maxLevel+1); 623 fillArray(fruitScore, cfg->readEntry("FruitScore", "100,300,500,,700,,1000,,2000,,3000,,5000"), maxLevel+1);
624 if (defGroup || cfg->hasKey("MonsterScore")) 624 if (defGroup || cfg->hasKey("MonsterScore"))
625 fillArray(monsterScore, cfg->readEntry("MonsterScore", "200,400,800,1600"), 4); 625 fillArray(monsterScore, cfg->readEntry("MonsterScore", "200,400,800,1600"), 4);
626 if (defGroup || cfg->hasKey("ExtraLifeScore")) 626 if (defGroup || cfg->hasKey("ExtraLifeScore"))
627 fillArray(extraLifeScore, cfg->readEntry("ExtraLifeScore", "10000"), -1); 627 fillArray(extraLifeScore, cfg->readEntry("ExtraLifeScore", "10000"), -1);
628 APP_CONFIG_END( cfg ); 628 APP_CONFIG_END( cfg );
629} 629}
630 630
631void Referee::confScheme() 631void Referee::confScheme()
632{ 632{
633 APP_CONFIG_BEGIN( cfg ); 633 APP_CONFIG_BEGIN( cfg );
634 SAVE_CONFIG_GROUP( cfg, oldgroup ); 634 SAVE_CONFIG_GROUP( cfg, oldgroup );
635 QString newgroup; 635 QString newgroup;
636 636
637 // if not set, read mode and scheme from the configfile 637 // if not set, read mode and scheme from the configfile
638 if (mode == -1 && scheme == -1) { 638 if (mode == -1 && scheme == -1) {
639 scheme = cfg->readNumEntry("Scheme", -1); 639 scheme = cfg->readNumEntry("Scheme", -1);
640 mode = cfg->readNumEntry("Mode", -1); 640 mode = cfg->readNumEntry("Mode", -1);
641 641
642 // if mode is not set in the defGroup-group, lookup the scheme group 642 // if mode is not set in the defGroup-group, lookup the scheme group
643 if (scheme != -1 || mode == -1) { 643 if (scheme != -1 || mode == -1) {
644 newgroup.sprintf("Scheme %d", scheme); 644 newgroup.sprintf("Scheme %d", scheme);
645 cfg->setGroup(newgroup); 645 cfg->setGroup(newgroup);
646 646
647 mode = cfg->readNumEntry("Mode", -1); 647 mode = cfg->readNumEntry("Mode", -1);
648 RESTORE_CONFIG_GROUP( cfg, oldgroup ); 648 RESTORE_CONFIG_GROUP( cfg, oldgroup );
649 } 649 }
650 } 650 }
651 651
652 confLevels(); 652 confLevels();
653 653
654 if (mode != -1) { 654 if (mode != -1) {
655 newgroup.sprintf("Mode %d", mode); 655 newgroup.sprintf("Mode %d", mode);
656 cfg->setGroup(newgroup); 656 cfg->setGroup(newgroup);
657 657
658 confLevels(FALSE); 658 confLevels(FALSE);
659 } 659 }
660 660
661 if (scheme != -1) { 661 if (scheme != -1) {
662 newgroup.sprintf("Scheme %d", scheme); 662 newgroup.sprintf("Scheme %d", scheme);
663 cfg->setGroup(newgroup); 663 cfg->setGroup(newgroup);
664 664
665 confLevels(FALSE); 665 confLevels(FALSE);
666 } 666 }
667 667
668 RESTORE_CONFIG_GROUP( cfg, oldgroup ); 668 RESTORE_CONFIG_GROUP( cfg, oldgroup );
669 669
670 confMisc(); 670 confMisc();
671 confTiming(); 671 confTiming();
672 confScoring(); 672 confScoring();
673 673
674 if (mode != -1) { 674 if (mode != -1) {
675 newgroup.sprintf("Mode %d", mode); 675 newgroup.sprintf("Mode %d", mode);
676 cfg->setGroup(newgroup); 676 cfg->setGroup(newgroup);
677 677
678 confMisc(FALSE); 678 confMisc(FALSE);
679 confTiming(FALSE); 679 confTiming(FALSE);
680 confScoring(FALSE); 680 confScoring(FALSE);
681 } 681 }
682 682
683 if (scheme != -1) { 683 if (scheme != -1) {
684 newgroup.sprintf("Scheme %d", scheme); 684 newgroup.sprintf("Scheme %d", scheme);
685 cfg->setGroup(newgroup); 685 cfg->setGroup(newgroup);
686 686
687 confMisc(FALSE); 687 confMisc(FALSE);
688 confTiming(FALSE); 688 confTiming(FALSE);
689 confScoring(FALSE); 689 confScoring(FALSE);
690 } 690 }
691 691
692 fillMapName(); 692 fillMapName();
693 693
694 RESTORE_CONFIG_GROUP( cfg, oldgroup ); 694 RESTORE_CONFIG_GROUP( cfg, oldgroup );
695 APP_CONFIG_END( cfg ); 695 APP_CONFIG_END( cfg );
696} 696}
697 697
698void Referee::setScheme(int Scheme, int Mode, Bitfont *font) 698void Referee::setScheme(int Scheme, int Mode, Bitfont *font)
699{ 699{
700 mode = Mode; 700 mode = Mode;
701 scheme = Scheme; 701 scheme = Scheme;
702 702
703 confScheme(); 703 confScheme();
704 704
705 pix->setScheme(scheme, mode, font); 705 pix->setScheme(scheme, mode, font);
706 706
707 pacman->setMaxPixmaps(pix->maxPixmaps(PacmanPix)); 707 pacman->setMaxPixmaps(pix->maxPixmaps(PacmanPix));
708 fruit->setMaxPixmaps(pix->maxPixmaps(FruitPix)); 708 fruit->setMaxPixmaps(pix->maxPixmaps(FruitPix));
709 709
710 for (Monster *m = monsters->first(); m != 0; m = monsters->next()) 710 for (Monster *m = monsters->first(); m != 0; m = monsters->next())
711 if (m) 711 if (m)
712 m->setMaxPixmaps(pix->maxPixmaps(MonsterPix), pix->maxPixmaps(EyesPix)); 712 m->setMaxPixmaps(pix->maxPixmaps(MonsterPix), pix->maxPixmaps(EyesPix));
713 713
714 for (Energizer *e = energizers->first(); e != 0; e = energizers->next()) 714 for (Energizer *e = energizers->first(); e != 0; e = energizers->next())
715 if (e) 715 if (e)
716 e->setMaxPixmaps(pix->maxPixmaps(EnergizerPix)); 716 e->setMaxPixmaps(pix->maxPixmaps(EnergizerPix));
717 717
718 if (gameState.testBit(Introducing)) 718 if (gameState.testBit(Introducing))
719 for (int i = 0; i < (gameState.testBit(Init) ? timerCount : 15); i++) 719 for (int i = 0; i < (gameState.testBit(Init) ? timerCount : 15); i++)
720 introPaint(i); 720 introPaint(i);
721 721
722 setFixedSize(pix->levelPix().size()); 722 setFixedSize(pix->levelPix().size());
723 repaint(); 723 repaint();
724} 724}
725 725
726void Referee::keyPressEvent( QKeyEvent *k ) 726void Referee::keyPressEvent( QKeyEvent *k )
727{ 727{
728 uint key = k->key(); 728 uint key = k->key();
729#ifdef QWS 729#ifdef QWS
730 // "OK" => new game 730 // "OK" => new game
731 if ( key == Key_F33 || key == Key_F2 || key == Key_Enter ) 731 if ( key == Key_F33 || key == Key_F2 || key == Key_Enter )
732 play(); 732 play();
733 else if ( !gameState.testBit(Playing) && key == Key_Space ) 733 else if ( !gameState.testBit(Playing) &&
734 key == Key_Up ||
735 key == Key_Down ||
736 key == Key_Right ||
737 key == Key_Left )
734 play(); 738 play();
735 // "Space" => pause 739 // "Space" => pause
736 //else if ( key == Key_Space || key == Key_F3 ) 740 //else if ( key == Key_Space || key == Key_F3 )
737 // pause(); 741 // pause();
738 // "Menu" => hall of fame 742 // "Menu" => hall of fame
739 //else if ( key == Key_F11 || key == Key_F4 ) 743 //else if ( key == Key_F11 || key == Key_F4 )
740 // toggleHallOfFame(); 744 // toggleHallOfFame();
741#endif 745#endif
742 746
743 if (gameState.testBit(Paused) || gameState.testBit(HallOfFame) || 747 if (gameState.testBit(Paused) || gameState.testBit(HallOfFame) ||
744 gameState.testBit(Demonstration) || gameState.testBit(Dying) || 748 gameState.testBit(Demonstration) || gameState.testBit(Dying) ||
745 gameState.testBit(Ready) || gameState.testBit(LevelDone) || 749 gameState.testBit(Ready) || gameState.testBit(LevelDone) ||
746 !gameState.testBit(Playing)) 750 !gameState.testBit(Playing))
747 return; 751 return;
748 752
749 if (key == UpKey) 753 if (key == UpKey)
750 pacman->setDirection(N); 754 pacman->setDirection(N);
751 else if (key == DownKey) 755 else if (key == DownKey)
752 pacman->setDirection(S); 756 pacman->setDirection(S);
753 else if (key == RightKey) 757 else if (key == RightKey)
754 pacman->setDirection(E); 758 pacman->setDirection(E);
755 else if (key == LeftKey) 759 else if (key == LeftKey)
756 pacman->setDirection(W); 760 pacman->setDirection(W);
757 761
758#ifdef CHEATS 762#ifdef CHEATS
759 else if (key == Key_L) { printf("levelUp()\n"); levelUp(); } 763 else if (key == Key_L) { printf("levelUp()\n"); levelUp(); }
760 else if (key == Key_F) { printf("fruit->move(TRUE)\n"); fruit->move(TRUE); repaint(FALSE); } 764 else if (key == Key_F) { printf("fruit->move(TRUE)\n"); fruit->move(TRUE); repaint(FALSE); }
761 else if (key == Key_E) { printf("setLifes(++lifes)\n"); emit setLifes(++lifes); } 765 else if (key == Key_E) { printf("setLifes(++lifes)\n"); emit setLifes(++lifes); }
762#endif 766#endif
763 767
764 else { 768 else {
765 k->ignore(); 769 k->ignore();
766 return; 770 return;
767 } 771 }
768 k->accept(); 772 k->accept();
769} 773}
770 774
771void Referee::score(int p) 775void Referee::score(int p)
772{ 776{
773 if (!gameState.testBit(Playing)) 777 if (!gameState.testBit(Playing))
774 return; 778 return;
775 779
776 if ((points += p) < 0) 780 if ((points += p) < 0)
777 points = 0; 781 points = 0;
778 782
779 emit setPoints(points); 783 emit setPoints(points);
780 784
781 if (points >= nextExtraLifeScore) { 785 if (points >= nextExtraLifeScore) {
782 emit setLifes(++lifes); 786 emit setLifes(++lifes);
783 if (extraLifeScoreIndex < (int) extraLifeScore.size()-1) 787 if (extraLifeScoreIndex < (int) extraLifeScore.size()-1)
784 extraLifeScoreIndex++; 788 extraLifeScoreIndex++;
785 if (extraLifeScore[extraLifeScoreIndex] < 0) 789 if (extraLifeScore[extraLifeScoreIndex] < 0)
786 nextExtraLifeScore = extraLifeScore[extraLifeScoreIndex] * -1; 790 nextExtraLifeScore = extraLifeScore[extraLifeScoreIndex] * -1;
787 else 791 else
788 nextExtraLifeScore += extraLifeScore[extraLifeScoreIndex]; 792 nextExtraLifeScore += extraLifeScore[extraLifeScoreIndex];
789 } 793 }
790} 794}
791 795
792void Referee::eaten() 796void Referee::eaten()
793{ 797{
794 if (gameState.testBit(Ready)) 798 if (gameState.testBit(Ready))
795 return; 799 return;
796 800
797 stop(); 801 stop();
798 802
799 if (monstersEaten < 4) 803 if (monstersEaten < 4)
800 monstersEaten++; 804 monstersEaten++;
801 805
802 gameState.setBit(Scoring); 806 gameState.setBit(Scoring);
803 score(monsterScore[monstersEaten-1]); 807 score(monsterScore[monstersEaten-1]);
804 808
805 repaint(pix->rect(pix->rect(pacman->position(), MonsterPix), 809 repaint(pix->rect(pix->rect(pacman->position(), MonsterPix),
806 pix->rect(pacman->position(), MonsterScorePix, monstersEaten-1))); 810 pix->rect(pacman->position(), MonsterScorePix, monstersEaten-1)));
807 811
808 if (--timerCount > 0) 812 if (--timerCount > 0)
809 QTimer::singleShot( monsterScoreDurMS, this, SLOT(eaten())); 813 QTimer::singleShot( monsterScoreDurMS, this, SLOT(eaten()));
810 else { 814 else {
811 for (Monster *m = monsters->first(); m != 0; m = monsters->next()) 815 for (Monster *m = monsters->first(); m != 0; m = monsters->next())
812 if (m && m->direction() == X && !gameState.testBit(Introducing)) 816 if (m && m->direction() == X && !gameState.testBit(Introducing))
813 m->setDirection(N); 817 m->setDirection(N);
814 if (monstersEaten != 4 || !gameState.testBit(Introducing)) 818 if (monstersEaten != 4 || !gameState.testBit(Introducing))
815 QTimer::singleShot( monsterScoreDurMS, this, SLOT(start())); 819 QTimer::singleShot( monsterScoreDurMS, this, SLOT(start()));
816 } 820 }
817} 821}
818 822
819void Referee::toggleHallOfFame() 823void Referee::toggleHallOfFame()
820{ 824{
821 gameState.toggleBit(HallOfFame); 825 gameState.toggleBit(HallOfFame);
822} 826}
823 827
824void Referee::hallOfFame() 828void Referee::hallOfFame()
825{ 829{
826 if (gameState.testBit(HallOfFame)) // If the HallOfFame is switched on manually, toggle the 830 if (gameState.testBit(HallOfFame)) // If the HallOfFame is switched on manually, toggle the
827 toggleHallOfFame(); // bit twice. 831 toggleHallOfFame(); // bit twice.
828 832
829 emit setLevel(0); // Clear status display for hall of fame 833 emit setLevel(0); // Clear status display for hall of fame
830 emit setScore(level, 0); 834 emit setScore(level, 0);
831 emit forcedHallOfFame(TRUE); 835 emit forcedHallOfFame(TRUE);
832} 836}
833 837
834void Referee::pause() 838void Referee::pause()
835{ 839{
836 static int pausedTimer = 0; 840 static int pausedTimer = 0;
837 841
838 if (!gameState.testBit(Paused)) { 842 if (!gameState.testBit(Paused)) {
839 pausedTimer = gameTimer; 843 pausedTimer = gameTimer;
840 stop(); 844 stop();
841 stopEnergizer(); 845 stopEnergizer();
842 gameState.setBit(Paused); 846 gameState.setBit(Paused);
843 repaint(pix->rect((BoardWidth*BoardHeight)/2-BoardWidth, tr("PAUSED")), FALSE); 847 repaint(pix->rect((BoardWidth*BoardHeight)/2-BoardWidth, tr("PAUSED")), FALSE);
844 } else { 848 } else {
845 gameState.clearBit(Paused); 849 gameState.clearBit(Paused);
846 repaint(pix->rect((BoardWidth*BoardHeight)/2-BoardWidth, tr("PAUSED")), FALSE); 850 repaint(pix->rect((BoardWidth*BoardHeight)/2-BoardWidth, tr("PAUSED")), FALSE);
847 if (pausedTimer) { 851 if (pausedTimer) {
848 pausedTimer = 0; 852 pausedTimer = 0;
849 start(); 853 start();
850 } 854 }
851 } 855 }
852 emit togglePaused(); 856 emit togglePaused();
853} 857}
854 858
855void Referee::intro() 859void Referee::intro()
856{ 860{
857 stop(); 861 stop();
858 stopEnergizer(); 862 stopEnergizer();
859 bool paused = gameState.testBit(Paused); 863 bool paused = gameState.testBit(Paused);
860 864
861 gameState.fill(FALSE); 865 gameState.fill(FALSE);
862 gameState.setBit(Introducing); 866 gameState.setBit(Introducing);
863 gameState.setBit(Init); 867 gameState.setBit(Init);
864 868
865 if (paused) 869 if (paused)
866 gameState.setBit(Paused); 870 gameState.setBit(Paused);
867 871
868 level = 0; 872 level = 0;
869 emit setLevel(level); 873 emit setLevel(level);
870 874
871 board->init(Intro); 875 board->init(Intro);
872 pix->setLevel(level); 876 pix->setLevel(level);
873 877
874 initPacman(); 878 initPacman();
875 initFruit(); 879 initFruit();
876 initMonsters(); 880 initMonsters();
877 initEnergizers(); 881 initEnergizers();
878 882
879 repaint(); 883 repaint();
880 884
881 monstersEaten = 0; 885 monstersEaten = 0;
882 timerCount = 0; 886 timerCount = 0;
883 introPlay(); 887 introPlay();
884} 888}
885 889
886void Referee::introMonster(int id) 890void Referee::introMonster(int id)
887{ 891{
888 Monster *m = new Monster(board, id); 892 Monster *m = new Monster(board, id);
889 893
890 m->setPosition((10+id*6)*BoardWidth+10); 894 m->setPosition((10+id*6)*BoardWidth+10);
891 m->setDirection(E); 895 m->setDirection(E);
892 m->setDangerous(dangerousTicks[level], monsterIQ[level]); 896 m->setDangerous(dangerousTicks[level], monsterIQ[level]);
893 m->setMaxPixmaps(pix->maxPixmaps(MonsterPix), pix->maxPixmaps(EyesPix)); 897 m->setMaxPixmaps(pix->maxPixmaps(MonsterPix), pix->maxPixmaps(EyesPix));
894 898
895 if (m->body() != -1) 899 if (m->body() != -1)
896 pix->draw(m->position(), RoomPix, MonsterPix, m->body()); 900 pix->draw(m->position(), RoomPix, MonsterPix, m->body());
897 if (m->eyes() != -1) 901 if (m->eyes() != -1)
898 pix->draw(m->position(), RoomPix, EyesPix, m->eyes()); 902 pix->draw(m->position(), RoomPix, EyesPix, m->eyes());
899 903
900 repaint(pix->rect(m->position(), MonsterPix), FALSE); 904 repaint(pix->rect(m->position(), MonsterPix), FALSE);
901 m->setPosition(OUT); 905 m->setPosition(OUT);
902} 906}
903 907
904void Referee::introPaint(int t) 908void Referee::introPaint(int t)
905{ 909{
906 QString pts; 910 QString pts;
907 911
908 switch (t) { 912 switch (t) {
909 case 0 : repaint(pix->draw(16, 6, RoomPix, tr("CHARACTER"), WHITE, QColor(), AlignLeft), FALSE); 913 case 0 : repaint(pix->draw(16, 6, RoomPix, tr("CHARACTER"), WHITE, QColor(), AlignLeft), FALSE);
910 repaint(pix->draw(36, 6, RoomPix, tr("/"), WHITE, QColor(), AlignLeft), FALSE); 914 repaint(pix->draw(36, 6, RoomPix, tr("/"), WHITE, QColor(), AlignLeft), FALSE);
911 repaint(pix->draw(40, 6, RoomPix, tr("NICKNAME"), WHITE, QColor(), AlignLeft), FALSE); 915 repaint(pix->draw(40, 6, RoomPix, tr("NICKNAME"), WHITE, QColor(), AlignLeft), FALSE);
912 break; 916 break;
913 case 1 : introMonster(0); 917 case 1 : introMonster(0);
914 break; 918 break;
915 case 2 : repaint(pix->draw(16, 10, RoomPix, tr("-SHADOW"), RED, QColor(), AlignLeft), FALSE); 919 case 2 : repaint(pix->draw(16, 10, RoomPix, tr("-SHADOW"), RED, QColor(), AlignLeft), FALSE);
916 break; 920 break;
917 case 3 : repaint(pix->draw(38, 10, RoomPix, tr("\"BLINKY\""), RED, QColor(), AlignLeft), FALSE); 921 case 3 : repaint(pix->draw(38, 10, RoomPix, tr("\"BLINKY\""), RED, QColor(), AlignLeft), FALSE);
918 break; 922 break;
919 case 4 : introMonster(1); 923 case 4 : introMonster(1);
920 break; 924 break;
921 case 5 : repaint(pix->draw(16, 16, RoomPix, tr("-SPEEDY"), PINK, QColor(), AlignLeft), FALSE); 925 case 5 : repaint(pix->draw(16, 16, RoomPix, tr("-SPEEDY"), PINK, QColor(), AlignLeft), FALSE);
922 break; 926 break;
923 case 6 : repaint(pix->draw(38, 16, RoomPix, tr("\"PINKY\""), PINK, QColor(), AlignLeft), FALSE); 927 case 6 : repaint(pix->draw(38, 16, RoomPix, tr("\"PINKY\""), PINK, QColor(), AlignLeft), FALSE);
924 break; 928 break;
925 case 7 : introMonster(2); 929 case 7 : introMonster(2);
926 break; 930 break;
927 case 8 : repaint(pix->draw(16, 22, RoomPix, tr("-BASHFUL"), CYAN, QColor(), AlignLeft), FALSE); 931 case 8 : repaint(pix->draw(16, 22, RoomPix, tr("-BASHFUL"), CYAN, QColor(), AlignLeft), FALSE);
928 break; 932 break;
929 case 9 : repaint(pix->draw(38, 22, RoomPix, tr("\"INKY\""), CYAN, QColor(), AlignLeft), FALSE); 933 case 9 : repaint(pix->draw(38, 22, RoomPix, tr("\"INKY\""), CYAN, QColor(), AlignLeft), FALSE);
930 break; 934 break;
931 case 10 : introMonster(3); 935 case 10 : introMonster(3);
932 break; 936 break;
933 case 11 : repaint(pix->draw(16, 28, RoomPix, tr("-POKEY"), ORANGE, QColor(), AlignLeft), FALSE); 937 case 11 : repaint(pix->draw(16, 28, RoomPix, tr("-POKEY"), ORANGE, QColor(), AlignLeft), FALSE);
934 break; 938 break;
935 case 12 : repaint(pix->draw(38, 28, RoomPix, tr("\"CLYDE\""), ORANGE, QColor(), AlignLeft), FALSE); 939 case 12 : repaint(pix->draw(38, 28, RoomPix, tr("\"CLYDE\""), ORANGE, QColor(), AlignLeft), FALSE);
936 break; 940 break;
937 case 13 : pts.sprintf("%d", pointScore); 941 case 13 : pts.sprintf("%d", pointScore);
938 repaint(pix->draw(28, 44, RoomPix, pts.data(), WHITE, QColor(), AlignRight), FALSE); 942 repaint(pix->draw(28, 44, RoomPix, pts.data(), WHITE, QColor(), AlignRight), FALSE);
939 repaint(pix->draw(31, 44, RoomPix, "\x1C\x1D\x1E", WHITE, QColor(), AlignLeft), FALSE); 943 repaint(pix->draw(31, 44, RoomPix, "\x1C\x1D\x1E", WHITE, QColor(), AlignLeft), FALSE);
940 pts.sprintf("%d", energizerScore); 944 pts.sprintf("%d", energizerScore);
941 repaint(pix->draw(28, 48, RoomPix, pts.data(), WHITE, QColor(), AlignRight), FALSE); 945 repaint(pix->draw(28, 48, RoomPix, pts.data(), WHITE, QColor(), AlignRight), FALSE);
942 repaint(pix->draw(31, 48, RoomPix, "\x1C\x1D\x1E", WHITE, QColor(), AlignLeft), FALSE); 946 repaint(pix->draw(31, 48, RoomPix, "\x1C\x1D\x1E", WHITE, QColor(), AlignLeft), FALSE);
943 break; 947 break;
944 case 14 : // "@ 1980 MIDWAY MFG.CO." 948 case 14 : // "@ 1980 MIDWAY MFG.CO."
945#if defined( KDE2_PORT ) 949#if defined( KDE2_PORT )
946 repaint(pix->draw(30, 58, RoomPix, "© 1998-2002 J.THÖNNISSEN", PINK), FALSE); 950 repaint(pix->draw(30, 58, RoomPix, "© 1998-2002 J.THÖNNISSEN", PINK), FALSE);
947#elif defined( QPE_PORT ) 951#elif defined( QPE_PORT )
948 repaint(pix->draw(30, 55, RoomPix, "© 1998-2002 J.THÖNNISSEN", PINK), FALSE); 952 repaint(pix->draw(30, 55, RoomPix, "© 1998-2002 J.THÖNNISSEN", PINK), FALSE);
949 repaint(pix->draw(29, 60, RoomPix, "Qtopia port: Catalin CLIMOV", GREEN), FALSE); 953 repaint(pix->draw(29, 58, RoomPix, tr("QTOPIA PORT: CATALIN CLIMOV"), GREEN), FALSE);
954 repaint(pix->draw(29, 61, RoomPix, tr("PRESS CURSOR TO START"), GREEN), FALSE);
950#endif 955#endif
951 break; 956 break;
952 } 957 }
953} 958}
954 959
955void Referee::introPlay() 960void Referee::introPlay()
956{ 961{
957 if (!gameState.testBit(Introducing) || gameState.testBit(Ready)) 962 if (!gameState.testBit(Introducing) || gameState.testBit(Ready))
958 return; 963 return;
959 if (gameState.testBit(Paused) || gameState.testBit(HallOfFame)) { 964 if (gameState.testBit(Paused) || gameState.testBit(HallOfFame)) {
960 QTimer::singleShot(afterPauseMS, this, SLOT(introPlay())); 965 QTimer::singleShot(afterPauseMS, this, SLOT(introPlay()));
961 return; 966 return;
962 } 967 }
963 968
964 if (!gameState.testBit(Init)) { 969 if (!gameState.testBit(Init)) {
965 if (monstersEaten == 4) { 970 if (monstersEaten == 4) {
966 stop(); 971 stop();
967 QTimer::singleShot(introPostAnimationMS, this, SLOT(demo())); 972 QTimer::singleShot(introPostAnimationMS, this, SLOT(demo()));
968 } 973 }
969 if (pacman->direction() == W) { 974 if (pacman->direction() == W) {
970 int id = -1; 975 int id = -1;
971 if (pacman->position() == 37*BoardWidth-6) 976 if (pacman->position() == 37*BoardWidth-6)
972 id = 0; 977 id = 0;
973 else 978 else
974 if (board->isMonster(37*BoardWidth-6)) 979 if (board->isMonster(37*BoardWidth-6))
975 for (Monster *m = monsters->first(); m != 0; m = monsters->next()) 980 for (Monster *m = monsters->first(); m != 0; m = monsters->next())
976 if (m && m->position() == 37*BoardWidth-6) { 981 if (m && m->position() == 37*BoardWidth-6) {
977 id = m->id(); 982 id = m->id();
978 id++; 983 id++;
979 break; 984 break;
980 } 985 }
981 986
982 if (id >= 0 && id <= 4) 987 if (id >= 0 && id <= 4)
983 for (Monster *m = monsters->first(); m != 0; m = monsters->next()) 988 for (Monster *m = monsters->first(); m != 0; m = monsters->next())
984 if (m && m->id() == id && m->position() == OUT) { 989 if (m && m->id() == id && m->position() == OUT) {
985 m->setPosition(37*BoardWidth-1); 990 m->setPosition(37*BoardWidth-1);
986 m->setDirection(W); 991 m->setDirection(W);
987 m->setDangerous(dangerousTicks[level], monsterIQ[level]); 992 m->setDangerous(dangerousTicks[level], monsterIQ[level]);
988 board->set(37*BoardWidth-1, monsterhome, id); 993 board->set(37*BoardWidth-1, monsterhome, id);
989 repaint(pix->rect(m->position(), MonsterPix)); 994 repaint(pix->rect(m->position(), MonsterPix));
990 break; 995 break;
991 } 996 }
992 } 997 }
993 return; 998 return;
994 } 999 }
995 1000
996 if (timerCount < 15) 1001 if (timerCount < 15)
997 introPaint(timerCount); 1002 introPaint(timerCount);
998 1003
999 switch (timerCount) { 1004 switch (timerCount) {
1000 case 13 : board->set(44*BoardWidth+22, Point); 1005 case 13 : board->set(44*BoardWidth+22, Point);
1001 pix->drawPoint(44*BoardWidth+22); 1006 pix->drawPoint(44*BoardWidth+22);
1002 repaint(pix->rect(44*BoardWidth+22, PointPix), FALSE); 1007 repaint(pix->rect(44*BoardWidth+22, PointPix), FALSE);
1003 energizers->at(0)->setPosition(48*BoardWidth+22); 1008 energizers->at(0)->setPosition(48*BoardWidth+22);
1004 energizers->at(0)->setOn(); 1009 energizers->at(0)->setOn();
1005 repaint(pix->rect(48*BoardWidth+22, EnergizerPix), FALSE); 1010 repaint(pix->rect(48*BoardWidth+22, EnergizerPix), FALSE);
1006 break; 1011 break;
1007 case 14 : energizers->at(1)->setPosition(36*BoardWidth+10); 1012 case 14 : energizers->at(1)->setPosition(36*BoardWidth+10);
1008 energizers->at(1)->setOn(); 1013 energizers->at(1)->setOn();
1009 repaint(pix->rect(36*BoardWidth+10, EnergizerPix), FALSE); 1014 repaint(pix->rect(36*BoardWidth+10, EnergizerPix), FALSE);
1010 for (int pos = 8; pos < BoardWidth; pos++) { 1015 for (int pos = 8; pos < BoardWidth; pos++) {
1011 board->set(34*BoardWidth+pos, out); 1016 board->set(34*BoardWidth+pos, out);
1012 board->set(38*BoardWidth+pos, out); 1017 board->set(38*BoardWidth+pos, out);
1013 } 1018 }
1014 board->set(36*BoardWidth+8, out); 1019 board->set(36*BoardWidth+8, out);
1015 break; 1020 break;
1016 case 15 : gameState.clearBit(Init); 1021 case 15 : gameState.clearBit(Init);
1017 initPacman(); 1022 initPacman();
1018 pacman->setDemo(TRUE); 1023 pacman->setDemo(TRUE);
1019 pacman->setPosition(37*BoardWidth-1); 1024 pacman->setPosition(37*BoardWidth-1);
1020 repaintFigures(); 1025 repaintFigures();
1021 start(); 1026 start();
1022 return; 1027 return;
1023 } 1028 }
1024 1029
1025 if (timerCount++ < 15) 1030 if (timerCount++ < 15)
1026 QTimer::singleShot(introAnimationMS, this, SLOT(introPlay())); 1031 QTimer::singleShot(introAnimationMS, this, SLOT(introPlay()));
1027} 1032}
1028 1033
1029void Referee::demo() 1034void Referee::demo()
1030{ 1035{
1031 if (gameState.testBit(Ready)) 1036 if (gameState.testBit(Ready))
1032 return; 1037 return;
1033 1038
1034 if (gameState.testBit(Paused) || gameState.testBit(HallOfFame)) { 1039 if (gameState.testBit(Paused) || gameState.testBit(HallOfFame)) {
1035 QTimer::singleShot(afterPauseMS, this, SLOT(demo())); 1040 QTimer::singleShot(afterPauseMS, this, SLOT(demo()));
1036 return; 1041 return;
1037 } 1042 }
1038 1043
1039 stop(); 1044 stop();
1040 stopEnergizer(); 1045 stopEnergizer();
1041 1046
1042 gameState.fill(FALSE); 1047 gameState.fill(FALSE);
1043 gameState.setBit(Init); 1048 gameState.setBit(Init);
1044 gameState.setBit(Demonstration); 1049 gameState.setBit(Demonstration);
1045 1050
1046 level = 0; 1051 level = 0;
1047 emit setLevel(level); 1052 emit setLevel(level);
1048 1053
1049 board->init(Demo, mapName.at(0)); 1054 board->init(Demo, mapName.at(0));
1050 pix->setLevel(level); 1055 pix->setLevel(level);
1051 1056
1052 initPacman(); 1057 initPacman();
1053 initFruit(); 1058 initFruit();
1054 initMonsters(); 1059 initMonsters();
1055 initEnergizers(); 1060 initEnergizers();
1056 1061
1057 gameState.clearBit(Init); 1062 gameState.clearBit(Init);
1058 1063
1059 repaint(); 1064 repaint();
1060 1065
1061 timerCount = 0; 1066 timerCount = 0;
1062 QTimer::singleShot(playerDurMS, this, SLOT(start())); 1067 QTimer::singleShot(playerDurMS, this, SLOT(start()));
1063} 1068}
1064 1069
1065void Referee::play() 1070void Referee::play()
1066{ 1071{
1067 stop(); 1072 stop();
1068 stopEnergizer(); 1073 stopEnergizer();
1069 1074
1070 gameState.fill(FALSE); 1075 gameState.fill(FALSE);
1071 gameState.setBit(Init); 1076 gameState.setBit(Init);
1072 gameState.setBit(Playing); 1077 gameState.setBit(Playing);
1073 gameState.setBit(Player); 1078 gameState.setBit(Player);
1074 gameState.setBit(Ready); 1079 gameState.setBit(Ready);
1075 1080
1076 lifes = 3; 1081 lifes = 3;
1077 level = 1; 1082 level = 1;