author  unc0rr 
Fri, 23 Nov 2012 16:16:02 +0400  
changeset 8110  9f5fe3fc9d16 
parent 8049  133e22b5c410 
child 8126  5bfa1b2025d6 
child 9080  9b42757d7e71 
permissions  rwrr 
1907  1 
/* 
2 
* Hedgewars, a free turn based strategy game 

3 
* Copyright (c) 2009 Martin Minarik <ttsmj@pokec.sk> 

6952  4 
* Copyright (c) 20042012 Andrey Korotaev <unC0Rr@gmail.com> 
1907  5 
* 
6 
* This program is free software; you can redistribute it and/or modify 

7 
* it under the terms of the GNU General Public License as published by 

8 
* the Free Software Foundation; version 2 of the License 

9 
* 

10 
* This program is distributed in the hope that it will be useful, 

11 
* but WITHOUT ANY WARRANTY; without even the implied warranty of 

12 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

13 
* GNU General Public License for more details. 

14 
* 

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 

17 
* Foundation, Inc., 59 Temple Place  Suite 330, Boston, MA 021111307, USA 

18 
*/ 

19 

20 
#include <QFile> 

21 
#include <QTextStream> 

22 
#include <QStringList> 

23 
#include <QLineEdit> 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

24 

1907  25 
#include "hwform.h" 
6930  26 
#include "DataManager.h" 
1907  27 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

28 
#include "namegen.h" 
1907  29 

6024  30 
HWNamegen::HWNamegen() {} 
1907  31 

6024  32 
QList<QStringList> HWNamegen::TypesTeamnames; 
33 
QList<QStringList> HWNamegen::TypesHatnames; 

34 
bool HWNamegen::typesAvailable = false; 

1907  35 

36 

6015
daffc14a518a
cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents:
5252
diff
changeset

37 
void HWNamegen::teamRandomNames(HWTeam & team, const bool changeteamname) 
1907  38 
{ 
6024  39 
// load types if not already loaded 
40 
if (!typesAvailable) 

41 
if (!loadTypes()) 

42 
return; // abort if loading failed 

43 

44 
// abort if there are no hat types 

45 
if (TypesHatnames.size() <= 0) 

46 
return; 

1907  47 

6024  48 
// the hat will influence which names the hogs get 
49 
int kind = (rand()%(TypesHatnames.size())); 

50 

51 
// pick team name based on hat 

52 
if (changeteamname) 

53 
{ 

54 
if (TypesTeamnames[kind].size() > 0) 

55 
team.setName(TypesTeamnames[kind][rand()%(TypesTeamnames[kind].size())]); 

1907  56 

6024  57 
team.setGrave(getRandomGrave()); 
58 
team.setFort(getRandomFort()); 

59 
team.setVoicepack("Default"); 

60 
} 

61 

62 
QStringList dicts; 

63 
QStringList dict; 

64 

65 
if ((TypesHatnames[kind].size()) <= 0) 

66 
{ 

67 
dicts = dictsForHat(team.hedgehog(0).Hat); 

68 
dict = dictContents(dicts[rand()%(dicts.size())]); 

69 
} 

70 

71 
for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++) 

72 
{ 

73 
if ((TypesHatnames[kind].size()) > 0) 

74 
{ 

75 
HWHog hh = team.hedgehog(i); 

76 
hh.Hat = TypesHatnames[kind][rand()%(TypesHatnames[kind].size())]; 

77 
team.setHedgehog(i,hh); 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2192
diff
changeset

78 
} 
1907  79 

6024  80 
// there is a chance that this hog has the same hat as the previous one 
81 
// let's reuse the hatspecific dict in this case 

6824
617a861b7750
i didn't even know it was possible (spotted by adam4813)
koda
parents:
6700
diff
changeset

82 
if ((i == 0)  (team.hedgehog(i).Hat != team.hedgehog(i1).Hat)) 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2192
diff
changeset

83 
{ 
6024  84 
dicts = dictsForHat(team.hedgehog(i).Hat); 
85 
dict = dictContents(dicts[rand()%(dicts.size())]); 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2192
diff
changeset

86 
} 
1907  87 

6024  88 
// give each hedgehog a random name 
89 
HWNamegen::teamRandomName(team,i,dict); 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2192
diff
changeset

90 
} 
1907  91 

92 
} 

93 

6024  94 
void HWNamegen::teamRandomName(HWTeam & team, const int HedgehogNumber) 
95 
{ 

96 
QStringList dicts = dictsForHat(team.hedgehog(HedgehogNumber).Hat); 

1907  97 

6024  98 
QStringList dict = dictContents(dicts[rand()%(dicts.size())]); 
99 

100 
teamRandomName(team, HedgehogNumber, dict); 

101 
} 

