summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/kbill/Strings.h42
-rw-r--r--noncore/games/kbill/kbill.cpp28
-rw-r--r--noncore/games/kbill/kbill.pro3
3 files changed, 23 insertions, 50 deletions
diff --git a/noncore/games/kbill/Strings.h b/noncore/games/kbill/Strings.h
index 45509d1..ffd830e 100644
--- a/noncore/games/kbill/Strings.h
+++ b/noncore/games/kbill/Strings.h
@@ -1,58 +1,16 @@
1#ifndef STRINGS_H 1#ifndef STRINGS_H
2#define STRINGS_H 2#define STRINGS_H
3 3
4#define storystr \
5" The Story:\n\
6\n\
7Yet again, the fate of the world rests\n\
8in your hands! An evil computer hacker,\n\
9known only by his handle 'Bill', has\n\
10created the ultimate computer virus. A\n\
11virus so powerful that it has the power\n\
12to transmute an ordinary computer into\n\
13a toaster oven. (oooh!) 'Bill' has\n\
14cloned himself into a billion-jillion\n\
15micro-Bills. Their sole purpose is to\n\
16deliver the nefarious virus, which has\n\
17been cleverly diguised as a popular\n\
18operating system.\n\
19\n\
20As System Administrator/Exterminator,\n\
21your job is to keep Bill from succeeding\n\
22at his task."
23
24#define rulesstr \
25" The Rules:\n\
26\n\
27kBill has been painstakingly designed and\n\
28researched in order to make it as easy to use\n\
29for the whole family as it is for little Sally.\n\
30Years - nay - days of beta testing and \n\
31consulting with the cheapest of human interface\n\
32designers have resulted in a game that is easy\n\
33to use, yet nothing at all like a Macintosh.\n\
34\n\
35I. Whack the Bills (click)\n\
36II. Restart the computer (click)\n\
37III. Pick up stolen OSes & return(drag)\n\
38 them to their respective computers\n\
39IV. Drag the bucket to extinguish sparks\n\
40V. Scoring is based on total uptime,\n\
41 with bonuses for killing Bills.\n\
42\n\
43As for the rest, you can probably figure\n\
44it out. We did, so it can't be too hard."
45
46#define endgamestr \ 4#define endgamestr \
47"Module kBill has caused a\n\ 5"Module kBill has caused a\n\
48segmentation fault at memory\n\ 6segmentation fault at memory\n\
49address 097E:F1A0. Core dumped.\n\ 7address 097E:F1A0. Core dumped.\n\
50We apologize for the inconvenience." 8We apologize for the inconvenience."
51 9
52#define warpstr "Warp to level?" 10#define warpstr "Warp to level?"
53#define quitstr "Quit Game?" 11#define quitstr "Quit Game?"
54#define newgamestr "New Game?" 12#define newgamestr "New Game?"
55#define pausestr "Game paused.\n Press OK to continue." 13#define pausestr "Game paused.\n Press OK to continue."
56#define enternamestr "You earned a high score.\nEnter your name:" 14#define enternamestr "You earned a high score.\nEnter your name:"
57 15
58#endif 16#endif
diff --git a/noncore/games/kbill/kbill.cpp b/noncore/games/kbill/kbill.cpp
index 568df95..9fcfd5d 100644
--- a/noncore/games/kbill/kbill.cpp
+++ b/noncore/games/kbill/kbill.cpp
@@ -1,118 +1,132 @@
1/*************************************************************************** 1/***************************************************************************
2 kbill.cpp - description 2 kbill.cpp - description
3 ------------------- 3 -------------------
4 begin : Thu Dec 30 16:55:55 CET 1999 4 begin : Thu Dec 30 16:55:55 CET 1999
5 copyright : (C) 1999 by Jurrien Loonstra 5 copyright : (C) 1999 by Jurrien Loonstra
6 email : j.h.loonstra@st.hanze.nl 6 email : j.h.loonstra@st.hanze.nl
7 ***************************************************************************/ 7 ***************************************************************************/
8 8
9/*************************************************************************** 9/***************************************************************************
10 * * 10 * *
11 * This program is free software; you can redistribute it and/or modify * 11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by * 12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or * 13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. * 14 * (at your option) any later version. *
15 * * 15 * *
16 ***************************************************************************/ 16 ***************************************************************************/
17 17
18#include <qmessagebox.h> 18#include <qmessagebox.h>
19#include <qmultilinedit.h>
19#include <qmenubar.h> 20#include <qmenubar.h>
21#include <qtextbrowser.h>
22#include <qfont.h>
23#include <qwidget.h>
20#include "kbill.h" 24#include "kbill.h"
21#include "inputbox.h" 25#include "inputbox.h"
22 26#include "helpdialog.h"
23#include "objects.h" 27#include "objects.h"
24#include "Strings.h" 28#include "Strings.h"
25 29
26KBill::KBill() : QMainWindow() { 30KBill::KBill() : QMainWindow() {
27 setCaption("kBill"); 31 setCaption("kBill");
28 file = new QPopupMenu(); 32 file = new QPopupMenu();
29 file->insertItem(("New game"), this, SLOT(NewGame())); 33 file->insertItem(("New game"), this, SLOT(NewGame()));
30 pauseid = file->insertItem(("Pause game"), this, SLOT(Pause())); 34 pauseid = file->insertItem(("Pause game"), this, SLOT(Pause()));
31 //these are dissabled until I fix them 35 //these are dissabled until I fix them
32 //file->insertItem(("Warp to level..."), this, SLOT(WarpTo())); 36 //file->insertItem(("Warp to level..."), this, SLOT(WarpTo()));
33 //file->insertItem(("View high scores"), this, SLOT(ViewHighScores())); 37 //file->insertItem(("View high scores"), this, SLOT(ViewHighScores()));
34 file->insertItem(("Quit game"), this, SLOT(Quit())); 38
35 39
36 help = new QPopupMenu(); 40 help = new QPopupMenu();
37 help->insertItem(("Story of kBill"), this, SLOT(Story())); 41 help->insertItem(("Story of kBill"), this, SLOT(Story()));
38 help->insertItem(("Rules"), this, SLOT(Rules())); 42 help->insertItem(("Rules"), this, SLOT(Rules()));
39 43
40 44
41 menu = new QMenuBar(this); 45 menu = new QMenuBar(this);
42 menu->insertItem(("&File"), file); 46 menu->insertItem(("&File"), file);
43 menu->insertSeparator(); 47 menu->insertSeparator();
44 menu->insertItem(("&Help"), help); 48 menu->insertItem(("&Help"), help);
45 49
46 field = new Field(this); 50 field = new Field(this);
47 //setView(field); 51 //setView(field);
48 //setMainWidget(field); 52 //setMainWidget(field);
49 //setMenu(menu); 53 //setMenu(menu);
50} 54}
51 55
52KBill::~KBill() { 56KBill::~KBill() {
53} 57}
54 58
55Field* KBill::getField() { 59Field* KBill::getField() {
56 return field; 60 return field;
57} 61}
58 62
59// ----------------------------------------------------------------------- 63// -----------------------------------------------------------------------
60 64
61void KBill::Quit() { 65void KBill::Quit() {
62 field->stopTimer(); 66 field->stopTimer();
63 qApp->quit(); 67 qApp->quit();
64 68
65} 69}
66 70
67void KBill::About(){ 71void KBill::About(){
68 // field->stopTimer(); 72 // field->stopTimer();
69 // AboutBox about(this); 73 // AboutBox about(this);
70 // about.exec(); 74 // about.exec();
71 // field->startTimer(); 75 // field->startTimer();
72} 76}
73 77
74void KBill::NewGame() { 78void KBill::NewGame() {
75 field->stopTimer(); 79 field->stopTimer();
76 // if (KMsgBox::yesNo(this, i18n("New Game"), i18n(newgamestr), KMsgBox::QUESTION) == 1) 80 // if (KMsgBox::yesNo(this, i18n("New Game"), i18n(newgamestr), KMsgBox::QUESTION) == 1)
77 game.start(1); 81 game.start(1);
78 // else 82 // else
79 field->startTimer(); 83 field->startTimer();
80} 84}
81 85
82void KBill::Pause() { 86void KBill::Pause() {
83 field->stopTimer(); 87 field->stopTimer();
84 QMessageBox::message(("Pause Game"), (pausestr), 0); 88 QMessageBox::message(("Pause Game"), (pausestr), 0);
85 field->startTimer(); 89 field->startTimer();
86} 90}
87 91
88void KBill::WarpTo() { 92void KBill::WarpTo() {
89 /* field->stopTimer(); 93 /* field->stopTimer();
90 InputBox b(this, 0, "Warp To Level", warpstr); 94 InputBox b(this, 0, "Warp To Level", warpstr);
91 bool status = b.exec() == 1; 95 bool status = b.exec() == 1;
92 field->startTimer(); 96 field->startTimer();
93 if (status) { 97 if (status) {
94 bool ok; 98 bool ok;
95 int level = b.getText().toUInt(&ok); 99 int level = b.getText().toUInt(&ok);
96 if (ok) { 100 if (ok) {
97 field->startTimer(); 101 field->startTimer();
98 game.warp_to_level(level); 102 game.warp_to_level(level);
99 return; 103 return;
100 } 104 }
101 }*/ 105 }*/
102} 106}
103 107
104void KBill::ViewHighScores() { 108void KBill::ViewHighScores() {
105 //ui.popup_dialog(Game::HIGHSCORE); 109 //ui.popup_dialog(Game::HIGHSCORE);
106} 110}
107 111
108void KBill::Story() { 112void KBill::Story() {
109 field->stopTimer(); 113 field->stopTimer();
110 QMessageBox::message( ("Story"), (storystr), 0); 114 HelpDialog *stryDialog = new HelpDialog(this,"helpdialog",1);
111 field->startTimer(); 115 QString stryString = "<b>The Story</b><p>Yet again, the fate of the world rests in your hands! An evil computer hacker, known only by his handle 'Bill', has created the ultimate computer virus. A virus so powerful that it has the power to transmute an ordinary computer into a toaster oven. (oooh!) 'Bill' has cloned himself into a billion-jillion micro-Bills. Their sole purpose is to deliver the nefarious virus, which has been cleverly diguised as a popular operating system. As System Administrator and Exterminator, your job is to keep Bill from succeeding at his task.";
116 stryDialog->setCaption("The story of KBill");
117 stryDialog->TextBrowser1->setText(stryString);
118 stryDialog->resize(200,200);
119 stryDialog->show();
120 field->startTimer();
112} 121}
113 122
114void KBill::Rules() { 123void KBill::Rules() {
115 field->stopTimer(); 124 field->stopTimer();
116 QMessageBox::message(("Rules"), (rulesstr), 0); 125 HelpDialog *rulesDialog = new HelpDialog(this,"helpdialog",1);
117 field->startTimer(); 126 rulesDialog->setCaption("The rules of KBill");
127 QString rulesStr = "<b>The Rules</b><p>kBill has been painstakingly designed and researched in order to make it as easy to use for the whole family as it is for little Sally. Years - nay - days of beta testing and consulting with the cheapest of human interface designers have resulted in a game that is easy to use, yet nothing at all like a Macintosh.<p><UL><LI>Whack the Bills (click)</LI><LI>Restart the computer (click)</LI><LI>Pick up stolen OSes & return (drag) them to their respective computers</LI><LI>Drag the bucket to extinguish sparks</LI><LI>Scoring is based on total uptime, with bonuses for killing Bills.</LI></UL><P>As for the rest, you can probably work it out for yourself. We did, so it can't be too hard";
128 rulesDialog->TextBrowser1->setText(rulesStr);
129 rulesDialog->resize(200,200);
130 rulesDialog->show();
131 field->startTimer();
118} 132}
diff --git a/noncore/games/kbill/kbill.pro b/noncore/games/kbill/kbill.pro
index a0eddf2..22aa98c 100644
--- a/noncore/games/kbill/kbill.pro
+++ b/noncore/games/kbill/kbill.pro
@@ -1,13 +1,14 @@
1 TEMPLATE = app 1 TEMPLATE = app
2 CONFIG = qt warn_on release 2 CONFIG = qt warn_on release
3 HEADERS = kbill.h field.h Bucket.h Cable.h Computer.h Game.h Horde.h \ 3 HEADERS = kbill.h field.h Bucket.h Cable.h Computer.h Game.h Horde.h \
4Library.h MCursor.h Monster.h Network.h Picture.h Spark.h Strings.h \ 4Library.h MCursor.h Monster.h Network.h Picture.h Spark.h Strings.h \
5UI.h objects.h inputbox.h 5UI.h objects.h inputbox.h
6 SOURCES = field.cpp Bucket.cc Cable.cc Computer.cc Game.cc Horde.cc \ 6 SOURCES = field.cpp Bucket.cc Cable.cc Computer.cc Game.cc Horde.cc \
7Library.cc MCursor.cc Monster.cc Network.cc Picture.cc \ 7Library.cc MCursor.cc Monster.cc Network.cc Picture.cc \
8Spark.cc UI.cpp inputbox.cpp kbill.cpp 8Spark.cc UI.cpp inputbox.cpp kbill.cpp
9INTERFACES = helpdialog.ui
9 TARGET = kbill 10 TARGET = kbill
10 INCLUDEPATH+= $(OPIEDIR)/include 11 INCLUDEPATH+= $(OPIEDIR)/include
11 DEPENDPATH+= $(OPIEDIR)/include 12 DEPENDPATH+= $(OPIEDIR)/include
12 LIBS += -lqpe 13 LIBS += -lqpe
13 DESTDIR = $(OPIEDIR)/bin \ No newline at end of file 14 DESTDIR = $(OPIEDIR)/bin