summaryrefslogtreecommitdiff
authorzecke <zecke>2004-09-10 11:14:02 (UTC)
committer zecke <zecke>2004-09-10 11:14:02 (UTC)
commitb8baf551919868737c6f56a05e6efa1bad4d97ac (patch) (unidiff)
tree402c587e55356aff7f13990e1efcf57775bb9670
parent046bff8abb6727f5522748a2dc8a259d27b5979b (diff)
downloadopie-b8baf551919868737c6f56a05e6efa1bad4d97ac.zip
opie-b8baf551919868737c6f56a05e6efa1bad4d97ac.tar.gz
opie-b8baf551919868737c6f56a05e6efa1bad4d97ac.tar.bz2
Remove unused parameter
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/decorations/flat/flat.cpp4
-rw-r--r--noncore/games/bounce/game.cpp17
-rw-r--r--noncore/games/kbill/Game.cc14
-rw-r--r--noncore/games/kbill/Game.h2
-rw-r--r--noncore/games/kbill/field.cpp2
-rw-r--r--noncore/games/kbill/inputbox.cpp10
-rw-r--r--noncore/games/kbill/kbill.h42
-rw-r--r--noncore/games/zsame/ZSameWidget.cpp12
8 files changed, 53 insertions, 50 deletions
diff --git a/noncore/decorations/flat/flat.cpp b/noncore/decorations/flat/flat.cpp
index a2f12be..9a670cc 100644
--- a/noncore/decorations/flat/flat.cpp
+++ b/noncore/decorations/flat/flat.cpp
@@ -193,170 +193,170 @@ static QImage scaleButton( const QImage &img, int height )
193 193
194static void colorize( QImage &img, const QColor &c, bool rev ) 194static void colorize( QImage &img, const QColor &c, bool rev )
195{ 195{
196 for ( int i = 0; i < img.numColors(); i++ ) { 196 for ( int i = 0; i < img.numColors(); i++ ) {
197 bool sc = (img.color(i) & 0xff000000); 197 bool sc = (img.color(i) & 0xff000000);
198 if ( rev ) sc = !sc; 198 if ( rev ) sc = !sc;
199 img.setColor(i, sc ? c.rgb() : 0x00000000 ); 199 img.setColor(i, sc ? c.rgb() : 0x00000000 );
200 } 200 }
201} 201}
202 202
203FlatDecoration::FlatDecoration() : buttonCache(16) 203FlatDecoration::FlatDecoration() : buttonCache(16)
204{ 204{
205 buttonCache.setAutoDelete(TRUE); 205 buttonCache.setAutoDelete(TRUE);
206} 206}
207 207
208FlatDecoration::~FlatDecoration() 208FlatDecoration::~FlatDecoration()
209{ 209{
210} 210}
211 211
212int FlatDecoration::metric( Metric m, const WindowData *wd ) const 212int FlatDecoration::metric( Metric m, const WindowData *wd ) const
213{ 213{
214 switch ( m ) { 214 switch ( m ) {
215 case TopBorder: 215 case TopBorder:
216 return 1; 216 return 1;
217 break; 217 break;
218 case LeftBorder: 218 case LeftBorder:
219 case RightBorder: 219 case RightBorder:
220 return 2; 220 return 2;
221 case BottomBorder: 221 case BottomBorder:
222 return 4; 222 return 4;
223 case TitleHeight: 223 case TitleHeight:
224 if ( QApplication::desktop()->height() > 320 ) 224 if ( QApplication::desktop()->height() > 320 )
225 return 20; 225 return 20;
226 else 226 else
227 return 18; 227 return 18;
228 case OKWidth: 228 case OKWidth:
229 case CloseWidth: 229 case CloseWidth:
230 case HelpWidth: 230 case HelpWidth:
231 case MaximizeWidth: 231 case MaximizeWidth:
232 return metric(TitleHeight,wd); 232 return metric(TitleHeight,wd);
233 break; 233 break;
234 default: 234 default:
235 return WindowDecorationInterface::metric( m, wd ); 235 return WindowDecorationInterface::metric( m, wd );
236 break; 236 break;
237 } 237 }
238 238
239 return 0; 239 return 0;
240} 240}
241 241
242void FlatDecoration::drawArea( Area a, QPainter *p, const WindowData *wd ) const 242void FlatDecoration::drawArea( Area a, QPainter *p, const WindowData *wd ) const
243{ 243{
244 int th = metric( TitleHeight, wd ); 244 int th = metric( TitleHeight, wd );
245 QRect r = wd->rect; 245 QRect r = wd->rect;
246 246
247 switch ( a ) { 247 switch ( a ) {
248 case Border: 248 case Border:
249 { 249 {
250 const QColorGroup &cg = wd->palette.active(); 250 const QColorGroup &cg = wd->palette.active();
251 if ( wd->flags & WindowData::Active ) { 251 if ( wd->flags & WindowData::Active ) {
252 p->setBrush( cg.color(QColorGroup::Highlight) ); 252 p->setBrush( cg.color(QColorGroup::Highlight) );
253 } else { 253 } else {
254 p->setBrush( cg.color(QColorGroup::Background) ); 254 p->setBrush( cg.color(QColorGroup::Background) );
255 } 255 }
256 p->setPen( cg.foreground() ); 256 p->setPen( cg.foreground() );
257 int lb = metric(LeftBorder,wd); 257 int lb = metric(LeftBorder,wd);
258 int rb = metric(RightBorder,wd); 258 int rb = metric(RightBorder,wd);
259 int tb = metric(TopBorder,wd); 259 int tb = metric(TopBorder,wd);
260 int bb = metric(BottomBorder,wd); 260 int bb = metric(BottomBorder,wd);
261 p->drawRect( r.x()-lb, r.y()-tb-th, r.width()+lb+rb, 261 p->drawRect( r.x()-lb, r.y()-tb-th, r.width()+lb+rb,
262 r.height()+th+tb+bb ); 262 r.height()+th+tb+bb );
263 } 263 }
264 break; 264 break;
265 case Title: 265 case Title:
266 if ( r.height() < 2 ) { 266 if ( r.height() < 2 ) {
267 WindowDecorationInterface::drawArea( a, p, wd ); 267 WindowDecorationInterface::drawArea( a, p, wd );
268 } else { 268 } else {
269 const QColorGroup &cg = wd->palette.active(); 269 const QColorGroup &cg = wd->palette.active();
270 QColor c; 270 QColor c;
271 if ( wd->flags & WindowData::Active ) 271 if ( wd->flags & WindowData::Active )
272 c = cg.color(QColorGroup::Highlight); 272 c = cg.color(QColorGroup::Highlight);
273 else 273 else
274 c = cg.color(QColorGroup::Background); 274 c = cg.color(QColorGroup::Background);
275 p->fillRect( QRect(r.x(),r.y()-th,r.width(),th), c ); 275 p->fillRect( QRect(r.x(),r.y()-th,r.width(),th), c );
276 } 276 }
277 break; 277 break;
278 case TitleText: 278 case TitleText:
279 p->drawText( r.left()+3+metric(HelpWidth,wd), r.top()-th, 279 p->drawText( r.left()+3+metric(HelpWidth,wd), r.top()-th,
280 r.width()-metric(HelpWidth,wd)-metric(CloseWidth,wd), th, 280 r.width()-metric(HelpWidth,wd)-metric(CloseWidth,wd), th,
281 Qt::AlignVCenter, wd->caption ); 281 Qt::AlignVCenter, wd->caption );
282 break; 282 break;
283 default: 283 default:
284 FlatDecoration::drawArea( a, p, wd ); 284 FlatDecoration::drawArea( a, p, wd );
285 break; 285 break;
286 } 286 }
287} 287}
288 288
289void FlatDecoration::drawButton( Button b, QPainter *p, const WindowData *wd, int x, int y, int w, int h, QWSButton::State state ) const 289void FlatDecoration::drawButton( Button b, QPainter *p, const WindowData *wd, int x, int y, int, int, QWSButton::State state ) const
290{ 290{
291 QColor c; 291 QColor c;
292 const QColorGroup &cg = wd->palette.active(); 292 const QColorGroup &cg = wd->palette.active();
293 if ( wd->flags & WindowDecorationInterface::WindowData::Active ) 293 if ( wd->flags & WindowDecorationInterface::WindowData::Active )
294 c = cg.color(QColorGroup::HighlightedText); 294 c = cg.color(QColorGroup::HighlightedText);
295 else 295 else
296 c = cg.color(QColorGroup::Foreground); 296 c = cg.color(QColorGroup::Foreground);
297 bool r = (state & QWSButton::MouseOver) && (state & QWSButton::Clicked); 297 bool r = (state & QWSButton::MouseOver) && (state & QWSButton::Clicked);
298 int th = metric(TitleHeight, wd); 298 int th = metric(TitleHeight, wd);
299 299
300 QString key( "%1-%2-%3-%4" ); 300 QString key( "%1-%2-%3-%4" );
301 key = key.arg(b).arg(th).arg(c.name()).arg(r ? "1" : "0"); 301 key = key.arg(b).arg(th).arg(c.name()).arg(r ? "1" : "0");
302 QImage *img = buttonCache.find( key ); 302 QImage *img = buttonCache.find( key );
303 if ( !img ) { 303 if ( !img ) {
304 QImage tmp; 304 QImage tmp;
305 switch ( b ) { 305 switch ( b ) {
306 case OK: 306 case OK:
307 tmp = QImage( ok_xpm ); 307 tmp = QImage( ok_xpm );
308 break; 308 break;
309 case Close: 309 case Close:
310 tmp = QImage( close_xpm ); 310 tmp = QImage( close_xpm );
311 break; 311 break;
312 case Help: 312 case Help:
313 tmp = QImage( help_xpm ); 313 tmp = QImage( help_xpm );
314 break; 314 break;
315 case Maximize: 315 case Maximize:
316 tmp = QImage( maximize_xpm ); 316 tmp = QImage( maximize_xpm );
317 break; 317 break;
318 } 318 }
319 colorize( tmp, c, r ); 319 colorize( tmp, c, r );
320 img = new QImage( scaleButton(tmp,th) ); 320 img = new QImage( scaleButton(tmp,th) );
321 FlatDecoration *that = (FlatDecoration *)this; 321 FlatDecoration *that = (FlatDecoration *)this;
322 that->buttonCache.insert( key, img, 1 ); 322 that->buttonCache.insert( key, img, 1 );
323 } 323 }
324 324
325 p->drawImage( x, y, *img ); 325 p->drawImage( x, y, *img );
326} 326}
327 327
328QRegion FlatDecoration::mask( const WindowData *wd ) const 328QRegion FlatDecoration::mask( const WindowData *wd ) const
329{ 329{
330 return WindowDecorationInterface::mask( wd ); 330 return WindowDecorationInterface::mask( wd );
331} 331}
332 332
333QString FlatDecoration::name() const 333QString FlatDecoration::name() const
334{ 334{
335 return qApp->translate( "Decoration", "Flat" ); 335 return qApp->translate( "Decoration", "Flat" );
336} 336}
337 337
338QPixmap FlatDecoration::icon() const 338QPixmap FlatDecoration::icon() const
339{ 339{
340 return QPixmap(); 340 return QPixmap();
341} 341}
342 342
343QRESULT FlatDecoration::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) 343QRESULT FlatDecoration::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
344{ 344{
345 *iface = 0; 345 *iface = 0;
346 if ( uuid == IID_QUnknown ) 346 if ( uuid == IID_QUnknown )
347 *iface = this; 347 *iface = this;
348 else if ( uuid == IID_WindowDecoration ) 348 else if ( uuid == IID_WindowDecoration )
349 *iface = this; 349 *iface = this;
350 else 350 else
351 return QS_FALSE; 351 return QS_FALSE;
352 352
353 if ( *iface ) 353 if ( *iface )
354 (*iface)->addRef(); 354 (*iface)->addRef();
355 return QS_OK; 355 return QS_OK;
356} 356}
357 357
358Q_EXPORT_INTERFACE() 358Q_EXPORT_INTERFACE()
359{ 359{
360 Q_CREATE_INSTANCE( FlatDecoration ) 360 Q_CREATE_INSTANCE( FlatDecoration )
361} 361}
362 362
diff --git a/noncore/games/bounce/game.cpp b/noncore/games/bounce/game.cpp
index bbd3d0b..5ef9f15 100644
--- a/noncore/games/bounce/game.cpp
+++ b/noncore/games/bounce/game.cpp
@@ -1,512 +1,513 @@
1/* 1/*
2 * Copyright (C) 2000 Stefan Schimanski <1Stein@gmx.de> 2 * Copyright (C) 2000 Stefan Schimanski <1Stein@gmx.de>
3 * 3 *
4 * This program is free software; you can redistribute it and/or 4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This program is distributed in the hope that it will be useful, 9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details. 12 * Library General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Library General Public 14 * You should have received a copy of the GNU Library General Public
15 * License along with this program; if not, write to the Free 15 * License along with this program; if not, write to the Free
16 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 16 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 */ 17 */
18 18
19 19
20#include "game.h" 20#include "game.h"
21 21
22/* OPIE */ 22/* OPIE */
23#include <opie2/odebug.h> 23#include <opie2/odebug.h>
24#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
25using namespace Opie::Core; 25using namespace Opie::Core;
26 26
27/* QT */ 27/* QT */
28#include <qtimer.h> 28#include <qtimer.h>
29 29
30/* STD */ 30/* STD */
31#include <stdlib.h> 31#include <stdlib.h>
32 32
33#define TILE_SIZE 9 33#define TILE_SIZE 9
34 34
35#define TILE_FIRST ((FIELD_WIDTH-2)*(FIELD_HEIGHT-2)) 35#define TILE_FIRST ((FIELD_WIDTH-2)*(FIELD_HEIGHT-2))
36#define TILE_FREE (TILE_FIRST + 0) 36#define TILE_FREE (TILE_FIRST + 0)
37#define TILE_BORDER (TILE_FIRST + 1) 37#define TILE_BORDER (TILE_FIRST + 1)
38#define TILE_WALLEND (TILE_FIRST + 2) 38#define TILE_WALLEND (TILE_FIRST + 2)
39#define TILE_WALLUP (TILE_FIRST + 3) 39#define TILE_WALLUP (TILE_FIRST + 3)
40#define TILE_WALLDOWN (TILE_FIRST + 4) 40#define TILE_WALLDOWN (TILE_FIRST + 4)
41#define TILE_WALLLEFT (TILE_FIRST + 5) 41#define TILE_WALLLEFT (TILE_FIRST + 5)
42#define TILE_WALLRIGHT (TILE_FIRST + 6) 42#define TILE_WALLRIGHT (TILE_FIRST + 6)
43 43
44#define GAME_DELAY 15 44#define GAME_DELAY 15
45#define BALL_ANIM_DELAY 60 45#define BALL_ANIM_DELAY 60
46#define WALL_DELAY 100 46#define WALL_DELAY 100
47 47
48#define MS2TICKS( ms ) ((ms)/GAME_DELAY) 48#define MS2TICKS( ms ) ((ms)/GAME_DELAY)
49 49
50Arrow::Arrow(QCanvasPixmapArray* array, QCanvas* canvas) 50Arrow::Arrow(QCanvasPixmapArray* array, QCanvas* canvas)
51 : QCanvasSprite( array, canvas ) 51 : QCanvasSprite( array, canvas )
52{ 52{
53 m_vertical = true; 53 m_vertical = true;
54 move(3,3); 54 move(3,3);
55} 55}
56 56
57void Arrow::update() 57void Arrow::update()
58{ 58{
59 if ( m_vertical ) 59 if ( m_vertical )
60 setFrame( 0 ); 60 setFrame( 0 );
61 else 61 else
62 setFrame( 1 ); 62 setFrame( 1 );
63} 63}
64 64
65void Arrow::changeDirection() 65void Arrow::changeDirection()
66{ 66{
67 m_vertical = ! m_vertical; 67 m_vertical = ! m_vertical;
68 update(); 68 update();
69} 69}
70 70
71 71
72Ball::Ball(QCanvasPixmapArray* array, QCanvas* canvas) 72Ball::Ball(QCanvasPixmapArray* array, QCanvas* canvas)
73 : QCanvasSprite( array, canvas ), m_animDelay( 0 ), m_soundDelay( MS2TICKS(BALL_ANIM_DELAY)/2 ) 73 : QCanvasSprite( array, canvas ), m_animDelay( 0 ), m_soundDelay( MS2TICKS(BALL_ANIM_DELAY)/2 )
74{ 74{
75} 75}
76 76
77void Ball::update() 77void Ball::update()
78{ 78{
79 m_animDelay--; 79 m_animDelay--;
80 if ( m_animDelay<=0 ) 80 if ( m_animDelay<=0 )
81 { 81 {
82 m_animDelay = MS2TICKS(BALL_ANIM_DELAY); 82 m_animDelay = MS2TICKS(BALL_ANIM_DELAY);
83 int frameNum = frame(); 83 int frameNum = frame();
84 frameNum++; 84 frameNum++;
85 if ( frameNum>=frameCount() ) 85 if ( frameNum>=frameCount() )
86 frameNum = 0; 86 frameNum = 0;
87 setFrame( frameNum ); 87 setFrame( frameNum );
88 } 88 }
89} 89}
90 90
91void Ball::advance(int stage) 91void Ball::advance(int stage)
92{ 92{
93 bool reflectX = false; 93 bool reflectX = false;
94 bool reflectY = false; 94 bool reflectY = false;
95 95
96 // check for collisions 96 // check for collisions
97 if ( collide(xVelocity(), 0) ) reflectX = true; 97 if ( collide(xVelocity(), 0) ) reflectX = true;
98 if ( collide(0, yVelocity()) ) reflectY = true; 98 if ( collide(0, yVelocity()) ) reflectY = true;
99 if ( !reflectX && !reflectY && collide(xVelocity(), yVelocity()) ) reflectX = reflectY = true; 99 if ( !reflectX && !reflectY && collide(xVelocity(), yVelocity()) ) reflectX = reflectY = true;
100 100
101 // emit collision 101 // emit collision
102 QRect r = boundingRect(); 102 QRect r = boundingRect();
103 r.moveBy( xVelocity(), yVelocity() ); 103 r.moveBy( static_cast<int>(xVelocity()), static_cast<int>( yVelocity() ) );
104 JezzField* field = (JezzField *)canvas(); 104 JezzField* field = (JezzField *)canvas();
105 105
106 int ul = field->tile( r.left() / TILE_SIZE, r.top() / TILE_SIZE ); 106 int ul = field->tile( r.left() / TILE_SIZE, r.top() / TILE_SIZE );
107 int ur = field->tile( r.right() / TILE_SIZE, r.top() / TILE_SIZE ); 107 int ur = field->tile( r.right() / TILE_SIZE, r.top() / TILE_SIZE );
108 int bl = field->tile( r.left() / TILE_SIZE, r.bottom() / TILE_SIZE ); 108 int bl = field->tile( r.left() / TILE_SIZE, r.bottom() / TILE_SIZE );
109 int br = field->tile( r.right() / TILE_SIZE, r.bottom() / TILE_SIZE ); 109 int br = field->tile( r.right() / TILE_SIZE, r.bottom() / TILE_SIZE );
110 110
111 if ( ul!=TILE_FREE ) field->emitBallCollisiton( this, r.left() / TILE_SIZE, r.top() / TILE_SIZE, ul ); else 111 if ( ul!=TILE_FREE ) field->emitBallCollisiton( this, r.left() / TILE_SIZE, r.top() / TILE_SIZE, ul ); else
112 if ( ur!=TILE_FREE ) field->emitBallCollisiton( this, r.right() / TILE_SIZE, r.top() / TILE_SIZE, ur ); else 112 if ( ur!=TILE_FREE ) field->emitBallCollisiton( this, r.right() / TILE_SIZE, r.top() / TILE_SIZE, ur ); else
113 if ( bl!=TILE_FREE ) field->emitBallCollisiton( this, r.left() / TILE_SIZE, r.bottom() / TILE_SIZE, bl ); else 113 if ( bl!=TILE_FREE ) field->emitBallCollisiton( this, r.left() / TILE_SIZE, r.bottom() / TILE_SIZE, bl ); else
114 if ( br!=TILE_FREE ) field->emitBallCollisiton( this, r.right() / TILE_SIZE, r.bottom() / TILE_SIZE, br ); 114 if ( br!=TILE_FREE ) field->emitBallCollisiton( this, r.right() / TILE_SIZE, r.bottom() / TILE_SIZE, br );
115 115
116 // apply reflection 116 // apply reflection
117 if ( reflectX ) setXVelocity( -xVelocity() ); 117 if ( reflectX ) setXVelocity( -xVelocity() );
118 if ( reflectY ) setYVelocity( -yVelocity() ); 118 if ( reflectY ) setYVelocity( -yVelocity() );
119 119
120 // update field 120 // update field
121 update(); 121 update();
122 QCanvasSprite::advance( stage ); 122 QCanvasSprite::advance( stage );
123} 123}
124 124
125bool Ball::collide( double dx, double dy ) 125bool Ball::collide( double dx, double dy )
126{ 126{
127 QRect r = boundingRect(); 127 QRect r = boundingRect();
128 r.moveBy( dx, dy ); 128 r.moveBy( static_cast<int>( dx ), static_cast<int>( dy ) );
129 JezzField* field = (JezzField *)canvas(); 129 JezzField* field = (JezzField *)canvas();
130 130
131 int ul = field->tile( r.left() / TILE_SIZE, r.top() / TILE_SIZE ); 131 int ul = field->tile( r.left() / TILE_SIZE, r.top() / TILE_SIZE );
132 int ur = field->tile( r.right() / TILE_SIZE, r.top() / TILE_SIZE ); 132 int ur = field->tile( r.right() / TILE_SIZE, r.top() / TILE_SIZE );
133 int bl = field->tile( r.left() / TILE_SIZE, r.bottom() / TILE_SIZE ); 133 int bl = field->tile( r.left() / TILE_SIZE, r.bottom() / TILE_SIZE );
134 int br = field->tile( r.right() / TILE_SIZE, r.bottom() / TILE_SIZE ); 134 int br = field->tile( r.right() / TILE_SIZE, r.bottom() / TILE_SIZE );
135 135
136 return ( ul!=TILE_FREE || ur!=TILE_FREE || bl!=TILE_FREE || br!=TILE_FREE ); 136 return ( ul!=TILE_FREE || ur!=TILE_FREE || bl!=TILE_FREE || br!=TILE_FREE );
137} 137}
138 138
139/*************************************************************************/ 139/*************************************************************************/
140 140
141Wall::Wall( JezzField *field, int x, int y, Direction dir, int tile, QObject *parent, const char *name ) 141Wall::Wall( JezzField *field, int x, int y, Direction dir, int tile, QObject *parent, const char *name )
142 : QObject( parent, name ), m_dir( dir ), m_field( field ), m_startX( x ), m_startY( y ), 142 : QObject( parent, name ), m_dir( dir ), m_field( field ), m_startX( x ), m_startY( y ),
143 m_tile( tile ), m_delay( MS2TICKS(WALL_DELAY)/2 ), m_active( true ) 143 m_tile( tile ), m_delay( MS2TICKS(WALL_DELAY)/2 ), m_active( true )
144{ 144{
145 // setup position and direction 145 // setup position and direction
146 m_dx = 0; 146 m_dx = 0;
147 m_dy = 0; 147 m_dy = 0;
148 switch ( m_dir ) 148 switch ( m_dir )
149 { 149 {
150 case Up: m_dy = -1; break; 150 case Up: m_dy = -1; break;
151 case Down: m_dy = 1; break; 151 case Down: m_dy = 1; break;
152 case Left: m_dx = -1; break; 152 case Left: m_dx = -1; break;
153 case Right: m_dx = 1; break; 153 case Right: m_dx = 1; break;
154 } 154 }
155 155
156 m_x = m_startX; 156 m_x = m_startX;
157 m_y = m_startY; 157 m_y = m_startY;
158 158
159 m_field->setTile( m_x, m_y, m_tile ); 159 m_field->setTile( m_x, m_y, m_tile );
160} 160}
161 161
162void Wall::finish() 162void Wall::finish()
163{ 163{
164 m_active = false; 164 m_active = false;
165} 165}
166 166
167bool Wall::isFree( int x, int y ) 167bool Wall::isFree( int x, int y )
168{ 168{
169 if ( m_field->tile(x, y)==TILE_FREE ) 169 if ( m_field->tile(x, y)==TILE_FREE )
170 { 170 {
171 // check whether there is a ball at the moment 171 // check whether there is a ball at the moment
172 QCanvasItemList cols = m_field->collisions( QRect(x*TILE_SIZE, y*TILE_SIZE, 172 QCanvasItemList cols = m_field->collisions( QRect(x*TILE_SIZE, y*TILE_SIZE,
173 TILE_SIZE, TILE_SIZE) ); 173 TILE_SIZE, TILE_SIZE) );
174 if ( cols.count()==0 ) 174 if ( cols.count()==0 )
175 return true; 175 return true;
176 } 176 }
177 177
178 return false; 178 return false;
179} 179}
180 180
181void Wall::update() 181void Wall::update()
182{ 182{
183} 183}
184 184
185void Wall::advance() 185void Wall::advance()
186{ 186{
187 update(); 187 update();
188 188
189 // move wall 189 // move wall
190 if ( m_active ) 190 if ( m_active )
191 { 191 {
192 m_delay--; 192 m_delay--;
193 if ( m_delay<=0 ) 193 if ( m_delay<=0 )
194 { 194 {
195 m_delay = MS2TICKS(WALL_DELAY); 195 m_delay = MS2TICKS(WALL_DELAY);
196 196
197 // set previous tile 197 // set previous tile
198 m_field->setTile( m_x, m_y, m_tile ); 198 m_field->setTile( m_x, m_y, m_tile );
199 199
200 // check whether next place is still free 200 // check whether next place is still free
201 if ( isFree(m_x+m_dx, m_y+m_dy) ) 201 if ( isFree(m_x+m_dx, m_y+m_dy) )
202 { 202 {
203 // move ball 203 // move ball
204 m_x += m_dx; 204 m_x += m_dx;
205 m_y += m_dy; 205 m_y += m_dy;
206 206
207 // set tile 207 // set tile
208 m_field->setTile( m_x, m_y, TILE_WALLEND ); 208 m_field->setTile( m_x, m_y, TILE_WALLEND );
209 } else 209 } else
210 { 210 {
211 finish(); 211 finish();
212 emit finished( this, m_field->tile( m_x+m_dx, m_y+m_dy ) ); 212 emit finished( this, m_field->tile( m_x+m_dx, m_y+m_dy ) );
213 } 213 }
214 } 214 }
215 } 215 }
216} 216}
217 217
218void Wall::fill( bool black ) 218void Wall::fill( bool black )
219{ 219{
220 if ( m_dx ) 220 if ( m_dx )
221 { 221 {
222 for ( int x=m_startX ; x!=m_x; x+=m_dx ) 222 for ( int x=m_startX ; x!=m_x; x+=m_dx )
223 if ( m_field->tile(x, m_startY)==m_tile ) 223 if ( m_field->tile(x, m_startY)==m_tile )
224 m_field->setGameTile( x, m_startY, black ); 224 m_field->setGameTile( x, m_startY, black );
225 225
226 m_field->setGameTile( m_x, m_startY, black ); 226 m_field->setGameTile( m_x, m_startY, black );
227 } else 227 } else
228 { 228 {
229 for ( int y=m_startY ; y!=m_y; y+=m_dy ) 229 for ( int y=m_startY ; y!=m_y; y+=m_dy )
230 if ( m_field->tile(m_startX, y)==m_tile ) 230 if ( m_field->tile(m_startX, y)==m_tile )
231 m_field->setGameTile( m_startX, y, black ); 231 m_field->setGameTile( m_startX, y, black );
232 232
233 m_field->setGameTile( m_startX, m_y, black ); 233 m_field->setGameTile( m_startX, m_y, black );
234 } 234 }
235} 235}
236 236
237/*************************************************************************/ 237/*************************************************************************/
238 238
239JezzField::JezzField( QPixmap tiles, QObject* parent, const char* name ) 239JezzField::JezzField( QPixmap tiles, QObject* parent, const char* name )
240 : QCanvas( parent, name ), m_tiles( tiles ) 240 : QCanvas( parent, name ), m_tiles( tiles )
241{ 241{
242 setPixmaps( tiles ); 242 setPixmaps( tiles );
243} 243}
244 244
245void JezzField::setGameTile( int x, int y, bool black ) 245void JezzField::setGameTile( int x, int y, bool black )
246{ 246{
247 setTile( x, y, black ? TILE_BORDER : TILE_FREE ); 247 setTile( x, y, black ? TILE_BORDER : TILE_FREE );
248} 248}
249 249
250void JezzField::setPixmaps( QPixmap tiles ) 250void JezzField::setPixmaps( QPixmap tiles )
251{ 251{
252 // create new tiles 252 // create new tiles
253 QPixmap allTiles( TILE_SIZE*(FIELD_WIDTH-2), TILE_SIZE*(FIELD_HEIGHT-1) ); 253 QPixmap allTiles( TILE_SIZE*(FIELD_WIDTH-2), TILE_SIZE*(FIELD_HEIGHT-1) );
254 254
255 // handle default tiles 255 // handle default tiles
256 bitBlt( &allTiles, 0, TILE_SIZE*(FIELD_HEIGHT-2), 256 bitBlt( &allTiles, 0, TILE_SIZE*(FIELD_HEIGHT-2),
257 &tiles, 0, 0, tiles.width(), tiles.height() ); 257 &tiles, 0, 0, tiles.width(), tiles.height() );
258 258
259 // load tiles into canvas 259 // load tiles into canvas
260 setTiles( allTiles, FIELD_WIDTH, FIELD_HEIGHT, TILE_SIZE, TILE_SIZE ); 260 setTiles( allTiles, FIELD_WIDTH, FIELD_HEIGHT, TILE_SIZE, TILE_SIZE );
261} 261}
262 262
263/*************************************************************************/ 263/*************************************************************************/
264 264
265JezzView::JezzView(QCanvas* viewing, QWidget* parent, const char* name, WFlags f) 265JezzView::JezzView(QCanvas* viewing, QWidget* parent, const char* name, WFlags f)
266 : QCanvasView( viewing, parent, name, f ), m_vertical( false ) 266 : QCanvasView( viewing, parent, name, f ), m_vertical( false )
267{ 267{
268 setResizePolicy( AutoOne ); 268 setResizePolicy( AutoOne );
269 setHScrollBarMode( AlwaysOff ); 269 setHScrollBarMode( AlwaysOff );
270 setVScrollBarMode( AlwaysOff ); 270 setVScrollBarMode( AlwaysOff );
271 271
272 setCursor( sizeHorCursor ); 272 setCursor( sizeHorCursor );
273} 273}
274 274
275void JezzView::viewportMouseReleaseEvent( QMouseEvent *ev ) 275void JezzView::viewportMouseReleaseEvent( QMouseEvent *ev )
276{ 276{
277 if ( ev->button() & LeftButton ) 277 if ( ev->button() & LeftButton )
278 { 278 {
279 emit buildWall( ev->x()/TILE_SIZE, ev->y()/TILE_SIZE, m_vertical ); 279 emit buildWall( ev->x()/TILE_SIZE, ev->y()/TILE_SIZE, m_vertical );
280 } 280 }
281} 281}
282 282
283void JezzView::changeCursor() 283void JezzView::changeCursor()
284{ 284{
285 m_vertical = !m_vertical; 285 m_vertical = !m_vertical;
286 if ( m_vertical ) 286 if ( m_vertical )
287 { 287 {
288 setCursor( sizeVerCursor ); 288 setCursor( sizeVerCursor );
289 } 289 }
290 else 290 else
291 { 291 {
292 setCursor( sizeHorCursor ); 292 setCursor( sizeHorCursor );
293 } 293 }
294} 294}
295 295
296/*************************************************************************/ 296/*************************************************************************/
297 297
298JezzGame::JezzGame( int ballNum, QWidget *parent, const char *name ) 298JezzGame::JezzGame( int ballNum, QWidget *parent, const char *name )
299 : QWidget( parent, name ), m_wall1( 0 ), m_wall2( 0 ), 299 : QWidget( parent, name ), m_wall1( 0 ), m_wall2( 0 ),
300 m_text( 0 ), m_running( false ), m_percent( 0 ), m_pictured( false ) 300 m_text( 0 ), m_running( false ), m_percent( 0 ), m_pictured( false )
301{ 301{
302 QString path = QPEApplication::qpeDir()+"pics/bounce/"; 302 QString path = QPEApplication::qpeDir()+"pics/bounce/";
303 303
304 // load gfx 304 // load gfx
305 m_ballPixmaps = new QCanvasPixmapArray( path + "ball%1.png", 25 ); 305 m_ballPixmaps = new QCanvasPixmapArray( path + "ball%1.png", 25 );
306 for ( unsigned n=0; n < m_ballPixmaps->count(); n++ ) 306 for ( unsigned n=0; n < m_ballPixmaps->count(); n++ )
307 m_ballPixmaps->image(n)->setOffset( 0, 0 ); 307 m_ballPixmaps->image(n)->setOffset( 0, 0 );
308 308
309 m_arrowPixmaps = new QCanvasPixmapArray( path + "arrow%1.png", 2 ); 309 m_arrowPixmaps = new QCanvasPixmapArray( path + "arrow%1.png", 2 );
310 for ( unsigned n=0; n < m_arrowPixmaps->count(); n++ ) 310 for ( unsigned n=0; n < m_arrowPixmaps->count(); n++ )
311 m_arrowPixmaps->image(n)->setOffset( 0, 0 ); 311 m_arrowPixmaps->image(n)->setOffset( 0, 0 );
312 312
313 QPixmap tiles( path + "tiles.png" ); 313 QPixmap tiles( path + "tiles.png" );
314 314
315 // create field 315 // create field
316 m_field = new JezzField( tiles, this, "m_field" ); 316 m_field = new JezzField( tiles, this, "m_field" );
317 m_field->resize( TILE_SIZE*FIELD_WIDTH, TILE_SIZE*FIELD_HEIGHT ); 317 m_field->resize( TILE_SIZE*FIELD_WIDTH, TILE_SIZE*FIELD_HEIGHT );
318 318
319 for ( int x=0; x<FIELD_WIDTH; x++ ) 319 for ( int x=0; x<FIELD_WIDTH; x++ )
320 m_field->setTile( x, 0, TILE_BORDER ); 320 m_field->setTile( x, 0, TILE_BORDER );
321 for ( int y=1; y<FIELD_HEIGHT-1; y++ ) 321 for ( int y=1; y<FIELD_HEIGHT-1; y++ )
322 { 322 {
323 m_field->setTile( 0, y, TILE_BORDER ); 323 m_field->setTile( 0, y, TILE_BORDER );
324 for ( int x=1; x<FIELD_WIDTH-1; x++ ) 324 for ( int x=1; x<FIELD_WIDTH-1; x++ )
325 m_field->setTile( x, y, TILE_FREE ); 325 m_field->setTile( x, y, TILE_FREE );
326 m_field->setTile( FIELD_WIDTH-1, y, TILE_BORDER ); 326 m_field->setTile( FIELD_WIDTH-1, y, TILE_BORDER );
327 } 327 }
328 for ( int x=0; x<FIELD_WIDTH; x++ ) 328 for ( int x=0; x<FIELD_WIDTH; x++ )
329 m_field->setTile( x, FIELD_HEIGHT-1, TILE_BORDER ); 329 m_field->setTile( x, FIELD_HEIGHT-1, TILE_BORDER );
330 330
331 connect( m_field, SIGNAL(ballCollision(Ball*,int,int,int)), this, SLOT(ballCollision(Ball*,int,int,int)) ); 331 connect( m_field, SIGNAL(ballCollision(Ball*,int,int,int)), this, SLOT(ballCollision(Ball*,int,int,int)) );
332 332
333 // create view 333 // create view
334 m_view = new JezzView( m_field, this, "m_view" ); 334 m_view = new JezzView( m_field, this, "m_view" );
335 m_view->move( 0, 0 ); 335 m_view->move( 0, 0 );
336 m_view->adjustSize(); 336 m_view->adjustSize();
337 connect( m_view, SIGNAL(buildWall(int,int,bool)), this, SLOT(buildWall(int,int,bool)) ); 337 connect( m_view, SIGNAL(buildWall(int,int,bool)), this, SLOT(buildWall(int,int,bool)) );
338 338
339 // create balls 339 // create balls
340 for ( int n=0; n<ballNum; n++ ) 340 for ( int n=0; n<ballNum; n++ )
341 { 341 {
342 Ball *ball = new Ball( m_ballPixmaps, m_field ); 342 Ball *ball = new Ball( m_ballPixmaps, m_field );
343 m_balls.append( ball ); 343 m_balls.append( ball );
344 ball->setVelocity( ((rand() & 1)*2-1)*2, ((rand() & 1)*2-1)*2 ); 344 ball->setVelocity( ((rand() & 1)*2-1)*2, ((rand() & 1)*2-1)*2 );
345 ball->setFrame( rand() % 25 ); 345 ball->setFrame( rand() % 25 );
346 ball->move( 4*TILE_SIZE + ( rand() - 50 ) % ( (FIELD_WIDTH-8)*TILE_SIZE ), 346 ball->move( 4*TILE_SIZE + ( rand() - 50 ) % ( (FIELD_WIDTH-8)*TILE_SIZE ),
347 4*TILE_SIZE + rand() % ( (FIELD_HEIGHT-8)*TILE_SIZE ) ); 347 4*TILE_SIZE + rand() % ( (FIELD_HEIGHT-8)*TILE_SIZE ) );
348 ball->show(); 348 ball->show();
349 } 349 }
350 350
351 // create arrow 351 // create arrow
352 arrow = new Arrow( m_arrowPixmaps, m_field ); 352 arrow = new Arrow( m_arrowPixmaps, m_field );
353 arrow->show(); 353 arrow->show();
354 354
355 // create text label 355 // create text label
356 m_text = new QCanvasText( m_field ); 356 m_text = new QCanvasText( m_field );
357 357
358 // create game clock 358 // create game clock
359 m_clock = new QTimer( this ); 359 m_clock = new QTimer( this );
360 connect( m_clock, SIGNAL(timeout()), this, SLOT(tick()) ); 360 connect( m_clock, SIGNAL(timeout()), this, SLOT(tick()) );
361 m_clock->start( GAME_DELAY ); 361 m_clock->start( GAME_DELAY );
362 362
363 // setup geometry 363 // setup geometry
364 setFixedSize( m_view->size() ); 364 setFixedSize( m_view->size() );
365} 365}
366 366
367JezzGame::~JezzGame() 367JezzGame::~JezzGame()
368{ 368{
369 m_balls.clear(); 369 m_balls.clear();
370 delete m_view; 370 delete m_view;
371 delete m_field; 371 delete m_field;
372 delete m_ballPixmaps; 372 delete m_ballPixmaps;
373} 373}
374 374
375void JezzGame::display( QString text, int size ) 375void JezzGame::display( QString text, int size )
376{ 376{
377 odebug << "This function \"display\" shouldn't be called!!!" << oendl; 377 odebug << "This function \"display\" shouldn't be called!!!" << oendl;
378 if ( !text.isEmpty() ) 378 if ( !text.isEmpty() )
379 { 379 {
380 QFont font( "Helvetica", size, QFont::Bold ); 380 QFont font( "Helvetica", size, QFont::Bold );
381 font.setStyleHint( QFont::Helvetica ); 381 font.setStyleHint( QFont::Helvetica );
382 m_text->setFont( font ); 382 m_text->setFont( font );
383 m_text->setText( text ); 383 m_text->setText( text );
384 384
385 QRect size = m_text->boundingRect(); 385 QRect size = m_text->boundingRect();
386 m_text->move( ( FIELD_WIDTH*TILE_SIZE - size.width() ) / 2, 386 m_text->move( ( FIELD_WIDTH*TILE_SIZE - size.width() ) / 2,
387 ( FIELD_HEIGHT*TILE_SIZE - size.height() ) / 2 ); 387 ( FIELD_HEIGHT*TILE_SIZE - size.height() ) / 2 );
388 388
389 m_text->show(); 389 m_text->show();
390 } else 390 } else
391 { 391 {
392 m_text->hide(); 392 m_text->hide();
393 } 393 }
394} 394}
395 395
396void JezzGame::start() 396void JezzGame::start()
397{ 397{
398 m_running = true; 398 m_running = true;
399} 399}
400 400
401void JezzGame::stop() 401void JezzGame::stop()
402{ 402{
403 m_running = false; 403 m_running = false;
404} 404}
405 405
406 406
407void JezzGame::makeBlack() 407void JezzGame::makeBlack()
408{ 408{
409 // copy current field into buffer 409 // copy current field into buffer
410 for ( int y=0; y<FIELD_HEIGHT; y++ ) 410 for ( int y=0; y<FIELD_HEIGHT; y++ )
411 for ( int x=0; x<FIELD_WIDTH; x++ ) 411 for ( int x=0; x<FIELD_WIDTH; x++ )
412 m_buf[x][y] = m_field->tile( x, y ); 412 m_buf[x][y] = m_field->tile( x, y );
413 413
414 // fill areas that contains a ball 414 // fill areas that contains a ball
415 for ( Ball *ball=m_balls.first(); ball!=0; ball=m_balls.next() ) 415 for ( Ball *ball=m_balls.first(); ball!=0; ball=m_balls.next() )
416 fill( ball->x()/TILE_SIZE, ball->y()/TILE_SIZE ); 416 fill( static_cast<int>( ball->x()/TILE_SIZE ),
417 static_cast<int>( ball->y()/TILE_SIZE ) );
417 418
418 // areas still free can be blacked now 419 // areas still free can be blacked now
419 for ( int y=0; y<FIELD_HEIGHT; y++ ) 420 for ( int y=0; y<FIELD_HEIGHT; y++ )
420 for ( int x=0; x<FIELD_WIDTH; x++ ) 421 for ( int x=0; x<FIELD_WIDTH; x++ )
421 { 422 {
422 if ( m_buf[x][y]==TILE_FREE ) 423 if ( m_buf[x][y]==TILE_FREE )
423 m_field->setGameTile( x, y, true ); 424 m_field->setGameTile( x, y, true );
424 } 425 }
425 426
426 m_field->update(); 427 m_field->update();
427 m_view->repaint(); 428 m_view->repaint();
428 429
429 // count percent value of occupied area 430 // count percent value of occupied area
430 int p = percent(); 431 int p = percent();
431 if ( p!=m_percent ) 432 if ( p!=m_percent )
432 { 433 {
433 m_percent = p; 434 m_percent = p;
434 emit newPercent( m_percent ); 435 emit newPercent( m_percent );
435 } 436 }
436} 437}
437 438
438int JezzGame::percent() 439int JezzGame::percent()
439{ 440{
440 int notFree = 0; 441 int notFree = 0;
441 for ( int y=1; y<FIELD_HEIGHT-1; y++ ) 442 for ( int y=1; y<FIELD_HEIGHT-1; y++ )
442 for ( int x=1; x<FIELD_WIDTH-1; x++ ) 443 for ( int x=1; x<FIELD_WIDTH-1; x++ )
443 { 444 {
444 if ( m_field->tile(x,y)!=TILE_FREE ) 445 if ( m_field->tile(x,y)!=TILE_FREE )
445 notFree++; 446 notFree++;
446 } 447 }
447 448
448 return 100 * notFree / ( (FIELD_WIDTH-1) * (FIELD_HEIGHT-1) ); 449 return 100 * notFree / ( (FIELD_WIDTH-1) * (FIELD_HEIGHT-1) );
449} 450}
450 451
451void JezzGame::fill( int x, int y ) 452void JezzGame::fill( int x, int y )
452{ 453{
453 if ( m_buf[x][y]!=TILE_FREE) return; 454 if ( m_buf[x][y]!=TILE_FREE) return;
454 455
455 // go left 456 // go left
456 int _x=x; 457 int _x=x;
457 for ( ; m_buf[_x][y]==TILE_FREE; _x-- ) 458 for ( ; m_buf[_x][y]==TILE_FREE; _x-- )
458 m_buf[_x][y] = TILE_BORDER; 459 m_buf[_x][y] = TILE_BORDER;
459 int stopx = _x; 460 int stopx = _x;
460 461
461 // fill above 462 // fill above
462 for ( _x=x; _x>stopx; _x-- ) 463 for ( _x=x; _x>stopx; _x-- )
463 if ( m_buf[_x][y-1]==TILE_FREE ) fill( _x, y-1 ); 464 if ( m_buf[_x][y-1]==TILE_FREE ) fill( _x, y-1 );
464 465
465 // fill below 466 // fill below
466 for ( _x=x; _x>stopx; _x-- ) 467 for ( _x=x; _x>stopx; _x-- )
467 if ( m_buf[_x][y+1]==TILE_FREE ) fill( _x, y+1 ); 468 if ( m_buf[_x][y+1]==TILE_FREE ) fill( _x, y+1 );
468 469
469 // go right 470 // go right
470 for ( _x=x+1; m_buf[_x][y]==TILE_FREE; _x++ ) 471 for ( _x=x+1; m_buf[_x][y]==TILE_FREE; _x++ )
471 m_buf[_x][y] = TILE_BORDER; 472 m_buf[_x][y] = TILE_BORDER;
472 stopx = _x; 473 stopx = _x;
473 474
474 // fill above 475 // fill above
475 for ( _x=x+1; _x<stopx; _x++ ) 476 for ( _x=x+1; _x<stopx; _x++ )
476 if ( m_buf[_x][y-1]==TILE_FREE ) fill( _x, y-1 ); 477 if ( m_buf[_x][y-1]==TILE_FREE ) fill( _x, y-1 );
477 478
478 // fill below; 479 // fill below;
479 for ( _x=x+1; _x<stopx; _x++ ) 480 for ( _x=x+1; _x<stopx; _x++ )
480 if ( m_buf[_x][y+1]==TILE_FREE ) fill( _x, y+1 ); 481 if ( m_buf[_x][y+1]==TILE_FREE ) fill( _x, y+1 );
481} 482}
482 483
483void JezzGame::ballCollision( Ball*, int, int, int tile ) 484void JezzGame::ballCollision( Ball*, int, int, int tile )
484{ 485{
485 if ( tile!=TILE_BORDER && tile>TILE_FREE && tile!=TILE_WALLEND ) 486 if ( tile!=TILE_BORDER && tile>TILE_FREE && tile!=TILE_WALLEND )
486 { 487 {
487 // stop walls 488 // stop walls
488 if ( (tile==TILE_WALLUP || tile==TILE_WALLLEFT) && m_wall1 ) 489 if ( (tile==TILE_WALLUP || tile==TILE_WALLLEFT) && m_wall1 )
489 { 490 {
490 m_wall1->finish(); 491 m_wall1->finish();
491 m_wall1->fill( false ); 492 m_wall1->fill( false );
492 delete m_wall1; 493 delete m_wall1;
493 m_wall1 = 0; 494 m_wall1 = 0;
494 } 495 }
495 496
496 if ( (tile==TILE_WALLDOWN || tile==TILE_WALLRIGHT) && m_wall2 ) 497 if ( (tile==TILE_WALLDOWN || tile==TILE_WALLRIGHT) && m_wall2 )
497 { 498 {
498 m_wall2->finish(); 499 m_wall2->finish();
499 m_wall2->fill( false ); 500 m_wall2->fill( false );
500 delete m_wall2; 501 delete m_wall2;
501 m_wall2 = 0; 502 m_wall2 = 0;
502 } 503 }
503 504
504 // update view 505 // update view
505 m_field->update(); 506 m_field->update();
506 m_view->repaint(); 507 m_view->repaint();
507 508
508 // send death msg 509 // send death msg
509 emit died(); 510 emit died();
510 } 511 }
511} 512}
512 513
diff --git a/noncore/games/kbill/Game.cc b/noncore/games/kbill/Game.cc
index 624b50b..4cd5322 100644
--- a/noncore/games/kbill/Game.cc
+++ b/noncore/games/kbill/Game.cc
@@ -1,246 +1,246 @@
1#include "objects.h" 1#include "objects.h"
2 2
3Horde bill; 3Horde bill;
4Network net; 4Network net;
5Library OS; 5Library OS;
6Bucket bucket; 6Bucket bucket;
7Spark spark; 7Spark spark;
8//Scorelist scores; 8//Scorelist scores;
9Game game; 9Game game;
10UI ui; 10UI ui;
11 11
12int Game::RAND(int lb, int ub) { 12int Game::RAND(int lb, int ub) {
13 return (rand()%(ub-lb+1) + lb); 13 return (rand()%(ub-lb+1) + lb);
14} 14}
15 15
16int Game::MAX(int x, int y) { 16int Game::MAX(int x, int y) {
17 return (x>y ? x : y); 17 return (x>y ? x : y);
18} 18}
19 19
20int Game::MIN(int x, int y) { 20int Game::MIN(int x, int y) {
21 return (x<y ? x : y); 21 return (x<y ? x : y);
22} 22}
23 23
24int Game::INTERSECT(int x1, int y1, int w1, int h1, int x2, int y2, int w2, 24int Game::INTERSECT(int x1, int y1, int w1, int h1, int x2, int y2, int w2,
25 int h2) 25 int h2)
26{ 26{
27 return (((x2-x1<=w1 && x2-x1>=0) || (x1-x2<=w2 && x1-x2>=0)) 27 return (((x2-x1<=w1 && x2-x1>=0) || (x1-x2<=w2 && x1-x2>=0))
28 && ((y2-y1<=h1 && y2-y1>=0) || (y1-y2<=h2 && y1-y2>=0))); 28 && ((y2-y1<=h1 && y2-y1>=0) || (y1-y2<=h2 && y1-y2>=0)));
29} 29}
30 30
31void Game::setup_level (unsigned int lev) { 31void Game::setup_level (unsigned int lev) {
32 level = lev; 32 level = lev;
33 bill.setup(); 33 bill.setup();
34 grabbed = EMPTY; 34 grabbed = EMPTY;
35 ui.set_cursor(DEFAULTC); 35 ui.set_cursor(DEFAULTC);
36 net.setup(); 36 net.setup();
37 iteration = efficiency = 0; 37 iteration = efficiency = 0;
38} 38}
39 39
40void Game::start(unsigned int lev) { 40void Game::start(unsigned int lev) {
41 state = PLAYING; 41 state = PLAYING;
42 score = 0; 42 score = 0;
43 ui.restart_timer(); 43 ui.restart_timer();
44 ui.set_pausebutton(true); 44 ui.set_pausebutton(true);
45 setup_level(lev); 45 setup_level(lev);
46} 46}
47 47
48void Game::quit() { 48void Game::quit() {
49 49
50 exit(0); 50 exit(0);
51} 51}
52 52
53void Game::update_info() { 53void Game::update_info() {
54 static char str[80]; 54 static char str[80];
55 sprintf (str, "Bill:%d/%d System:%d/%d/%d Level:%d Score:%d", 55 sprintf (str, "Bill:%d/%d System:%d/%d/%d Level:%d Score:%d",
56 bill.on_screen, bill.off_screen, net.base, net.off, 56 bill.on_screen, bill.off_screen, net.base, net.off,
57 net.win, level, score); 57 net.win, level, score);
58 ui.draw_str(str, 5, scrheight-5); 58 ui.draw_str(str, 5, scrheight-5);
59 efficiency += ((100*net.base-10*net.win)/net.units); 59 efficiency += ((100*net.base-10*net.win)/net.units);
60} 60}
61 61
62void Game::update_score (int action) { 62void Game::update_score (int action) {
63 switch (action){ 63 switch (action){
64 case ENDLEVEL: score+=(level*efficiency/iteration); break; 64 case ENDLEVEL: score+=(level*efficiency/iteration); break;
65 default: score+=(action*action*BILLPOINTS); 65 default: score+=(action*action*BILLPOINTS);
66 } 66 }
67} 67}
68 68
69void Game::warp_to_level (unsigned int lev) { 69void Game::warp_to_level (unsigned int lev) {
70 if (state==PLAYING) { 70 if (state==PLAYING) {
71 if (lev <= level) return; 71 if (lev <= level) return;
72 setup_level(lev); 72 setup_level(lev);
73 } 73 }
74 else { 74 else {
75 if (lev<=0) return; 75 if (lev <=0) return;
76 start(lev); 76 start(lev);
77 } 77 }
78} 78}
79 79
80void Game::button_press(int x, int y) { 80void Game::button_press(int x, int y) {
81 int i, counter=0, flag=0; 81 int i, counter=0, flag=0;
82 if (state != PLAYING) return; 82 if (state != PLAYING) return;
83 ui.set_cursor(DOWNC); 83 ui.set_cursor(DOWNC);
84 if (bucket.clicked(x, y)) { 84 if (bucket.clicked(x, y)) {
85 ui.set_cursor(BUCKETC); 85 ui.set_cursor(BUCKETC);
86 grabbed = BUCKET; 86 grabbed = BUCKET;
87 } 87 }
88 for (i=0; i < bill.MAX_BILLS && !flag; i++) { 88 for (i=0; i < bill.MAX_BILLS && !flag; i++) {
89 if (bill.list[i].state == bill.list[i].OFF 89 if (bill.list[i].state == bill.list[i].OFF
90 || bill.list[i].state == bill.list[i].DYING) 90 || bill.list[i].state == bill.list[i].DYING)
91 continue; 91 continue;
92 if (bill.list[i].state == bill.list[i].STRAY && 92 if (bill.list[i].state == bill.list[i].STRAY &&
93 bill.list[i].clickedstray(x, y)) 93 bill.list[i].clickedstray(x, y))
94 { 94 {
95 ui.set_cursor (bill.list[i].cargo); 95 ui.set_cursor (bill.list[i].cargo);
96 grabbed = i; 96 grabbed = i;
97 flag = 1; 97 flag = 1;
98 } 98 }
99 else if (bill.list[i].state != bill.list[i].STRAY && 99 else if (bill.list[i].state != bill.list[i].STRAY &&
100 bill.list[i].clicked(x, y)) 100 bill.list[i].clicked(x, y))
101 { 101 {
102 if (bill.list[i].state == bill.list[i].AT) 102 if (bill.list[i].state == bill.list[i].AT)
103 net.computers[bill.list[i].target_c].busy=0; 103 net.computers[bill.list[i].target_c].busy=0;
104 bill.list[i].index = -1; 104 bill.list[i].index = -1;
105 bill.list[i].cels = bill.dcels; 105 bill.list[i].cels = bill.dcels;
106 bill.list[i].x_offset = -2; 106 bill.list[i].x_offset = -2;
107 bill.list[i].y_offset = -15; 107 bill.list[i].y_offset = -15;
108 bill.list[i].state = bill.list[i].DYING; 108 bill.list[i].state = bill.list[i].DYING;
109 counter++; 109 counter++;
110 } 110 }
111 } 111 }
112 if (counter) update_score(counter); 112 if (counter) update_score(counter);
113} 113}
114 114
115void Game::button_release(int x, int y) { 115void Game::button_release(int x, int y) {
116 int i; 116 int i;
117 ui.set_cursor (DEFAULTC); 117 ui.set_cursor (DEFAULTC);
118 if (state != PLAYING || grabbed == EMPTY) 118 if (state != PLAYING || grabbed == EMPTY)
119 return; 119 return;
120 if (grabbed == BUCKET) { 120 if (grabbed == BUCKET) {
121 grabbed = EMPTY; 121 grabbed = EMPTY;
122 for (i=0; i<net.ncables; i++) 122 for (i=0; i<net.ncables; i++)
123 if (net.cables[i].onspark(x, y)) { 123 if (net.cables[i].onspark(x, y)) {
124 net.cables[i].active=0; 124 net.cables[i].active=0;
125 net.cables[i].delay = spark.delay(level); 125 net.cables[i].delay = spark.delay(level);
126 } 126 }
127 return; 127 return;
128 } 128 }
129 for (i=0; i<net.units; i++) 129 for (i=0; i<net.units; i++)
130 if (net.computers[i].oncomputer(x, y) 130 if (net.computers[i].oncomputer(x, y)
131 && 131 &&
132 net.computers[i].compatible (bill.list[grabbed].cargo) 132 net.computers[i].compatible (bill.list[grabbed].cargo)
133 && 133 &&
134 (net.computers[i].os == OS.WINGDOWS || 134 (net.computers[i].os == OS.WINGDOWS ||
135 net.computers[i].os == OS.OFF)) 135 net.computers[i].os == OS.OFF))
136 { 136 {
137 net.base++; 137 net.base++;
138 if (net.computers[i].os == OS.WINGDOWS) 138 if (net.computers[i].os == OS.WINGDOWS)
139 net.win--; 139 net.win--;
140 else 140 else
141 net.off--; 141 net.off--;
142 net.computers[i].os = bill.list[grabbed].cargo; 142 net.computers[i].os = bill.list[grabbed].cargo;
143 bill.list[grabbed].state = bill.list[grabbed].OFF; 143 bill.list[grabbed].state = bill.list[grabbed].OFF;
144 grabbed = EMPTY; 144 grabbed = EMPTY;
145 return; 145 return;
146 } 146 }
147 grabbed = EMPTY; 147 grabbed = EMPTY;
148 } 148}
149 149
150void Game::update() { 150void Game::update() {
151 switch (state) { 151 switch (state) {
152 case PLAYING: 152 case PLAYING:
153 ui.clear(); 153 ui.clear();
154 bucket.draw(); 154 bucket.draw();
155 net.update(); 155 net.update();
156 net.draw(); 156 net.draw();
157 bill.update(); 157 bill.update();
158 bill.draw(); 158 bill.draw();
159 update_info(); 159 update_info();
160 if (!(bill.on_screen+bill.off_screen)) { 160 if (!(bill.on_screen+bill.off_screen)) {
161 update_score(ENDLEVEL); 161 update_score(ENDLEVEL);
162 state = BETWEEN; 162 state = BETWEEN;
163 } 163 }
164 if ((net.base+net.off)<=1) state = END; 164 if ((net.base+net.off)<=1) state = END;
165 break; 165 break;
166 case END: 166 case END:
167 ui.clear(); 167 ui.clear();
168 net.toasters(); 168 net.toasters();
169 net.draw(); 169 net.draw();
170 ui.refresh(); 170 ui.refresh();
171 ui.popup_dialog(ENDGAME); 171 ui.popup_dialog(ENDGAME);
172 /* if (score > scores.score[9]) ui.popup_dialog(ENTERNAME); 172 /* if (score > scores.score[9]) ui.popup_dialog(ENTERNAME);
173 scores.update();*/ 173 scores.update();*/
174 ui.popup_dialog(HIGHSCORE); 174 ui.popup_dialog(HIGHSCORE);
175 ui.clear(); 175 ui.clear();
176 ui.draw_centered(logo); 176 ui.draw_centered(logo);
177 ui.kill_timer(); 177 ui.kill_timer();
178 ui.set_pausebutton (false); 178 ui.set_pausebutton (false);
179 state = WAITING; 179 state = WAITING;
180 break; 180 break;
181 case BETWEEN: 181 case BETWEEN:
182 ui.update_scorebox(level, score); 182 ui.update_scorebox(level, score);
183 ui.popup_dialog (SCORE); 183 ui.popup_dialog (SCORE);
184 state = PLAYING; 184 state = PLAYING;
185 setup_level(++level); 185 setup_level(++level);
186 break; 186 break;
187 } 187 }
188 ui.refresh(); 188 ui.refresh();
189 iteration++; 189 iteration++;
190} 190}
191 191
192void Game::main(int argc, char **argv) { 192void Game::main(int argc, char **argv) {
193 int c; 193 int c;
194 extern char *optarg; 194 extern char *optarg;
195 195
196 level = 0; 196 level = 0;
197 ui.initialize(&argc, argv); 197 ui.initialize(&argc, argv);
198 while (argv && argv[0] && (c = getopt(argc, argv, "l:L:")) != -1) 198 while (argv && argv[0] && (c = getopt(argc, argv, "l:L:")) != -1)
199 switch(c) { 199 switch(c) {
200 case 'l': 200 case 'l':
201 case 'L': level = MAX (1, atoi(optarg)); break; 201 case 'L': level = MAX (1, atoi(optarg)); break;
202 } 202 }
203 srand(time(NULL)); 203 srand(time(NULL));
204 ui.make_mainwin(); 204 ui.make_mainwin();
205 ui.graph_init(); 205 ui.graph_init();
206 ui.clear(); 206 ui.clear();
207 logo.load("logo"); 207 logo.load("logo");
208 ui.draw_centered(logo); 208 ui.draw_centered(logo);
209 ui.refresh(); 209 ui.refresh();
210 ui.make_windows(); 210 ui.make_windows();
211 // scores.read(); 211 // scores.read();
212 // scores.update(); 212 // scores.update();
213 213
214 bill.load_pix(); 214 bill.load_pix();
215 OS.load_pix(); 215 OS.load_pix();
216 net.load_pix(); 216 net.load_pix();
217 bucket.load_pix(); 217 bucket.load_pix();
218 spark.load_pix(); 218 spark.load_pix();
219 219
220 ui.load_cursors(); 220 ui.load_cursors();
221 221
222 state = WAITING; 222 state = WAITING;
223 if (level) start(level); 223 if (level) start(level);
224 else ui.set_pausebutton(false); 224 else ui.set_pausebutton(false);
225 ui.MainLoop(); 225 ui.MainLoop();
226 exit(0); 226 exit(0);
227} 227}
228 228
229int main(int argc, char **argv) { 229int main(int argc, char **argv) {
230 if (argc>1 && !strcmp(argv[1], "-v")) { 230 if (argc>1 && !strcmp(argv[1], "-v")) {
231 printf ("XBill version 2.0\n\n"); 231 printf ("XBill version 2.0\n\n");
232 exit(0); 232 exit(0);
233 } 233 }
234 if (argc>1 && !strcmp(argv[1], "-h")) { 234 if (argc>1 && !strcmp(argv[1], "-h")) {
235 printf ("XBill version 2.0\n"); 235 printf ("XBill version 2.0\n");
236 printf ("Options:\n"); 236 printf ("Options:\n");
237 printf ("-l n, -L n\tStart at level n.\n"); 237 printf ("-l n, -L n\tStart at level n.\n");
238 printf ("-v\t\tPrint version number and exit.\n"); 238 printf ("-v\t\tPrint version number and exit.\n");
239 printf ("-h\t\tPrint help and exit.\n"); 239 printf ("-h\t\tPrint help and exit.\n");
240 printf ("leaves the window.\n"); 240 printf ("leaves the window.\n");
241 printf ("All standard X Intrinsics options are also "); 241 printf ("All standard X Intrinsics options are also ");
242 printf ("supported.\n\n"); 242 printf ("supported.\n\n");
243 exit(0); 243 exit(0);
244 } 244 }
245 game.main(argc, argv); 245 game.main(argc, argv);
246} 246}
diff --git a/noncore/games/kbill/Game.h b/noncore/games/kbill/Game.h
index 4473936..5c9c497 100644
--- a/noncore/games/kbill/Game.h
+++ b/noncore/games/kbill/Game.h
@@ -1,55 +1,55 @@
1#ifndef GAME_H 1#ifndef GAME_H
2#define GAME_H 2#define GAME_H
3 3
4#include "objects.h" 4#include "objects.h"
5 5
6class Game { 6class Game {
7 unsigned state; 7 int state;
8 int efficiency; 8 int efficiency;
9public: 9public:
10 unsigned score, level, iteration; 10 unsigned score, level, iteration;
11 Picture logo; 11 Picture logo;
12 int grabbed; 12 int grabbed;
13 13
14 static const unsigned short scrwidth = 240; 14 static const unsigned short scrwidth = 240;
15 static const unsigned short scrheight = 290; 15 static const unsigned short scrheight = 290;
16 16
17 static const int PLAYING = 1; 17 static const int PLAYING = 1;
18 static const int BETWEEN = 2; 18 static const int BETWEEN = 2;
19 static const int END = 3; 19 static const int END = 3;
20 static const int WAITING = 4; 20 static const int WAITING = 4;
21 21
22 static const int DEFAULTC = 0; /* cursors */ 22 static const int DEFAULTC = 0; /* cursors */
23 static const int DOWNC = -1; 23 static const int DOWNC = -1;
24 static const int BUCKETC = -2; 24 static const int BUCKETC = -2;
25 25
26 static const int ENDGAME = 200; /* dialog window IDs */ 26 static const int ENDGAME = 200; /* dialog window IDs */
27 static const int ENTERNAME = 201; 27 static const int ENTERNAME = 201;
28 static const int HIGHSCORE = 202; 28 static const int HIGHSCORE = 202;
29 static const int SCORE = 203; 29 static const int SCORE = 203;
30 30
31 static const int ENDLEVEL = -1; /* Codes for updating score */ 31 static const int ENDLEVEL = -1; /* Codes for updating score */
32 static const int BILLPOINTS = 5; 32 static const int BILLPOINTS = 5;
33 33
34 static const int EMPTY = -2; /* Grabbed object */ 34 static const int EMPTY = -2; /* Grabbed object */
35 static const int BUCKET = -1; 35 static const int BUCKET = -1;
36 36
37 int RAND(int lb, int ub); 37 int RAND(int lb, int ub);
38 int MAX(int x, int y); 38 int MAX(int x, int y);
39 int MIN(int x, int y); 39 int MIN(int x, int y);
40 int INTERSECT(int x1, int y1, int w1, int h1, int x2, int y2, int w2, 40 int INTERSECT(int x1, int y1, int w1, int h1, int x2, int y2, int w2,
41 int h2); 41 int h2);
42 42
43 void setup_level (unsigned int lev); 43 void setup_level (unsigned int lev);
44 void start(unsigned int lev); 44 void start(unsigned int lev);
45 void quit(); 45 void quit();
46 void update_info(); 46 void update_info();
47 void update_score (int action); 47 void update_score (int action);
48 void warp_to_level (unsigned int lev); 48 void warp_to_level (unsigned int lev);
49 void button_press(int x, int y); 49 void button_press(int x, int y);
50 void button_release(int x, int y); 50 void button_release(int x, int y);
51 void update(); 51 void update();
52 void main(int argc, char **argv); 52 void main(int argc, char **argv);
53}; 53};
54 54
55#endif 55#endif
diff --git a/noncore/games/kbill/field.cpp b/noncore/games/kbill/field.cpp
index a974ab2..0dd8d72 100644
--- a/noncore/games/kbill/field.cpp
+++ b/noncore/games/kbill/field.cpp
@@ -1,83 +1,83 @@
1/*************************************************************************** 1/***************************************************************************
2 field.cpp - description 2 field.cpp - description
3 ------------------- 3 -------------------
4 begin : Thu Dec 30 1999 4 begin : Thu Dec 30 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 18
19#include "objects.h" 19#include "objects.h"
20 20
21#include "field.h" 21#include "field.h"
22 22
23Field::Field(QWidget *parent, const char *name ) : QWidget(parent,name) { 23Field::Field(QWidget *parent, const char *name ) : QWidget(parent,name) {
24 setFixedSize(game.scrwidth, game.scrheight); 24 setFixedSize(game.scrwidth, game.scrheight);
25 setBackgroundColor(white); 25 setBackgroundColor(white);
26 timer = new QTimer(this); 26 timer = new QTimer(this);
27 27
28 playing = false; 28 playing = false;
29 29
30 connect(timer, SIGNAL(timeout()), SLOT(Timer())); 30 connect(timer, SIGNAL(timeout()), SLOT(Timer()));
31} 31}
32 32
33Field::~Field(){ 33Field::~Field(){
34 delete timer; 34 delete timer;
35} 35}
36 36
37void Field::setPixmap(QPixmap *pix) { 37void Field::setPixmap(QPixmap *pix) {
38 this->pix = pix; 38 this->pix = pix;
39} 39}
40 40
41// -------------------------------------------------------- 41// --------------------------------------------------------
42 42
43void Field::mousePressEvent(QMouseEvent *e){ 43void Field::mousePressEvent(QMouseEvent *e){
44 game.button_press(e->x(), e->y()); 44 game.button_press(e->x(), e->y());
45} 45}
46 46
47void Field::mouseReleaseEvent(QMouseEvent *e){ 47void Field::mouseReleaseEvent(QMouseEvent *e){
48 game.button_release(e->x(), e->y()); 48 game.button_release(e->x(), e->y());
49} 49}
50 50
51void Field::enterEvent(QEvent *) { 51void Field::enterEvent(QEvent *) {
52 if (playing && !timer->isActive()) { 52 if (playing && !timer->isActive()) {
53 playing = true; 53 playing = true;
54 timer->start(250, FALSE); 54 timer->start(250, FALSE);
55 } 55 }
56} 56}
57 57
58void Field::leaveEvent(QEvent *) { 58void Field::leaveEvent(QEvent *) {
59 if (timer->isActive() && playing) { 59 if (timer->isActive() && playing) {
60 playing = true; 60 playing = true;
61 timer->stop(); 61 timer->stop();
62 } 62 }
63} 63}
64 64
65void Field::stopTimer() { 65void Field::stopTimer() {
66 playing = false; 66 playing = false;
67 if (timer->isActive()) 67 if (timer->isActive())
68 timer->stop(); 68 timer->stop();
69} 69}
70 70
71void Field::startTimer() { 71void Field::startTimer() {
72 playing = true; 72 playing = true;
73 if (!timer->isActive()) 73 if (!timer->isActive())
74 timer->start(250, FALSE); 74 timer->start(250, FALSE);
75} 75}
76 76
77void Field::Timer(){ 77void Field::Timer(){
78 game.update(); 78 game.update();
79} 79}
80 80
81void Field::paintEvent(QPaintEvent *) { 81void Field::paintEvent(QPaintEvent *) {
82 bitBlt(this, 0, 0, pix); 82 bitBlt(this, 0, 0, pix);
83 } \ No newline at end of file 83}
diff --git a/noncore/games/kbill/inputbox.cpp b/noncore/games/kbill/inputbox.cpp
index 5087fbb..7aaebe7 100644
--- a/noncore/games/kbill/inputbox.cpp
+++ b/noncore/games/kbill/inputbox.cpp
@@ -1,50 +1,50 @@
1/*************************************************************************** 1/***************************************************************************
2 inputbox.cpp - description 2 inputbox.cpp - description
3 ------------------- 3 -------------------
4 begin : Sat Jan 1 2000 4 begin : Sat Jan 1 2000
5 copyright : (C) 2000 by Jurrien Loonstra 5 copyright : (C) 2000 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 "inputbox.h" 18#include "inputbox.h"
19InputBox::InputBox(QWidget *parent, const char *name, const char *caption, const char *text) : QDialog(parent, name, TRUE) { 19InputBox::InputBox(QWidget *parent, const char *name, const char *, const char *) : QDialog(parent, name, TRUE) {
20 // setCaption(caption); 20 // setCaption(caption);
21// 21//
22 // question = new QLabel(this); 22 // question = new QLabel(this);
23 // question->setText(text); 23 // question->setText(text);
24 // question->setGeometry(10, 10, 240, 50); 24 // question->setGeometry(10, 10, 240, 50);
25// 25//
26 // input = new QLineEdit(this); 26 // input = new QLineEdit(this);
27// input->setGeometry(10, 60, 240, 30); 27// input->setGeometry(10, 60, 240, 30);
28 // input->setFocus(); 28 // input->setFocus();
29 // input->setMaxLength(19); 29 // input->setMaxLength(19);
30// 30//
31// ok = new QPushButton( "Ok", this ); 31// ok = new QPushButton( "Ok", this );
32// ok->setGeometry(10, 100, 100,30 ); 32// ok->setGeometry(10, 100, 100,30 );
33 // ok->setDefault(TRUE); 33 // ok->setDefault(TRUE);
34// connect( ok, SIGNAL(clicked()), SLOT(accept()) ); 34// connect( ok, SIGNAL(clicked()), SLOT(accept()) );
35// 35//
36// cancel = new QPushButton( "Cancel", this ); 36// cancel = new QPushButton( "Cancel", this );
37// cancel->setGeometry(150, 100, 100,30 ); 37// cancel->setGeometry(150, 100, 100,30 );
38// connect( cancel, SIGNAL(clicked()), SLOT(reject()) ); 38// connect( cancel, SIGNAL(clicked()), SLOT(reject()) );
39} 39}
40 40
41InputBox::~InputBox(){ 41InputBox::~InputBox(){
42 delete ok; 42 delete ok;
43 delete cancel; 43 delete cancel;
44 delete question; 44 delete question;
45 delete input; 45 delete input;
46} 46}
47 47
48QString InputBox::getText() const{ 48QString InputBox::getText() const{
49 return input->text(); 49 return input->text();
50} 50}
diff --git a/noncore/games/kbill/kbill.h b/noncore/games/kbill/kbill.h
index fbc0c6c..da1a111 100644
--- a/noncore/games/kbill/kbill.h
+++ b/noncore/games/kbill/kbill.h
@@ -1,54 +1,56 @@
1/*************************************************************************** 1/***************************************************************************
2 kbill.h - description 2 kbill.h - 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#ifndef KBILL_H 18#ifndef KBILL_H
19#define KBILL_H 19#define KBILL_H
20 20
21 21
22 22
23#include <qmainwindow.h> 23#include <qmainwindow.h>
24#include <qwidget.h> 24#include <qwidget.h>
25#include <qpopupmenu.h> 25#include <qpopupmenu.h>
26 26
27#include "field.h" 27#include "field.h"
28 28
29class KBill : public QMainWindow 29class KBill : public QMainWindow
30{ 30{
31 Q_OBJECT 31 Q_OBJECT
32 public: 32public:
33 KBill(); 33 KBill();
34 ~KBill(); 34 ~KBill();
35 Field* getField(); 35 Field* getField();
36 private: 36private:
37 QMenuBar *menu; 37 QMenuBar *menu;
38 QPopupMenu *file, *help; 38 QPopupMenu *file, *help;
39 Field *field; 39 Field *field;
40 int pauseid; 40 int pauseid;
41 protected slots: 41
42 void Quit(); 42protected slots:
43 void About(); 43 void Quit();
44 void NewGame(); 44 void About();
45 void Pause(); 45 void NewGame();
46 void WarpTo(); 46 void Pause();
47 void Story(); 47 void WarpTo();
48 void Rules(); 48 void Story();
49 void ViewHighScores(); 49 void Rules();
50 50 void ViewHighScores();
51 friend class UI; 51
52protected:
53 friend class UI;
52}; 54};
53 55
54#endif 56#endif
diff --git a/noncore/games/zsame/ZSameWidget.cpp b/noncore/games/zsame/ZSameWidget.cpp
index 4fab0f6..04ad825 100644
--- a/noncore/games/zsame/ZSameWidget.cpp
+++ b/noncore/games/zsame/ZSameWidget.cpp
@@ -16,229 +16,229 @@
16 * You should have received a copy of the GNU General Public License 16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software 17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 * 19 *
20 */ 20 */
21 21
22#include <stdio.h> 22#include <stdio.h>
23 23
24#include <opie2/oapplicationfactory.h> 24#include <opie2/oapplicationfactory.h>
25 25
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27 27
28#include <qtoolbar.h> 28#include <qtoolbar.h>
29#include <qmenubar.h> 29#include <qmenubar.h>
30#include <qapplication.h> 30#include <qapplication.h>
31#include <qaction.h> 31#include <qaction.h>
32#include <qmessagebox.h> 32#include <qmessagebox.h>
33 33
34#include <kapplication.h> 34#include <kapplication.h>
35 35
36#include "ZSameWidget.h" 36#include "ZSameWidget.h"
37 37
38static int default_colors=3; 38static int default_colors=3;
39 39
40#define i18n tr 40#define i18n tr
41 41
42 42
43using namespace Opie::Core; 43using namespace Opie::Core;
44OPIE_EXPORT_APP( OApplicationFactory<ZSameWidget> ) 44OPIE_EXPORT_APP( OApplicationFactory<ZSameWidget> )
45 45
46 46
47 47
48ZSameWidget::ZSameWidget( QWidget* parent, const char* name, WFlags fl ) 48ZSameWidget::ZSameWidget( QWidget* parent, const char* name, WFlags fl )
49 : QMainWindow( parent, name, fl ) 49 : QMainWindow( parent, name, fl )
50{ 50{
51 setCaption(tr("ZSame")); 51 setCaption(tr("ZSame"));
52 52
53 setToolBarsMovable( false ); 53 setToolBarsMovable( false );
54 QToolBar* con = new QToolBar( this ); 54 QToolBar* con = new QToolBar( this );
55 con->setHorizontalStretchable( true ); 55 con->setHorizontalStretchable( true );
56 QMenuBar* mb = new QMenuBar( con ); 56 QMenuBar* mb = new QMenuBar( con );
57 QToolBar* tb = new QToolBar( this ); 57 QToolBar* tb = new QToolBar( this );
58 58
59 QPopupMenu* fileMenu = new QPopupMenu( this ); 59 QPopupMenu* fileMenu = new QPopupMenu( this );
60 60
61 QAction* a = new QAction(tr("New Game"), Resource::loadIconSet("new") , 61 QAction* a = new QAction(tr("New Game"), Resource::loadIconSet("new") ,
62 QString::null, 0, this, "new_icon"); 62 QString::null, 0, this, "new_icon");
63 a->addTo( fileMenu ); 63 a->addTo( fileMenu );
64 a->addTo( tb ); 64 a->addTo( tb );
65 connect(a, SIGNAL(activated()), this, SLOT(m_new())); 65 connect(a, SIGNAL(activated()), this, SLOT(m_new()));
66 66
67 a = new QAction(tr("Restart This Board"), Resource::loadIconSet("redo"), 67 a = new QAction(tr("Restart This Board"), Resource::loadIconSet("redo"),
68 QString::null, 0, this, "restart_board" ); 68 QString::null, 0, this, "restart_board" );
69 a->addTo( fileMenu ); 69 a->addTo( fileMenu );
70 connect( a, SIGNAL(activated()), this, SLOT(m_restart())); 70 connect( a, SIGNAL(activated()), this, SLOT(m_restart()));
71 restart = a; 71 restart = a;
72 72
73 a = new QAction( tr("Undo"), Resource::loadIconSet("undo"), 73 a = new QAction( tr("Undo"), Resource::loadIconSet("undo"),
74 QString::null, 0, this, "undo_action" ); 74 QString::null, 0, this, "undo_action" );
75 a->addTo( fileMenu ); 75 a->addTo( fileMenu );
76 a->addTo( tb ); 76 a->addTo( tb );
77 connect( a, SIGNAL(activated()), this, SLOT(m_undo())); 77 connect( a, SIGNAL(activated()), this, SLOT(m_undo()));
78 78
79 a = new QAction(tr("Quit"), Resource::loadIconSet("quit_icon"), 79 a = new QAction(tr("Quit"), Resource::loadIconSet("quit_icon"),
80 QString::null, 0, this, "quit_action"); 80 QString::null, 0, this, "quit_action");
81 a->addTo( fileMenu ); 81 a->addTo( fileMenu );
82 a->addTo( tb ); 82 a->addTo( tb );
83 connect(a, SIGNAL(activated()), this, SLOT(m_quit())); 83 connect(a, SIGNAL(activated()), this, SLOT(m_quit()));
84 84
85 mb->insertItem(tr("Game" ), fileMenu ); 85 mb->insertItem(tr("Game" ), fileMenu );
86 86
87 int foo[2]; 87 int foo[2];
88 desktop_widget(foo); 88 desktop_widget(foo);
89 stone = new StoneWidget(this,foo[0],foo[1]); 89 stone = new StoneWidget(this,foo[0],foo[1]);
90 90
91 connect( stone, SIGNAL(s_gameover()), this, SLOT(gameover())); 91 connect( stone, SIGNAL(s_gameover()), this, SLOT(gameover()));
92 92
93 connect( stone, SIGNAL(s_colors(int)), this, SLOT(setColors(int))); 93 connect( stone, SIGNAL(s_colors(int)), this, SLOT(setColors(int)));
94 connect( stone, SIGNAL(s_board(int)), this, SLOT(setBoard(int))); 94 connect( stone, SIGNAL(s_board(int)), this, SLOT(setBoard(int)));
95 connect( stone, SIGNAL(s_marked(int)), this, SLOT(setMarked(int))); 95 connect( stone, SIGNAL(s_marked(int)), this, SLOT(setMarked(int)));
96 connect( stone, SIGNAL(s_score(int)), this, SLOT(setScore(int))); 96 connect( stone, SIGNAL(s_score(int)), this, SLOT(setScore(int)));
97 connect( stone, SIGNAL(s_remove(int,int)), this, SLOT(stonesRemoved(int,int))); 97 connect( stone, SIGNAL(s_remove(int,int)), this, SLOT(stonesRemoved(int,int)));
98 98
99 connect(stone, SIGNAL(s_sizechanged()), this, SLOT(sizeChanged())); 99 connect(stone, SIGNAL(s_sizechanged()), this, SLOT(sizeChanged()));
100 100
101 sizeChanged(); 101 sizeChanged();
102 setCentralWidget(stone); 102 setCentralWidget(stone);
103 103
104 104
105 setScore(0); 105 setScore(0);
106} 106}
107 107
108ZSameWidget::~ZSameWidget() { 108ZSameWidget::~ZSameWidget() {
109 109
110} 110}
111 111
112void ZSameWidget::readProperties(Config *conf) { 112void ZSameWidget::readProperties(Config *) {
113/* 113/*
114 Q_ASSERT(conf); 114 Q_ASSERT(conf);
115 stone->readProperties(conf); 115 stone->readProperties(conf);
116*/ 116*/
117} 117}
118 118
119void ZSameWidget::saveProperties(Config *conf) { 119void ZSameWidget::saveProperties(Config *) {
120/* 120/*
121 Q_ASSERT(conf); 121 Q_ASSERT(conf);
122 stone->saveProperties(conf); 122 stone->saveProperties(conf);
123 conf->sync(); 123 conf->sync();
124*/ 124*/
125} 125}
126 126
127void ZSameWidget::sizeChanged() { 127void ZSameWidget::sizeChanged() {
128 //stone->setFixedSize(stone->sizeHint()); 128 //stone->setFixedSize(stone->sizeHint());
129} 129}
130 130
131void ZSameWidget::newGame(unsigned int board,int colors) { 131void ZSameWidget::newGame(unsigned int board,int colors) {
132 while (board>=1000000) board-=1000000; 132 while (board>=1000000) board-=1000000;
133 // kdDebug() << "newgame board " << board << " colors " << colors << endl; 133 // kdDebug() << "newgame board " << board << " colors " << colors << endl;
134 stone->newGame(board,colors); 134 stone->newGame(board,colors);
135 setScore(0); 135 setScore(0);
136} 136}
137 137
138bool ZSameWidget::confirmAbort() { 138bool ZSameWidget::confirmAbort() {
139 return stone->isGameover() || 139 return stone->isGameover() ||
140 stone->isOriginalBoard() || 140 stone->isOriginalBoard() ||
141 (QMessageBox::warning(this, i18n("Resign"), i18n("<qt>Do you want to resign?</qt>"), 141 (QMessageBox::warning(this, i18n("Resign"), i18n("<qt>Do you want to resign?</qt>"),
142 QMessageBox::Yes, 142 QMessageBox::Yes,
143 QMessageBox::No|QMessageBox::Default|QMessageBox::Escape, 0) == QMessageBox::Yes ); 143 QMessageBox::No|QMessageBox::Default|QMessageBox::Escape, 0) == QMessageBox::Yes );
144} 144}
145 145
146void ZSameWidget::m_new() { 146void ZSameWidget::m_new() {
147 if (confirmAbort()) 147 if (confirmAbort())
148 newGame(_random(),default_colors); 148 newGame(_random(),default_colors);
149 149
150} 150}
151 151
152void ZSameWidget::m_restart() { 152void ZSameWidget::m_restart() {
153 if (confirmAbort()) 153 if (confirmAbort())
154 newGame(stone->board(),default_colors); 154 newGame(stone->board(),default_colors);
155} 155}
156 156
157void ZSameWidget::m_load() { 157void ZSameWidget::m_load() {
158// kdDebug() << "menu load not supported" << endl; 158// kdDebug() << "menu load not supported" << endl;
159} 159}
160 160
161void ZSameWidget::m_save() { 161void ZSameWidget::m_save() {
162// kdDebug() << "menu save not supported" << endl; 162// kdDebug() << "menu save not supported" << endl;
163} 163}
164 164
165void ZSameWidget::m_undo() { 165void ZSameWidget::m_undo() {
166 //Q_ASSERT(stone); 166 //Q_ASSERT(stone);
167 stone->undo(); 167 stone->undo();
168} 168}
169 169
170 170
171void ZSameWidget::m_showhs() { 171void ZSameWidget::m_showhs() {
172/* Q_ASSERT(stone); 172/* Q_ASSERT(stone);
173 stone->unmark(); 173 stone->unmark();
174 KScoreDialog d(KScoreDialog::Name | KScoreDialog::Score, this); 174 KScoreDialog d(KScoreDialog::Name | KScoreDialog::Score, this);
175 d.addField(Board, i18n("Board"), "Board"); 175 d.addField(Board, i18n("Board"), "Board");
176 d.exec(); 176 d.exec();
177*/ 177*/
178} 178}
179 179
180void ZSameWidget::m_quit() { 180void ZSameWidget::m_quit() {
181// Q_ASSERT(stone); 181// Q_ASSERT(stone);
182 stone->unmark(); 182 stone->unmark();
183 qApp->quit(); 183 qApp->quit();
184// delete this; 184// delete this;
185} 185}
186 186
187void ZSameWidget::m_tglboard() { 187void ZSameWidget::m_tglboard() {
188 //kdDebug() << "toggled" << endl; 188 //kdDebug() << "toggled" << endl;
189} 189}
190 190
191 191
192void ZSameWidget::setColors(int colors) { 192void ZSameWidget::setColors(int ) {
193 //status->changeItem(i18n("%1 Colors").arg(colors),1); 193 //status->changeItem(i18n("%1 Colors").arg(colors),1);
194} 194}
195 195
196void ZSameWidget::setBoard(int board) { 196void ZSameWidget::setBoard(int ) {
197 //status->changeItem(i18n("Board: %1").arg(board, 6), 2); 197 //status->changeItem(i18n("Board: %1").arg(board, 6), 2);
198} 198}
199 199
200void ZSameWidget::setMarked(int m) { 200void ZSameWidget::setMarked(int ) {
201// status->changeItem(i18n("Marked: %1").arg(m, 6),3); 201// status->changeItem(i18n("Marked: %1").arg(m, 6),3);
202} 202}
203 203
204void ZSameWidget::stonesRemoved(int,int) { 204void ZSameWidget::stonesRemoved(int,int) {
205 //KNotifyClient::event("stones removed", 205 //KNotifyClient::event("stones removed",
206 // i18n("%1 stones removed.").arg(stone->marked())); 206 // i18n("%1 stones removed.").arg(stone->marked()));
207} 207}
208 208
209void ZSameWidget::setScore(int score) { 209void ZSameWidget::setScore(int ) {
210// status->changeItem(i18n("Score: %1").arg(score, 6),4); 210// status->changeItem(i18n("Score: %1").arg(score, 6),4);
211// undo->setEnabled(stone->undoPossible()); 211// undo->setEnabled(stone->undoPossible());
212// restart->setEnabled(!stone->isOriginalBoard()); 212// restart->setEnabled(!stone->isOriginalBoard());
213} 213}
214 214
215void ZSameWidget::gameover() { 215void ZSameWidget::gameover() {
216// kdDebug() << "GameOver" << endl; 216// kdDebug() << "GameOver" << endl;
217 if (stone->hasBonus()) { 217 if (stone->hasBonus()) {
218 QMessageBox::information(this,i18n("Game won"), 218 QMessageBox::information(this,i18n("Game won"),
219 i18n("<qt>You even removed the last stone, great job! " 219 i18n("<qt>You even removed the last stone, great job! "
220 "This gave you a score of %1 in total.</qt>").arg(stone->score())); 220 "This gave you a score of %1 in total.</qt>").arg(stone->score()));
221 } else { 221 } else {
222 QMessageBox::information(this,i18n("Game over"), 222 QMessageBox::information(this,i18n("Game over"),
223 i18n("<qt>There are no more removeable stones. " 223 i18n("<qt>There are no more removeable stones. "
224 "You got a score of %1 in total.</qt>").arg(stone->score())); 224 "You got a score of %1 in total.</qt>").arg(stone->score()));
225 } 225 }
226 stone->unmark(); 226 stone->unmark();
227} 227}
228 228
229void ZSameWidget::desktop_widget(int *f)const{ 229void ZSameWidget::desktop_widget(int *f)const{
230 230
231 QWidget* wid = QApplication::desktop(); 231 QWidget* wid = QApplication::desktop();
232 /* width > height landscape mode */ 232 /* width > height landscape mode */
233 if ( wid->width() > wid->height() ) { 233 if ( wid->width() > wid->height() ) {
234 f[0]=15; 234 f[0]=15;
235 f[1]=9; 235 f[1]=9;
236 } 236 }
237 /* normal */ 237 /* normal */
238 else{ 238 else{
239 f[0]=12; 239 f[0]=12;
240 f[1]=13; 240 f[1]=13;
241 } 241 }
242} 242}
243 243
244 244