102 

103 
void HWNamegen::teamRandomName(HWTeam & team, const int HedgehogNumber, const QStringList & dict) 

1907  104 
{ 
6024  105 
QStringList namesDict = dict; 
1907  106 

6024  107 
for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++) 
108 
{ 

109 
namesDict.removeOne(team.hedgehog(i).Name); 

110 
} 

111 

112 
// if our dict doesn't have any new names we'll have to use duplicates 

113 
if (namesDict.size() < 1) 

114 
namesDict = dict; 

1907  115 

6015
daffc14a518a
cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents:
5252
diff
changeset

116 
HWHog hh = team.hedgehog(HedgehogNumber); 
6024  117 

118 
hh.Name = namesDict[rand()%(namesDict.size())]; 

119 

6015
daffc14a518a
cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents:
5252
diff
changeset

120 
team.setHedgehog(HedgehogNumber, hh); 
1907  121 
} 
122 

6024  123 
QStringList HWNamegen::dictContents(const QString filename) 
1907  124 
{ 
6024  125 
QStringList list; 
1907  126 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

127 
// find .txt to load the names from 
8110
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

128 
QFile file(QString("physfs://Names/%1.txt").arg(filename)); 
6024  129 

8110
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

130 
if (file.open(QIODevice::ReadOnly  QIODevice::Text)) 
5238
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5115
diff
changeset

131 
{ 
8110
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

132 
QTextStream in(&file); 
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

133 
QString line; 
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

134 
do 
6024  135 
{ 
8110
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

136 
line = in.readLine(); 
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

137 

6024  138 
if(!line.isEmpty()) 
139 
list.append(line); 

8110
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

140 
} while (!line.isNull()); 
5238
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5115
diff
changeset

141 
} 
1907  142 

6024  143 
if (list.size() == 0) 
6616
f77bb02b669f
astyle C S L N style=allman recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6212
diff
changeset

144 
list.append(filename); 
1907  145 

6024  146 
return list; 
1907  147 
} 
148 

149 

6024  150 
QStringList HWNamegen::dictsForHat(const QString hatname) 
1907  151 
{ 
6024  152 
QStringList list; 
1907  153 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

154 
// find .cfg to load the dicts from 
8110
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

155 
QFile file(QString("physfs://Names/%1.cfg").arg(hatname)); 
6024  156 

8110
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

157 
if (file.open(QIODevice::ReadOnly  QIODevice::Text)) 
5238
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5115
diff
changeset

158 
{ 
8110
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

159 
QTextStream in(&file); 
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

160 
QString line; 
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

161 
do 
6024  162 
{ 
8110
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

163 
line = in.readLine(); 
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

164 

6024  165 
if(!line.isEmpty()) 
166 
list.append(line); 

8110
9f5fe3fc9d16
Use alternative way of checking for file end. Also refactor this code a bit.
unc0rr
parents:
8049
diff
changeset

167 
} while (!line.isNull()); 
5238
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5115
diff
changeset

168 
} 
1907  169 

6024  170 
if (list.size() == 0) 
6616
f77bb02b669f
astyle C S L N style=allman recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6212
diff
changeset

171 
list.append(QString("generic")); 
1907  172 

6024  173 
return list; 
1907  174 
} 
175 

6024  176 
// loades types from ini files. returns true on success. 
177 
bool HWNamegen::loadTypes() 

178 
{ 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

179 
typesAvailable = false; 
6024  180 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

181 
// find .ini to load the names from 
8049  182 
QFile * file = new QFile(QString("physfs://Names/types.ini")); 
6024  183 

1907  184 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

185 
if (file>exists() && file>open(QIODevice::ReadOnly  QIODevice::Text)) 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

186 
{ 
1907  187 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

188 
int counter = 0; //counter starts with 0 (teamnames mode) 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

189 
TypesTeamnames.append(QStringList()); 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

190 
TypesHatnames.append(QStringList()); 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

191 

863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

192 
QTextStream in(file); 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

193 
while (!in.atEnd()) 
6024  194 
{ 
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

195 
QString line = in.readLine(); 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

196 
if (line == QString("#####")) 
6024  197 
{ 
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

198 
counter++; //toggle mode (teamnames  hats) 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

199 
if ((counter%2) == 0) 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

200 
{ 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

201 
TypesTeamnames.append(QStringList()); 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

202 
TypesHatnames.append(QStringList()); 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

203 
} 
5238
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5115
diff
changeset

204 
} 
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

205 
else if ((line == QString("*****"))  (line == QString("*END*"))) 
6024  206 
{ 
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

207 
typesAvailable = true; 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

208 
return true; // bye bye 
6024  209 
} 
210 
else 

211 
{ 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

212 
if ((counter%2) == 0) 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

213 
{ 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

214 
// even => teamnames mode 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

215 
TypesTeamnames[(counter/2)].append(line); 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

216 
} 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

217 
else 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

218 
{ 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

219 
// odd => hats mode 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

220 
TypesHatnames[((counter1)/2)].append(line); 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

221 
} 
5238
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5115
diff
changeset

222 
} 
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5115
diff
changeset

223 
} 
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

224 

863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

225 
typesAvailable = true; 
5238
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5115
diff
changeset

226 
} 
6024  227 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

228 
// this QFile isn't needed any further 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

229 
delete file; 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

230 

863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

231 
return typesAvailable; 
1907  232 
} 
233 

