You can subscribe to this list here.
2004 |
Jan
(32) |
Feb
|
Mar
|
Apr
(151) |
May
(7) |
Jun
(3) |
Jul
(8) |
Aug
|
Sep
(2) |
Oct
(15) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <vra...@us...> - 2004-01-07 23:06:56
|
Update of /cvsroot/darkeyetool/det/src/gui In directory sc8-pr-cvs1:/tmp/cvs-serv14748 Modified Files: PersonenKomponenteGUIwx.h PersonGUIPersonenKomponentewx.cpp Log Message: RKP können jetzt [eine Geländekunde] haben Index: PersonenKomponenteGUIwx.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonenKomponenteGUIwx.h,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** PersonenKomponenteGUIwx.h 5 Jan 2004 05:12:13 -0000 1.28 --- PersonenKomponenteGUIwx.h 7 Jan 2004 23:06:52 -0000 1.29 *************** *** 205,208 **** --- 205,210 ---- moeglicheSonderfertigkeiten_->Append(s->second.ID().c_str()); + moeglicheSonderfertigkeiten_->Append(_t("[eine Geländekunde]").c_str()); + showplusminus = false; if (sonderfertigkeiten_->GetSelection()!=-1) { *************** *** 1762,1765 **** --- 1764,1774 ---- //@+node:<< SFHinzu >> void SFHinzu (const std::string& sfs) { + if (sfs == _t("[eine Geländekunde]")) { + DSA::Auswahl<DSA::Sonderfertigkeit> a; + a.IDHinzu(sfs); + objekt_->sonderfertigkeiten_.FuegeEin(a); + Update(); + return; + } DSA::SonderfertigkeitDefinition* sfdef = DSA::sonderfertigkeiten()->Zeige(sfs); if (sfdef==0) *************** *** 1994,1997 **** --- 2003,2009 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.29 2004/01/07 23:06:52 vrandezo + // RKP können jetzt [eine Geländekunde] haben + // // Revision 1.28 2004/01/05 05:12:13 vrandezo // Auswahlen bei Char und SF implementiert Index: PersonGUIPersonenKomponentewx.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonGUIPersonenKomponentewx.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** PersonGUIPersonenKomponentewx.cpp 5 Jan 2004 05:12:13 -0000 1.15 --- PersonGUIPersonenKomponentewx.cpp 7 Jan 2004 23:06:52 -0000 1.16 *************** *** 255,265 **** void GebeEinChar(T, const std::string& id, int wert, U& ziel, wxWindow* parent, const std::string& kommentar = "") { T t; ! t.ID(id); ! if (wert!=0) t.Stufe(wert); ! t.Spezifizierung(kommentar); // if (ziel.Existiert(id)) // ziel.Zeige(id)->Wert(ziel.Zeige(id)->Wert()+wert); // else ! ziel.FuegeEin(t); } //@nonl --- 255,296 ---- void GebeEinChar(T, const std::string& id, int wert, U& ziel, wxWindow* parent, const std::string& kommentar = "") { T t; ! if (id[0]!='[') { ! t.ID(id); ! if (wert!=0) t.Stufe(wert); ! t.Spezifizierung(kommentar); // if (ziel.Existiert(id)) // ziel.Zeige(id)->Wert(ziel.Zeige(id)->Wert()+wert); // else ! ziel.FuegeEin(t); ! return; ! } ! StringListe sl; ! if (id == _t("[eine Geländekunde]")) ! for (DSA::SonderfertigkeitDefinitionen::iterator sf = DSA::sonderfertigkeiten()->begin(); sf != DSA::sonderfertigkeiten()->end(); ++sf) ! if (sf->second.Gelaendekunde()) ! sl.push_back(sf->first); ! ! wxString* wxs = new wxString[sl.size()]; ! int index = -1; ! for (StringListe::iterator s = sl.begin(); s != sl.end(); ++s) ! wxs[++index] = s->c_str(); ! std::string text; ! if (kommentar!="") text += kommentar + "\n"; ! text += _t("Bitte wählen"); ! // text += _t("Vergebe") + " " + strings::int2sStr(wert, true); ! wxSingleChoiceDialog d(parent, text.c_str(), _t("Bitte wählen").c_str(), ! sl.size(), wxs, 0, wxOK); ! std::string gesucht; ! if (d.ShowModal() != wxID_OK) ! gesucht = wxs[0].c_str(); ! else ! gesucht = d.GetStringSelection().c_str(); ! delete [] wxs; ! t.ID(gesucht); ! // t.Wert(wert); ! // if (ziel.Existiert(id)) ! // ziel.Zeige(id)->Wert(ziel.Zeige(id)->Wert()+wert); ! // else ! ziel.FuegeEin(t); } //@nonl *************** *** 349,352 **** --- 380,386 ---- // $Log$ + // Revision 1.16 2004/01/07 23:06:52 vrandezo + // RKP können jetzt [eine Geländekunde] haben + // // Revision 1.15 2004/01/05 05:12:13 vrandezo // Auswahlen bei Char und SF implementiert |
From: <de...@us...> - 2004-01-07 22:59:26
|
Update of /cvsroot/darkeyetool/det/src/gui In directory sc8-pr-cvs1:/tmp/cvs-serv12231/src/gui Modified Files: PersonGUIGeneratorHelferwx.cpp PersonGUIwx.cpp Log Message: wxTextCtrl besitzt die Methode SetValue zum setzen des Textes. Verwendet wird SetLabel, was unter Windows funktioniert, mit wxGTK aber nicht. (laut Anleitung sollte das auch nicht funktionieren) Fuer alle wxTextCtrl SetLabel durch SetValue ersetzt. Index: PersonGUIGeneratorHelferwx.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonGUIGeneratorHelferwx.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PersonGUIGeneratorHelferwx.cpp 4 Dec 2003 17:13:40 -0000 1.5 --- PersonGUIGeneratorHelferwx.cpp 7 Jan 2004 22:59:22 -0000 1.6 *************** *** 135,150 **** void PersonGUIGeneratorHelferwx::Update() { ! gp_->SetLabel(XvonY(gen_->GP(), gen_->GPMax()).c_str()); ! gpFuerGuteEigenschaften_->SetLabel (XvonY(gen_->GPGuteEigenschaften(), gen_->GPGuteEigenschaftenMax()).c_str()); ! gpDurchNachteile_->SetLabel (XvonY(gen_->GPNachteile(), gen_->GPNachteileMax()).c_str()); ! gpDurchSchlechteEigenschaften_->SetLabel (XvonY(gen_->GPSchlechteEigenschaften(), gen_->GPSchlechteEigenschaftenMax()).c_str()); ! talentgp_->SetLabel (XvonY(gen_->TalentGP(), gen_->TalentGPMax()).c_str()); ! anzahlAktivierterTalente_->SetLabel (XvonY(gen_->AktivierteTalente(), gen_->AktivierteTalenteMax()).c_str()); ! nachricht_->SetLabel(gen_->GenerierungBeendbarText().c_str()); // falls nicht beendbar FindWindow(BTOK)->Enable(gen_->GenerierungBeendbar()); --- 135,150 ---- void PersonGUIGeneratorHelferwx::Update() { ! gp_->SetValue(XvonY(gen_->GP(), gen_->GPMax()).c_str()); ! gpFuerGuteEigenschaften_->SetValue (XvonY(gen_->GPGuteEigenschaften(), gen_->GPGuteEigenschaftenMax()).c_str()); ! gpDurchNachteile_->SetValue (XvonY(gen_->GPNachteile(), gen_->GPNachteileMax()).c_str()); ! gpDurchSchlechteEigenschaften_->SetValue (XvonY(gen_->GPSchlechteEigenschaften(), gen_->GPSchlechteEigenschaftenMax()).c_str()); ! talentgp_->SetValue (XvonY(gen_->TalentGP(), gen_->TalentGPMax()).c_str()); ! anzahlAktivierterTalente_->SetValue (XvonY(gen_->AktivierteTalente(), gen_->AktivierteTalenteMax()).c_str()); ! nachricht_->SetValue(gen_->GenerierungBeendbarText().c_str()); // falls nicht beendbar FindWindow(BTOK)->Enable(gen_->GenerierungBeendbar()); *************** *** 193,196 **** --- 193,201 ---- // $Log$ + // Revision 1.6 2004/01/07 22:59:22 dertron + // wxTextCtrl besitzt die Methode SetValue zum setzen des Textes. + // Verwendet wird SetLabel, was unter Windows funktioniert, mit wxGTK aber nicht. (laut Anleitung sollte das auch nicht funktionieren) + // Fuer alle wxTextCtrl SetLabel durch SetValue ersetzt. + // // Revision 1.5 2003/12/04 17:13:40 vrandezo // Trons BSD-Portierung Index: PersonGUIwx.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonGUIwx.cpp,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** PersonGUIwx.cpp 6 Jan 2004 03:51:04 -0000 1.41 --- PersonGUIwx.cpp 7 Jan 2004 22:59:22 -0000 1.42 *************** *** 1339,1347 **** void PersonGUIwx::UpdateUebersicht() { // Namen und ähnliches ! ueberName_->SetLabel(person_->Name().c_str()); ! ueberRasse_->SetLabel(person_->Rasse_().Bezeichnung().c_str()); ! ueberKultur_->SetLabel(person_->Kultur_().Bezeichnung().c_str()); ! ueberProfession_->SetLabel(person_->Profession_().Bezeichnung().c_str()); ! ueberGeschlecht_->SetLabel(person_->P()->Geschlecht().c_str()); wxColour highlight = *wxWHITE; // TODO Was, wenn BackGround auch schon weiß? --- 1339,1347 ---- void PersonGUIwx::UpdateUebersicht() { // Namen und ähnliches ! ueberName_->SetValue(person_->Name().c_str()); ! ueberRasse_->SetValue(person_->Rasse_().Bezeichnung().c_str()); ! ueberKultur_->SetValue(person_->Kultur_().Bezeichnung().c_str()); ! ueberProfession_->SetValue(person_->Profession_().Bezeichnung().c_str()); ! ueberGeschlecht_->SetValue(person_->P()->Geschlecht().c_str()); wxColour highlight = *wxWHITE; // TODO Was, wenn BackGround auch schon weiß? *************** *** 1372,1384 **** void PersonGUIwx::UpdateKompakt() { // Namen und ähnliches ! kompaktName_->SetLabel(person_->Name().c_str()); ! kompaktRasse_->SetLabel(person_->Rasse_().Bezeichnung().c_str()); ! kompaktKultur_->SetLabel(person_->Kultur_().Bezeichnung().c_str()); ! kompaktProfession_->SetLabel(person_->Profession_().Bezeichnung().c_str()); ! kompaktAugenfarbe_->SetLabel(person_->Augenfarbe().c_str()); ! kompaktHauptfarbe_->SetLabel(person_->Hauptfarbe().c_str()); ! kompaktGroesse_->SetLabel(strings::int2sStr(person_->Groesse()).c_str()); ! kompaktGewicht_->SetLabel(strings::int2sStr(person_->Gewicht()).c_str()); ! kompaktAlter_->SetLabel(strings::int2sStr(person_->Alter()).c_str()); kompaktGeschlecht_->SetLabel(person_->Maennlich() ? "m" : "w"); --- 1372,1384 ---- void PersonGUIwx::UpdateKompakt() { // Namen und ähnliches ! kompaktName_->SetValue(person_->Name().c_str()); ! kompaktRasse_->SetValue(person_->Rasse_().Bezeichnung().c_str()); ! kompaktKultur_->SetValue(person_->Kultur_().Bezeichnung().c_str()); ! kompaktProfession_->SetValue(person_->Profession_().Bezeichnung().c_str()); ! kompaktAugenfarbe_->SetValue(person_->Augenfarbe().c_str()); ! kompaktHauptfarbe_->SetValue(person_->Hauptfarbe().c_str()); ! kompaktGroesse_->SetValue(strings::int2sStr(person_->Groesse()).c_str()); ! kompaktGewicht_->SetValue(strings::int2sStr(person_->Gewicht()).c_str()); ! kompaktAlter_->SetValue(strings::int2sStr(person_->Alter()).c_str()); kompaktGeschlecht_->SetLabel(person_->Maennlich() ? "m" : "w"); *************** *** 1417,1421 **** int i = 0; for (i=0;i<DSA::AnzahlEigenschaften; ++i) { ! kompaktEigenschaftWert_[i]->SetLabel( strings::int2sStr(person_->Wert((DSA::Eigenschaftsart)i)).c_str()); FindWindow(IDKompaktEigenschaftPlus((DSA::Eigenschaftsart)i))-> --- 1417,1421 ---- int i = 0; for (i=0;i<DSA::AnzahlEigenschaften; ++i) { ! kompaktEigenschaftWert_[i]->SetValue( strings::int2sStr(person_->Wert((DSA::Eigenschaftsart)i)).c_str()); FindWindow(IDKompaktEigenschaftPlus((DSA::Eigenschaftsart)i))-> *************** *** 1425,1429 **** } for (i=0;i<DSA::AnzahlAbgeleiteterWerte; ++i) { ! kompaktAbgeleiteterWert_[i]->SetLabel( strings::int2sStr(person_->Wert((DSA::AbgeleiteterWertArt)i)).c_str()); FindWindow(IDKompaktAbgeleiteterWertPlus((DSA::AbgeleiteterWertArt)i))-> --- 1425,1429 ---- } for (i=0;i<DSA::AnzahlAbgeleiteterWerte; ++i) { ! kompaktAbgeleiteterWert_[i]->SetValue( strings::int2sStr(person_->Wert((DSA::AbgeleiteterWertArt)i)).c_str()); FindWindow(IDKompaktAbgeleiteterWertPlus((DSA::AbgeleiteterWertArt)i))-> *************** *** 1544,1558 **** int wert = person_->Wert((DSA::Eigenschaftsart)i); int basiswert = person_->Basiswert((DSA::Eigenschaftsart)i); ! basisEigenschaftWert_[i]->SetLabel(strings::int2sStr(wert).c_str()); FindWindow(IDBasisEigenschaftPlus((DSA::Eigenschaftsart)i))-> Show(person_->Steigerbar((DSA::Eigenschaftsart)i)); FindWindow(IDBasisEigenschaftMinus((DSA::Eigenschaftsart)i))-> Show(person_->Senkbar((DSA::Eigenschaftsart)i)); ! basisEigenschaftBasisWert_[i]->SetLabel(strings::int2sStr(basiswert).c_str()); ! basisEigenschaftModWert_[i]->SetLabel( (((basiswert<=wert)?"+":"") + strings::int2sStr(wert-basiswert)).c_str()); FindWindow(IDBasisEigenschaftMod((DSA::Eigenschaftsart)i))->Show(basiswert!=wert); person_->BerechneEigenschaftenMaxima(); ! basisEigenschaftMaxWert_[i]->SetLabel (strings::int2sStr(person_->P()->eigenschaft_[i].Maximalwert()).c_str()); } --- 1544,1558 ---- int wert = person_->Wert((DSA::Eigenschaftsart)i); int basiswert = person_->Basiswert((DSA::Eigenschaftsart)i); ! basisEigenschaftWert_[i]->SetValue(strings::int2sStr(wert).c_str()); FindWindow(IDBasisEigenschaftPlus((DSA::Eigenschaftsart)i))-> Show(person_->Steigerbar((DSA::Eigenschaftsart)i)); FindWindow(IDBasisEigenschaftMinus((DSA::Eigenschaftsart)i))-> Show(person_->Senkbar((DSA::Eigenschaftsart)i)); ! basisEigenschaftBasisWert_[i]->SetValue(strings::int2sStr(basiswert).c_str()); ! basisEigenschaftModWert_[i]->SetValue( (((basiswert<=wert)?"+":"") + strings::int2sStr(wert-basiswert)).c_str()); FindWindow(IDBasisEigenschaftMod((DSA::Eigenschaftsart)i))->Show(basiswert!=wert); person_->BerechneEigenschaftenMaxima(); ! basisEigenschaftMaxWert_[i]->SetValue (strings::int2sStr(person_->P()->eigenschaft_[i].Maximalwert()).c_str()); } *************** *** 1560,1564 **** int wert = person_->Wert((DSA::AbgeleiteterWertArt)i); int basiswert = person_->Basiswert((DSA::AbgeleiteterWertArt)i); ! basisAbgeleiteterWert_[i]->SetLabel( strings::int2sStr(person_->Wert((DSA::AbgeleiteterWertArt)i)).c_str()); FindWindow(IDBasisAbgeleiteterWertPlus((DSA::AbgeleiteterWertArt)i))-> --- 1560,1564 ---- int wert = person_->Wert((DSA::AbgeleiteterWertArt)i); int basiswert = person_->Basiswert((DSA::AbgeleiteterWertArt)i); ! basisAbgeleiteterWert_[i]->SetValue( strings::int2sStr(person_->Wert((DSA::AbgeleiteterWertArt)i)).c_str()); FindWindow(IDBasisAbgeleiteterWertPlus((DSA::AbgeleiteterWertArt)i))-> *************** *** 1566,1571 **** FindWindow(IDBasisAbgeleiteterWertMinus((DSA::AbgeleiteterWertArt)i))-> Show(person_->Senkbar((DSA::AbgeleiteterWertArt)i)); ! basisAbgeleiteterBasisWert_[i]->SetLabel(strings::int2sStr(basiswert).c_str()); ! basisAbgeleiteterModWert_[i]->SetLabel( (((basiswert<=wert)?"+":"") + strings::int2sStr(wert-basiswert)).c_str()); FindWindow(IDBasisAbgeleiteterWertMod((DSA::AbgeleiteterWertArt)i))-> --- 1566,1571 ---- FindWindow(IDBasisAbgeleiteterWertMinus((DSA::AbgeleiteterWertArt)i))-> Show(person_->Senkbar((DSA::AbgeleiteterWertArt)i)); ! basisAbgeleiteterBasisWert_[i]->SetValue(strings::int2sStr(basiswert).c_str()); ! basisAbgeleiteterModWert_[i]->SetValue( (((basiswert<=wert)?"+":"") + strings::int2sStr(wert-basiswert)).c_str()); FindWindow(IDBasisAbgeleiteterWertMod((DSA::AbgeleiteterWertArt)i))-> *************** *** 1576,1584 **** DSA::Modifikatoren* mods; if (basisAbgeleitet_) { ! basisModifikatorenTitel_->SetLabel ((DSA::AbgeleiteterWertString(basisAbgeleiteterWertArt_)+"-"+_t("Modifikatoren")).c_str()); mods = &person_->P()->abgeleiteterWert_[(int)basisAbgeleiteterWertArt_].modifikatoren_; } else { ! basisModifikatorenTitel_->SetLabel ((DSA::EigenschaftString(basisEigenschaftsart_)+"-"+_t("Modifikatoren")).c_str()); mods = &person_->P()->eigenschaft_[(int)basisEigenschaftsart_].modifikatoren_; --- 1576,1584 ---- DSA::Modifikatoren* mods; if (basisAbgeleitet_) { ! basisModifikatorenTitel_->SetValue ((DSA::AbgeleiteterWertString(basisAbgeleiteterWertArt_)+"-"+_t("Modifikatoren")).c_str()); mods = &person_->P()->abgeleiteterWert_[(int)basisAbgeleiteterWertArt_].modifikatoren_; } else { ! basisModifikatorenTitel_->SetValue ((DSA::EigenschaftString(basisEigenschaftsart_)+"-"+_t("Modifikatoren")).c_str()); mods = &person_->P()->eigenschaft_[(int)basisEigenschaftsart_].modifikatoren_; *************** *** 3530,3533 **** --- 3530,3538 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.42 2004/01/07 22:59:22 dertron + // wxTextCtrl besitzt die Methode SetValue zum setzen des Textes. + // Verwendet wird SetLabel, was unter Windows funktioniert, mit wxGTK aber nicht. (laut Anleitung sollte das auch nicht funktionieren) + // Fuer alle wxTextCtrl SetLabel durch SetValue ersetzt. + // // Revision 1.41 2004/01/06 03:51:04 vrandezo // Warnung beim Re-Generieren |
From: <de...@us...> - 2004-01-07 22:51:01
|
Update of /cvsroot/darkeyetool/det/src/dsa In directory sc8-pr-cvs1:/tmp/cvs-serv11270/src/dsa Modified Files: NDSABasis.h NDSAUtil.h Log Message: Kommentaranfang /* innerhalb von Kommentaren entfernt Index: NDSABasis.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/NDSABasis.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** NDSABasis.h 28 Nov 2003 16:46:16 -0000 1.5 --- NDSABasis.h 7 Jan 2004 22:50:57 -0000 1.6 *************** *** 36,42 **** //! verwandelt eine StringListe in einen einzelnen String /*! mit Trennzeichen kann angegeben werden, welches Zeichen zum trennen der einzelnen ! /* Strings der Liste verwendet werden soll. ", " "-" " " sind übliche Werte, ! /* es gehen aber auch andere Sachen. ! /*/ std::string liste2string(const StringListe& Liste, const std::string& Trennzeichen = ", ", const std::string& fallsLeer = "-"); --- 36,42 ---- //! verwandelt eine StringListe in einen einzelnen String /*! mit Trennzeichen kann angegeben werden, welches Zeichen zum trennen der einzelnen ! * Strings der Liste verwendet werden soll. ", " "-" " " sind übliche Werte, ! * es gehen aber auch andere Sachen. ! */ std::string liste2string(const StringListe& Liste, const std::string& Trennzeichen = ", ", const std::string& fallsLeer = "-"); *************** *** 45,53 **** //! der Hauptnamensraum mit DSA-Begriffen /*! Theoretisch hätten viele dieser Begriffe auch vollständig softe ! /* Daten sein können, welche ebenfalls veränderbar sind wie etwa die Talente. ! /* Sie befinden sich jedoch hier, weil das wahrscheinlich die Effizienz dramatisch ! /* erhöht, und zudem vergleichsweise selten verändert wird - zumindest selten ! /* genug, um eine Neukompilation in Kauf zu nehmen. ! /*/ namespace DSA { --- 45,53 ---- //! der Hauptnamensraum mit DSA-Begriffen /*! Theoretisch hätten viele dieser Begriffe auch vollständig softe ! * Daten sein können, welche ebenfalls veränderbar sind wie etwa die Talente. ! * Sie befinden sich jedoch hier, weil das wahrscheinlich die Effizienz dramatisch ! * erhöht, und zudem vergleichsweise selten verändert wird - zumindest selten ! * genug, um eine Neukompilation in Kauf zu nehmen. ! */ namespace DSA { *************** *** 163,166 **** --- 163,169 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.6 2004/01/07 22:50:57 dertron + // Kommentaranfang /* innerhalb von Kommentaren entfernt + // // Revision 1.5 2003/11/28 16:46:16 vrandezo // Zeilenvorlauf am Dateiende (Warnung bei gcc) Index: NDSAUtil.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/NDSAUtil.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** NDSAUtil.h 28 Nov 2003 16:46:16 -0000 1.5 --- NDSAUtil.h 7 Jan 2004 22:50:57 -0000 1.6 *************** *** 32,39 **** //! Nützliche Funktionen zu Strings /*! Der Namensraum strings kann erweiter werden, um weitere Konvertierungen ! /* verschiedener String-typen zu ermöglichen. Die Visual C++ Version etwa ! /* erweitert diesen Namensraum in der Datei StdAfx.h für einige MFC-typischen ! /* String-typen. ! /*/ namespace strings { --- 32,39 ---- //! Nützliche Funktionen zu Strings /*! Der Namensraum strings kann erweiter werden, um weitere Konvertierungen ! * verschiedener String-typen zu ermöglichen. Die Visual C++ Version etwa ! * erweitert diesen Namensraum in der Datei StdAfx.h für einige MFC-typischen ! * String-typen. ! */ namespace strings { *************** *** 49,52 **** --- 49,55 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.6 2004/01/07 22:50:57 dertron + // Kommentaranfang /* innerhalb von Kommentaren entfernt + // // Revision 1.5 2003/11/28 16:46:16 vrandezo // Zeilenvorlauf am Dateiende (Warnung bei gcc) |
From: <de...@us...> - 2004-01-07 22:02:45
|
Update of /cvsroot/darkeyetool/det/src In directory sc8-pr-cvs1:/tmp/cvs-serv30343/src Modified Files: detconfig.cpp Log Message: Pfad in #include enthielt \, in / geändert Index: detconfig.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/detconfig.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** detconfig.cpp 6 Jan 2004 03:52:49 -0000 1.1 --- detconfig.cpp 7 Jan 2004 22:02:42 -0000 1.2 *************** *** 29,33 **** #include "detconfig.h" #include "Log.h" ! #include "dsa\Texte.h" #include "LaderXerces.h" //@nonl --- 29,33 ---- #include "detconfig.h" #include "Log.h" ! #include "dsa/Texte.h" #include "LaderXerces.h" //@nonl *************** *** 131,134 **** --- 131,137 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.2 2004/01/07 22:02:42 dertron + // Pfad in #include enthielt \, in / geändert + // // Revision 1.1 2004/01/06 03:52:49 vrandezo // detConfig für Applikationskonfigurationsdaten hinzugefügt |
From: <vra...@us...> - 2004-01-07 21:40:21
|
Update of /cvsroot/darkeyetool/det In directory sc8-pr-cvs1:/tmp/cvs-serv25608 Modified Files: det.dsp Log Message: detconfig-Dateien hinzugefügt Index: det.dsp =================================================================== RCS file: /cvsroot/darkeyetool/det/det.dsp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** det.dsp 30 Dec 2003 21:24:50 -0000 1.14 --- det.dsp 7 Jan 2004 21:40:18 -0000 1.15 *************** *** 228,231 **** --- 228,235 ---- # Begin Source File + SOURCE=.\src\detconfig.cpp + # End Source File + # Begin Source File + SOURCE=.\src\gui\detExport.cpp # End Source File *************** *** 445,448 **** --- 449,456 ---- SOURCE=.\src\gui\CharakteristikumSchlechteEigenschaftGUIwx.h + # End Source File + # Begin Source File + + SOURCE=.\src\detconfig.h # End Source File # Begin Source File |
From: <de...@us...> - 2004-01-07 21:32:15
|
Update of /cvsroot/darkeyetool/det In directory sc8-pr-cvs1:/tmp/cvs-serv23465 Added Files: configure Log Message: configure Skript erstellt --- NEW FILE: configure --- #!/bin/sh case `uname -s` in CYGWIN*) PLATFORM=Cygwin;; FreeBSD | Linux) PLATFORM=UNIX;; *) PLATFORM=UNIX;; esac echo "CXX=c++" > Makefile CFLAGS="-O0 -isystem /usr/local/include/ -isystem /usr/include/ -I ./res/ -I ./src/ `wx-config --cxxflags | sed -e 's/-I/-isystem/g'`" echo "CFLAGS=${CFLAGS}" >> Makefile echo "CFLAGS += -w" >> Makefile echo "CFLAGS += -Wall -Werror" >> Makefile #echo "CFLAGS += -Wno-comment" >> Makefile echo "CFLAGS += -pedantic -pedantic-errors -Wno-long-long" >> Makefile echo "LFLAGS=`wx-config --libs` -L/lib/ -L/usr/local/lib/" >> Makefile case ${PLATFORM} in Cygwin) echo "LFLAGS += -lxerces-c.dll -mwindows" >> Makefile;; UNIX) echo "LFLAGS += -lxerces-c" >> Makefile;; esac echo "OBJECTS=`echo \`find src/ -name '*.cpp' | sed -e 's/\.cpp\$/\.o/' | grep -v src/detVer.o\` src/detVer.o`" >> Makefile case ${PLATFORM} in Cygwin) echo "OBJECTS += det.o" >> Makefile;; esac case ${PLATFORM} in Cygwin) echo ".SUFFIXES: .rc" >> Makefile;; esac case ${PLATFORM} in Cygwin) echo "all: det.exe" >> Makefile;; UNIX) echo "all: det" >> Makefile;; esac for i in `find src -name '*.cpp'` do g++ ${CFLAGS} -MM $i -MT `echo $i | sed -e 's/\.cpp\$/\.o/'` >> Makefile done case ${PLATFORM} in Cygwin) echo "det.exe: \$(OBJECTS)" >> Makefile;; UNIX) echo "det: \$(OBJECTS)" >> Makefile;; esac echo " @echo Binde \$@" >> Makefile echo " @\$(CXX) \$(OBJECTS) \$(LFLAGS) -o \$@" >> Makefile echo ".cpp.o:" >> Makefile echo " @echo Kompiliere \$<" >> Makefile echo " @\$(CXX) \$(CFLAGS) -c \$< -o \$@" >> Makefile case ${PLATFORM} in Cygwin) echo ".rc.o:" >> Makefile echo " @echo Verarbeite Ressource \$<" >> Makefile echo " @windres --include-dir /usr/local/include/ -O coff \$< -o \$@" >> Makefile;; esac case ${PLATFORM} in Cygwin) echo "src/detVer.cpp: vcreate.exe" >> Makefile;; UNIX) echo "src/detVer.cpp: vcreate" >> Makefile;; esac echo " @echo Erzeuge \$@" >> Makefile echo " @./vcreate" >> Makefile case ${PLATFORM} in Cygwin) echo "vcreate.exe: vcreate.cpp" >> Makefile;; UNIX) echo "vcreate: vcreate.cpp" >> Makefile;; esac echo " @echo Erzeuge \$@" >> Makefile echo " @\$(CXX) vcreate.cpp -o vcreate" >> Makefile echo "clean:" >> Makefile echo " @echo Raeume auf" >> Makefile case ${PLATFORM} in Cygwin) echo " @-rm -f det.exe vcreate.exe det.o src/detVer.cpp src/*.o src/dsa/*.o src/gui/*.o" >> Makefile;; UNIX) echo " @-rm -f det vcreate src/detVer.cpp src/*.o src/dsa/*.o src/gui/*.o" >> Makefile;; esac |
From: <vra...@us...> - 2004-01-06 03:52:53
|
Update of /cvsroot/darkeyetool/det/src In directory sc8-pr-cvs1:/tmp/cvs-serv27963 Modified Files: det.cpp LaderXerces.cpp LaderXerces.h Added Files: detconfig.cpp detconfig.h Log Message: detConfig für Applikationskonfigurationsdaten hinzugefügt --- NEW FILE: detconfig.cpp --- //@+leo-ver=4-encoding=iso-8859-1. //@+node:@file detconfig.cpp //@+at // Update.cpp: Implementierung der Klasse Update, welche // den Datenfile auf den neuesten Stand bringt // // $Revision: 1.1 $ // $Date: 2004/01/06 03:52:49 $ //@-at //@@c //@<< header >> //@+node:<< header >> //@+at // The content of this file is subject to the license // given in license.txt // //@-at //@@c #ifdef MSVC #pragma warning(disable:4786 4503) #endif //@-node:<< header >> //@nl //@<< includes >> //@+node:<< includes >> #include "detconfig.h" #include "Log.h" #include "dsa\Texte.h" #include "LaderXerces.h" //@nonl //@-node:<< includes >> //@nl //@<< filename >> //@+node:<< filename >> #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; //#define new DEBUG_NEW #endif //@-node:<< filename >> //@nl //@<< class detConfig >> //@+node:<< class detConfig >> detConfig* detConfig::singleton_ = 0; detConfig* detConfig::Config() { if (singleton_==0) singleton_ = new detConfig(); return singleton_; } // Hole Instanz void detConfig::Clear() { delete singleton_; singleton_ = 0; } // Clear detConfig::detConfig() { Reset(); } // Ctor void detConfig::Reset() { boolOptionen_ = std::map<std::string, bool>(); boolOptionen_["Warnung beim Re-Generieren"] = true; } // Reset bool detConfig::boolOption(const std::string& option) const { std::map<std::string, bool>::const_iterator i = boolOptionen_.find(option); if (i != boolOptionen_.end()) return i->second; Log::Add(_t("Unbekannte Option") + ": " + _t(option)); return false; } // boolOption void detConfig::boolOption(const std::string& option, bool b) { boolOptionen_[option] = b; } // boolOption int detConfig::Lese(const std::string& dateiname) { Reset(); LaderXerces* l = new LaderXerces(); l->Lade(dateiname); if (l->DocLeer()) { delete l; return 0; } int z = l->AnzahlKnoten(l->Wurzel(), _t("boolOption")); if (z>0) { StringListe ids; l->IDListe(l->Wurzel(), _t("boolOption"), &ids); for (StringListe::iterator s = ids.begin(); s != ids.end(); ++s) { xercesc::DOMElement* node = 0; StringListe sl; sl.push_back("detconfig"); sl.push_back(_t("boolOption")); sl.push_back(_t("ID")); sl.push_back(_t(*s)); l->gehePfad(sl, &node); std::string w; l->LeseString(node, &w); boolOptionen_[*s] = (w==_t("ja")); } } delete l; return 0; } // Lese int detConfig::Schreibe(const std::string& dateiname) const { LaderXerces* l = new LaderXerces(); l->NeuesDokument(dateiname, "detconfig"); for (std::map<std::string, bool>::const_iterator i = boolOptionen_.begin(); i != boolOptionen_.end(); ++i) { l->NeuerKnoten(l->Wurzel(), _t("boolOption"), _t(i->first)); xercesc::DOMElement* node = 0; StringListe sl; sl.push_back("detconfig"); sl.push_back(_t("boolOption")); sl.push_back(_t("ID")); sl.push_back(_t(i->first)); l->gehePfad(sl, &node); l->SchreibeString(node, (i->second ? _t("ja") : _t("nein"))); } l->Speicher(dateiname); return 0; } // Schreibe //@-node:<< class detConfig >> //@nl //@<< Version History >> //@+node:<< Version History >> // $Log: detconfig.cpp,v $ // Revision 1.1 2004/01/06 03:52:49 vrandezo // detConfig für Applikationskonfigurationsdaten hinzugefügt // //@-node:<< Version History >> //@nl //@nonl //@-node:@file detconfig.cpp //@-leo --- NEW FILE: detconfig.h --- //@+leo-ver=4-encoding=iso-8859-1. //@+node:@file detconfig.h //@+at // detconfig.h: detconfig bietet Zugriff zu nicht // DSA-spezifischen, sondern Applikatonsspezifischen // Daten. // // $Revision: 1.1 $ // $Date: 2004/01/06 03:52:49 $ //@-at //@@c //@<< header >> //@+node:<< header >> //@+at // The content of this file is subject to the license // given in license.txt // //@-at //@@c #ifdef MSVC #pragma warning(disable:4786 4503) #endif //@-node:<< header >> //@nl //@<< includes >> //@+node:<< includes >> #include <string> #include <map> //@nonl //@-node:<< includes >> //@nl #if !defined(DETCONFIG_H) #define DETCONFIG_H namespace DSA { class PersistenzManager; } //@<< class detConfig >> //@+node:<< class detConfig >> class detConfig { public: static detConfig* Config(); static void Clear(); void Reset(); bool boolOption(const std::string& option) const; void boolOption(const std::string& option, bool b); int Lese(const std::string& datei); int Schreibe(const std::string& datei) const; private: detConfig(); virtual ~detConfig() {}; static detConfig* singleton_; std::map<std::string, bool> boolOptionen_; }; // detConfig //@nonl //@-node:<< class detConfig >> //@nl #endif // !defined(DETCONFIG_H) //@<< Version History >> //@+node:<< Version History >> // $Log: detconfig.h,v $ // Revision 1.1 2004/01/06 03:52:49 vrandezo // detConfig für Applikationskonfigurationsdaten hinzugefügt // //@nonl //@-node:<< Version History >> //@nl //@nonl //@-node:@file detconfig.h //@-leo Index: det.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/det.cpp,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** det.cpp 31 Dec 2003 03:52:23 -0000 1.39 --- det.cpp 6 Jan 2004 03:52:49 -0000 1.40 *************** *** 88,91 **** --- 88,93 ---- #include "wx/filename.h" + #include "detconfig.h" + #include "gui/PersonGUIwx.h" #include "gui/RasseGUIwx.h" *************** *** 1027,1030 **** --- 1029,1034 ---- virtual bool OnInit(); virtual int OnExit(); + private: + std::string configdatei; }; // detApp *************** *** 1046,1092 **** // 'Main program' equivalent: the program execution "starts" here bool detApp::OnInit() { ! // Absichtlicher kleiner Memory Leak zum Testen. Sollte 4 Byte zurückliefern. ! // wird in der Release-Version nicht ausgeführt, also gibt es da keinen Memory ! // Leak :) #ifdef _DEBUG int* i__i; i__i = new int(); #endif ! // Holt sich den Standardpfad aus der Registry bzw. erzeugt dort einen, ! // falls noch keiner vorhanden war. ! wxString wxstandardpfad; ! wxConfig* config = new wxConfig("DarkeyeTool"); ! ! if (!config->Exists("DSA4WZPath")) ! { ! wxDirDialog* dd = new wxDirDialog(0, "Wähle ein Standardverzeichnis für die DSA4 Werkzeug Daten / Choose a directory for the Dark Eye Tool Data"); ! dd->ShowModal(); ! wxstandardpfad = dd->GetPath(); ! config->Write("DSA4WZPath", wxstandardpfad); ! } ! wxstandardpfad = config->Read("DSA4WZPath", wxstandardpfad); ! ! bool neueVersion = false; ! if (!config->Exists("DSA4WZVersion")) { ! neueVersion = true; ! config->Write("DSA4WZVersion", detVERSION); ! } ! wxString wxStringVersion; ! wxStringVersion = config->Read(wxString("DSA4WZVersion")); // TODOPORT ! if (wxStringVersion != detVERSION) neueVersion = true; ! config->Write("DSA4WZVersion", detVERSION); ! ! delete config; standardpfad = wxstandardpfad.c_str(); ! // setzt das Locale (nicht unbedingt portabel) - alternativer Namen wäre "de" ! std::locale loc("German"); // TODOPORT std::locale::global(loc); // TODOPORT ! wxLocale* wxloc = new wxLocale(); ! wxloc->Init(wxLANGUAGE_GERMAN); // sollte eigentlich für die Sortierung der Strings sorgen, scheint aber // nicht zu taugen ! #ifdef _DEBUG Texte::Initialisiere(standardpfad+"/"+"dettexte.txt"); --- 1050,1119 ---- // 'Main program' equivalent: the program execution "starts" here bool detApp::OnInit() { ! //@<< MemTest >> ! //@+node:<< MemTest >> ! //@+at ! // Absichtlicher kleiner Memory Leak zum Testen. Sollte 4 ! // Byte zurückliefern, wird in der Release-Version nicht ! // ausgeführt, also gibt es da keinen Memory ! // Leak :) ! //@-at ! //@@c #ifdef _DEBUG int* i__i; i__i = new int(); #endif + //@nonl + //@-node:<< MemTest >> + //@nl ! //@ << Hole Standardpfad nach wxString wxstandardpfad >> ! //@+node:<< Hole Standardpfad nach wxString wxstandardpfad >> ! // Holt sich den Standardpfad aus der Registry bzw. erzeugt dort einen, ! // falls noch keiner vorhanden war. ! wxString wxstandardpfad; ! wxConfig* config = new wxConfig("DarkeyeTool"); ! ! if (!config->Exists("DSA4WZPath")) ! { ! wxDirDialog* dd = new wxDirDialog(0, "Wähle ein Standardverzeichnis für die DSA4 Werkzeug Daten / Choose a directory for the Dark Eye Tool Data"); ! dd->ShowModal(); ! wxstandardpfad = dd->GetPath(); ! config->Write("DSA4WZPath", wxstandardpfad); ! } ! wxstandardpfad = config->Read("DSA4WZPath", wxstandardpfad); ! //@nonl ! //@-node:<< Hole Standardpfad nach wxString wxstandardpfad >> ! //@nl ! //@ << Checke Version >> ! //@+node:<< Checke Version >> ! bool neueVersion = false; ! if (!config->Exists("DSA4WZVersion")) { ! neueVersion = true; ! config->Write("DSA4WZVersion", detVERSION); ! } ! wxString wxStringVersion; ! wxStringVersion = config->Read(wxString("DSA4WZVersion")); // TODOPORT ! if (wxStringVersion != detVERSION) neueVersion = true; ! config->Write("DSA4WZVersion", detVERSION); ! ! delete config; ! //@nonl ! //@-node:<< Checke Version >> ! //@nl standardpfad = wxstandardpfad.c_str(); ! ! //@ << setze Locales >> ! //@+node:<< setze Locales >> // setzt das Locale (nicht unbedingt portabel) - alternativer Namen wäre "de" ! std::locale loc("German"); // TODOPORT std::locale::global(loc); // TODOPORT ! wxLocale* wxloc = new wxLocale(); ! wxloc->Init(wxLANGUAGE_GERMAN); // sollte eigentlich für die Sortierung der Strings sorgen, scheint aber // nicht zu taugen ! //@nonl ! //@-node:<< setze Locales >> ! //@nl ! #ifdef _DEBUG Texte::Initialisiere(standardpfad+"/"+"dettexte.txt"); *************** *** 1096,1114 **** DSA::PersistenzManager::SetzeFabrik(new DSA::PersistenzManagerFabrikXerces()); std::string importdatei = ""; bool import = (argc>1); if (import) importdatei = argv[1]; ! ! // create the main application window std::string titel = _t("DSA4 Werkzeug") + " " detVERSION; detFrame* frame = new detFrame(titel.c_str()); frame->Centre(); ! wxCommandEvent ce; ! frame->OnEinstellungenGPStandard(ce); ! int i = frame->GetMenuBar()->FindMenuItem("&Einstellungen", "&Standard"); ! wxMenuItem* m = frame->GetMenuBar()->FindItem(i); ! m->Check(true); ! frame->Show(!import); ! // setze wxWindows Hole-Implementierung DSA::hole(new DSA::HoleGUIwx(frame)); --- 1123,1150 ---- DSA::PersistenzManager::SetzeFabrik(new DSA::PersistenzManagerFabrikXerces()); + + //@ << Setze Namen der Importdatei >> + //@+node:<< Setze Namen der Importdatei >> std::string importdatei = ""; bool import = (argc>1); if (import) importdatei = argv[1]; ! //@nonl ! //@-node:<< Setze Namen der Importdatei >> ! //@nl ! //@ << create the main application window >> ! //@+node:<< create the main application window >> std::string titel = _t("DSA4 Werkzeug") + " " detVERSION; detFrame* frame = new detFrame(titel.c_str()); frame->Centre(); ! wxCommandEvent ce; ! frame->OnEinstellungenGPStandard(ce); ! int i = frame->GetMenuBar()->FindMenuItem("&Einstellungen", "&Standard"); ! wxMenuItem* m = frame->GetMenuBar()->FindItem(i); ! m->Check(true); ! frame->Show(!import); ! //@nonl ! //@-node:<< create the main application window >> ! //@nl ! // setze wxWindows Hole-Implementierung DSA::hole(new DSA::HoleGUIwx(frame)); *************** *** 1116,1121 **** wxLogInfo(_t("Programm gestartet").c_str()); ! frame->Put(_t("Entworfen von Denny Vrandecic") + ", " detEMAIL ", " detWEBSITE); ! frame->Put(_t("Dieses Programm ist unter der BSD-Lizenz veröffentlicht.")); // TODO Das richtige Verzeichnis laden, sonst lädt er wild aus der Gegend --- 1152,1157 ---- wxLogInfo(_t("Programm gestartet").c_str()); ! configdatei = standardpfad + "\\" + "detconfig.xml"; ! detConfig::Config()->Lese(configdatei); // TODO Das richtige Verzeichnis laden, sonst lädt er wild aus der Gegend *************** *** 1125,1149 **** if (wxFileExists(standarddatei.GetFullPath())) frame->Lade(standarddatei.GetFullPath().c_str()); ! ! if (neueVersion) { ! wxFileName basisdatei; ! basisdatei.AssignDir(wxstandardpfad); ! basisdatei.SetFullName("basis.xdi"); ! if (wxFileExists(basisdatei.GetFullPath())) { ! wxMessageDialog f(0, _t("Sie starten zum ersten Mal diese Version des DSA4 Werkzeugs.\nSoll die mitgelieferte Datenbasis importiert werden?").c_str(), _t("Achtung!").c_str(), wxYES_NO | wxYES_DEFAULT | wxCANCEL | wxCENTRE); ! int rv = f.ShowModal(); ! if (rv == wxID_YES) { frame->Importiere(basisdatei.GetFullPath().c_str()); ! frame->Speicher(standarddatei.GetFullPath().c_str()); ! } ! } ! } ! Log::Info(standarddatei.GetFullPath().c_str()); if (import) { ! frame->Importiere(importdatei); ! frame->Speicher(standarddatei.GetFullPath().c_str()); ! return false; ! } // success: wxApp::OnRun() will be called which will enter the main message --- 1161,1199 ---- if (wxFileExists(standarddatei.GetFullPath())) frame->Lade(standarddatei.GetFullPath().c_str()); ! ! //@ << Update auf neue Version >> ! //@+node:<< Update auf neue Version >> ! if (neueVersion) { ! wxFileName basisdatei; ! basisdatei.AssignDir(wxstandardpfad); ! basisdatei.SetFullName("basis.xdi"); ! if (wxFileExists(basisdatei.GetFullPath())) { ! wxMessageDialog f(0, _t("Sie starten zum ersten Mal diese Version des DSA4 Werkzeugs.\nSoll die mitgelieferte Datenbasis importiert werden?").c_str(), _t("Achtung!").c_str(), wxYES_NO | wxYES_DEFAULT | wxCANCEL | wxCENTRE); ! int rv = f.ShowModal(); ! if (rv == wxID_YES) { frame->Importiere(basisdatei.GetFullPath().c_str()); ! frame->Speicher(standarddatei.GetFullPath().c_str()); ! } ! } ! } ! //@nonl ! //@-node:<< Update auf neue Version >> ! //@nl ! Log::Info(standarddatei.GetFullPath().c_str()); + //@ << Importieren >> + //@+node:<< Importieren >> if (import) { ! frame->Importiere(importdatei); ! frame->Speicher(standarddatei.GetFullPath().c_str()); ! return false; ! } ! //@nonl ! //@-node:<< Importieren >> ! //@nl ! ! frame->Put(_t("Willkommen zum DSA4 Werkzeug") + " " detVERSION); ! frame->Put(_t("Ein OpenSource-Projekt") + " - " + _t("Projektleiter") + " " + _t("Denny Vrandecic") + ", " detEMAIL ", " detWEBSITE); ! frame->Put(_t("Dieses Programm ist unter der BSD-Lizenz veröffentlicht.")); // success: wxApp::OnRun() will be called which will enter the main message *************** *** 1180,1183 **** --- 1230,1235 ---- } } + detConfig::Config()->Schreibe(configdatei); + detConfig::Clear(); DSA::PersistenzManager::SetzeFabrik(0); delete DSA::personen(); *************** *** 1269,1272 **** --- 1321,1327 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.40 2004/01/06 03:52:49 vrandezo + // detConfig für Applikationskonfigurationsdaten hinzugefügt + // // Revision 1.39 2003/12/31 03:52:23 vrandezo // 1.29 Beta Index: LaderXerces.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/LaderXerces.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** LaderXerces.cpp 28 Nov 2003 16:45:03 -0000 1.7 --- LaderXerces.cpp 6 Jan 2004 03:52:49 -0000 1.8 *************** *** 132,136 **** Log::Debug("Lader::Lade"); Log::Debug(DateiName); ! if (doc != 0) {} // Eine Datei ist schon geladen! Was nun? m_DateiName = DateiName; doc = parser->parseURI(m_DateiName.c_str()); --- 132,136 ---- Log::Debug("Lader::Lade"); Log::Debug(DateiName); ! if (doc != 0) { delete doc; doc = 0; } // Eine Datei ist schon geladen! Was nun? m_DateiName = DateiName; doc = parser->parseURI(m_DateiName.c_str()); *************** *** 151,163 **** //@@c ! int LaderXerces::NeuesDokument (std::string DateiName) { ! if (doc != 0) {} // Eine Datei ist schon geladen! Was nun? m_DateiName = DateiName; xercesc::DOMImplementation* impl = xercesc::DOMImplementationRegistry::getDOMImplementation(X(std::string("Core"))); ! doc = impl->createDocument(0, X(std::string("XDIML")), 0); ! Wurzel()->setAttribute(X(std::string("version")), X(std::string("1.01"))); ! Wurzel()->setAttribute(X(std::string("lang")), X(std::string("de"))); // TODO Hier müssen Fehlerbehandlung --- 151,165 ---- //@@c ! int LaderXerces::NeuesDokument (std::string DateiName, const std::string& Wurzelname) { ! if (doc != 0) { delete doc; doc = 0; } // Eine Datei ist schon geladen! Was nun? m_DateiName = DateiName; xercesc::DOMImplementation* impl = xercesc::DOMImplementationRegistry::getDOMImplementation(X(std::string("Core"))); ! doc = impl->createDocument(0, X(Wurzelname), 0); ! if (Wurzelname=="XDIML") { ! Wurzel()->setAttribute(X(std::string("version")), X(std::string("1.01"))); ! Wurzel()->setAttribute(X(std::string("lang")), X(std::string("de"))); ! } // TODO Hier müssen Fehlerbehandlung *************** *** 1186,1189 **** --- 1188,1194 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.8 2004/01/06 03:52:49 vrandezo + // detConfig für Applikationskonfigurationsdaten hinzugefügt + // // Revision 1.7 2003/11/28 16:45:03 vrandezo // Zeilenvorlauf am Dateiende (Warnung bei gcc) Index: LaderXerces.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/LaderXerces.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** LaderXerces.h 4 Dec 2003 17:10:50 -0000 1.6 --- LaderXerces.h 6 Jan 2004 03:52:49 -0000 1.7 *************** *** 46,50 **** const std::string LaderVersion() const; ! int NeuesDokument (std::string Dateiname = ""); int Lade (std::string DateiName=""); --- 46,50 ---- const std::string LaderVersion() const; ! int NeuesDokument (std::string Dateiname = "", const std::string& Wurzelname = "XDIML"); int Lade (std::string DateiName=""); *************** *** 110,114 **** xercesc::DOMElement* Wurzel(); xercesc::DOMElement* VaterKnoten(const xercesc::DOMElement* const) const; ! int gehePfad(const StringListe& Pfad, xercesc::DOMElement** node, int Nummer = 0, const xercesc::DOMElement* const start = 0); private: --- 110,116 ---- xercesc::DOMElement* Wurzel(); xercesc::DOMElement* VaterKnoten(const xercesc::DOMElement* const) const; ! int gehePfad(const StringListe& Pfad, xercesc::DOMElement** node, int Nummer = 0, const xercesc::DOMElement* const start = 0); ! ! bool DocLeer() const { return doc == 0; } private: *************** *** 132,135 **** --- 134,140 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.7 2004/01/06 03:52:49 vrandezo + // detConfig für Applikationskonfigurationsdaten hinzugefügt + // // Revision 1.6 2003/12/04 17:10:50 vrandezo // Trons BSD-Portierung |
From: <vra...@us...> - 2004-01-06 03:51:08
|
Update of /cvsroot/darkeyetool/det/src/gui In directory sc8-pr-cvs1:/tmp/cvs-serv27758 Modified Files: PersonGUIwx.cpp Log Message: Warnung beim Re-Generieren Index: PersonGUIwx.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonGUIwx.cpp,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** PersonGUIwx.cpp 31 Dec 2003 03:52:09 -0000 1.40 --- PersonGUIwx.cpp 6 Jan 2004 03:51:04 -0000 1.41 *************** *** 45,48 **** --- 45,49 ---- #include "PersonGUIwx.h" + #include "detconfig.h" #include "wx/sizer.h" *************** *** 2325,2328 **** --- 2326,2354 ---- //@+node:OnGenerieren void PersonGUIwx::OnGenerieren(wxCommandEvent& WXUNUSED(event)) { + //@ << Warnung >> + //@+node:<< Warnung >> + if (detConfig::Config()->boolOption("Warnung beim Re-Generieren")) { + wxString msg = _t( + "\n\ + Durch das Drücken dieses Knopfes erschaffen Sie\n\ + nicht etwa einen neuen Helden, sondern der vorliegende\n\ + Held wird kopiert und auf den Zustand gebracht, den er\n\ + vor Abschluss der Generierung hatte, so dass Sie ihn nach\n\ + Belieben verändern können.\n\ + \n\ + Wenn Sie einen neuen Helden erschaffen wollen, brechen Sie\n\ + diese Generierung ab und drücken Sie auf den Knopf \"Neu\".\n\ + \n\ + Mit Helden, die mit einer Version älter als 1.27 erschaffen\n\ + wurden, ist dieses erneute Generieren leider nicht möglich.\n\ + \n\ + Soll diese Warnung auch weiterhin angezeigt werden?").c_str(); + wxMessageDialog dlg(this, msg, _t("Achtung!").c_str(), wxYES_NO | wxYES_DEFAULT | wxICON_EXCLAMATION); + long antwort = dlg.ShowModal(); + if (antwort == wxID_NO) + detConfig::Config()->boolOption("Warnung beim Re-Generieren", false); + } + //@-node:<< Warnung >> + //@nl std::auto_ptr<DSA::Person> p = person_->HolePerson(); HandlerArt("Generator"); *************** *** 3504,3507 **** --- 3530,3536 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.41 2004/01/06 03:51:04 vrandezo + // Warnung beim Re-Generieren + // // Revision 1.40 2003/12/31 03:52:09 vrandezo // Re-Generation erweitert |
From: <tw...@us...> - 2004-01-05 06:22:38
|
Update of /cvsroot/darkeyetool/det/src/dsa In directory sc8-pr-cvs1:/tmp/cvs-serv10518 Modified Files: Wuerfel.cpp Log Message: Würfelergebnis korrigiert Index: Wuerfel.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/Wuerfel.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Wuerfel.cpp 4 Dec 2003 17:13:04 -0000 1.4 --- Wuerfel.cpp 5 Jan 2004 06:22:35 -0000 1.5 *************** *** 30,35 **** srand( (unsigned)time( 0 ) ); } ! r += rand() * seiten / RAND_MAX + 1; ! // r += (static_cast<double>(rand())/RAND_MAX)*seiten + 1; } return r; --- 30,34 ---- srand( (unsigned)time( 0 ) ); } ! r += (static_cast<double>(rand())/RAND_MAX)*seiten + 1; } return r; *************** *** 39,42 **** --- 38,44 ---- // $Log$ + // Revision 1.5 2004/01/05 06:22:35 twel + // Würfelergebnis korrigiert + // // Revision 1.4 2003/12/04 17:13:04 vrandezo // Trons BSD-Portierung *************** *** 66,69 **** --- 68,74 ---- // $Log$ + // Revision 1.5 2004/01/05 06:22:35 twel + // Würfelergebnis korrigiert + // // Revision 1.4 2003/12/04 17:13:04 vrandezo // Trons BSD-Portierung |
From: <vra...@us...> - 2004-01-05 05:44:00
|
Update of /cvsroot/darkeyetool/det/src/dsa In directory sc8-pr-cvs1:/tmp/cvs-serv4517 Modified Files: Voraussetzung.cpp Log Message: Sonderfertigkeiten können jetzt negative Voraussetzungen sein Index: Voraussetzung.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/Voraussetzung.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Voraussetzung.cpp 28 Nov 2003 16:46:16 -0000 1.14 --- Voraussetzung.cpp 5 Jan 2004 05:43:57 -0000 1.15 *************** *** 123,126 **** --- 123,128 ---- if (person.charakteristika_.Verfuegt(ID())) return false; + if (person.sonderfertigkeiten_.Existiert(ID())) + return false; return true; } *************** *** 200,203 **** --- 202,208 ---- || (generierteCharakteristika()->Existiert(ID()))) gefunden = true; + if ((sonderfertigkeiten()->Existiert(ID())) + ||(generierteSonderfertigkeiten()->Existiert(ID()))) + gefunden = true; } if (!(Maximal() || Minimal() || Kein())) { *************** *** 264,267 **** --- 269,275 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.15 2004/01/05 05:43:57 vrandezo + // Sonderfertigkeiten können jetzt negative Voraussetzungen sein + // // Revision 1.14 2003/11/28 16:46:16 vrandezo // Zeilenvorlauf am Dateiende (Warnung bei gcc) *************** *** 381,384 **** --- 389,395 ---- // $Log$ + // Revision 1.15 2004/01/05 05:43:57 vrandezo + // Sonderfertigkeiten können jetzt negative Voraussetzungen sein + // // Revision 1.14 2003/11/28 16:46:16 vrandezo // Zeilenvorlauf am Dateiende (Warnung bei gcc) |
From: <vra...@us...> - 2004-01-05 05:32:57
|
Update of /cvsroot/darkeyetool/det/src/dsa In directory sc8-pr-cvs1:/tmp/cvs-serv2576 Modified Files: Auswahl.h Log Message: Template Parameter nach C++-Standard (auf Twels Hinweis) Index: Auswahl.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/Auswahl.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Auswahl.h 5 Jan 2004 03:35:19 -0000 1.10 --- Auswahl.h 5 Jan 2004 05:32:54 -0000 1.11 *************** *** 85,93 **** std::string Kommentar() const { return kommentar_; } void Kommentar(const std::string& kommentar) { kommentar_ = kommentar; } ! ! bool Existiert(const std::string& x) const { ! return (std::find(id_.begin(), id_.end(), x)!=id_.end()); ! } // Existiert ! //@ << operator== >> //@+node:<< operator== >> --- 85,93 ---- std::string Kommentar() const { return kommentar_; } void Kommentar(const std::string& kommentar) { kommentar_ = kommentar; } ! ! bool Existiert(const std::string& x) const { ! return (std::find(id_.begin(), id_.end(), x)!=id_.end()); ! } // Existiert ! //@ << operator== >> //@+node:<< operator== >> *************** *** 164,176 **** //@ << Lese >> //@+node:<< Lese >> ! int Lese(PersistenzManager* pm, const int nr) { ! std::string einzelid = ""; int rv = pm->OeffneZumLesen(T::Klasse(), nr, einzelid); bool geoeffnet = (rv==0); std::string art = "einfach"; if (pm->Existiert(_t("Auswahlart"))) rv += pm->Lese(_t("Auswahlart"), art); ! StringListe id; ! if (einzelid!="") id.push_back(einzelid); // um Charakteristika zu uebernehmen ! int zahl = pm->Anzahl(_t("ID")); int i = 0; for (; i < zahl; ++i) { --- 164,176 ---- //@ << Lese >> //@+node:<< Lese >> ! int Lese(PersistenzManager* pm, const int nr) { ! std::string einzelid = ""; int rv = pm->OeffneZumLesen(T::Klasse(), nr, einzelid); bool geoeffnet = (rv==0); std::string art = "einfach"; if (pm->Existiert(_t("Auswahlart"))) rv += pm->Lese(_t("Auswahlart"), art); ! StringListe id; ! if (einzelid!="") id.push_back(einzelid); // um Charakteristika zu uebernehmen ! int zahl = pm->Anzahl(_t("ID")); int i = 0; for (; i < zahl; ++i) { *************** *** 185,195 **** wert.push_back(einzelwert); } ! zahl = pm->Anzahl(_t("Stufe")); // um Charakteristika zu uebernehmen ! for (i = 0; i < zahl; ++i) { ! rv += pm->LeseMehrfach(_t("Stufe"), einzelwert, i); ! wert.push_back(einzelwert); ! } std::string kommentar; ! if (pm->Existiert(_t("Spezifizierung"))) rv += pm->Lese(_t("Spezifizierung"), kommentar); // um Charakteristika zu uebernehmen if (pm->Existiert(_t("Kommentar"))) rv += pm->Lese(_t("Kommentar"), kommentar); --- 185,195 ---- wert.push_back(einzelwert); } ! zahl = pm->Anzahl(_t("Stufe")); // um Charakteristika zu uebernehmen ! for (i = 0; i < zahl; ++i) { ! rv += pm->LeseMehrfach(_t("Stufe"), einzelwert, i); ! wert.push_back(einzelwert); ! } std::string kommentar; ! if (pm->Existiert(_t("Spezifizierung"))) rv += pm->Lese(_t("Spezifizierung"), kommentar); // um Charakteristika zu uebernehmen if (pm->Existiert(_t("Kommentar"))) rv += pm->Lese(_t("Kommentar"), kommentar); *************** *** 283,292 **** template<class T> ! class AuswahlMenge : public MengeOhneID<Auswahl<T> > { ! public: ! bool Existiert(const std::string& x) const { ! for (const_iterator i = begin(); i != end(); ++i) ! if (i->Existiert(x)) return true; ! return false; } // Existiert }; // AuswahlMenge --- 283,292 ---- template<class T> ! class AuswahlMenge : public MengeOhneID<Auswahl<T> > { ! public: ! bool Existiert(const std::string& x) const { ! for (typename MengeOhneID<Auswahl<T> >::const_iterator i = begin(); i != end(); ++i) ! if (i->Existiert(x)) return true; ! return false; } // Existiert }; // AuswahlMenge *************** *** 299,302 **** --- 299,305 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.11 2004/01/05 05:32:54 vrandezo + // Template Parameter nach C++-Standard (auf Twels Hinweis) + // // Revision 1.10 2004/01/05 03:35:19 vrandezo // SF bei RKP-Defs sind jetzt auch Auswahlmengen statt einfacher Mengen |
Update of /cvsroot/darkeyetool/det/src/gui In directory sc8-pr-cvs1:/tmp/cvs-serv32734 Modified Files: KulturGUIwx.cpp PersonenKomponenteGUIwx.h PersonGUIPersonenKomponentewx.cpp ProfessionGUIwx.cpp RasseGUIwx.cpp Log Message: Auswahlen bei Char und SF implementiert Index: KulturGUIwx.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/KulturGUIwx.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** KulturGUIwx.cpp 28 Nov 2003 23:26:55 -0000 1.14 --- KulturGUIwx.cpp 5 Jan 2004 05:12:13 -0000 1.15 *************** *** 440,443 **** --- 440,444 ---- EVT_BUTTON (CHARPLUS, KulturGUIwx::OnCharPlus) EVT_BUTTON (CHARMINUS, KulturGUIwx::OnCharMinus) + EVT_BUTTON (CHARODER, KulturGUIwx::OnCharOder) EVT_LISTBOX (CHARLISTE, KulturGUIwx::OnCharListe) EVT_LISTBOX_DCLICK(CHARLISTE, KulturGUIwx::OnCharListeD) *************** *** 449,452 **** --- 450,454 ---- EVT_BUTTON (SFPLUS, KulturGUIwx::OnSFPlus) EVT_BUTTON (SFMINUS, KulturGUIwx::OnSFMinus) + EVT_BUTTON (SFODER, KulturGUIwx::OnSFOder) EVT_LISTBOX (SFLISTE, KulturGUIwx::OnSFListe) EVT_LISTBOX_DCLICK(SFLISTE, KulturGUIwx::OnSFListeD) *************** *** 707,710 **** --- 709,715 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.15 2004/01/05 05:12:13 vrandezo + // Auswahlen bei Char und SF implementiert + // // Revision 1.14 2003/11/28 23:26:55 vrandezo // Kopierenknopf Index: PersonenKomponenteGUIwx.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonenKomponenteGUIwx.h,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** PersonenKomponenteGUIwx.h 5 Jan 2004 03:35:33 -0000 1.27 --- PersonenKomponenteGUIwx.h 5 Jan 2004 05:12:13 -0000 1.28 *************** *** 294,300 **** TALGESAMT, TALOPTIONEN, TALMODUS, CHARLISTE, MCHARLISTE, ! CHARWEG, CHARHINZU, CHARPLUS, CHARMINUS, SFLISTE, MSFLISTE, VSFLISTE, ! SFWEG, SFHINZU, SFPLUS, SFMINUS, VSFWEG, VSFHINZU, GPPLUS, GPMINUS, GPRECHNEN, NOTEBOOK, --- 294,300 ---- TALGESAMT, TALOPTIONEN, TALMODUS, CHARLISTE, MCHARLISTE, ! CHARWEG, CHARHINZU, CHARPLUS, CHARMINUS, CHARODER, SFLISTE, MSFLISTE, VSFLISTE, ! SFWEG, SFHINZU, SFPLUS, SFMINUS, VSFWEG, VSFHINZU, SFODER, GPPLUS, GPMINUS, GPRECHNEN, NOTEBOOK, *************** *** 635,638 **** --- 635,640 ---- spaltenSizer->Add(new wxButton(panel, CHARHINZU, "<", wxPoint(), wxSize(15, 20)), 0); spaltenSizer->Add(new wxBoxSizer(wxVERTICAL), 1); + spaltenSizer->Add(new wxButton(panel, CHARODER, "or", wxPoint(), wxSize(15, 20)), 0); + spaltenSizer->Add(new wxBoxSizer(wxVERTICAL), 1); spaltenSizer->Add(new wxButton(panel, CHARWEG, ">", wxPoint(), wxSize(15, 20)), 0); spaltenSizer->Add(new wxBoxSizer(wxVERTICAL), 2); *************** *** 654,660 **** zeilenSizer->Add(sonderfertigkeiten_, 1, wxEXPAND); wxBoxSizer* kontrollSizer = new wxBoxSizer(wxVERTICAL); ! kontrollSizer->Add(new wxBoxSizer(wxVERTICAL), 4); kontrollSizer->Add(new wxButton(panel, SFHINZU, "<", wxPoint(), wxSize(15, 20)), 0); kontrollSizer->Add(new wxBoxSizer(wxVERTICAL), 1); kontrollSizer->Add(new wxButton(panel, SFWEG, ">", wxPoint(), wxSize(15, 20)), 0); kontrollSizer->Add(new wxBoxSizer(wxVERTICAL), 2); --- 656,664 ---- zeilenSizer->Add(sonderfertigkeiten_, 1, wxEXPAND); wxBoxSizer* kontrollSizer = new wxBoxSizer(wxVERTICAL); ! kontrollSizer->Add(new wxBoxSizer(wxVERTICAL), 2); kontrollSizer->Add(new wxButton(panel, SFHINZU, "<", wxPoint(), wxSize(15, 20)), 0); kontrollSizer->Add(new wxBoxSizer(wxVERTICAL), 1); + kontrollSizer->Add(new wxButton(panel, SFODER, "or", wxPoint(), wxSize(15, 20)), 0); + kontrollSizer->Add(new wxBoxSizer(wxVERTICAL), 1); kontrollSizer->Add(new wxButton(panel, SFWEG, ">", wxPoint(), wxSize(15, 20)), 0); kontrollSizer->Add(new wxBoxSizer(wxVERTICAL), 2); *************** *** 1610,1621 **** void CharHinzu (const std::string& c) { DSA::CharakteristikumDefinition chdef = DSA::charakteristika()->Hole(c); ! DSA::Auswahl<DSA::Charakteristikum> a; ! a.IDHinzu(chdef.ID()); ! std::string s = _t("Dieses Charakteristikum braucht eine Spezifizierung.\nSoll diese vorgegeben sein, geben Sie sie bitte jetzt ein.\nSoll der Spieler selbst wählen, lassen Sie das Feld frei."); if (chdef.BrauchtSpezifizierung()) ! a.Kommentar(DSA::hole()->Text(s)); ! if (chdef.SchlechteEigenschaft()) a.WertHinzu(5); // TODO Konstante objekt_->charakteristika_.FuegeEin(a); --- 1614,1625 ---- void CharHinzu (const std::string& c) { DSA::CharakteristikumDefinition chdef = DSA::charakteristika()->Hole(c); ! DSA::Auswahl<DSA::Charakteristikum> a; ! a.IDHinzu(chdef.ID()); ! std::string s = _t("Dieses Charakteristikum braucht eine Spezifizierung.\nSoll diese vorgegeben sein, geben Sie sie bitte jetzt ein.\nSoll der Spieler selbst wählen, lassen Sie das Feld frei."); if (chdef.BrauchtSpezifizierung()) ! a.Kommentar(DSA::hole()->Text(s)); ! if (chdef.SchlechteEigenschaft()) a.WertHinzu(5); // TODO Konstante objekt_->charakteristika_.FuegeEin(a); *************** *** 1687,1692 **** std::string auswahl; for (DSA::CharakteristikaAuswahl::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->Text() == c) { ! int w = i->HoleWert(0); i->EntferneLetztenWert(); i->WertHinzu(w+1); --- 1691,1696 ---- std::string auswahl; for (DSA::CharakteristikaAuswahl::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->Text() == c) { ! int w = i->HoleWert(0); i->EntferneLetztenWert(); i->WertHinzu(w+1); *************** *** 1707,1721 **** std::string auswahl; for (DSA::CharakteristikaAuswahl::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->Text() == c) { ! int w = i->HoleWert(0); ! i->EntferneLetztenWert(); ! i->WertHinzu(w-1); ! charakteristika_->SetString(sel, i->Text().c_str()); ! } // Update(); } // OnCharMinus //@-node:<< OnCharMinus >> //@nl ! //@nonl //@-node:<< Charakteristika Events >> //@nl --- 1711,1744 ---- std::string auswahl; for (DSA::CharakteristikaAuswahl::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->Text() == c) { ! int w = i->HoleWert(0); ! i->EntferneLetztenWert(); ! i->WertHinzu(w-1); ! charakteristika_->SetString(sel, i->Text().c_str()); ! } // Update(); } // OnCharMinus //@-node:<< OnCharMinus >> //@nl ! //@<< OnCharOder >> ! //@+node:<< OnCharOder >> ! void OnCharOder (wxCommandEvent& WXUNUSED(event)) { ! int sel1 = charakteristika_->GetSelection(); ! int sel2 = moeglicheCharakteristika_->GetSelection(); ! if ((sel1==-1)||(sel2==-1)) { ! Log::Add(_t("Um Charakteristika mit 'oder' zu verbinden, müssen zwei Charakteristika ausgewählt sein.")); ! return; ! } ! std::string c = charakteristika_->GetStringSelection().c_str(); ! std::string cneu = moeglicheCharakteristika_->GetStringSelection().c_str(); ! for (DSA::CharakteristikaAuswahl::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->Text() == c) { ! i->Art("Liste"); ! i->IDHinzu(cneu); ! charakteristika_->SetString(sel1, i->Text().c_str()); ! } ! } // OnCharOder ! //@-node:<< OnCharOder >> ! //@nl //@-node:<< Charakteristika Events >> //@nl *************** *** 1742,1747 **** if (sfdef==0) sfdef = DSA::generierteSonderfertigkeiten()->Zeige(sfs); ! if (sfdef==0) return; ! DSA::Auswahl<DSA::Sonderfertigkeit> a; a.IDHinzu(sfdef->ID()); std::string s = _t("Diese Sonderfertigkeit braucht eine Spezifizierung.\nSoll diese vorgegeben sein, geben Sie sie bitte jetzt ein.\nSoll der Spieler selbst wählen, lassen Sie das Feld frei."); --- 1765,1770 ---- if (sfdef==0) sfdef = DSA::generierteSonderfertigkeiten()->Zeige(sfs); ! if (sfdef==0) return; ! DSA::Auswahl<DSA::Sonderfertigkeit> a; a.IDHinzu(sfdef->ID()); std::string s = _t("Diese Sonderfertigkeit braucht eine Spezifizierung.\nSoll diese vorgegeben sein, geben Sie sie bitte jetzt ein.\nSoll der Spieler selbst wählen, lassen Sie das Feld frei."); *************** *** 1819,1825 **** for (DSA::SonderfertigkeitenAuswahl::iterator i = objekt_->sonderfertigkeiten_.begin(); i != objekt_->sonderfertigkeiten_.end(); ++i) if (strings::BeginntMit(s, i->ID(0))) { ! int w = i->HoleWert(0); ! i->EntferneLetztenWert(); ! i->WertHinzu(w+1); sonderfertigkeiten_->SetString(sel, i->Text().c_str()); } --- 1842,1848 ---- for (DSA::SonderfertigkeitenAuswahl::iterator i = objekt_->sonderfertigkeiten_.begin(); i != objekt_->sonderfertigkeiten_.end(); ++i) if (strings::BeginntMit(s, i->ID(0))) { ! int w = i->HoleWert(0); ! i->EntferneLetztenWert(); ! i->WertHinzu(w+1); sonderfertigkeiten_->SetString(sel, i->Text().c_str()); } *************** *** 1835,1849 **** std::string s = sonderfertigkeiten_->GetStringSelection().c_str(); ! for (DSA::SonderfertigkeitenAuswahl::iterator i = objekt_->sonderfertigkeiten_.begin(); i != objekt_->sonderfertigkeiten_.end(); ++i) ! if (strings::BeginntMit(s, i->ID(0))) { ! int w = i->HoleWert(0); if (w==3) // TODO Magische Konstante Startwert Ritualkenntnisse text_->AppendText(_t("Dies ist bereits der Minimalwert.").c_str()); else { ! i->EntferneLetztenWert(); ! i->WertHinzu(w-1); sonderfertigkeiten_->SetString(sel, i->Text().c_str()); ! } } --- 1858,1872 ---- std::string s = sonderfertigkeiten_->GetStringSelection().c_str(); ! for (DSA::SonderfertigkeitenAuswahl::iterator i = objekt_->sonderfertigkeiten_.begin(); i != objekt_->sonderfertigkeiten_.end(); ++i) ! if (strings::BeginntMit(s, i->ID(0))) { ! int w = i->HoleWert(0); if (w==3) // TODO Magische Konstante Startwert Ritualkenntnisse text_->AppendText(_t("Dies ist bereits der Minimalwert.").c_str()); else { ! i->EntferneLetztenWert(); ! i->WertHinzu(w-1); sonderfertigkeiten_->SetString(sel, i->Text().c_str()); ! } } *************** *** 1894,1897 **** --- 1917,1940 ---- //@-node:<< OnVSFListeD >> //@nl + //@<< OnSFOder >> + //@+node:<< OnSFOder >> + void OnSFOder (wxCommandEvent& WXUNUSED(event)) { + int sel1 = sonderfertigkeiten_->GetSelection(); + int sel2 = moeglicheSonderfertigkeiten_->GetSelection(); + if ((sel1==-1)||(sel2==-1)) { + Log::Add(_t("Um Sonderfertigkeiten mit 'oder' zu verbinden, müssen zwei Sonderfertigkeiten ausgewählt sein.")); + return; + } + std::string s = sonderfertigkeiten_->GetStringSelection().c_str(); + std::string sneu = moeglicheSonderfertigkeiten_->GetStringSelection().c_str(); + for (DSA::SonderfertigkeitenAuswahl::iterator i = objekt_->sonderfertigkeiten_.begin(); i != objekt_->sonderfertigkeiten_.end(); ++i) + if (i->Text() == s) { + i->Art("Liste"); + i->IDHinzu(sneu); + sonderfertigkeiten_->SetString(sel1, i->Text().c_str()); + } + } // OnSFOder + //@-node:<< OnSFOder >> + //@nl //@nonl //@-node:<< Sonderfertigkeiten Events >> *************** *** 1951,1954 **** --- 1994,2000 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.28 2004/01/05 05:12:13 vrandezo + // Auswahlen bei Char und SF implementiert + // // Revision 1.27 2004/01/05 03:35:33 vrandezo // SF bei RKP-Defs sind jetzt auch Auswahlmengen statt einfacher Mengen Index: PersonGUIPersonenKomponentewx.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonGUIPersonenKomponentewx.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** PersonGUIPersonenKomponentewx.cpp 5 Jan 2004 03:35:33 -0000 1.14 --- PersonGUIPersonenKomponentewx.cpp 5 Jan 2004 05:12:13 -0000 1.15 *************** *** 249,309 **** } } ! } ! ! template<class T, class U> ! void GebeEinChar(T, const std::string& id, int wert, U& ziel, wxWindow* parent, const std::string& kommentar = "") { ! T t; ! t.ID(id); ! if (wert!=0) t.Stufe(wert); ! t.Spezifizierung(kommentar); ! // if (ziel.Existiert(id)) ! // ziel.Zeige(id)->Wert(ziel.Zeige(id)->Wert()+wert); ! // else ! ziel.FuegeEin(t); ! } ! ! template<class T, class U> // wobei U DSA::SortierteMenge<T> sein muss ! void NormalisiereChar(const DSA::AuswahlMenge<T>& quelle, U& ziel, wxWindow* parent) { ! for (typename DSA::AuswahlMenge<T>::const_iterator i = quelle.begin(); i != quelle.end(); ++i) { ! if (i->Art() == _t("einfach")) { ! GebeEinChar(T(), i->ID(0), i->HoleWert(0), ziel, parent, i->Kommentar()); ! Log::Add(i->HoleWert(0)); ! } ! ! // if (i->Art() == _t("Liste")) { ! // StringListe sl; ! // for (int j = 0; j < i->IDAnzahl(); ++j) sl.push_back(i->ID(j)); ! // for (int k = 0; k < i->WertAnzahl(); ++k) { ! // if (sl.size() > 1) { ! // wxString* wxs = new wxString[sl.size()]; ! // int index = -1; ! // for (StringListe::iterator s = sl.begin(); s != sl.end(); ++s) ! // wxs[++index] = s->c_str(); ! // std::string text; ! // if (i->Kommentar()!="") text += i->Kommentar() + "\n"; ! // text += _t("Vergebe") + " " + strings::int2sStr(i->HoleWert(k), true); ! // wxSingleChoiceDialog d(parent, text.c_str(), _t("Bitte wählen").c_str(), ! // sl.size(), wxs, 0, wxOK); ! // std::string gesucht; ! // if (d.ShowModal() != wxID_OK) ! // gesucht = wxs[0].c_str(); ! // else ! // gesucht = d.GetStringSelection().c_str(); ! // delete [] wxs; ! ! // GebeEin(T(), gesucht, i->HoleWert(k), ziel, parent, i->Kommentar()); ! ! // sl.erase(std::find(sl.begin(), sl.end(), gesucht)); ! // } else { ! // GebeEin(T(), sl.begin()->c_str(), i->HoleWert(k), ziel, parent, i->Kommentar()); ! // k = i->WertAnzahl(); ! // } ! // } ! // } ! } ! } //@nonl ! //@-node:Normalisiere //@+node:GemeinsamenTeilKonstruieren void PersonGUIPersonenKomponentewx::GemeinsamenTeilKonstruieren (DSA::PersonenKomponente* p) { --- 249,312 ---- } } ! } ! //@-node:Normalisiere ! //@+node:GebeEinChar ! template<class T, class U> ! void GebeEinChar(T, const std::string& id, int wert, U& ziel, wxWindow* parent, const std::string& kommentar = "") { ! T t; ! t.ID(id); ! if (wert!=0) t.Stufe(wert); ! t.Spezifizierung(kommentar); ! // if (ziel.Existiert(id)) ! // ziel.Zeige(id)->Wert(ziel.Zeige(id)->Wert()+wert); ! // else ! ziel.FuegeEin(t); ! } ! //@nonl ! //@-node:GebeEinChar ! //@+node:NormalisiereChar ! template<class T, class U> // wobei U DSA::SortierteMenge<T> sein muss ! void NormalisiereChar(const DSA::AuswahlMenge<T>& quelle, U& ziel, wxWindow* parent) { ! for (typename DSA::AuswahlMenge<T>::const_iterator i = quelle.begin(); i != quelle.end(); ++i) { ! if (i->Art() == _t("einfach")) { ! GebeEinChar(T(), i->ID(0), i->HoleWert(0), ziel, parent, i->Kommentar()); ! Log::Add(i->HoleWert(0)); ! } ! ! if (i->Art() == _t("Liste")) { ! StringListe sl; ! for (int j = 0; j < i->IDAnzahl(); ++j) sl.push_back(i->ID(j)); ! // for (int k = 0; k < i->WertAnzahl(); ++k) { ! // if (sl.size() > 1) { ! wxString* wxs = new wxString[sl.size()]; ! int index = -1; ! for (StringListe::iterator s = sl.begin(); s != sl.end(); ++s) ! wxs[++index] = s->c_str(); ! // std::string text; ! // if (i->Kommentar()!="") text += i->Kommentar() + "\n"; ! // text += _t("Vergebe") + " " + strings::int2sStr(i->HoleWert(k), true); ! // wxSingleChoiceDialog d(parent, text.c_str(), _t("Bitte wählen").c_str(), ! // sl.size(), wxs, 0, wxOK); ! wxSingleChoiceDialog d(parent, _t("Bitte wählen").c_str(), _t("Bitte wählen").c_str(), sl.size(), wxs, 0, wxOK); ! std::string gesucht; ! if (d.ShowModal() != wxID_OK) ! gesucht = wxs[0].c_str(); ! else ! gesucht = d.GetStringSelection().c_str(); ! delete [] wxs; ! ! GebeEinChar(T(), gesucht, i->HoleWert(0), ziel, parent, i->Kommentar()); + // sl.erase(std::find(sl.begin(), sl.end(), gesucht)); + // } else { + // GebeEin(T(), sl.begin()->c_str(), i->HoleWert(k), ziel, parent, i->Kommentar()); + // k = i->WertAnzahl(); + // } + // } + } + } + } //@nonl ! //@-node:NormalisiereChar //@+node:GemeinsamenTeilKonstruieren void PersonGUIPersonenKomponentewx::GemeinsamenTeilKonstruieren (DSA::PersonenKomponente* p) { *************** *** 346,349 **** --- 349,355 ---- // $Log$ + // Revision 1.15 2004/01/05 05:12:13 vrandezo + // Auswahlen bei Char und SF implementiert + // // Revision 1.14 2004/01/05 03:35:33 vrandezo // SF bei RKP-Defs sind jetzt auch Auswahlmengen statt einfacher Mengen Index: ProfessionGUIwx.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/ProfessionGUIwx.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** ProfessionGUIwx.cpp 28 Nov 2003 23:26:55 -0000 1.15 --- ProfessionGUIwx.cpp 5 Jan 2004 05:12:13 -0000 1.16 *************** *** 327,330 **** --- 327,331 ---- EVT_BUTTON (CHARPLUS, ProfessionGUIwx::OnCharPlus) EVT_BUTTON (CHARMINUS, ProfessionGUIwx::OnCharMinus) + EVT_BUTTON (CHARODER, ProfessionGUIwx::OnCharOder) EVT_LISTBOX (CHARLISTE, ProfessionGUIwx::OnCharListe) EVT_LISTBOX_DCLICK(CHARLISTE, ProfessionGUIwx::OnCharListeD) *************** *** 336,339 **** --- 337,341 ---- EVT_BUTTON (SFPLUS, ProfessionGUIwx::OnSFPlus) EVT_BUTTON (SFMINUS, ProfessionGUIwx::OnSFMinus) + EVT_BUTTON (SFODER, ProfessionGUIwx::OnSFOder) EVT_LISTBOX (SFLISTE, ProfessionGUIwx::OnSFListe) EVT_LISTBOX_DCLICK(SFLISTE, ProfessionGUIwx::OnSFListeD) *************** *** 467,470 **** --- 469,475 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.16 2004/01/05 05:12:13 vrandezo + // Auswahlen bei Char und SF implementiert + // // Revision 1.15 2003/11/28 23:26:55 vrandezo // Kopierenknopf Index: RasseGUIwx.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/RasseGUIwx.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** RasseGUIwx.cpp 28 Nov 2003 23:26:55 -0000 1.12 --- RasseGUIwx.cpp 5 Jan 2004 05:12:13 -0000 1.13 *************** *** 429,432 **** --- 429,433 ---- EVT_BUTTON (CHARPLUS, RasseGUIwx::OnCharPlus) EVT_BUTTON (CHARMINUS, RasseGUIwx::OnCharMinus) + EVT_BUTTON (CHARODER, RasseGUIwx::OnCharOder) EVT_LISTBOX (CHARLISTE, RasseGUIwx::OnCharListe) EVT_LISTBOX_DCLICK(CHARLISTE, RasseGUIwx::OnCharListeD) *************** *** 438,441 **** --- 439,443 ---- EVT_BUTTON (SFPLUS, RasseGUIwx::OnSFPlus) EVT_BUTTON (SFMINUS, RasseGUIwx::OnSFMinus) + EVT_BUTTON (SFODER, RasseGUIwx::OnSFOder) EVT_LISTBOX (SFLISTE, RasseGUIwx::OnSFListe) EVT_LISTBOX_DCLICK(SFLISTE, RasseGUIwx::OnSFListeD) *************** *** 722,725 **** --- 724,730 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.13 2004/01/05 05:12:13 vrandezo + // Auswahlen bei Char und SF implementiert + // // Revision 1.12 2003/11/28 23:26:55 vrandezo // Kopierenknopf |
From: <vra...@us...> - 2004-01-05 03:35:36
|
Update of /cvsroot/darkeyetool/det/src/gui In directory sc8-pr-cvs1:/tmp/cvs-serv19884 Modified Files: PersonenKomponenteGUIwx.h PersonGUIPersonenKomponentewx.cpp Log Message: SF bei RKP-Defs sind jetzt auch Auswahlmengen statt einfacher Mengen Index: PersonenKomponenteGUIwx.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonenKomponenteGUIwx.h,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** PersonenKomponenteGUIwx.h 5 Jan 2004 02:45:14 -0000 1.26 --- PersonenKomponenteGUIwx.h 5 Jan 2004 03:35:33 -0000 1.27 *************** *** 187,193 **** verbilligteSonderfertigkeiten_->Clear(); ! DSA::Sonderfertigkeiten::iterator sf; for (sf = objekt_->sonderfertigkeiten_.begin(); sf != objekt_->sonderfertigkeiten_.end(); ++sf) ! sonderfertigkeiten_->Append(sf->second.Text().c_str()); for (int sfi = 0; sfi != objekt_->verbilligteSonderfertigkeiten_.size(); ++sfi) verbilligteSonderfertigkeiten_-> Append(objekt_->verbilligteSonderfertigkeiten_[sfi].c_str()); --- 187,193 ---- verbilligteSonderfertigkeiten_->Clear(); ! DSA::SonderfertigkeitenAuswahl::iterator sf; for (sf = objekt_->sonderfertigkeiten_.begin(); sf != objekt_->sonderfertigkeiten_.end(); ++sf) ! sonderfertigkeiten_->Append(sf->Text().c_str()); for (int sfi = 0; sfi != objekt_->verbilligteSonderfertigkeiten_.size(); ++sfi) verbilligteSonderfertigkeiten_-> Append(objekt_->verbilligteSonderfertigkeiten_[sfi].c_str()); *************** *** 1003,1008 **** punkte += DSA::charakteristika()->Hole(c->ID(0)).GP() * 3; // TODO Konstante ! for (DSA::Sonderfertigkeiten::iterator sf = objekt_->sonderfertigkeiten_.begin(); sf != objekt_->sonderfertigkeiten_.end(); ++sf) ! punkte += (DSA::sonderfertigkeiten()->Hole(sf->first).AP()+5) / 10; // TODO Konstante for (StringListe::iterator vsf = objekt_->verbilligteSonderfertigkeiten_.begin(); vsf != objekt_->verbilligteSonderfertigkeiten_.end(); ++vsf) --- 1003,1008 ---- punkte += DSA::charakteristika()->Hole(c->ID(0)).GP() * 3; // TODO Konstante ! for (DSA::SonderfertigkeitenAuswahl::iterator sf = objekt_->sonderfertigkeiten_.begin(); sf != objekt_->sonderfertigkeiten_.end(); ++sf) ! punkte += (DSA::sonderfertigkeiten()->Hole(sf->ID(0)).AP()+5) / 10; // TODO Konstante for (StringListe::iterator vsf = objekt_->verbilligteSonderfertigkeiten_.begin(); vsf != objekt_->verbilligteSonderfertigkeiten_.end(); ++vsf) *************** *** 1725,1734 **** //@+node:<< SFWeg >> void SFWeg (const std::string& s) { ! std::string auswahl; ! for (DSA::Sonderfertigkeiten::iterator i = objekt_->sonderfertigkeiten_.begin(); i != objekt_->sonderfertigkeiten_.end(); ++i) ! if (i->second.Text() == s) ! auswahl = i->first; ! objekt_->sonderfertigkeiten_.Loesche(auswahl); Update(); } // SFWeg --- 1725,1734 ---- //@+node:<< SFWeg >> void SFWeg (const std::string& s) { ! DSA::SonderfertigkeitenAuswahl::iterator auswahl; ! for (DSA::SonderfertigkeitenAuswahl::iterator i = objekt_->sonderfertigkeiten_.begin(); i != objekt_->sonderfertigkeiten_.end(); ++i) ! if (i->Text() == s) ! auswahl = i; ! objekt_->sonderfertigkeiten_.Loesche(*auswahl); Update(); } // SFWeg *************** *** 1742,1754 **** if (sfdef==0) sfdef = DSA::generierteSonderfertigkeiten()->Zeige(sfs); ! if (sfdef==0) return; ! DSA::Sonderfertigkeit sf(*sfdef); std::string s = _t("Diese Sonderfertigkeit braucht eine Spezifizierung.\nSoll diese vorgegeben sein, geben Sie sie bitte jetzt ein.\nSoll der Spieler selbst wählen, lassen Sie das Feld frei."); if (sfdef->BrauchtSpezifizierung()) ! sf.Spezifizierung(DSA::hole()->Text(s)); ! if (strings::BeginntMit(sf.ID(), _t("Ritualkenntnis"))) ! sf.Stufe(3); // TODO Magische Konstante ! objekt_->sonderfertigkeiten_.FuegeEin(sf); Update(); } // SFHinzu --- 1742,1755 ---- if (sfdef==0) sfdef = DSA::generierteSonderfertigkeiten()->Zeige(sfs); ! if (sfdef==0) return; ! DSA::Auswahl<DSA::Sonderfertigkeit> a; ! a.IDHinzu(sfdef->ID()); std::string s = _t("Diese Sonderfertigkeit braucht eine Spezifizierung.\nSoll diese vorgegeben sein, geben Sie sie bitte jetzt ein.\nSoll der Spieler selbst wählen, lassen Sie das Feld frei."); if (sfdef->BrauchtSpezifizierung()) ! a.Kommentar(DSA::hole()->Text(s)); ! if (strings::BeginntMit(sfdef->ID(), _t("Ritualkenntnis"))) ! a.WertHinzu(3); // TODO Magische Konstante ! objekt_->sonderfertigkeiten_.FuegeEin(a); Update(); } // SFHinzu *************** *** 1816,1823 **** std::string s = sonderfertigkeiten_->GetStringSelection().c_str(); ! for (DSA::Sonderfertigkeiten::iterator i = objekt_->sonderfertigkeiten_.begin(); i != objekt_->sonderfertigkeiten_.end(); ++i) ! if (strings::BeginntMit(s, i->first)) { ! i->second.Stufe(i->second.Stufe()+1); ! sonderfertigkeiten_->SetString(sel, i->second.Text().c_str()); } } // OnSFPlus --- 1817,1826 ---- std::string s = sonderfertigkeiten_->GetStringSelection().c_str(); ! for (DSA::SonderfertigkeitenAuswahl::iterator i = objekt_->sonderfertigkeiten_.begin(); i != objekt_->sonderfertigkeiten_.end(); ++i) ! if (strings::BeginntMit(s, i->ID(0))) { ! int w = i->HoleWert(0); ! i->EntferneLetztenWert(); ! i->WertHinzu(w+1); ! sonderfertigkeiten_->SetString(sel, i->Text().c_str()); } } // OnSFPlus *************** *** 1832,1844 **** std::string s = sonderfertigkeiten_->GetStringSelection().c_str(); ! ! for (DSA::Sonderfertigkeiten::iterator i = objekt_->sonderfertigkeiten_.begin(); i != objekt_->sonderfertigkeiten_.end(); ++i) ! if (strings::BeginntMit(s, i->first)) ! if (i->second.Stufe()==3) // TODO Magische Konstante Startwert Ritualkenntnisse text_->AppendText(_t("Dies ist bereits der Minimalwert.").c_str()); else { ! i->second.Stufe(i->second.Stufe()-1); ! sonderfertigkeiten_->SetString(sel, i->second.Text().c_str()); ! } } // OnSFMinus --- 1835,1850 ---- std::string s = sonderfertigkeiten_->GetStringSelection().c_str(); ! ! for (DSA::SonderfertigkeitenAuswahl::iterator i = objekt_->sonderfertigkeiten_.begin(); i != objekt_->sonderfertigkeiten_.end(); ++i) ! if (strings::BeginntMit(s, i->ID(0))) { ! int w = i->HoleWert(0); ! if (w==3) // TODO Magische Konstante Startwert Ritualkenntnisse text_->AppendText(_t("Dies ist bereits der Minimalwert.").c_str()); else { ! i->EntferneLetztenWert(); ! i->WertHinzu(w-1); ! sonderfertigkeiten_->SetString(sel, i->Text().c_str()); ! } ! } } // OnSFMinus *************** *** 1945,1948 **** --- 1951,1957 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.27 2004/01/05 03:35:33 vrandezo + // SF bei RKP-Defs sind jetzt auch Auswahlmengen statt einfacher Mengen + // // Revision 1.26 2004/01/05 02:45:14 vrandezo // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt Index: PersonGUIPersonenKomponentewx.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonGUIPersonenKomponentewx.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** PersonGUIPersonenKomponentewx.cpp 5 Jan 2004 02:45:14 -0000 1.13 --- PersonGUIPersonenKomponentewx.cpp 5 Jan 2004 03:35:33 -0000 1.14 *************** *** 266,271 **** void NormalisiereChar(const DSA::AuswahlMenge<T>& quelle, U& ziel, wxWindow* parent) { for (typename DSA::AuswahlMenge<T>::const_iterator i = quelle.begin(); i != quelle.end(); ++i) { ! if (i->Art() == _t("einfach")) GebeEinChar(T(), i->ID(0), i->HoleWert(0), ziel, parent, i->Kommentar()); // if (i->Art() == _t("Liste")) { --- 266,273 ---- void NormalisiereChar(const DSA::AuswahlMenge<T>& quelle, U& ziel, wxWindow* parent) { for (typename DSA::AuswahlMenge<T>::const_iterator i = quelle.begin(); i != quelle.end(); ++i) { ! if (i->Art() == _t("einfach")) { GebeEinChar(T(), i->ID(0), i->HoleWert(0), ziel, parent, i->Kommentar()); + Log::Add(i->HoleWert(0)); + } // if (i->Art() == _t("Liste")) { *************** *** 322,326 **** c->second.Spezifizierung(DSA::hole()->Text(s)); } ! p->sonderfertigkeiten_ = personenKomponenteDef_->sonderfertigkeiten_; for (DSA::Sonderfertigkeiten::iterator sf = p->sonderfertigkeiten_.begin(); sf != p->sonderfertigkeiten_.end(); ++sf) if ((sf->second.Definition()->BrauchtSpezifizierung()) && (sf->second.Spezifizierung()=="")) { --- 324,328 ---- c->second.Spezifizierung(DSA::hole()->Text(s)); } ! NormalisiereChar(personenKomponenteDef_->sonderfertigkeiten_, p->sonderfertigkeiten_, this); for (DSA::Sonderfertigkeiten::iterator sf = p->sonderfertigkeiten_.begin(); sf != p->sonderfertigkeiten_.end(); ++sf) if ((sf->second.Definition()->BrauchtSpezifizierung()) && (sf->second.Spezifizierung()=="")) { *************** *** 344,347 **** --- 346,352 ---- // $Log$ + // Revision 1.14 2004/01/05 03:35:33 vrandezo + // SF bei RKP-Defs sind jetzt auch Auswahlmengen statt einfacher Mengen + // // Revision 1.13 2004/01/05 02:45:14 vrandezo // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt |
From: <vra...@us...> - 2004-01-05 03:35:22
|
Update of /cvsroot/darkeyetool/det/src/dsa In directory sc8-pr-cvs1:/tmp/cvs-serv19845 Modified Files: Auswahl.h PersonenKomponente.cpp PersonenKomponente.h Sonderfertigkeit.h Log Message: SF bei RKP-Defs sind jetzt auch Auswahlmengen statt einfacher Mengen Index: Auswahl.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/Auswahl.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Auswahl.h 5 Jan 2004 02:45:29 -0000 1.9 --- Auswahl.h 5 Jan 2004 03:35:19 -0000 1.10 *************** *** 79,83 **** int IDAnzahl() const { return id_.size(); } void WertHinzu(int wert) { wert_.push_back(wert); } ! int HoleWert(int n) const { if ((n<id_.size())&&(n>-1))return wert_[n]; return 0;} void EntferneLetztenWert() { if (wert_.size()>0) wert_.pop_back(); } int WertAnzahl() const { return wert_.size(); } --- 79,83 ---- int IDAnzahl() const { return id_.size(); } void WertHinzu(int wert) { wert_.push_back(wert); } ! int HoleWert(int n) const { if ((n<wert_.size())&&(n>-1)) return wert_[n]; return 0;} void EntferneLetztenWert() { if (wert_.size()>0) wert_.pop_back(); } int WertAnzahl() const { return wert_.size(); } *************** *** 299,302 **** --- 299,305 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.10 2004/01/05 03:35:19 vrandezo + // SF bei RKP-Defs sind jetzt auch Auswahlmengen statt einfacher Mengen + // // Revision 1.9 2004/01/05 02:45:29 vrandezo // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt Index: PersonenKomponente.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/PersonenKomponente.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** PersonenKomponente.cpp 5 Jan 2004 02:45:29 -0000 1.11 --- PersonenKomponente.cpp 5 Jan 2004 03:35:19 -0000 1.12 *************** *** 277,281 **** CharakteristikaAuswahl charakteristika; rv += charakteristika.Lese(pm); ! Sonderfertigkeiten sonderfertigkeiten; rv += sonderfertigkeiten.Lese(pm, _t("automatische")); StringListe verbilligteSonderfertigkeiten; --- 277,281 ---- CharakteristikaAuswahl charakteristika; rv += charakteristika.Lese(pm); ! SonderfertigkeitenAuswahl sonderfertigkeiten; rv += sonderfertigkeiten.Lese(pm, _t("automatische")); StringListe verbilligteSonderfertigkeiten; *************** *** 355,359 **** sl.push_back("[eine Schrift]"); rv += schriften_.Pruefe(schriften(), &sl); ! sl.clear(); rv += charakteristika_.Pruefe(charakteristika(), &sl); if (IstGeschlechtsspezifisch()) --- 355,361 ---- sl.push_back("[eine Schrift]"); rv += schriften_.Pruefe(schriften(), &sl); ! sl.clear(); ! for (CharakteristikumDefinitionen::iterator ch = generierteCharakteristika()->begin(); ch != generierteCharakteristika()->end(); ++ch) ! sl.push_back(ch->first); rv += charakteristika_.Pruefe(charakteristika(), &sl); if (IstGeschlechtsspezifisch()) *************** *** 365,370 **** Log::Info(_t("ID von Sonderfertigkeiten falsch") + " (" + _t("fatal") + ")"); ++rv; ! } ! rv += sonderfertigkeiten_.Pruefe(); for (StringListe::const_iterator si = verbilligteSonderfertigkeiten_.begin(); si != verbilligteSonderfertigkeiten_.end(); ++si) if (!((sonderfertigkeiten()->Existiert(*si)) --- 367,376 ---- Log::Info(_t("ID von Sonderfertigkeiten falsch") + " (" + _t("fatal") + ")"); ++rv; ! } ! ! sl.clear(); ! for (SonderfertigkeitDefinitionen::iterator sf = generierteSonderfertigkeiten()->begin(); sf != generierteSonderfertigkeiten()->end(); ++sf) ! sl.push_back(sf->first); ! rv += sonderfertigkeiten_.Pruefe(sonderfertigkeiten(), &sl); for (StringListe::const_iterator si = verbilligteSonderfertigkeiten_.begin(); si != verbilligteSonderfertigkeiten_.end(); ++si) if (!((sonderfertigkeiten()->Existiert(*si)) *************** *** 506,509 **** --- 512,518 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.12 2004/01/05 03:35:19 vrandezo + // SF bei RKP-Defs sind jetzt auch Auswahlmengen statt einfacher Mengen + // // Revision 1.11 2004/01/05 02:45:29 vrandezo // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt Index: PersonenKomponente.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/PersonenKomponente.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** PersonenKomponente.h 5 Jan 2004 02:45:29 -0000 1.10 --- PersonenKomponente.h 5 Jan 2004 03:35:19 -0000 1.11 *************** *** 155,159 **** SchriftenAuswahl schriften_; CharakteristikaAuswahl charakteristika_; ! Sonderfertigkeiten sonderfertigkeiten_; StringListe verbilligteSonderfertigkeiten_; private: --- 155,159 ---- SchriftenAuswahl schriften_; CharakteristikaAuswahl charakteristika_; ! SonderfertigkeitenAuswahl sonderfertigkeiten_; StringListe verbilligteSonderfertigkeiten_; private: *************** *** 176,179 **** --- 176,182 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.11 2004/01/05 03:35:19 vrandezo + // SF bei RKP-Defs sind jetzt auch Auswahlmengen statt einfacher Mengen + // // Revision 1.10 2004/01/05 02:45:29 vrandezo // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt Index: Sonderfertigkeit.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/Sonderfertigkeit.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Sonderfertigkeit.h 28 Nov 2003 16:45:37 -0000 1.14 --- Sonderfertigkeit.h 5 Jan 2004 03:35:19 -0000 1.15 *************** *** 32,36 **** #include "Menge.h" #include "Texte.h" ! #include "Voraussetzung.h" //@nonl //@-node:<< includes >> --- 32,37 ---- #include "Menge.h" #include "Texte.h" ! #include "Voraussetzung.h" ! #include "Auswahl.h" //@nonl //@-node:<< includes >> *************** *** 217,221 **** public: Sonderfertigkeiten Bereinige() const; ! }; // Sonderfertigkeiten //@nonl //@-node:<< class Sonderfertigkeiten >> --- 218,225 ---- public: Sonderfertigkeiten Bereinige() const; ! }; // Sonderfertigkeiten ! ! class SonderfertigkeitenAuswahl : public AuswahlMenge<Sonderfertigkeit> { ! }; // SonderfertigkeitenAuswahl //@nonl //@-node:<< class Sonderfertigkeiten >> *************** *** 229,232 **** --- 233,239 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.15 2004/01/05 03:35:19 vrandezo + // SF bei RKP-Defs sind jetzt auch Auswahlmengen statt einfacher Mengen + // // Revision 1.14 2003/11/28 16:45:37 vrandezo // Manöver |
From: <vra...@us...> - 2004-01-05 02:45:55
|
Update of /cvsroot/darkeyetool/det/src In directory sc8-pr-cvs1:/tmp/cvs-serv12561 Modified Files: PersistenzManagerXerces.cpp PersistenzManagerXerces.h Log Message: Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt Index: PersistenzManagerXerces.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/PersistenzManagerXerces.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** PersistenzManagerXerces.cpp 28 Nov 2003 16:45:03 -0000 1.6 --- PersistenzManagerXerces.cpp 5 Jan 2004 02:45:49 -0000 1.7 *************** *** 117,120 **** --- 117,134 ---- } // OeffneZumLesen + int PersistenzManagerXerces::OeffneZumLesen (const std::string& tag, int nr, std::string& id) { + xercesc::DOMElement* ziel; + StringListe pfad; + pfad.push_back(tag); + int rv = lader_->gehePfad(pfad, &ziel, nr, knoten_); + id = ""; + if (!rv) { + knoten_=ziel; + if (lader_->ExistiertAttribut(knoten_, "ID")) + rv += lader_->LeseAttribut(knoten_, "ID", &id); + } + return rv; + } // OeffneZumLesen + int PersistenzManagerXerces::OeffneZumLesen(const std::string& tag) { std::string s; *************** *** 342,345 **** --- 356,362 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.7 2004/01/05 02:45:49 vrandezo + // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt + // // Revision 1.6 2003/11/28 16:45:03 vrandezo // Zeilenvorlauf am Dateiende (Warnung bei gcc) *************** *** 411,414 **** --- 428,434 ---- // // $Log$ + // Revision 1.7 2004/01/05 02:45:49 vrandezo + // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt + // // Revision 1.6 2003/11/28 16:45:03 vrandezo // Zeilenvorlauf am Dateiende (Warnung bei gcc) Index: PersistenzManagerXerces.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/PersistenzManagerXerces.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PersistenzManagerXerces.h 28 Nov 2003 16:45:03 -0000 1.4 --- PersistenzManagerXerces.h 5 Jan 2004 02:45:49 -0000 1.5 *************** *** 54,58 **** virtual int OeffneZumLesen (const std::string& tag); virtual int OeffneZumLesen (const std::string& tag, int nr); ! virtual int Lese (const std::string& tag, std::string& wert); virtual int Lese (const std::string& tag, int& wert); virtual int Lese (const std::string& tag, const std::string& id, std::string& wert); --- 54,59 ---- virtual int OeffneZumLesen (const std::string& tag); virtual int OeffneZumLesen (const std::string& tag, int nr); ! virtual int OeffneZumLesen (const std::string& tag, int nr, std::string& id); ! virtual int Lese (const std::string& tag, std::string& wert); virtual int Lese (const std::string& tag, int& wert); virtual int Lese (const std::string& tag, const std::string& id, std::string& wert); *************** *** 106,109 **** --- 107,113 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.5 2004/01/05 02:45:49 vrandezo + // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt + // // Revision 1.4 2003/11/28 16:45:03 vrandezo // Zeilenvorlauf am Dateiende (Warnung bei gcc) |
From: <vra...@us...> - 2004-01-05 02:45:32
|
Update of /cvsroot/darkeyetool/det/src/dsa In directory sc8-pr-cvs1:/tmp/cvs-serv12461 Modified Files: Auswahl.h Charakteristikum.h PersistenzManager.h PersonenKomponente.cpp PersonenKomponente.h Log Message: Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt Index: Auswahl.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/Auswahl.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Auswahl.h 28 Nov 2003 16:46:16 -0000 1.8 --- Auswahl.h 5 Jan 2004 02:45:29 -0000 1.9 *************** *** 62,66 **** if ("einfach"==art_) { if (id_.size() != 1) return false; ! if (wert_.size() != 1) return false; return true; } --- 62,66 ---- if ("einfach"==art_) { if (id_.size() != 1) return false; ! if ((wert_.size() != 1)&&(wert_.size() != 0)) return false; return true; } *************** *** 80,88 **** void WertHinzu(int wert) { wert_.push_back(wert); } int HoleWert(int n) const { if ((n<id_.size())&&(n>-1))return wert_[n]; return 0;} int WertAnzahl() const { return wert_.size(); } std::string Kommentar() const { return kommentar_; } void Kommentar(const std::string& kommentar) { kommentar_ = kommentar; } ! //@ << operator== >> //@+node:<< operator== >> --- 80,93 ---- void WertHinzu(int wert) { wert_.push_back(wert); } int HoleWert(int n) const { if ((n<id_.size())&&(n>-1))return wert_[n]; return 0;} + void EntferneLetztenWert() { if (wert_.size()>0) wert_.pop_back(); } int WertAnzahl() const { return wert_.size(); } std::string Kommentar() const { return kommentar_; } void Kommentar(const std::string& kommentar) { kommentar_ = kommentar; } ! ! bool Existiert(const std::string& x) const { ! return (std::find(id_.begin(), id_.end(), x)!=id_.end()); ! } // Existiert ! //@ << operator== >> //@+node:<< operator== >> *************** *** 101,106 **** std::string Text() const { if (!IstOK()) return ""; if (("einfach"==art_) || (id_.size()==1)) ! return ID(0) + " " + strings::int2sStr(HoleWert(0), true); if (("Liste"==art_) && (wert_.size()==1)) { std::string s = liste2string(id_, " oder "); --- 106,121 ---- std::string Text() const { if (!IstOK()) return ""; + if (("einfach"==art_) || (id_.size()==1)) ! if (wert_.size()>0) ! return ID(0) + " " + strings::int2sStr(HoleWert(0), true); ! else ! return ID(0); ! ! if (("Liste"==art_) && (wert_.size()==0)) { ! std::string s = liste2string(id_, " oder "); ! return s; ! } ! if (("Liste"==art_) && (wert_.size()==1)) { std::string s = liste2string(id_, " oder "); *************** *** 108,111 **** --- 123,127 ---- return s; } + if (("Liste"==art_) && (wert_.size()==2)) { std::string s = liste2string(id_, " oder "); *************** *** 117,120 **** --- 133,137 ---- return s; } + if (("Liste"==art_) && (wert_.size()==3)) { std::string s = liste2string(id_, " oder "); *************** *** 127,130 **** --- 144,148 ---- return s; } + if ("Liste"==art_) { std::string s; *************** *** 146,157 **** //@ << Lese >> //@+node:<< Lese >> ! int Lese(PersistenzManager* pm, const int nr) { ! int rv = pm->OeffneZumLesen(T::Klasse(), nr); bool geoeffnet = (rv==0); std::string art = "einfach"; if (pm->Existiert(_t("Auswahlart"))) rv += pm->Lese(_t("Auswahlart"), art); ! StringListe id; ! std::string einzelid; ! int zahl = pm->Anzahl(_t("ID")); int i = 0; for (; i < zahl; ++i) { --- 164,176 ---- //@ << Lese >> //@+node:<< Lese >> ! int Lese(PersistenzManager* pm, const int nr) { ! std::string einzelid = ""; ! int rv = pm->OeffneZumLesen(T::Klasse(), nr, einzelid); bool geoeffnet = (rv==0); std::string art = "einfach"; if (pm->Existiert(_t("Auswahlart"))) rv += pm->Lese(_t("Auswahlart"), art); ! StringListe id; ! if (einzelid!="") id.push_back(einzelid); // um Charakteristika zu uebernehmen ! int zahl = pm->Anzahl(_t("ID")); int i = 0; for (; i < zahl; ++i) { *************** *** 166,170 **** --- 185,195 ---- wert.push_back(einzelwert); } + zahl = pm->Anzahl(_t("Stufe")); // um Charakteristika zu uebernehmen + for (i = 0; i < zahl; ++i) { + rv += pm->LeseMehrfach(_t("Stufe"), einzelwert, i); + wert.push_back(einzelwert); + } std::string kommentar; + if (pm->Existiert(_t("Spezifizierung"))) rv += pm->Lese(_t("Spezifizierung"), kommentar); // um Charakteristika zu uebernehmen if (pm->Existiert(_t("Kommentar"))) rv += pm->Lese(_t("Kommentar"), kommentar); *************** *** 250,254 **** std::vector<int> wert_; std::string kommentar_; - //@nonl //@-node:<< private >> //@nl --- 275,278 ---- *************** *** 259,263 **** template<class T> ! class AuswahlMenge : public MengeOhneID<Auswahl<T> > { }; // AuswahlMenge --- 283,293 ---- template<class T> ! class AuswahlMenge : public MengeOhneID<Auswahl<T> > { ! public: ! bool Existiert(const std::string& x) const { ! for (const_iterator i = begin(); i != end(); ++i) ! if (i->Existiert(x)) return true; ! return false; ! } // Existiert }; // AuswahlMenge *************** *** 269,272 **** --- 299,305 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.9 2004/01/05 02:45:29 vrandezo + // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt + // // Revision 1.8 2003/11/28 16:46:16 vrandezo // Zeilenvorlauf am Dateiende (Warnung bei gcc) Index: Charakteristikum.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/Charakteristikum.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Charakteristikum.h 28 Nov 2003 16:46:16 -0000 1.13 --- Charakteristikum.h 5 Jan 2004 02:45:29 -0000 1.14 *************** *** 32,35 **** --- 32,36 ---- #include "Texte.h" #include "Voraussetzung.h" + #include "Auswahl.h" //@nonl //@-node:<< includes >> *************** *** 221,224 **** --- 222,228 ---- //@-node:<< class Charakteristika >> //@nl + + class CharakteristikaAuswahl : public AuswahlMenge<Charakteristikum> { + }; // CharakteristikaAuswahl } *************** *** 229,232 **** --- 233,239 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.14 2004/01/05 02:45:29 vrandezo + // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt + // // Revision 1.13 2003/11/28 16:46:16 vrandezo // Zeilenvorlauf am Dateiende (Warnung bei gcc) *************** *** 329,332 **** --- 336,340 ---- //@-node:<< Version History >> //@nl + //@-node:@file Charakteristikum.h //@-leo Index: PersistenzManager.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/PersistenzManager.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PersistenzManager.h 19 Oct 2003 21:59:07 -0000 1.3 --- PersistenzManager.h 5 Jan 2004 02:45:29 -0000 1.4 *************** *** 51,55 **** virtual int OeffneZumLesen (const std::string& tag, std::string& id) = 0; virtual int OeffneZumLesen (const std::string& tag) = 0; ! virtual int OeffneZumLesen (const std::string& tag, int nr) = 0; virtual int Lese (const std::string& tag, std::string& wert) = 0; virtual int Lese (const std::string& tag, int& wert) = 0; --- 51,56 ---- virtual int OeffneZumLesen (const std::string& tag, std::string& id) = 0; virtual int OeffneZumLesen (const std::string& tag) = 0; ! virtual int OeffneZumLesen (const std::string& tag, int nr) = 0; ! virtual int OeffneZumLesen (const std::string& tag, int nr, std::string& id) = 0; virtual int Lese (const std::string& tag, std::string& wert) = 0; virtual int Lese (const std::string& tag, int& wert) = 0; *************** *** 85,88 **** --- 86,92 ---- // $Log$ + // Revision 1.4 2004/01/05 02:45:29 vrandezo + // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt + // // Revision 1.3 2003/10/19 21:59:07 vrandezo // In Leo eingecheckt Index: PersonenKomponente.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/PersonenKomponente.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** PersonenKomponente.cpp 28 Nov 2003 23:22:49 -0000 1.10 --- PersonenKomponente.cpp 5 Jan 2004 02:45:29 -0000 1.11 *************** *** 275,279 **** SchriftenAuswahl schriften; rv += schriften.Lese(pm); ! Charakteristika charakteristika; rv += charakteristika.Lese(pm); Sonderfertigkeiten sonderfertigkeiten; --- 275,279 ---- SchriftenAuswahl schriften; rv += schriften.Lese(pm); ! CharakteristikaAuswahl charakteristika; rv += charakteristika.Lese(pm); Sonderfertigkeiten sonderfertigkeiten; *************** *** 354,359 **** sl.clear(); sl.push_back("[eine Schrift]"); ! rv += schriften_.Pruefe(schriften(), &sl); ! rv += charakteristika_.Pruefe(); if (IstGeschlechtsspezifisch()) if (!IstVariante()) { --- 354,360 ---- sl.clear(); sl.push_back("[eine Schrift]"); ! rv += schriften_.Pruefe(schriften(), &sl); ! sl.clear(); ! rv += charakteristika_.Pruefe(charakteristika(), &sl); if (IstGeschlechtsspezifisch()) if (!IstVariante()) { *************** *** 505,508 **** --- 506,512 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.11 2004/01/05 02:45:29 vrandezo + // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt + // // Revision 1.10 2003/11/28 23:22:49 vrandezo // speicherbare konkrete RKP Index: PersonenKomponente.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/PersonenKomponente.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** PersonenKomponente.h 28 Nov 2003 23:22:49 -0000 1.9 --- PersonenKomponente.h 5 Jan 2004 02:45:29 -0000 1.10 *************** *** 154,158 **** SprachenAuswahl sprachen_; SchriftenAuswahl schriften_; ! Charakteristika charakteristika_; Sonderfertigkeiten sonderfertigkeiten_; StringListe verbilligteSonderfertigkeiten_; --- 154,158 ---- SprachenAuswahl sprachen_; SchriftenAuswahl schriften_; ! CharakteristikaAuswahl charakteristika_; Sonderfertigkeiten sonderfertigkeiten_; StringListe verbilligteSonderfertigkeiten_; *************** *** 176,179 **** --- 176,182 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.10 2004/01/05 02:45:29 vrandezo + // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt + // // Revision 1.9 2003/11/28 23:22:49 vrandezo // speicherbare konkrete RKP |
From: <vra...@us...> - 2004-01-05 02:45:17
|
Update of /cvsroot/darkeyetool/det/src/gui In directory sc8-pr-cvs1:/tmp/cvs-serv12438 Modified Files: PersonenKomponenteGUIwx.h PersonGUIPersonenKomponentewx.cpp Log Message: Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt Index: PersonenKomponenteGUIwx.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonenKomponenteGUIwx.h,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** PersonenKomponenteGUIwx.h 4 Jan 2004 00:02:50 -0000 1.25 --- PersonenKomponenteGUIwx.h 5 Jan 2004 02:45:14 -0000 1.26 *************** *** 155,160 **** moeglicheCharakteristika_->Clear(); ! for (DSA::Charakteristika::iterator ch = objekt_->charakteristika_.begin(); ch != objekt_->charakteristika_.end(); ++ch) ! charakteristika_->Append(ch->second.Text().c_str()); for (DSA::CharakteristikumDefinitionen::iterator c = DSA::charakteristika()->begin(); c != DSA::charakteristika()->end(); ++c) --- 155,160 ---- moeglicheCharakteristika_->Clear(); ! for (DSA::CharakteristikaAuswahl::iterator ch = objekt_->charakteristika_.begin(); ch != objekt_->charakteristika_.end(); ++ch) ! charakteristika_->Append(ch->Text().c_str()); for (DSA::CharakteristikumDefinitionen::iterator c = DSA::charakteristika()->begin(); c != DSA::charakteristika()->end(); ++c) *************** *** 169,175 **** std::string c = charakteristika_->GetStringSelection().c_str(); std::string auswahl; ! for (DSA::Charakteristika::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->second.Text() == c) ! auswahl = i->first; showplusminus = DSA::charakteristika()->Hole(auswahl).SchlechteEigenschaft(); --- 169,175 ---- std::string c = charakteristika_->GetStringSelection().c_str(); std::string auswahl; ! for (DSA::CharakteristikaAuswahl::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->Text() == c) ! auswahl = i->ID(0); showplusminus = DSA::charakteristika()->Hole(auswahl).SchlechteEigenschaft(); *************** *** 994,1005 **** punkte += wert * 5; // TODO Konstante } ! for (DSA::Charakteristika::iterator c = objekt_->charakteristika_.begin(); c != objekt_->charakteristika_.end(); ++c) ! if (DSA::charakteristika()->Hole(c->first).SchlechteEigenschaft()) { ! if (DSA::charakteristika()->Hole(c->first).GPPro2Punkte()) ! punkte += (DSA::charakteristika()->Hole(c->first).GP() * 3 * DSA::regeln("Minimaler Startwert einer Schlechten Eigenschaft") + 1)/2; // TODO Konstante else ! punkte += DSA::charakteristika()->Hole(c->first).GP() * 3 * DSA::regeln("Minimaler Startwert einer Schlechten Eigenschaft"); // TODO Konstante } else ! punkte += DSA::charakteristika()->Hole(c->first).GP() * 3; // TODO Konstante for (DSA::Sonderfertigkeiten::iterator sf = objekt_->sonderfertigkeiten_.begin(); sf != objekt_->sonderfertigkeiten_.end(); ++sf) --- 994,1005 ---- punkte += wert * 5; // TODO Konstante } ! for (DSA::CharakteristikaAuswahl::iterator c = objekt_->charakteristika_.begin(); c != objekt_->charakteristika_.end(); ++c) ! if (DSA::charakteristika()->Hole(c->ID(0)).SchlechteEigenschaft()) { ! if (DSA::charakteristika()->Hole(c->ID(0)).GPPro2Punkte()) ! punkte += (DSA::charakteristika()->Hole(c->ID(0)).GP() * 3 * DSA::regeln("Minimaler Startwert einer Schlechten Eigenschaft") + 1)/2; // TODO Konstante else ! punkte += DSA::charakteristika()->Hole(c->ID(0)).GP() * 3 * DSA::regeln("Minimaler Startwert einer Schlechten Eigenschaft"); // TODO Konstante } else ! punkte += DSA::charakteristika()->Hole(c->ID(0)).GP() * 3; // TODO Konstante for (DSA::Sonderfertigkeiten::iterator sf = objekt_->sonderfertigkeiten_.begin(); sf != objekt_->sonderfertigkeiten_.end(); ++sf) *************** *** 1595,1604 **** //@+node:<< CharWeg >> void CharWeg (const std::string& c) { ! std::string auswahl; ! for (DSA::Charakteristika::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->second.Text() == c) ! auswahl = i->first; ! objekt_->charakteristika_.Loesche(auswahl); Update(); } // CharWeg --- 1595,1604 ---- //@+node:<< CharWeg >> void CharWeg (const std::string& c) { ! DSA::CharakteristikaAuswahl::iterator auswahl; ! for (DSA::CharakteristikaAuswahl::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->Text() == c) ! auswahl = i; ! objekt_->charakteristika_.Loesche(*auswahl); Update(); } // CharWeg *************** *** 1610,1620 **** void CharHinzu (const std::string& c) { DSA::CharakteristikumDefinition chdef = DSA::charakteristika()->Hole(c); ! DSA::Charakteristikum ch(chdef); std::string s = _t("Dieses Charakteristikum braucht eine Spezifizierung.\nSoll diese vorgegeben sein, geben Sie sie bitte jetzt ein.\nSoll der Spieler selbst wählen, lassen Sie das Feld frei."); if (chdef.BrauchtSpezifizierung()) ! ch.Spezifizierung(DSA::hole()->Text(s)); ! if (ch.SchlechteEigenschaft()) ch.Stufe(5); ! objekt_->charakteristika_.FuegeEin(ch); Update(); } // CharHinzu --- 1610,1623 ---- void CharHinzu (const std::string& c) { DSA::CharakteristikumDefinition chdef = DSA::charakteristika()->Hole(c); ! DSA::Auswahl<DSA::Charakteristikum> a; ! a.IDHinzu(chdef.ID()); ! std::string s = _t("Dieses Charakteristikum braucht eine Spezifizierung.\nSoll diese vorgegeben sein, geben Sie sie bitte jetzt ein.\nSoll der Spieler selbst wählen, lassen Sie das Feld frei."); if (chdef.BrauchtSpezifizierung()) ! a.Kommentar(DSA::hole()->Text(s)); ! if (chdef.SchlechteEigenschaft()) a.WertHinzu(5); // TODO Konstante ! ! objekt_->charakteristika_.FuegeEin(a); Update(); } // CharHinzu *************** *** 1663,1669 **** std::string c = charakteristika_->GetStringSelection().c_str(); std::string auswahl; ! for (DSA::Charakteristika::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->second.Text() == c) ! auswahl = i->first; bool showplusminus = DSA::charakteristika()->Hole(auswahl).SchlechteEigenschaft(); --- 1666,1672 ---- std::string c = charakteristika_->GetStringSelection().c_str(); std::string auswahl; ! for (DSA::CharakteristikaAuswahl::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->Text() == c) ! auswahl = i->ID(0); bool showplusminus = DSA::charakteristika()->Hole(auswahl).SchlechteEigenschaft(); *************** *** 1683,1690 **** std::string c = charakteristika_->GetStringSelection().c_str(); std::string auswahl; ! for (DSA::Charakteristika::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->second.Text() == c) { ! i->second.Stufe(i->second.Stufe()+1); ! charakteristika_->SetString(sel, i->second.Text().c_str()); } // Update(); --- 1686,1695 ---- std::string c = charakteristika_->GetStringSelection().c_str(); std::string auswahl; ! for (DSA::CharakteristikaAuswahl::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->Text() == c) { ! int w = i->HoleWert(0); ! i->EntferneLetztenWert(); ! i->WertHinzu(w+1); ! charakteristika_->SetString(sel, i->Text().c_str()); } // Update(); *************** *** 1701,1709 **** std::string c = charakteristika_->GetStringSelection().c_str(); std::string auswahl; ! for (DSA::Charakteristika::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->second.Text() == c) { ! i->second.Stufe(i->second.Stufe()-1); ! charakteristika_->SetString(sel, i->second.Text().c_str()); ! } // Update(); } // OnCharMinus --- 1706,1716 ---- std::string c = charakteristika_->GetStringSelection().c_str(); std::string auswahl; ! for (DSA::CharakteristikaAuswahl::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->Text() == c) { ! int w = i->HoleWert(0); ! i->EntferneLetztenWert(); ! i->WertHinzu(w-1); ! charakteristika_->SetString(sel, i->Text().c_str()); ! } // Update(); } // OnCharMinus *************** *** 1938,1941 **** --- 1945,1951 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.26 2004/01/05 02:45:14 vrandezo + // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt + // // Revision 1.25 2004/01/04 00:02:50 vrandezo // Schlechte Eigenschaften 5+ bei RKP Index: PersonGUIPersonenKomponentewx.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonGUIPersonenKomponentewx.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** PersonGUIPersonenKomponentewx.cpp 6 Dec 2003 15:42:52 -0000 1.12 --- PersonGUIPersonenKomponentewx.cpp 5 Jan 2004 02:45:14 -0000 1.13 *************** *** 249,253 **** } } ! } //@nonl //@-node:Normalisiere --- 249,305 ---- } } ! } ! ! template<class T, class U> ! void GebeEinChar(T, const std::string& id, int wert, U& ziel, wxWindow* parent, const std::string& kommentar = "") { ! T t; ! t.ID(id); ! if (wert!=0) t.Stufe(wert); ! t.Spezifizierung(kommentar); ! // if (ziel.Existiert(id)) ! // ziel.Zeige(id)->Wert(ziel.Zeige(id)->Wert()+wert); ! // else ! ziel.FuegeEin(t); ! } ! ! template<class T, class U> // wobei U DSA::SortierteMenge<T> sein muss ! void NormalisiereChar(const DSA::AuswahlMenge<T>& quelle, U& ziel, wxWindow* parent) { ! for (typename DSA::AuswahlMenge<T>::const_iterator i = quelle.begin(); i != quelle.end(); ++i) { ! if (i->Art() == _t("einfach")) ! GebeEinChar(T(), i->ID(0), i->HoleWert(0), ziel, parent, i->Kommentar()); ! ! // if (i->Art() == _t("Liste")) { ! // StringListe sl; ! // for (int j = 0; j < i->IDAnzahl(); ++j) sl.push_back(i->ID(j)); ! // for (int k = 0; k < i->WertAnzahl(); ++k) { ! // if (sl.size() > 1) { ! // wxString* wxs = new wxString[sl.size()]; ! // int index = -1; ! // for (StringListe::iterator s = sl.begin(); s != sl.end(); ++s) ! // wxs[++index] = s->c_str(); ! // std::string text; ! // if (i->Kommentar()!="") text += i->Kommentar() + "\n"; ! // text += _t("Vergebe") + " " + strings::int2sStr(i->HoleWert(k), true); ! // wxSingleChoiceDialog d(parent, text.c_str(), _t("Bitte wählen").c_str(), ! // sl.size(), wxs, 0, wxOK); ! // std::string gesucht; ! // if (d.ShowModal() != wxID_OK) ! // gesucht = wxs[0].c_str(); ! // else ! // gesucht = d.GetStringSelection().c_str(); ! // delete [] wxs; ! ! // GebeEin(T(), gesucht, i->HoleWert(k), ziel, parent, i->Kommentar()); ! ! // sl.erase(std::find(sl.begin(), sl.end(), gesucht)); ! // } else { ! // GebeEin(T(), sl.begin()->c_str(), i->HoleWert(k), ziel, parent, i->Kommentar()); ! // k = i->WertAnzahl(); ! // } ! // } ! // } ! } ! } ! //@nonl //@-node:Normalisiere *************** *** 260,268 **** p->modifikatoren_ = personenKomponenteDef_->modifikatoren_; p->voraussetzungen_ = personenKomponenteDef_->voraussetzungen_; ! Normalisiere (personenKomponenteDef_->kampftechniken_, p->kampftechniken_, this); Normalisiere(personenKomponenteDef_->talente_, p->talente_, this); Normalisiere(personenKomponenteDef_->sprachen_, p->sprachen_, this); Normalisiere(personenKomponenteDef_->schriften_, p->schriften_, this); ! p->charakteristika_ = personenKomponenteDef_->charakteristika_; for (DSA::Charakteristika::iterator c = p->charakteristika_.begin(); c != p->charakteristika_.end(); ++c) if ((c->second.Definition()->BrauchtSpezifizierung()) &&(c->second.Spezifizierung()=="")) { --- 312,320 ---- p->modifikatoren_ = personenKomponenteDef_->modifikatoren_; p->voraussetzungen_ = personenKomponenteDef_->voraussetzungen_; ! Normalisiere(personenKomponenteDef_->kampftechniken_, p->kampftechniken_, this); Normalisiere(personenKomponenteDef_->talente_, p->talente_, this); Normalisiere(personenKomponenteDef_->sprachen_, p->sprachen_, this); Normalisiere(personenKomponenteDef_->schriften_, p->schriften_, this); ! NormalisiereChar(personenKomponenteDef_->charakteristika_, p->charakteristika_, this); for (DSA::Charakteristika::iterator c = p->charakteristika_.begin(); c != p->charakteristika_.end(); ++c) if ((c->second.Definition()->BrauchtSpezifizierung()) &&(c->second.Spezifizierung()=="")) { *************** *** 292,295 **** --- 344,350 ---- // $Log$ + // Revision 1.13 2004/01/05 02:45:14 vrandezo + // Charakteristika bei RPK-Definition von Mengen auf Auswahlmengen umgestellt + // // Revision 1.12 2003/12/06 15:42:52 vrandezo // Twelwan, GUI: R/K/P bei Erschaffung jetzt auch über Doppelklick wählbar |
From: <vra...@us...> - 2004-01-04 00:02:55
|
Update of /cvsroot/darkeyetool/det/src/gui In directory sc8-pr-cvs1:/tmp/cvs-serv13906 Modified Files: PersonenKomponenteGUIwx.h Log Message: Schlechte Eigenschaften 5+ bei RKP Index: PersonenKomponenteGUIwx.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonenKomponenteGUIwx.h,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** PersonenKomponenteGUIwx.h 2 Jan 2004 20:53:24 -0000 1.24 --- PersonenKomponenteGUIwx.h 4 Jan 2004 00:02:50 -0000 1.25 *************** *** 166,174 **** bool showplusminus = false; ! //if (charakteristika_->GetSelection()!=-1) ! // showplusminus = strings::BeginntMit(charakteristika_->GetStringSelection(), _t("Ritualkenntnis")); FindWindow(CHARPLUS)->Show(showplusminus); FindWindow(CHARMINUS)->Show(showplusminus); //@-node:<< VNT >> //@nl --- 166,182 ---- bool showplusminus = false; ! if (charakteristika_->GetSelection()!=-1) { ! std::string c = charakteristika_->GetStringSelection().c_str(); ! std::string auswahl; ! for (DSA::Charakteristika::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) ! if (i->second.Text() == c) ! auswahl = i->first; ! ! showplusminus = DSA::charakteristika()->Hole(auswahl).SchlechteEigenschaft(); ! } FindWindow(CHARPLUS)->Show(showplusminus); FindWindow(CHARMINUS)->Show(showplusminus); + //@nonl //@-node:<< VNT >> //@nl *************** *** 1651,1654 **** --- 1659,1674 ---- //@+node:<< OnCharListe >> void OnCharListe (wxCommandEvent& WXUNUSED(event)) { + if (charakteristika_->GetSelection()==-1) return; + + std::string c = charakteristika_->GetStringSelection().c_str(); + std::string auswahl; + for (DSA::Charakteristika::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) + if (i->second.Text() == c) + auswahl = i->first; + + bool showplusminus = DSA::charakteristika()->Hole(auswahl).SchlechteEigenschaft(); + Log::Add(auswahl); + FindWindow(CHARPLUS)->Show(showplusminus); + FindWindow(CHARMINUS)->Show(showplusminus); } // OnCharListe //@nonl *************** *** 1658,1661 **** --- 1678,1692 ---- //@+node:<< OnCharPlus >> void OnCharPlus (wxCommandEvent& WXUNUSED(event)) { + int sel = charakteristika_->GetSelection(); + if (sel==-1) return; + + std::string c = charakteristika_->GetStringSelection().c_str(); + std::string auswahl; + for (DSA::Charakteristika::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) + if (i->second.Text() == c) { + i->second.Stufe(i->second.Stufe()+1); + charakteristika_->SetString(sel, i->second.Text().c_str()); + } + // Update(); } // OnCharPlus //@nonl *************** *** 1665,1670 **** //@+node:<< OnCharMinus >> void OnCharMinus (wxCommandEvent& WXUNUSED(event)) { } // OnCharMinus - //@nonl //@-node:<< OnCharMinus >> //@nl --- 1696,1711 ---- //@+node:<< OnCharMinus >> void OnCharMinus (wxCommandEvent& WXUNUSED(event)) { + int sel = charakteristika_->GetSelection(); + if (sel==-1) return; + + std::string c = charakteristika_->GetStringSelection().c_str(); + std::string auswahl; + for (DSA::Charakteristika::iterator i = objekt_->charakteristika_.begin(); i != objekt_->charakteristika_.end(); ++i) + if (i->second.Text() == c) { + i->second.Stufe(i->second.Stufe()-1); + charakteristika_->SetString(sel, i->second.Text().c_str()); + } + // Update(); } // OnCharMinus //@-node:<< OnCharMinus >> //@nl *************** *** 1897,1900 **** --- 1938,1944 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.25 2004/01/04 00:02:50 vrandezo + // Schlechte Eigenschaften 5+ bei RKP + // // Revision 1.24 2004/01/02 20:53:24 vrandezo // generierte SF jetzt auch für RKP möglich |
From: <vra...@us...> - 2004-01-02 20:53:27
|
Update of /cvsroot/darkeyetool/det/src/gui In directory sc8-pr-cvs1:/tmp/cvs-serv19470 Modified Files: PersonenKomponenteGUIwx.h Log Message: generierte SF jetzt auch für RKP möglich Index: PersonenKomponenteGUIwx.h =================================================================== RCS file: /cvsroot/darkeyetool/det/src/gui/PersonenKomponenteGUIwx.h,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** PersonenKomponenteGUIwx.h 6 Dec 2003 14:59:40 -0000 1.23 --- PersonenKomponenteGUIwx.h 2 Jan 2004 20:53:24 -0000 1.24 *************** *** 192,208 **** moeglicheSonderfertigkeiten_->Append(s->second.ID().c_str()); ! //@+at ! // for (s = ! // DSA::generierteSonderfertigkeiten()->begin(); s != ! // DSA::generierteSonderfertigkeiten()->end(); ++s) ! // if ! // (!objekt_->sonderfertigkeiten_.Existiert(s->second.ID())) ! // if ! // (std::find(objekt_->verbilligteSonderfertigkeiten_.begin(), ! // objekt_->verbilligteSonderfertigkeiten_.end(), ! // s->second.ID())==objekt_->verbilligteSonderfertigkeiten_.end()) ! // moeglicheSonderfertigkeiten_->Append(s->second.ID().c_str()); ! //@-at ! //@@c showplusminus = false; --- 192,199 ---- moeglicheSonderfertigkeiten_->Append(s->second.ID().c_str()); ! for (s = DSA::generierteSonderfertigkeiten()->begin(); s != DSA::generierteSonderfertigkeiten()->end(); ++s) ! if (!objekt_->sonderfertigkeiten_.Existiert(s->second.ID())) ! if (std::find(objekt_->verbilligteSonderfertigkeiten_.begin(), objekt_->verbilligteSonderfertigkeiten_.end(), s->second.ID())==objekt_->verbilligteSonderfertigkeiten_.end()) ! moeglicheSonderfertigkeiten_->Append(s->second.ID().c_str()); showplusminus = false; *************** *** 1700,1707 **** //@+node:<< SFHinzu >> void SFHinzu (const std::string& sfs) { ! DSA::SonderfertigkeitDefinition sfdef = DSA::sonderfertigkeiten()->Hole(sfs); ! DSA::Sonderfertigkeit sf(sfdef); std::string s = _t("Diese Sonderfertigkeit braucht eine Spezifizierung.\nSoll diese vorgegeben sein, geben Sie sie bitte jetzt ein.\nSoll der Spieler selbst wählen, lassen Sie das Feld frei."); ! if (sfdef.BrauchtSpezifizierung()) sf.Spezifizierung(DSA::hole()->Text(s)); if (strings::BeginntMit(sf.ID(), _t("Ritualkenntnis"))) --- 1691,1701 ---- //@+node:<< SFHinzu >> void SFHinzu (const std::string& sfs) { ! DSA::SonderfertigkeitDefinition* sfdef = DSA::sonderfertigkeiten()->Zeige(sfs); ! if (sfdef==0) ! sfdef = DSA::generierteSonderfertigkeiten()->Zeige(sfs); ! if (sfdef==0) return; ! DSA::Sonderfertigkeit sf(*sfdef); std::string s = _t("Diese Sonderfertigkeit braucht eine Spezifizierung.\nSoll diese vorgegeben sein, geben Sie sie bitte jetzt ein.\nSoll der Spieler selbst wählen, lassen Sie das Feld frei."); ! if (sfdef->BrauchtSpezifizierung()) sf.Spezifizierung(DSA::hole()->Text(s)); if (strings::BeginntMit(sf.ID(), _t("Ritualkenntnis"))) *************** *** 1903,1906 **** --- 1897,1903 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.24 2004/01/02 20:53:24 vrandezo + // generierte SF jetzt auch für RKP möglich + // // Revision 1.23 2003/12/06 14:59:40 vrandezo // generierte SF für RKP (noch als Kommentar) |
From: <vra...@us...> - 2004-01-01 18:57:34
|
Update of /cvsroot/darkeyetool/det/src/dsa In directory sc8-pr-cvs1:/tmp/cvs-serv18370 Modified Files: PersonHandlerGenerator.cpp Log Message: Schlechte Eigenschaften werden bei Re-Generierung nicht verdoppelt Index: PersonHandlerGenerator.cpp =================================================================== RCS file: /cvsroot/darkeyetool/det/src/dsa/PersonHandlerGenerator.cpp,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** PersonHandlerGenerator.cpp 31 Dec 2003 03:51:58 -0000 1.33 --- PersonHandlerGenerator.cpp 1 Jan 2004 18:57:31 -0000 1.34 *************** *** 95,98 **** --- 95,103 ---- ID(AutoID(P()->Name())); autoID = true; + + for (Charakteristika::iterator ch = chareigen_.begin(); ch != chareigen_.end(); ++ch) + if (ch->second.SchlechteEigenschaft()) + if (charbasis_.Existiert(ch->first)) + ch->second.Stufe(ch->second.Stufe()-charbasis_.Zeige(ch->first)->Stufe()); } *************** *** 2137,2140 **** --- 2142,2148 ---- //@+node:<< Version History >> // $Log$ + // Revision 1.34 2004/01/01 18:57:31 vrandezo + // Schlechte Eigenschaften werden bei Re-Generierung nicht verdoppelt + // // Revision 1.33 2003/12/31 03:51:58 vrandezo // Re-Generation erweitert |