Diffstat (limited to 'noncore/games/backgammon/aidialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/games/backgammon/aidialog.cpp | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/noncore/games/backgammon/aidialog.cpp b/noncore/games/backgammon/aidialog.cpp new file mode 100644 index 0000000..9642ca5 --- a/dev/null +++ b/noncore/games/backgammon/aidialog.cpp | |||
@@ -0,0 +1,211 @@ | |||
1 | #include "aidialog.h" | ||
2 | |||
3 | #include <qgroupbox.h> | ||
4 | |||
5 | |||
6 | AI_Dialog::AI_Dialog(QWidget* parent,const char* name,bool modal,WFlags f) | ||
7 | : QDialog(parent,name,modal,f) | ||
8 | { | ||
9 | setCaption("AI Configuration"); | ||
10 | |||
11 | QGroupBox* settings=new QGroupBox("Settings",this); | ||
12 | settings->setGeometry(10,5,220,170); | ||
13 | |||
14 | QLabel* rescue_label=new QLabel("<b>Rescue</b>",settings); | ||
15 | rescue_label->setGeometry(50,20,50,20); | ||
16 | rescue=new QSpinBox(0,6,1,settings); | ||
17 | rescue->setGeometry(100,20,40,20); | ||
18 | QPushButton* rescuehelp=new QPushButton("?",settings); | ||
19 | rescuehelp->setGeometry(140,20,20,20); | ||
20 | connect(rescuehelp,SIGNAL(pressed()),this,SLOT(rescuehelp_pressed())); | ||
21 | connect(rescuehelp,SIGNAL(released()),this,SLOT(rescuehelp_released())); | ||
22 | |||
23 | QLabel* eliminate_label=new QLabel("<b>Eliminate</b>",settings); | ||
24 | eliminate_label->setGeometry(50,40,50,20); | ||
25 | eliminate=new QSpinBox(0,6,1,settings); | ||
26 | eliminate->setGeometry(100,40,40,20); | ||
27 | QPushButton* eliminatehelp=new QPushButton("?",settings); | ||
28 | eliminatehelp->setGeometry(140,40,20,20); | ||
29 | connect(eliminatehelp,SIGNAL(pressed()),this,SLOT(eliminatehelp_pressed())); | ||
30 | connect(eliminatehelp,SIGNAL(released()),this,SLOT(eliminatehelp_released())); | ||
31 | |||
32 | QLabel* expose_label=new QLabel("<b>Expose</b>",settings); | ||
33 | expose_label->setGeometry(50,60,50,20); | ||
34 | expose=new QSpinBox(0,6,1,settings); | ||
35 | expose->setGeometry(100,60,40,20); | ||
36 | QPushButton* exposeehelp=new QPushButton("?",settings); | ||
37 | exposeehelp->setGeometry(140,60,20,20); | ||
38 | connect(exposeehelp,SIGNAL(pressed()),this,SLOT(exposehelp_pressed())); | ||
39 | connect(exposeehelp,SIGNAL(released()),this,SLOT(exposehelp_released())); | ||
40 | |||
41 | QLabel* protect_label=new QLabel("<b>Protect</b>",settings); | ||
42 | protect_label->setGeometry(50,80,50,20); | ||
43 | protect=new QSpinBox(0,6,1,settings); | ||
44 | protect->setGeometry(100,80,40,20); | ||
45 | QPushButton* protecthelp=new QPushButton("?",settings); | ||
46 | protecthelp->setGeometry(140,80,20,20); | ||
47 | connect(protecthelp,SIGNAL(pressed()),this,SLOT(protecthelp_pressed())); | ||
48 | connect(protecthelp,SIGNAL(released()),this,SLOT(protecthelp_released())); | ||
49 | |||
50 | QLabel* safe_label=new QLabel("<b>Safe</b>",settings); | ||
51 | safe_label->setGeometry(50,100,50,20); | ||
52 | safe=new QSpinBox(0,6,1,settings); | ||
53 | safe->setGeometry(100,100,40,20); | ||
54 | QPushButton* safeehelp=new QPushButton("?",settings); | ||
55 | safeehelp->setGeometry(140,100,20,20); | ||
56 | connect(safeehelp,SIGNAL(pressed()),this,SLOT(safehelp_pressed())); | ||
57 | connect(safeehelp,SIGNAL(released()),this,SLOT(safehelp_released())); | ||
58 | |||
59 | QLabel* empty_label=new QLabel("<b>Empty</b>",settings); | ||
60 | empty_label->setGeometry(50,120,50,20); | ||
61 | empty=new QSpinBox(0,6,1,settings); | ||
62 | empty->setGeometry(100,120,40,20); | ||
63 | QPushButton* emptyhelp=new QPushButton("?",settings); | ||
64 | emptyhelp->setGeometry(140,120,20,20); | ||
65 | connect(emptyhelp,SIGNAL(pressed()),this,SLOT(emptyhelp_pressed())); | ||
66 | connect(emptyhelp,SIGNAL(released()),this,SLOT(emptyhelp_released())); | ||
67 | |||
68 | defaultvalues=new QPushButton("Default Values",settings); | ||
69 | defaultvalues->setGeometry(60,140,90,20); | ||
70 | connect(defaultvalues,SIGNAL(clicked()),this,SLOT(setDefaultValues())); | ||
71 | |||
72 | QGroupBox* helpbox=new QGroupBox("Help",this); | ||
73 | helpbox->setGeometry(10,185,220,90); | ||
74 | |||
75 | help=new QLabel(helpbox); | ||
76 | help->setGeometry(10,15,200,65); | ||
77 | |||
78 | setHelpText(); | ||
79 | showMaximized(); | ||
80 | } | ||
81 | |||
82 | |||
83 | AI_Dialog::~AI_Dialog() | ||
84 | { | ||
85 | } | ||
86 | |||
87 | void AI_Dialog::rescuehelp_pressed() | ||
88 | { | ||
89 | setHelpText("rescue"); | ||
90 | } | ||
91 | |||
92 | void AI_Dialog::rescuehelp_released() | ||
93 | { | ||
94 | setHelpText(); | ||
95 | } | ||
96 | |||
97 | void AI_Dialog::eliminatehelp_pressed() | ||
98 | { | ||
99 | setHelpText("eliminate"); | ||
100 | } | ||
101 | |||
102 | void AI_Dialog::eliminatehelp_released() | ||
103 | { | ||
104 | setHelpText(); | ||
105 | } | ||
106 | |||
107 | void AI_Dialog::exposehelp_pressed() | ||
108 | { | ||
109 | setHelpText("expose"); | ||
110 | } | ||
111 | |||
112 | void AI_Dialog::exposehelp_released() | ||
113 | { | ||
114 | setHelpText(); | ||
115 | } | ||
116 | |||
117 | void AI_Dialog::protecthelp_pressed() | ||
118 | { | ||
119 | setHelpText("protect"); | ||
120 | } | ||
121 | |||
122 | void AI_Dialog::protecthelp_released() | ||
123 | { | ||
124 | setHelpText(); | ||
125 | } | ||
126 | |||
127 | void AI_Dialog::safehelp_pressed() | ||
128 | { | ||
129 | setHelpText("safe"); | ||
130 | } | ||
131 | |||
132 | void AI_Dialog::safehelp_released() | ||
133 | { | ||
134 | setHelpText(); | ||
135 | } | ||
136 | |||
137 | void AI_Dialog::emptyhelp_pressed() | ||
138 | { | ||
139 | setHelpText("empty"); | ||
140 | } | ||
141 | |||
142 | void AI_Dialog::emptyhelp_released() | ||
143 | { | ||
144 | setHelpText(); | ||
145 | } | ||
146 | |||
147 | |||
148 | |||
149 | void AI_Dialog::setDefaultValues() | ||
150 | { | ||
151 | rescue->setValue(6); | ||
152 | eliminate->setValue(4); | ||
153 | expose->setValue(1); | ||
154 | protect->setValue(5); | ||
155 | safe->setValue(3); | ||
156 | empty->setValue(2); | ||
157 | } | ||
158 | |||
159 | void AI_Dialog::setAISettings(const AISettings& values) | ||
160 | { | ||
161 | rescue->setValue(values.rescue); | ||
162 | eliminate->setValue(values.eliminate); | ||
163 | expose->setValue(values.expose); | ||
164 | protect->setValue(values.protect); | ||
165 | safe->setValue(values.safe); | ||
166 | empty->setValue(values.empty); | ||
167 | } | ||
168 | |||
169 | AISettings AI_Dialog::getAISettings() | ||
170 | { | ||
171 | AISettings ai; | ||
172 | ai.rescue=rescue->value(); | ||
173 | ai.eliminate=eliminate->value(); | ||
174 | ai.expose=expose->value(); | ||
175 | ai.protect=protect->value(); | ||
176 | ai.safe= safe->value(); | ||
177 | ai.empty=empty->value(); | ||
178 | return ai; | ||
179 | } | ||
180 | |||
181 | void AI_Dialog::setHelpText(const QString& type) | ||
182 | { | ||
183 | if(type=="rescue") | ||
184 | { | ||
185 | help->setText("Bring the pieces out of the endzone"); | ||
186 | } | ||
187 | else if(type=="eliminate") | ||
188 | { | ||
189 | help->setText("Eliminate an opponents piece"); | ||
190 | } | ||
191 | else if(type=="expose") | ||
192 | { | ||
193 | help->setText("Expose you own pieces.\nAfter such a move only one piece will remain in the slot"); | ||
194 | } | ||
195 | else if(type=="protect") | ||
196 | { | ||
197 | help->setText("Protect a single piece by\nputting another one in this slot"); | ||
198 | } | ||
199 | else if(type=="safe") | ||
200 | { | ||
201 | help->setText("Move piece to a slot already\noccupied by the player"); | ||
202 | } | ||
203 | else if(type=="empty") | ||
204 | { | ||
205 | help->setText("Move piece to an empty slot"); | ||
206 | } | ||
207 | else | ||
208 | { | ||
209 | help->setText("Press and hold the ? buttton\nnext to a field for help"); | ||
210 | } | ||
211 | } | ||