234 

5114
a05081bc2769
Improved random name generation (now a random fort and random grave is choosen
Jonathan@JonathanPC.fritz.box
parents:
4976
diff
changeset

235 

6015
daffc14a518a
cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents:
5252
diff
changeset

236 
QString HWNamegen::getRandomGrave() 
5114
a05081bc2769
Improved random name generation (now a random fort and random grave is choosen
Jonathan@JonathanPC.fritz.box
parents:
4976
diff
changeset

237 
{ 
5115
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

238 
QStringList Graves; 
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

239 

276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

240 
//list all available Graves 
6930  241 
Graves.append(DataManager::instance().entryList( 
6616
f77bb02b669f
astyle C S L N style=allman recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6212
diff
changeset

242 
"Graphics/Graves", 
f77bb02b669f
astyle C S L N style=allman recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6212
diff
changeset

243 
QDir::Files, 
f77bb02b669f
astyle C S L N style=allman recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6212
diff
changeset

244 
QStringList("*.png") 
f77bb02b669f
astyle C S L N style=allman recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6212
diff
changeset

245 
).replaceInStrings(QRegExp("\\.png$"), "") 
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

246 
); 
5114
a05081bc2769
Improved random name generation (now a random fort and random grave is choosen
Jonathan@JonathanPC.fritz.box
parents:
4976
diff
changeset

247 

5115
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

248 
if(Graves.size()==0) 
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

249 
{ 
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

250 
// TODO do some serious error handling 
5115
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

251 
return "Error"; 
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

252 
} 
5114
a05081bc2769
Improved random name generation (now a random fort and random grave is choosen
Jonathan@JonathanPC.fritz.box
parents:
4976
diff
changeset

253 

5115
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

254 
//pick a random grave 
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

255 
return Graves[rand()%(Graves.size())]; 
5114
a05081bc2769
Improved random name generation (now a random fort and random grave is choosen
Jonathan@JonathanPC.fritz.box
parents:
4976
diff
changeset

256 
} 
a05081bc2769
Improved random name generation (now a random fort and random grave is choosen
Jonathan@JonathanPC.fritz.box
parents:
4976
diff
changeset

257 

6015
daffc14a518a
cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents:
5252
diff
changeset

258 
QString HWNamegen::getRandomFort() 
5114
a05081bc2769
Improved random name generation (now a random fort and random grave is choosen
Jonathan@JonathanPC.fritz.box
parents:
4976
diff
changeset

259 
{ 
5115
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

260 
QStringList Forts; 
5114
a05081bc2769
Improved random name generation (now a random fort and random grave is choosen
Jonathan@JonathanPC.fritz.box
parents:
4976
diff
changeset

261 

5115
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

262 
//list all available Forts 
6930  263 
Forts.append(DataManager::instance().entryList( 
6616
f77bb02b669f
astyle C S L N style=allman recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6212
diff
changeset

264 
"Forts", 
f77bb02b669f
astyle C S L N style=allman recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6212
diff
changeset

265 
QDir::Files, 
f77bb02b669f
astyle C S L N style=allman recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6212
diff
changeset

266 
QStringList("*L.png") 
f77bb02b669f
astyle C S L N style=allman recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6212
diff
changeset

267 
).replaceInStrings(QRegExp("L\\.png$"), "") 
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

268 
); 
5114
a05081bc2769
Improved random name generation (now a random fort and random grave is choosen
Jonathan@JonathanPC.fritz.box
parents:
4976
diff
changeset

269 

5115
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

270 
if(Forts.size()==0) 
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

271 
{ 
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6060
diff
changeset

272 
// TODO do some serious error handling 
5115
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

273 
return "Error"; 
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

274 
} 
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

275 

276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

276 
//pick a random fort 
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

277 
return Forts[rand()%(Forts.size())]; 
276410cc1178
fix indentation and missing newline at end of file
sheepluva
parents:
5114
diff
changeset

278 
} 