summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/backgammon/moveengine.cpp6
-rw-r--r--noncore/games/kbill/UI.cpp31
-rw-r--r--noncore/games/kcheckers/echeckers.cpp12
-rw-r--r--noncore/games/kcheckers/rcheckers.cpp36
-rw-r--r--noncore/settings/sysinfo/contrib/fft.c2
-rw-r--r--noncore/styles/theme/othemebase.cpp2
6 files changed, 51 insertions, 38 deletions
diff --git a/noncore/games/backgammon/moveengine.cpp b/noncore/games/backgammon/moveengine.cpp
index a4145cc..b102258 100644
--- a/noncore/games/backgammon/moveengine.cpp
+++ b/noncore/games/backgammon/moveengine.cpp
@@ -8,140 +8,142 @@ MoveEngine::MoveEngine()
8{ 8{
9 int offset=7; 9 int offset=7;
10 int a=0; //counter variable 10 int a=0; //counter variable
11 int xfill[]={210,185,170,155,140,125,110,85,70,55,40,25,10,10,25,40,55,70,85,110,125,140,155,170,185,210}; 11 int xfill[]={210,185,170,155,140,125,110,85,70,55,40,25,10,10,25,40,55,70,85,110,125,140,155,170,185,210};
12 for(a=0;a<26;a++) 12 for(a=0;a<26;a++)
13 { 13 {
14 x_coord[a]=xfill[a]; 14 x_coord[a]=xfill[a];
15 } 15 }
16 16
17 int yfill[]={10,25,40,55,70,10+offset,25+offset,40+offset,55+offset,25,40,55, 25+offset,40+offset,40}; 17 int yfill[]={10,25,40,55,70,10+offset,25+offset,40+offset,55+offset,25,40,55, 25+offset,40+offset,40};
18 int zfill[]={1,1,1,1,1,2,2,2,2,3,3,3,4,4,5}; 18 int zfill[]={1,1,1,1,1,2,2,2,2,3,3,3,4,4,5};
19 for(a=0;a<15;a++) 19 for(a=0;a<15;a++)
20 { 20 {
21 yup_coord[a]=yfill[a]; 21 yup_coord[a]=yfill[a];
22 ylow_coord[a]=185-(yfill[a]); 22 ylow_coord[a]=185-(yfill[a]);
23 z_coord[a]=zfill[a]; 23 z_coord[a]=zfill[a];
24 } 24 }
25 for(a=0;a<5;a++) 25 for(a=0;a<5;a++)
26 { 26 {
27 if(a<3) 27 if(a<3)
28 { 28 {
29 x_fin1[a]=65+a*15; 29 x_fin1[a]=65+a*15;
30 x_fin2[a]=155-a*15; 30 x_fin2[a]=155-a*15;
31 } 31 }
32 y_fin[a]=225-a*5; 32 y_fin[a]=225-a*5;
33 } 33 }
34 z_fin=1; 34 z_fin=1;
35 35
36 reset(); 36 reset();
37} 37}
38 38
39MoveEngine::~MoveEngine() 39MoveEngine::~MoveEngine()
40{} 40{}
41 41
42void MoveEngine::position(Pieces& pieces,bool non_qte) 42void MoveEngine::position(Pieces& pieces,bool non_qte)
43{ 43{
44 int player1_counter=0; 44 int player1_counter=0;
45 int player2_counter=0; 45 int player2_counter=0;
46 46
47 //non qte styles are smaller !! 47 //non qte styles are smaller !!
48 int offset=(non_qte) ? 5 : 0; 48 int offset=(non_qte) ? 5 : 0;
49 49
50 for(int a=0;a<28;a++) 50 for(int a=0;a<28;a++)
51 { 51 {
52 for(int b=0;b<abs(population[a].total);b++) 52 for(int b=0;b<abs(population[a].total);b++)
53 { 53 {
54 if(population[a].total>0) //player 1 pieces 54 if(population[a].total>0) //player 1 pieces
55 { 55 {
56 pieces.player1[player1_counter].x=x_coord[a]-offset; 56 if (a < 26)
57 pieces.player1[player1_counter].x=x_coord[a]-offset;
57 if(a>=0 && a<13) 58 if(a>=0 && a<13)
58 { 59 {
59 pieces.player1[player1_counter].y=yup_coord[b]-offset; 60 pieces.player1[player1_counter].y=yup_coord[b]-offset;
60 pieces.player1[player1_counter].z=z_coord[b]; 61 pieces.player1[player1_counter].z=z_coord[b];
61 pieces.player1[player1_counter].side=false; 62 pieces.player1[player1_counter].side=false;
62 player1_counter++; 63 player1_counter++;
63 } 64 }
64 else if(a>12 && a<26) 65 else if(a>12 && a<26)
65 { 66 {
66 pieces.player1[player1_counter].y=ylow_coord[b]-offset; 67 pieces.player1[player1_counter].y=ylow_coord[b]-offset;
67 pieces.player1[player1_counter].z=z_coord[b]; 68 pieces.player1[player1_counter].z=z_coord[b];
68 pieces.player1[player1_counter].side=false; 69 pieces.player1[player1_counter].side=false;
69 player1_counter++; 70 player1_counter++;
70 } 71 }
71 else if(a==26) 72 else if(a==26)
72 { 73 {
73 if(b<5) 74 if(b<5)
74 { 75 {
75 pieces.player1[player1_counter].x=x_fin1[0]-offset; 76 pieces.player1[player1_counter].x=x_fin1[0]-offset;
76 pieces.player1[player1_counter].y=y_fin[b]-offset; 77 pieces.player1[player1_counter].y=y_fin[b]-offset;
77 pieces.player1[player1_counter].z=z_fin; 78 pieces.player1[player1_counter].z=z_fin;
78 } 79 }
79 else if(b>=5 && b<10) 80 else if(b>=5 && b<10)
80 { 81 {
81 pieces.player1[player1_counter].x=x_fin1[1]-offset; 82 pieces.player1[player1_counter].x=x_fin1[1]-offset;
82 pieces.player1[player1_counter].y=y_fin[b-5]-offset; 83 pieces.player1[player1_counter].y=y_fin[b-5]-offset;
83 pieces.player1[player1_counter].z=z_fin; 84 pieces.player1[player1_counter].z=z_fin;
84 } 85 }
85 else 86 else
86 { 87 {
87 pieces.player1[player1_counter].x=x_fin1[2]-offset; 88 pieces.player1[player1_counter].x=x_fin1[2]-offset;
88 pieces.player1[player1_counter].y=y_fin[b-10]-offset; 89 pieces.player1[player1_counter].y=y_fin[b-10]-offset;
89 pieces.player1[player1_counter].z=z_fin; 90 pieces.player1[player1_counter].z=z_fin;
90 } 91 }
91 pieces.player1[player1_counter].side=true; 92 pieces.player1[player1_counter].side=true;
92 player1_counter++; 93 player1_counter++;
93 94
94 } 95 }
95 } 96 }
96 97
97 else if(population[a].total<0) //player 2 pieces 98 else if(population[a].total<0) //player 2 pieces
98 { 99 {
99 pieces.player2[player2_counter].x=x_coord[a]-offset; 100 if (a < 26)
101 pieces.player2[player2_counter].x=x_coord[a]-offset;
100 if(a>=0 && a<13) 102 if(a>=0 && a<13)
101 { 103 {
102 pieces.player2[player2_counter].y=yup_coord[b]-offset; 104 pieces.player2[player2_counter].y=yup_coord[b]-offset;
103 pieces.player2[player2_counter].z=z_coord[b]; 105 pieces.player2[player2_counter].z=z_coord[b];
104 pieces.player2[player2_counter].side=false; 106 pieces.player2[player2_counter].side=false;
105 player2_counter++; 107 player2_counter++;
106 } 108 }
107 else if(a>12 && a<26) 109 else if(a>12 && a<26)
108 { 110 {
109 pieces.player2[player2_counter].y=ylow_coord[b]-offset; 111 pieces.player2[player2_counter].y=ylow_coord[b]-offset;
110 pieces.player2[player2_counter].z=z_coord[b]; 112 pieces.player2[player2_counter].z=z_coord[b];
111 pieces.player2[player2_counter].side=false; 113 pieces.player2[player2_counter].side=false;
112 player2_counter++; 114 player2_counter++;
113 } 115 }
114 else if(a==27) 116 else if(a==27)
115 { 117 {
116 if(b<5) 118 if(b<5)
117 { 119 {
118 pieces.player2[player2_counter].x=x_fin2[0]-offset; 120 pieces.player2[player2_counter].x=x_fin2[0]-offset;
119 pieces.player2[player2_counter].y=y_fin[b]-offset; 121 pieces.player2[player2_counter].y=y_fin[b]-offset;
120 pieces.player2[player2_counter].z=z_fin; 122 pieces.player2[player2_counter].z=z_fin;
121 } 123 }
122 else if(b>=5 && b<10) 124 else if(b>=5 && b<10)
123 { 125 {
124 pieces.player2[player2_counter].x=x_fin2[1]-offset; 126 pieces.player2[player2_counter].x=x_fin2[1]-offset;
125 pieces.player2[player2_counter].y=y_fin[b-5]-offset; 127 pieces.player2[player2_counter].y=y_fin[b-5]-offset;
126 pieces.player2[player2_counter].z=z_fin; 128 pieces.player2[player2_counter].z=z_fin;
127 } 129 }
128 else 130 else
129 { 131 {
130 pieces.player2[player2_counter].x=x_fin2[2]-offset; 132 pieces.player2[player2_counter].x=x_fin2[2]-offset;
131 pieces.player2[player2_counter].y=y_fin[b-10]-offset; 133 pieces.player2[player2_counter].y=y_fin[b-10]-offset;
132 pieces.player2[player2_counter].z=z_fin; 134 pieces.player2[player2_counter].z=z_fin;
133 } 135 }
134 pieces.player2[player2_counter].side=true; 136 pieces.player2[player2_counter].side=true;
135 player2_counter++; 137 player2_counter++;
136 138
137 } 139 }
138 } 140 }
139 } 141 }
140 } 142 }
141} 143}
142 144
143void MoveEngine::diceroll(const int& newplayer,const int& face1,const int& face2,const int& face3,const int& face4,bool computer) 145void MoveEngine::diceroll(const int& newplayer,const int& face1,const int& face2,const int& face3,const int& face4,bool computer)
144{ 146{
145 checkstate(); 147 checkstate();
146 player=newplayer; 148 player=newplayer;
147 otherplayer=(player==1) ? 2 : 1; 149 otherplayer=(player==1) ? 2 : 1;
diff --git a/noncore/games/kbill/UI.cpp b/noncore/games/kbill/UI.cpp
index 611cebf..a49c3c1 100644
--- a/noncore/games/kbill/UI.cpp
+++ b/noncore/games/kbill/UI.cpp
@@ -23,118 +23,117 @@
23 23
24#include "inputbox.h" 24#include "inputbox.h"
25 25
26/**************************/ 26/**************************/
27/* Timer control routines */ 27/* Timer control routines */
28/**************************/ 28/**************************/
29 29
30UI::~UI() { 30UI::~UI() {
31 paint.end(); 31 paint.end();
32 delete pix; 32 delete pix;
33} 33}
34 34
35void UI::restart_timer() { 35void UI::restart_timer() {
36 field->startTimer(); 36 field->startTimer();
37} 37}
38 38
39void UI::kill_timer() { 39void UI::kill_timer() {
40 field->stopTimer(); 40 field->stopTimer();
41} 41}
42 42
43/*******************/ 43/*******************/
44/* Window routines */ 44/* Window routines */
45/*******************/ 45/*******************/
46 46
47void UI::initialize(int *argc, char **argv) { 47void UI::initialize(int *argc, char **argv) {
48 #ifdef KDEVER 48 #ifdef KDEVER
49 app = new KApplication(*argc, argv, "kbill"); 49 app = new KApplication(*argc, argv, "kbill");
50 #endif 50 #endif
51 app = new QPEApplication(*argc, argv); 51 app = new QPEApplication(*argc, argv);
52} 52}
53 53
54void UI::graph_init() { 54void UI::graph_init() {
55 pix = new QPixmap(Game::scrwidth, Game::scrheight); 55 pix = new QPixmap(Game::scrwidth, Game::scrheight);
56 paint.begin(pix, field); 56 paint.begin(pix, field);
57 paint.setPen(QPen(Qt::black, 3)); 57 paint.setPen(QPen(Qt::black, 3));
58} 58}
59 59
60void UI::make_mainwin() { 60void UI::make_mainwin() {
61 main = new KBill(); 61 main = new KBill();
62 app->showMainWidget(main,true); 62 app->showMainWidget(main,true);
63 main->showMaximized(); 63 main->showMaximized();
64 field = main->getField(); 64 field = main->getField();
65} 65}
66 66
67void UI::popup_dialog (int dialog) { 67void UI::popup_dialog (int dialog) {
68 kill_timer(); 68 kill_timer();
69 switch (dialog) { 69 switch (dialog) {
70 case Game::ENDGAME: 70 case Game::ENDGAME:
71 QMessageBox::message(("Endgame"), QT_TR_NOOP(endgamestr)); 71 QMessageBox::message(("Endgame"), QT_TR_NOOP(endgamestr));
72 break; 72 break;
73 case Game::HIGHSCORE: 73 case Game::HIGHSCORE:
74 //QMessageBox::message(("HighScore"), highscorestr); 74 break;
75 break; 75 case Game::ENTERNAME:
76 case Game::ENTERNAME: { 76 {
77 InputBox b(main, 0, ("Enter Name"), QT_TR_NOOP(enternamestr)); 77 InputBox b(main, 0, ("Enter Name"), QT_TR_NOOP(enternamestr));
78 bool state = b.exec() == 2; 78 bool state = b.exec() == 2;
79 char str[20], *nl; 79 char str[20], *nl;
80 strcpy(str, b.getText()); 80 strncpy(str, b.getText(), 19);
81 if (!str[0] || state) 81 if (!str[0] || state)
82 strcpy(str, "Anonymous"); 82 strcpy(str, "Anonymous");
83 else if ((nl = strchr(str, '\n'))) 83 else if ((nl = strchr(str, '\n')))
84 *nl = '\0'; 84 *nl = '\0';
85 if (strlen(str) > 20) 85 if (strlen(str) > 19)
86 str[20] = 0; /* truncate string if too long */ 86 str[19] = '\0'; /* truncate/terminate the string if it is too long */
87 // scores.recalc(str); 87 }
88 } 88 break;
89 break;
90 case Game::SCORE: 89 case Game::SCORE:
91 QMessageBox::message(("Score"), scorestr); 90 QMessageBox::message(("Score"), scorestr);
92 break; 91 break;
93 } 92 }
94 restart_timer(); 93 restart_timer();
95} 94}
96 95
97/*********************/ 96/*********************/
98/* Graphics routines */ 97/* Graphics routines */
99/*********************/ 98/*********************/
100 99
101void UI::set_cursor(int cursor) { 100void UI::set_cursor(int cursor) {
102 QCursor *cur; 101 QCursor *cur;
103 switch (cursor) { 102 switch (cursor) {
104 case Game::BUCKETC: 103 case Game::BUCKETC:
105 cur = bucket.cursor.cursor; 104 cur = bucket.cursor.cursor;
106 break; 105 break;
107 case Game::DOWNC: 106 case Game::DOWNC:
108 cur = downcursor.cursor; 107 cur = downcursor.cursor;
109 break; 108 break;
110 case Game::DEFAULTC: 109 case Game::DEFAULTC:
111 cur = defaultcursor.cursor; 110 cur = defaultcursor.cursor;
112 break; 111 break;
113 default: 112 default:
114 cur = OS.cursor[cursor].cursor; 113 cur = OS.cursor[cursor].cursor;
115 } 114 }
116 field->setCursor(*cur); 115 field->setCursor(*cur);
117} 116}
118 117
119void UI::load_cursors() { 118void UI::load_cursors() {
120 defaultcursor.load("hand_up", MCursor::SEP_MASK); 119 defaultcursor.load("hand_up", MCursor::SEP_MASK);
121 field->setCursor(*defaultcursor.cursor); 120 field->setCursor(*defaultcursor.cursor);
122 downcursor.load("hand_down", MCursor::SEP_MASK); 121 downcursor.load("hand_down", MCursor::SEP_MASK);
123} 122}
124 123
125void UI::clear() { 124void UI::clear() {
126 paint.eraseRect(0, 0, field->width(), field->height()); 125 paint.eraseRect(0, 0, field->width(), field->height());
127} 126}
128 127
129void UI::refresh() { 128void UI::refresh() {
130 paint.flush(); 129 paint.flush();
131 field->setPixmap(pix); 130 field->setPixmap(pix);
132 field->repaint(FALSE); 131 field->repaint(FALSE);
133} 132}
134 133
135void UI::draw (Picture pict, int x, int y) { 134void UI::draw (Picture pict, int x, int y) {
136 paint.drawPixmap(x, y, *pict.pix); 135 paint.drawPixmap(x, y, *pict.pix);
137} 136}
138 137
139void UI::draw_centered (Picture pict) { 138void UI::draw_centered (Picture pict) {
140 draw(pict, (field->width() - pict.width) / 2, (field->height() - pict.height) / 2); 139 draw(pict, (field->width() - pict.width) / 2, (field->height() - pict.height) / 2);
diff --git a/noncore/games/kcheckers/echeckers.cpp b/noncore/games/kcheckers/echeckers.cpp
index 1146059..afe62eb 100644
--- a/noncore/games/kcheckers/echeckers.cpp
+++ b/noncore/games/kcheckers/echeckers.cpp
@@ -34,99 +34,99 @@ bool ECheckers::go1(int from,int field)
34 } 34 }
35 } 35 }
36 else 36 else
37 { 37 {
38 switch(board[from]) 38 switch(board[from])
39 { 39 {
40 case MAN1: 40 case MAN1:
41 if((to==(from-6))||(to==(from-5))) 41 if((to==(from-6))||(to==(from-5)))
42 { 42 {
43 board[from]=FREE; 43 board[from]=FREE;
44 if(to<10) board[to]=KING1; 44 if(to<10) board[to]=KING1;
45 else board[to]=MAN1; 45 else board[to]=MAN1;
46 return true; 46 return true;
47 } 47 }
48 return false; 48 return false;
49 case KING1: 49 case KING1:
50 if((to==(from-6))||(to==(from-5))|| 50 if((to==(from-6))||(to==(from-5))||
51 (to==(from+5))||(to==(from+6)) ) 51 (to==(from+5))||(to==(from+6)) )
52 { 52 {
53 board[from]=FREE; 53 board[from]=FREE;
54 board[to]=KING1; 54 board[to]=KING1;
55 return true; 55 return true;
56 } 56 }
57 return false; 57 return false;
58 } 58 }
59 } 59 }
60 return false; 60 return false;
61} 61}
62 62
63 63
64bool ECheckers::checkCapture1() 64bool ECheckers::checkCapture1()
65{ 65{
66 for(int i=6;i<48;i++) 66 for(int i=6;i<48;i++)
67 { 67 {
68 switch(board[i]) 68 switch(board[i])
69 { 69 {
70 case MAN1: 70 case MAN1:
71 if(board[i-6]==MAN2 || board[i-6]==KING2) 71 if(board[i-6]==MAN2 || board[i-6]==KING2)
72 if(board[i-12]==FREE) return true; 72 if(board[i-12]==FREE) return true;
73 if(board[i-5]==MAN2 || board[i-5]==KING2) 73 if(board[i-5]==MAN2 || board[i-5]==KING2)
74 if(board[i-10]==FREE) return true; 74 if(board[i-10]==FREE) return true;
75 break; 75 break;
76 case KING1: 76 case KING1:
77 if(board[i-6]==MAN2 || board[i-6]==KING2) 77 if(board[i-6]==MAN2 || board[i-6]==KING2)
78 if(board[i-12]==FREE) return true; 78 if(board[i-12]==FREE) return true;
79 if(board[i-5]==MAN2 || board[i-5]==KING2) 79 if(board[i-5]==MAN2 || board[i-5]==KING2)
80 if(board[i-10]==FREE) return true; 80 if(board[i-10]==FREE) return true;
81 if(board[i+5]==MAN2 || board[i+5]==KING2) 81 if(board[i+5]==MAN2 || board[i+5]==KING2)
82 if(board[i+10]==FREE) return true; 82 if(board[((i+10) < 54) ? i+10 : 53]==FREE) return true;
83 if(board[i+6]==MAN2 || board[i+6]==KING2) 83 if(board[i+6]==MAN2 || board[i+6]==KING2)
84 if(board[i+12]==FREE) return true; 84 if(board[((i+12) < 54) ? i+12 : 53]==FREE) return true;
85 } 85 }
86 } 86 }
87 return false; 87 return false;
88} 88}
89 89
90 90
91// Return TRUE if a course of the user true 91// Return TRUE if a course of the user true
92// Return FALSE if a course of the user incorrect 92// Return FALSE if a course of the user incorrect
93 93
94bool ECheckers::manCapture1(int from,int direction,bool &capture) 94bool ECheckers::manCapture1(int from,int direction,bool &capture)
95{ 95{
96 int i=from+direction; 96 int i=from+direction;
97 if(board[i]==MAN2 || board[i]==KING2) 97 if(board[i]==MAN2 || board[i]==KING2)
98 { 98 {
99 int k=i+direction; 99 int k=i+direction;
100 if(board[k]==FREE) 100 if(board[k]==FREE)
101 { 101 {
102 bool next=false; 102 bool next=false;
103 int save=board[i]; 103 int save=board[i];
104 board[from]=FREE; 104 board[from]=FREE;
105 board[i]=NONE; 105 board[i]=NONE;
106 106
107 if(k<10) 107 if(k<10)
108 { 108 {
109 board[k]=KING1; 109 board[k]=KING1;
110 if(kingCapture1(k,direction+11,next)) {board[i]=FREE;return true;} 110 if(kingCapture1(k,direction+11,next)) {board[i]=FREE;return true;}
111 } 111 }
112 else 112 else
113 { 113 {
114 board[k]=MAN1; 114 board[k]=MAN1;
115 if(manCapture1(k,UL,next)) {board[i]=FREE;return true;} 115 if(manCapture1(k,UL,next)) {board[i]=FREE;return true;}
116 if(manCapture1(k,UR,next)) {board[i]=FREE;return true;} 116 if(manCapture1(k,UR,next)) {board[i]=FREE;return true;}
117 } 117 }
118 118
119 if((!next) && k==to) {board[i]=FREE;return true;} 119 if((!next) && k==to) {board[i]=FREE;return true;}
120 120
121 board[k]=FREE; 121 board[k]=FREE;
122 board[i]=save; 122 board[i]=save;
123 board[from]=MAN1; 123 board[from]=MAN1;
124 capture=true; 124 capture=true;
125 } 125 }
126 } 126 }
127 return false; 127 return false;
128} 128}
129 129
130 130
131bool ECheckers::kingCapture1(int from,int direction,bool &capture) 131bool ECheckers::kingCapture1(int from,int direction,bool &capture)
132{ 132{
@@ -176,109 +176,109 @@ bool ECheckers::kingCapture1(int from,int direction,bool &capture)
176void ECheckers::kingMove2(int from,int &resMax) 176void ECheckers::kingMove2(int from,int &resMax)
177{ 177{
178 board[from]=FREE; 178 board[from]=FREE;
179 179
180 int i=from-6; 180 int i=from-6;
181 if(board[i]==FREE) 181 if(board[i]==FREE)
182 { 182 {
183 board[i]=KING2; 183 board[i]=KING2;
184 turn(resMax); 184 turn(resMax);
185 board[i]=FREE; 185 board[i]=FREE;
186 } 186 }
187 187
188 i=from-5; 188 i=from-5;
189 if(board[i]==FREE) 189 if(board[i]==FREE)
190 { 190 {
191 board[i]=KING2; 191 board[i]=KING2;
192 turn(resMax); 192 turn(resMax);
193 board[i]=FREE; 193 board[i]=FREE;
194 } 194 }
195 195
196 i=from+5; 196 i=from+5;
197 if(board[i]==FREE) 197 if(board[i]==FREE)
198 { 198 {
199 board[i]=KING2; 199 board[i]=KING2;
200 turn(resMax); 200 turn(resMax);
201 board[i]=FREE; 201 board[i]=FREE;
202 } 202 }
203 203
204 i=from+6; 204 i=from+6;
205 if(board[i]==FREE) 205 if(board[i]==FREE)
206 { 206 {
207 board[i]=KING2; 207 board[i]=KING2;
208 turn(resMax); 208 turn(resMax);
209 board[i]=FREE; 209 board[i]=FREE;
210 } 210 }
211 211
212 board[from]=KING2; 212 board[from]=KING2;
213} 213}
214 214
215 215
216bool ECheckers::checkCapture2() 216bool ECheckers::checkCapture2()
217{ 217{
218 for(int i=6;i<48;i++) 218 for(int i=6;i<48;i++)
219 { 219 {
220 switch(board[i]) 220 switch(board[i])
221 { 221 {
222 case MAN2: 222 case MAN2:
223 if(board[i+5]==MAN1 || board[i+5]==KING1) 223 if(board[i+5]==MAN1 || board[i+5]==KING1)
224 if(board[i+10]==FREE) return true; 224 if(board[((i+10) < 54) ? i+10 : 53]==FREE) return true;
225 if(board[i+6]==MAN1 || board[i+6]==KING1) 225 if(board[i+6]==MAN1 || board[i+6]==KING1)
226 if(board[i+12]==FREE) return true; 226 if(board[((i+12) < 54) ? i+12 : 53]==FREE) return true;
227 break; 227 break;
228 case KING2: 228 case KING2:
229 if(board[i-6]==MAN1 || board[i-6]==KING1) 229 if(board[i-6]==MAN1 || board[i-6]==KING1)
230 if(board[i-12]==FREE) return true; 230 if(board[i-12]==FREE) return true;
231 if(board[i-5]==MAN1 || board[i-5]==KING1) 231 if(board[i-5]==MAN1 || board[i-5]==KING1)
232 if(board[i-10]==FREE) return true; 232 if(board[i-10]==FREE) return true;
233 if(board[i+5]==MAN1 || board[i+5]==KING1) 233 if(board[i+5]==MAN1 || board[i+5]==KING1)
234 if(board[i+10]==FREE) return true; 234 if(board[((i+10) < 54) ? i+10 : 53]==FREE) return true;
235 if(board[i+6]==MAN1 || board[i+6]==KING1) 235 if(board[i+6]==MAN1 || board[i+6]==KING1)
236 if(board[i+12]==FREE) return true; 236 if(board[((i+12) < 54) ? i+12 : 53]==FREE) return true;
237 } 237 }
238 } 238 }
239 return false; 239 return false;
240} 240}
241 241
242 242
243// Return TRUE if it is possible to capture 243// Return TRUE if it is possible to capture
244// Return FALSE if it is impossible to capture 244// Return FALSE if it is impossible to capture
245 245
246bool ECheckers::manCapture2(int from,int &resMax) 246bool ECheckers::manCapture2(int from,int &resMax)
247{ 247{
248 bool capture=false; 248 bool capture=false;
249 249
250 int i=from+5; 250 int i=from+5;
251 if(board[i]==MAN1 || board[i]==KING1) 251 if(board[i]==MAN1 || board[i]==KING1)
252 { 252 {
253 int k=from+10; 253 int k=from+10;
254 if(board[k]==FREE) 254 if(board[k]==FREE)
255 { 255 {
256 int save=board[i]; 256 int save=board[i];
257 board[from]=FREE; 257 board[from]=FREE;
258 board[i]=NONE; 258 board[i]=NONE;
259 resMax--; 259 resMax--;
260 if(from>32) 260 if(from>32)
261 { 261 {
262 board[k]=KING2; 262 board[k]=KING2;
263 if(!kingCapture2(k,UL,resMax)) turn(resMax,true); 263 if(!kingCapture2(k,UL,resMax)) turn(resMax,true);
264 } 264 }
265 else 265 else
266 { 266 {
267 board[k]=MAN2; 267 board[k]=MAN2;
268 if(!manCapture2(k,resMax)) turn(resMax,true); 268 if(!manCapture2(k,resMax)) turn(resMax,true);
269 } 269 }
270 resMax++; 270 resMax++;
271 board[k]=FREE; 271 board[k]=FREE;
272 board[i]=save; 272 board[i]=save;
273 board[from]=MAN2; 273 board[from]=MAN2;
274 capture=true; 274 capture=true;
275 } 275 }
276 } 276 }
277 277
278 i=from+6; 278 i=from+6;
279 if(board[i]==MAN1 || board[i]==KING1) 279 if(board[i]==MAN1 || board[i]==KING1)
280 { 280 {
281 int k=from+12; 281 int k=from+12;
282 if(board[k]==FREE) 282 if(board[k]==FREE)
283 { 283 {
284 int save=board[i]; 284 int save=board[i];
diff --git a/noncore/games/kcheckers/rcheckers.cpp b/noncore/games/kcheckers/rcheckers.cpp
index a1c7afa..d808780 100644
--- a/noncore/games/kcheckers/rcheckers.cpp
+++ b/noncore/games/kcheckers/rcheckers.cpp
@@ -67,117 +67,123 @@ bool RCheckers::go1(int from,int field)
67 board[from]=FREE; 67 board[from]=FREE;
68 board[to]=KING1; 68 board[to]=KING1;
69 return true; 69 return true;
70 } 70 }
71 else if(board[i]==FREE) continue; 71 else if(board[i]==FREE) continue;
72 else break; 72 else break;
73 } 73 }
74 for(int i=from+5;;i+=5) 74 for(int i=from+5;;i+=5)
75 { 75 {
76 if(i==to) 76 if(i==to)
77 { 77 {
78 board[from]=FREE; 78 board[from]=FREE;
79 board[to]=KING1; 79 board[to]=KING1;
80 return true; 80 return true;
81 } 81 }
82 else if(board[i]==FREE) continue; 82 else if(board[i]==FREE) continue;
83 else break; 83 else break;
84 } 84 }
85 for(int i=from+6;;i+=6) 85 for(int i=from+6;;i+=6)
86 { 86 {
87 if(i==to) 87 if(i==to)
88 { 88 {
89 board[from]=FREE; 89 board[from]=FREE;
90 board[to]=KING1; 90 board[to]=KING1;
91 return true; 91 return true;
92 } 92 }
93 else if(board[i]==FREE) continue; 93 else if(board[i]==FREE) continue;
94 else break; 94 else break;
95 } 95 }
96 return false; 96 return false;
97 } 97 }
98 } 98 }
99 return false; 99 return false;
100} 100}
101 101
102 102
103bool RCheckers::checkCapture1() 103bool RCheckers::checkCapture1()
104{ 104{
105 for(int i=6;i<48;i++) 105 for(int i=6;i<48;i++)
106 { 106 {
107 switch(board[i]) 107 switch(board[i])
108 { 108 {
109 case MAN1: 109 case MAN1:
110 if(board[i-6]==MAN2 || board[i-6]==KING2) 110 if(board[i-6]==MAN2 || board[i-6]==KING2)
111 if(board[i-12]==FREE) return true; 111 if(board[i-12]==FREE) return true;
112 if(board[i-5]==MAN2 || board[i-5]==KING2) 112 if(board[i-5]==MAN2 || board[i-5]==KING2)
113 if(board[i-10]==FREE) return true; 113 if(board[i-10]==FREE) return true;
114 if(board[i+5]==MAN2 || board[i+5]==KING2) 114 if(board[i+5]==MAN2 || board[i+5]==KING2)
115 if(board[i+10]==FREE) return true; 115 if(board[((i+10) < 54) ? i+10 : 53]==FREE) return true;
116 if(board[i+6]==MAN2 || board[i+6]==KING2) 116 if(board[i+6]==MAN2 || board[i+6]==KING2)
117 if(board[i+12]==FREE) return true; 117 if(board[((i+12) < 54) ? i+12 : 53]==FREE) return true;
118 break; 118 break;
119 case KING1: 119 case KING1:
120 int k; 120 int k;
121 for(k=i-6;board[k]==FREE;k-=6); 121 for(k=i-6;board[k]==FREE;k-=6);
122 if(board[k]==MAN2 || board[k]==KING2) 122 if(board[k]==MAN2 || board[k]==KING2)
123 if(board[k-6]==FREE) return true; 123 if(board[k-6]==FREE) return true;
124 124
125 for(k=i-5;board[k]==FREE;k-=5); 125 for(k=i-5;board[k]==FREE;k-=5);
126 if(board[k]==MAN2 || board[k]==KING2) 126 if(board[k]==MAN2 || board[k]==KING2)
127 if(board[k-5]==FREE) return true; 127 if(board[k-5]==FREE) return true;
128 128
129 for(k=i+5;board[k]==FREE;k+=5); 129 for(k=i+5;board[k]==FREE;k+=5) {
130 if (k >= 49)
131 break;
132 }
130 if(board[k]==MAN2 || board[k]==KING2) 133 if(board[k]==MAN2 || board[k]==KING2)
131 if(board[k+5]==FREE) return true; 134 if(board[((k+5) < 54) ? k+5 : 53]==FREE) return true;
132 135
133 for(k=i+6;board[k]==FREE;k+=6); 136 for(k=i+6;board[k]==FREE;k+=6) {
137 if (k >=48)
138 break;
139 }
134 if(board[k]==MAN2 || board[k]==KING2) 140 if(board[k]==MAN2 || board[k]==KING2)
135 if(board[k+6]==FREE) return true; 141 if(board[((k+6) < 54) ? k+6 : 53]==FREE) return true;
136 } 142 }
137 } 143 }
138 return false; 144 return false;
139} 145}
140 146
141 147
142// Return TRUE if a course of the user true 148// Return TRUE if a course of the user true
143// Return FALSE if a course of the user incorrect 149// Return FALSE if a course of the user incorrect
144 150
145bool RCheckers::manCapture1(int from,int direction,bool &capture) 151bool RCheckers::manCapture1(int from,int direction,bool &capture)
146{ 152{
147 int i=from+direction; 153 int i=from+direction;
148 if(board[i]==MAN2 || board[i]==KING2) 154 if(board[i]==MAN2 || board[i]==KING2)
149 { 155 {
150 int k=i+direction; 156 int k=i+direction;
151 if(board[k]==FREE) 157 if(board[k]==FREE)
152 { 158 {
153 bool next=false; 159 bool next=false;
154 int save=board[i]; 160 int save=board[i];
155 board[from]=FREE; 161 board[from]=FREE;
156 board[i]=NONE; 162 board[i]=NONE;
157 163
158 if(k<10) 164 if(k<10)
159 { 165 {
160 board[k]=KING1; 166 board[k]=KING1;
161 if(kingCapture1(k,direction+11,next)) {board[i]=FREE;return true;} 167 if(kingCapture1(k,direction+11,next)) {board[i]=FREE;return true;}
162 } 168 }
163 else 169 else
164 { 170 {
165 board[k]=MAN1; 171 board[k]=MAN1;
166 if(direction==UL || direction==DR) 172 if(direction==UL || direction==DR)
167 { 173 {
168 if(manCapture1(k,UR,next)) {board[i]=FREE;return true;} 174 if(manCapture1(k,UR,next)) {board[i]=FREE;return true;}
169 if(manCapture1(k,DL,next)) {board[i]=FREE;return true;} 175 if(manCapture1(k,DL,next)) {board[i]=FREE;return true;}
170 } 176 }
171 else 177 else
172 { 178 {
173 if(manCapture1(k,UL,next)) {board[i]=FREE;return true;} 179 if(manCapture1(k,UL,next)) {board[i]=FREE;return true;}
174 if(manCapture1(k,DR,next)) {board[i]=FREE;return true;} 180 if(manCapture1(k,DR,next)) {board[i]=FREE;return true;}
175 } 181 }
176 if(manCapture1(k,direction,next)) {board[i]=FREE;return true;} 182 if(manCapture1(k,direction,next)) {board[i]=FREE;return true;}
177 } 183 }
178 184
179 if((!next) && k==to) {board[i]=FREE;return true;} 185 if((!next) && k==to) {board[i]=FREE;return true;}
180 186
181 board[k]=FREE; 187 board[k]=FREE;
182 board[i]=save; 188 board[i]=save;
183 board[from]=MAN1; 189 board[from]=MAN1;
@@ -241,117 +247,123 @@ bool RCheckers::kingCapture1(int from,int direction,bool &capture)
241// Computer Functions 247// Computer Functions
242// 248//
243//////////////////////////////////////////////////// 249////////////////////////////////////////////////////
244 250
245 251
246void RCheckers::kingMove2(int from,int &resMax) 252void RCheckers::kingMove2(int from,int &resMax)
247{ 253{
248 board[from]=FREE; 254 board[from]=FREE;
249 for(int i=from-6;board[i]==FREE;i-=6) 255 for(int i=from-6;board[i]==FREE;i-=6)
250 { 256 {
251 board[i]=KING2; 257 board[i]=KING2;
252 turn(resMax); 258 turn(resMax);
253 board[i]=FREE; 259 board[i]=FREE;
254 } 260 }
255 for(int i=from-5;board[i]==FREE;i-=5) 261 for(int i=from-5;board[i]==FREE;i-=5)
256 { 262 {
257 board[i]=KING2; 263 board[i]=KING2;
258 turn(resMax); 264 turn(resMax);
259 board[i]=FREE; 265 board[i]=FREE;
260 } 266 }
261 for(int i=from+5;board[i]==FREE;i+=5) 267 for(int i=from+5;board[i]==FREE;i+=5)
262 { 268 {
263 board[i]=KING2; 269 board[i]=KING2;
264 turn(resMax); 270 turn(resMax);
265 board[i]=FREE; 271 board[i]=FREE;
266 } 272 }
267 for(int i=from+6;board[i]==FREE;i+=6) 273 for(int i=from+6;board[i]==FREE;i+=6)
268 { 274 {
269 board[i]=KING2; 275 board[i]=KING2;
270 turn(resMax); 276 turn(resMax);
271 board[i]=FREE; 277 board[i]=FREE;
272 } 278 }
273 board[from]=KING2; 279 board[from]=KING2;
274} 280}
275 281
276 282
277bool RCheckers::checkCapture2() 283bool RCheckers::checkCapture2()
278{ 284{
279 for(int i=6;i<48;i++) 285 for(int i=6;i<48;i++)
280 { 286 {
281 switch(board[i]) 287 switch(board[i])
282 { 288 {
283 case MAN2: 289 case MAN2:
284 if(board[i-6]==MAN1 || board[i-6]==KING1) 290 if(board[i-6]==MAN1 || board[i-6]==KING1)
285 if(board[i-12]==FREE) return true; 291 if(board[i-12]==FREE) return true;
286 if(board[i-5]==MAN1 || board[i-5]==KING1) 292 if(board[i-5]==MAN1 || board[i-5]==KING1)
287 if(board[i-10]==FREE) return true; 293 if(board[i-10]==FREE) return true;
288 if(board[i+5]==MAN1 || board[i+5]==KING1) 294 if(board[i+5]==MAN1 || board[i+5]==KING1)
289 if(board[i+10]==FREE) return true; 295 if(board[((i+10) < 54) ? i+10 : 53]==FREE) return true;
290 if(board[i+6]==MAN1 || board[i+6]==KING1) 296 if(board[i+6]==MAN1 || board[i+6]==KING1)
291 if(board[i+12]==FREE) return true; 297 if(board[((i+12) < 54) ? i+12 : 53]==FREE) return true;
292 break; 298 break;
293 case KING2: 299 case KING2:
294 int k; 300 int k;
295 for(k=i-6;board[k]==FREE;k-=6); 301 for(k=i-6;board[k]==FREE;k-=6);
296 if(board[k]==MAN1 || board[k]==KING1) 302 if(board[k]==MAN1 || board[k]==KING1)
297 if(board[k-6]==FREE) return true; 303 if(board[k-6]==FREE) return true;
298 304
299 for(k=i-5;board[k]==FREE;k-=5); 305 for(k=i-5;board[k]==FREE;k-=5);
300 if(board[k]==MAN1 || board[k]==KING1) 306 if(board[k]==MAN1 || board[k]==KING1)
301 if(board[k-5]==FREE) return true; 307 if(board[k-5]==FREE) return true;
302 308
303 for(k=i+5;board[k]==FREE;k+=5); 309 for(k=i+5;board[k]==FREE;k+=5) {
310 if (k>=49)
311 break;
312 }
304 if(board[k]==MAN1 || board[k]==KING1) 313 if(board[k]==MAN1 || board[k]==KING1)
305 if(board[k+5]==FREE) return true; 314 if(board[((k+5) < 54) ? k+5 : 53]==FREE) return true;
306 315
307 for(k=i+6;board[k]==FREE;k+=6); 316 for(k=i+6;board[k]==FREE;k+=6) {
317 if (k>=48)
318 break;
319 }
308 if(board[k]==MAN1 || board[k]==KING1) 320 if(board[k]==MAN1 || board[k]==KING1)
309 if(board[k+6]==FREE) return true; 321 if(board[((k+6) < 54) ? k+6 : 53]==FREE) return true;
310 } 322 }
311 } 323 }
312 return false; 324 return false;
313} 325}
314 326
315 327
316// Return TRUE if it is possible to capture 328// Return TRUE if it is possible to capture
317// Return FALSE if it is impossible to capture 329// Return FALSE if it is impossible to capture
318 330
319bool RCheckers::manCapture2(int from,int &resMax) 331bool RCheckers::manCapture2(int from,int &resMax)
320{ 332{
321 bool capture=false; 333 bool capture=false;
322 334
323 int i=from-6; 335 int i=from-6;
324 if(board[i]==MAN1 || board[i]==KING1) 336 if(board[i]==MAN1 || board[i]==KING1)
325 { 337 {
326 int k=from-12; 338 int k=from-12;
327 if(board[k]==FREE) 339 if(board[k]==FREE)
328 { 340 {
329 int save=board[i]; 341 int save=board[i];
330 board[from]=FREE; 342 board[from]=FREE;
331 board[i]=NONE; 343 board[i]=NONE;
332 board[k]=MAN2; 344 board[k]=MAN2;
333 resMax--; 345 resMax--;
334 if(!manCapture2(k,resMax)) turn(resMax,true); 346 if(!manCapture2(k,resMax)) turn(resMax,true);
335 resMax++; 347 resMax++;
336 board[k]=FREE; 348 board[k]=FREE;
337 board[i]=save; 349 board[i]=save;
338 board[from]=MAN2; 350 board[from]=MAN2;
339 capture=true; 351 capture=true;
340 } 352 }
341 } 353 }
342 354
343 i=from-5; 355 i=from-5;
344 if(board[i]==MAN1 || board[i]==KING1) 356 if(board[i]==MAN1 || board[i]==KING1)
345 { 357 {
346 int k=from-10; 358 int k=from-10;
347 if(board[k]==FREE) 359 if(board[k]==FREE)
348 { 360 {
349 int save=board[i]; 361 int save=board[i];
350 board[from]=FREE; 362 board[from]=FREE;
351 board[i]=NONE; 363 board[i]=NONE;
352 board[k]=MAN2; 364 board[k]=MAN2;
353 resMax--; 365 resMax--;
354 if(!manCapture2(k,resMax)) turn(resMax,true); 366 if(!manCapture2(k,resMax)) turn(resMax,true);
355 resMax++; 367 resMax++;
356 board[k]=FREE; 368 board[k]=FREE;
357 board[i]=save; 369 board[i]=save;
diff --git a/noncore/settings/sysinfo/contrib/fft.c b/noncore/settings/sysinfo/contrib/fft.c
index 01a1b26..60ee27d 100644
--- a/noncore/settings/sysinfo/contrib/fft.c
+++ b/noncore/settings/sysinfo/contrib/fft.c
@@ -1,80 +1,80 @@
1 1
2// ****************************************************************** 2// ******************************************************************
3// Copyright (c) 2002- Satoshi, All Rights Reserved. 3// Copyright (c) 2002- Satoshi, All Rights Reserved.
4// 4//
5// This program is free software; you can redistribute it and/or 5// This program is free software; you can redistribute it and/or
6// modify it under the terms of the GNU General Public License 6// modify it under the terms of the GNU General Public License
7// as published by the Free Software Foundation; either version 2 7// as published by the Free Software Foundation; either version 2
8// of the License, or (at your option) any later version. 8// of the License, or (at your option) any later version.
9// 9//
10// This program is distributed in the hope that it will be useful, 10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of 11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details. 13// GNU General Public License for more details.
14// 14//
15// You should have received a copy of the GNU General Public License 15// You should have received a copy of the GNU General Public License
16// along with this program; if not, write to the Free Software 16// along with this program; if not, write to the Free Software
17// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18// 18//
19// 19//
20// Author : Satoshi ( af230533@im07.alpha-net.ne.jp ) 20// Author : Satoshi ( af230533@im07.alpha-net.ne.jp )
21// ****************************************************************** 21// ******************************************************************
22 22
23//*********************************************************************** 23//***********************************************************************
24// ¹â®¥Õ¡¼¥ê¥¨ÊÑ´¹¡Ê£Æ£Æ£Ô¡Ë 24// ¹â®¥Õ¡¼¥ê¥¨ÊÑ´¹¡Ê£Æ£Æ£Ô¡Ë
25// ¹¹¤Ë¥¹¥Ô¡¼¥É¡¦¥¢¥Ã¥×¤¹¤ë¤Ë¤Ï£Ã£Ï£Ó¤ò¸ÇÄê¤Ç»ý¤Ä¤³¤È¡ª 25// ¹¹¤Ë¥¹¥Ô¡¼¥É¡¦¥¢¥Ã¥×¤¹¤ë¤Ë¤Ï£Ã£Ï£Ó¤ò¸ÇÄê¤Ç»ý¤Ä¤³¤È¡ª
26// 26//
27// Copyright (C) Satoshi 1994-2002 All rights reserved. 27// Copyright (C) Satoshi 1994-2002 All rights reserved.
28// *********************************************************************** 28// ***********************************************************************
29 29
30#include <math.h> 30#include <math.h>
31 31
32#define FFT_TEST_COUNT 500 // Bench FFT 32#define FFT_TEST_COUNT 332 // Bench FFT
33 33
34// ----------------------------------------------------- FFT 34// ----------------------------------------------------- FFT
35#define OBJ_DATA_COUNT 128 35#define OBJ_DATA_COUNT 128
36#define OBJ_DATA_SISU 7 // 128 = 2 ** 7 36#define OBJ_DATA_SISU 7 // 128 = 2 ** 7
37#define OBJ_DATA_SLIDE 1 37#define OBJ_DATA_SLIDE 1
38 38
39#define FFT_TRN 1 39#define FFT_TRN 1
40#define IFFT_TRN -1 40#define IFFT_TRN -1
41 41
42typedef struct _fft { 42typedef struct _fft {
43 int N; // ¥Ç¥¸¥¿¥ë¡¦¥Ç¡¼¥¿·ï¿ô 43 int N; // ¥Ç¥¸¥¿¥ë¡¦¥Ç¡¼¥¿·ï¿ô
44 int r; // N = 2^r 44 int r; // N = 2^r
45 double* result_A; // ¥µ¥ó¥×¥ê¥ó¥°¥Ç¡¼¥¿¤ò¤³¤³¤Ë¥»¥Ã¥È¤¹¤ë 45 double* result_A; // ¥µ¥ó¥×¥ê¥ó¥°¥Ç¡¼¥¿¤ò¤³¤³¤Ë¥»¥Ã¥È¤¹¤ë
46 // cos À®Ê¬¡Äµá¤á¤ë¥¹¥Ú¥¯¥È¥ëÀ®Ê¬¤Î¿ôʬ¤ÎÎΰ褬ɬÍ× 46 // cos À®Ê¬¡Äµá¤á¤ë¥¹¥Ú¥¯¥È¥ëÀ®Ê¬¤Î¿ôʬ¤ÎÎΰ褬ɬÍ×
47 double* result_B; // sin À®Ê¬¡Äµá¤á¤ë¥¹¥Ú¥¯¥È¥ëÀ®Ê¬¤Î¿ôʬ¤ÎÎΰ褬ɬÍ× 47 double* result_B; // sin À®Ê¬¡Äµá¤á¤ë¥¹¥Ú¥¯¥È¥ëÀ®Ê¬¤Î¿ôʬ¤ÎÎΰ褬ɬÍ×
48} FFT; 48} FFT;
49#define FFT_SIZE sizeof( FFT ) 49#define FFT_SIZE sizeof( FFT )
50 50
51 51
52void digital_fft( FFT* fft ); 52void digital_fft( FFT* fft );
53 53
54 54
55double SpectA[OBJ_DATA_COUNT]; 55double SpectA[OBJ_DATA_COUNT];
56double SpectB[OBJ_DATA_COUNT]; 56double SpectB[OBJ_DATA_COUNT];
57 57
58double TestData[] = { 58double TestData[] = {
59 0.998795456205172405, 59 0.998795456205172405,
60 0.995184726672196929, 60 0.995184726672196929,
61 0.146735474455360860, 61 0.146735474455360860,
62 0.098217140329559660, 62 0.098217140329559660,
63 0.980784545503230431, 63 0.980784545503230431,
64 0.970031253194543974, 64 0.970031253194543974,
65 0.956940335252408824, 65 0.956940335252408824,
66 -0.857728610000272118, 66 -0.857728610000272118,
67 -0.831465612302545236, 67 -0.831465612302545236,
68 -0.803205431480644943, 68 -0.803205431480644943,
69 -0.774010453362736882, 69 -0.774010453362736882,
70 -0.747954125354958995, 70 -0.747954125354958995,
71 -0.707116781186547351, 71 -0.707116781186547351,
72 -0.671125754847018219, 72 -0.671125754847018219,
73 -0.634394284163645266, 73 -0.634394284163645266,
74 -0.594619304492433024, 74 -0.594619304492433024,
75 -0.555545233019601845, 75 -0.555545233019601845,
76 0.941544045483020806, 76 0.941544045483020806,
77 0.923879532511286738, 77 0.923879532511286738,
78 0.903989293123443338, 78 0.903989293123443338,
79 0.881541264344545050, 79 0.881541264344545050,
80 0.857728610000272118, 80 0.857728610000272118,
diff --git a/noncore/styles/theme/othemebase.cpp b/noncore/styles/theme/othemebase.cpp
index 4275dd6..7fb12a3 100644
--- a/noncore/styles/theme/othemebase.cpp
+++ b/noncore/styles/theme/othemebase.cpp
@@ -959,97 +959,97 @@ void OThemeBase::applyResourceGroup( Config *config, int i, QString *copyfrom, Q
959 959
960 // Various widget specific settings. This was more efficent when bunched 960 // Various widget specific settings. This was more efficent when bunched
961 // together in the misc group, but this makes an easier to read config. 961 // together in the misc group, but this makes an easier to read config.
962 if ( i == SliderGroove ) 962 if ( i == SliderGroove )
963 roundedSlider = config->readBoolEntry( "SmallGroove", false ); 963 roundedSlider = config->readBoolEntry( "SmallGroove", false );
964 else if ( i == ActiveTab ) { 964 else if ( i == ActiveTab ) {
965 aTabLine = config->readBoolEntry( "BottomLine", true ); 965 aTabLine = config->readBoolEntry( "BottomLine", true );
966 } 966 }
967 else if ( i == InactiveTab ) { 967 else if ( i == InactiveTab ) {
968 iTabLine = config->readBoolEntry( "BottomLine", true ); 968 iTabLine = config->readBoolEntry( "BottomLine", true );
969 } 969 }
970 else if ( i == Splitter ) 970 else if ( i == Splitter )
971 splitterWidth = config->readNumEntry( "Width", 10 ); 971 splitterWidth = config->readNumEntry( "Width", 10 );
972 else if ( i == ComboBox || i == ComboBoxDown ) { 972 else if ( i == ComboBox || i == ComboBoxDown ) {
973 roundedCombo = config->readBoolEntry( "Round", false ); 973 roundedCombo = config->readBoolEntry( "Round", false );
974 } 974 }
975 else if ( i == PushButton || i == PushButtonDown ) { 975 else if ( i == PushButton || i == PushButtonDown ) {
976 btnXShift = config->readNumEntry( "XShift", 0 ); 976 btnXShift = config->readNumEntry( "XShift", 0 );
977 btnYShift = config->readNumEntry( "YShift", 0 ); 977 btnYShift = config->readNumEntry( "YShift", 0 );
978 focus3D = config->readBoolEntry( "3DFocusRect", false ); 978 focus3D = config->readBoolEntry( "3DFocusRect", false );
979 focus3DOffset = config->readBoolEntry( "3DFocusOffset", 0 ); 979 focus3DOffset = config->readBoolEntry( "3DFocusOffset", 0 );
980 roundedButton = config->readBoolEntry( "Round", false ); 980 roundedButton = config->readBoolEntry( "Round", false );
981 } 981 }
982} 982}
983 983
984 984
985void OThemeBase::readResourceGroup( int i, QString *copyfrom, QString *pixnames, QString *brdnames, 985void OThemeBase::readResourceGroup( int i, QString *copyfrom, QString *pixnames, QString *brdnames,
986 bool *loadArray ) 986 bool *loadArray )
987{ 987{
988 if ( loadArray[ i ] == true ) { 988 if ( loadArray[ i ] == true ) {
989 return ; // already been preloaded. 989 return ; // already been preloaded.
990 } 990 }
991 991
992 int tmpVal; 992 int tmpVal;
993 QString tmpStr; 993 QString tmpStr;
994 994
995 tmpStr = copyfrom [ i ]; 995 tmpStr = copyfrom [ i ];
996 if ( !tmpStr.isEmpty() ) { // Duplicate another widget's config 996 if ( !tmpStr.isEmpty() ) { // Duplicate another widget's config
997 int sIndex; 997 int sIndex;
998 loadArray[ i ] = true; 998 loadArray[ i ] = true;
999 for ( sIndex = 0; sIndex < WIDGETS; ++sIndex ) { 999 for ( sIndex = 0; sIndex < WIDGETS; ++sIndex ) {
1000 if ( tmpStr == widgetEntries[ sIndex ] ) { 1000 if ( tmpStr == widgetEntries[ sIndex ] ) {
1001 if ( !loadArray[ sIndex ] ) // hasn't been loaded yet 1001 if ( !loadArray[ sIndex ] ) // hasn't been loaded yet
1002 readResourceGroup( sIndex, copyfrom, pixnames, brdnames, 1002 readResourceGroup( sIndex, copyfrom, pixnames, brdnames,
1003 loadArray ); 1003 loadArray );
1004 break; 1004 break;
1005 } 1005 }
1006 } 1006 }
1007 if ( loadArray[ sIndex ] ) { 1007 if ( sIndex < 54 && loadArray[ sIndex ] ) {
1008 copyWidgetConfig( sIndex, i, pixnames, brdnames ); 1008 copyWidgetConfig( sIndex, i, pixnames, brdnames );
1009 } 1009 }
1010 else 1010 else
1011 odebug << "OThemeBase: Unable to identify source widget for " << widgetEntries[ i ] << oendl; 1011 odebug << "OThemeBase: Unable to identify source widget for " << widgetEntries[ i ] << oendl;
1012 return ; 1012 return ;
1013 } 1013 }
1014 // special inheritance for disabled arrows (these are tri-state unlike 1014 // special inheritance for disabled arrows (these are tri-state unlike
1015 // the rest of what we handle). 1015 // the rest of what we handle).
1016 for ( tmpVal = DisArrowUp; tmpVal <= DisArrowRight; ++tmpVal ) { 1016 for ( tmpVal = DisArrowUp; tmpVal <= DisArrowRight; ++tmpVal ) {
1017 if ( tmpVal == i ) { 1017 if ( tmpVal == i ) {
1018 tmpStr = pixnames [ i ]; 1018 tmpStr = pixnames [ i ];
1019 if ( tmpStr.isEmpty() ) { 1019 if ( tmpStr.isEmpty() ) {
1020 copyWidgetConfig( ArrowUp + ( tmpVal - DisArrowUp ), i, pixnames, 1020 copyWidgetConfig( ArrowUp + ( tmpVal - DisArrowUp ), i, pixnames,
1021 brdnames ); 1021 brdnames );
1022 return ; 1022 return ;
1023 } 1023 }
1024 } 1024 }
1025 } 1025 }
1026 1026
1027 // Pixmap 1027 // Pixmap
1028 int existing; 1028 int existing;
1029 // Scan for duplicate pixmaps(two identical pixmaps, tile scale, no blend, 1029 // Scan for duplicate pixmaps(two identical pixmaps, tile scale, no blend,
1030 // no pixmapped border) 1030 // no pixmapped border)
1031 if ( !pixnames [ i ].isEmpty() ) { 1031 if ( !pixnames [ i ].isEmpty() ) {
1032 for ( existing = 0; existing < i; ++existing ) { 1032 for ( existing = 0; existing < i; ++existing ) {
1033 if ( pixnames[ i ] == pixnames[ existing ] && scaleHints[ i ] == TileScale && 1033 if ( pixnames[ i ] == pixnames[ existing ] && scaleHints[ i ] == TileScale &&
1034 scaleHints[ existing ] == TileScale && blends[ existing ] == 0.0 && 1034 scaleHints[ existing ] == TileScale && blends[ existing ] == 0.0 &&
1035 blends[ i ] == 0.0 ) { 1035 blends[ i ] == 0.0 ) {
1036 pixmaps[ i ] = pixmaps[ existing ]; 1036 pixmaps[ i ] = pixmaps[ existing ];
1037 duplicate[ i ] = true; 1037 duplicate[ i ] = true;
1038 break; 1038 break;
1039 } 1039 }
1040 } 1040 }
1041 } 1041 }
1042 // load 1042 // load
1043 if ( !duplicate[ i ] && !pixnames[ i ].isEmpty() ) { 1043 if ( !duplicate[ i ] && !pixnames[ i ].isEmpty() ) {
1044 pixmaps[ i ] = loadPixmap( pixnames[ i ] ); 1044 pixmaps[ i ] = loadPixmap( pixnames[ i ] );
1045 // load and save images for scaled/blended widgets for speed. 1045 // load and save images for scaled/blended widgets for speed.
1046 if ( scaleHints[ i ] == TileScale && blends[ i ] == 0.0 ) 1046 if ( scaleHints[ i ] == TileScale && blends[ i ] == 0.0 )
1047 images[ i ] = NULL; 1047 images[ i ] = NULL;
1048 else 1048 else
1049 images[ i ] = loadImage( pixnames[ i ] ); 1049 images[ i ] = loadImage( pixnames[ i ] );
1050 } 1050 }
1051 1051
1052 // Pixmap border 1052 // Pixmap border
1053 if ( !brdnames [ i ]. isEmpty () ) { 1053 if ( !brdnames [ i ]. isEmpty () ) {
1054 // duplicate check 1054 // duplicate check
1055 for ( existing = 0; existing < i; ++existing ) { 1055 for ( existing = 0; existing < i; ++existing ) {