00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef SG_PROP_H
00013 #define SG_PROP_H
00014
00015 #include <string>
00016 #include <vector>
00017 #include "SgBlackWhite.h"
00018 #include "SgPoint.h"
00019 #include "SgVector.h"
00020
00021 class SgProp;
00022
00023
00024
00025
00026 typedef int SgPropID;
00027
00028
00029 typedef int SgPropFlags;
00030
00031
00032
00033
00034 enum SgPropPointFmt {
00035
00036
00037
00038 SG_PROPPOINTFMT_GO,
00039
00040
00041
00042
00043
00044
00045 SG_PROPPOINTFMT_HEX
00046 };
00047
00048
00049
00050 namespace SgPropUtil
00051 {
00052 std::string EscapeSpecialCharacters(const std::string& s,
00053 bool escapeColon);
00054
00055
00056
00057
00058 SgPropPointFmt GetPointFmt(int gameNumber);
00059
00060
00061 std::string PointToSgfString(SgMove p, int boardSize,
00062 SgPropPointFmt fmt, int fileFormat = 4);
00063
00064
00065
00066
00067
00068 SgPoint SgfStringToPoint(const std::string& s, int boardSize,
00069 SgPropPointFmt fmt);
00070 }
00071
00072
00073
00074
00075 const int SG_MAX_PROPCLASS = 150;
00076
00077
00078 const int SG_PROPCLASS_BLACK = 1 << 0;
00079
00080
00081 const int SG_PROPCLASS_WHITE = 1 << 1;
00082
00083
00084 const int SG_PROPCLASS_INFO = 1 << 2;
00085
00086
00087 const int SG_PROPCLASS_ANNO = 1 << 3;
00088
00089
00090 const int SG_PROPCLASS_STAT = 1 << 4;
00091
00092
00093 const int SG_PROPCLASS_ROOT = 1 << 5;
00094
00095
00096 const int SG_PROPCLASS_ANNO_MOVE = 1 << 6;
00097
00098
00099 const int SG_PROPCLASS_ANNO_POS = 1 << 7;
00100
00101
00102 const int SG_PROPCLASS_MOVE = 1 << 8;
00103
00104
00105 const int SG_PROPCLASS_MARK = 1 << 9;
00106
00107
00108 const int SG_PROPCLASS_TIME = 1 << 10;
00109
00110
00111 const int SG_PROPCLASS_ABSTRACT = 1 << 11;
00112
00113
00114 const int SG_PROPCLASS_NOT_FF3 = 1 << 12;
00115
00116
00117 const int SG_PROPCLASS_NOT_FF4 = 1 << 13;
00118
00119
00120 const int SG_PROPCLASS_CUSTOM = 1 << 14;
00121
00122
00123 const int SG_PROPCLASS_NOTCLEAN = 1 << 15;
00124
00125
00126 const int SG_PROPCLASS_NEWLINE = 1 << 16;
00127
00128
00129
00130
00131
00132
00133 class SgPropList
00134 {
00135 public:
00136 SgPropList();
00137
00138 ~SgPropList();
00139
00140
00141 bool IsEmpty() const;
00142
00143
00144 void Clear();
00145
00146
00147
00148
00149
00150
00151
00152 SgProp* Get(SgPropID id) const;
00153
00154
00155 SgProp* GetPropContainingText(const std::string& findText) const;
00156
00157
00158
00159
00160 void Add(const SgProp* prop);
00161
00162
00163
00164
00165 void MoveToFront(SgPropID id);
00166
00167
00168
00169
00170 bool Remove(const SgProp* prop);
00171
00172
00173
00174
00175
00176 void Remove(SgPropID id, const SgProp* protectProp);
00177
00178 void RemoveProp(SgPropID id) { Remove(id, 0); }
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189 bool AppendMoveAnnotation(std::string* s) const;
00190
00191 private:
00192 friend class SgPropListIterator;
00193
00194
00195 SgVectorOf<SgProp> m_list;
00196
00197
00198 SgPropList(const SgPropList&);
00199
00200
00201 SgPropList& operator=(const SgPropList&);
00202 };
00203
00204 inline bool SgPropList::IsEmpty() const
00205 {
00206 return m_list.IsEmpty();
00207 }
00208
00209
00210
00211
00212 class SgPropListIterator
00213 {
00214 public:
00215
00216 SgPropListIterator(const SgPropList& propList);
00217
00218 void operator++();
00219
00220 SgProp* operator*() const;
00221
00222 operator bool() const;
00223
00224 private:
00225 SgVectorIteratorOf<SgProp> m_listIterator;
00226
00227
00228 SgPropListIterator(const SgPropListIterator&);
00229
00230
00231 SgPropListIterator& operator=(const SgPropListIterator&);
00232 };
00233
00234 inline SgPropListIterator::SgPropListIterator(const SgPropList& propList)
00235 : m_listIterator(propList.m_list)
00236 {
00237 }
00238
00239 inline void SgPropListIterator::operator++()
00240 {
00241 m_listIterator.operator++();
00242 }
00243
00244 inline SgProp* SgPropListIterator::operator*() const
00245 {
00246 return m_listIterator.operator*();
00247 }
00248
00249 inline SgPropListIterator::operator bool() const
00250 {
00251 return m_listIterator.operator bool();
00252 }
00253
00254
00255
00256
00257 class SgProp
00258 {
00259 public:
00260 explicit SgProp(SgPropID id);
00261
00262 virtual ~SgProp();
00263
00264
00265
00266
00267 virtual SgProp* Duplicate() const = 0;
00268
00269
00270 SgPropID ID() const;
00271
00272
00273
00274
00275 virtual SgPropFlags Flags() const;
00276
00277
00278
00279
00280 virtual std::string Label() const;
00281
00282
00283 bool Flag(SgPropFlags flags) const;
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293 virtual bool ToString(std::vector<std::string>& values, int boardSize,
00294 SgPropPointFmt fmt, int fileFormat) const = 0;
00295
00296
00297
00298
00299
00300 virtual bool FromString(const std::vector<std::string>& values,
00301 int boardSize, SgPropPointFmt fmt) = 0;
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314 static SgPropID Register(SgProp* prop, const char* label,
00315 SgPropFlags flags = 0);
00316
00317
00318 static SgProp* CreateProperty(SgPropID id);
00319
00320
00321
00322
00323 static SgPropID GetIDOfLabel(const std::string& label);
00324
00325
00326
00327
00328
00329 static SgPropID ConvertFindTextToPropID(const std::string& findText);
00330
00331
00332
00333
00334
00335 static void Init();
00336
00337
00338 static void Fini();
00339
00340
00341
00342
00343
00344 SgBlackWhite Player() const;
00345
00346 bool IsPlayer(SgBlackWhite player) const;
00347
00348
00349
00350
00351
00352 static SgPropID OpponentProp(SgPropID id);
00353
00354
00355
00356
00357
00358 static SgPropID PlayerProp(SgPropID id, SgBlackWhite player);
00359
00360
00361
00362
00363 virtual void ChangeToOpponent();
00364
00365
00366
00367
00368
00369
00370 bool MatchesID(SgPropID id) const;
00371
00372
00373
00374
00375 virtual bool ContainsText(const std::string& findText);
00376
00377 protected:
00378 SgPropID m_id;
00379
00380 static bool Initialized();
00381
00382 private:
00383
00384 static bool s_initialized;
00385
00386 static int s_numPropClasses;
00387
00388 static SgPropFlags s_flags[SG_MAX_PROPCLASS];
00389
00390 static std::string s_label[SG_MAX_PROPCLASS];
00391
00392 static SgProp* s_prop[SG_MAX_PROPCLASS];
00393
00394
00395 SgProp(const SgProp&);
00396
00397
00398 SgProp& operator=(const SgProp&);
00399 };
00400
00401 inline SgProp::SgProp(SgPropID id)
00402 : m_id(id)
00403 {
00404 }
00405
00406 inline SgPropID SgProp::ID() const
00407 {
00408 return m_id;
00409 }
00410
00411 inline bool SgProp::Flag(SgPropFlags flags) const
00412 {
00413 return (Flags() & flags) != 0;
00414 }
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424 class SgPropUnknown
00425 : public SgProp
00426 {
00427 public:
00428 explicit SgPropUnknown(SgPropID id);
00429
00430 SgPropUnknown(SgPropID id, std::string label,
00431 const std::vector<std::string>& values);
00432
00433 SgProp* Duplicate() const;
00434
00435 bool ToString(std::vector<std::string>& values, int boardSize,
00436 SgPropPointFmt fmt, int fileFormat) const;
00437
00438 bool FromString(const std::vector<std::string>& values,
00439 int boardSize, SgPropPointFmt fmt);
00440
00441 std::string Label() const;
00442
00443 private:
00444 std::string m_label;
00445
00446 std::vector<std::string> m_values;
00447 };
00448
00449 inline SgPropUnknown::SgPropUnknown(SgPropID id)
00450 : SgProp(id)
00451 {
00452 }
00453
00454 inline SgPropUnknown::SgPropUnknown(SgPropID id, std::string label,
00455 const std::vector<std::string>& values)
00456 : SgProp(id),
00457 m_label(label),
00458 m_values(values)
00459 {
00460 }
00461
00462 inline std::string SgPropUnknown::Label() const
00463 {
00464 return m_label;
00465 }
00466
00467
00468
00469
00470 class SgPropInt
00471 : public SgProp
00472 {
00473 public:
00474 explicit SgPropInt(SgPropID id);
00475
00476 SgPropInt(SgPropID id, int value);
00477
00478 SgProp* Duplicate() const;
00479
00480 bool ToString(std::vector<std::string>& values, int boardSize,
00481 SgPropPointFmt fmt, int fileFormat) const;
00482
00483 bool FromString(const std::vector<std::string>& values,
00484 int boardSize, SgPropPointFmt fmt);
00485
00486
00487 int Value() const;
00488
00489 bool IsValue(int value) const;
00490
00491
00492 void SetValue(int value);
00493
00494 protected:
00495 int m_value;
00496 };
00497
00498 inline SgPropInt::SgPropInt(SgPropID id)
00499 : SgProp(id),
00500 m_value(0)
00501 {
00502 }
00503
00504 inline SgPropInt::SgPropInt(SgPropID id, int value)
00505 : SgProp(id),
00506 m_value(value)
00507 {
00508 }
00509
00510 inline int SgPropInt::Value() const
00511 {
00512 SG_ASSERT(Initialized());
00513 return m_value;
00514 }
00515
00516 inline bool SgPropInt::IsValue(int value) const
00517 {
00518 return m_value == value;
00519 }
00520
00521 inline void SgPropInt::SetValue(int value)
00522 {
00523 m_value = value;
00524 }
00525
00526
00527
00528
00529 class SgPropReal
00530 : public SgProp
00531 {
00532 public:
00533 explicit SgPropReal(SgPropID id);
00534
00535
00536
00537
00538
00539
00540
00541 SgPropReal(SgPropID id, double value, int precision = 0);
00542
00543 SgProp* Duplicate() const;
00544
00545 bool ToString(std::vector<std::string>& values, int boardSize,
00546 SgPropPointFmt fmt, int fileFormat) const;
00547
00548 bool FromString(const std::vector<std::string>& values,
00549 int boardSize, SgPropPointFmt fmt);
00550
00551 double Value() const;
00552
00553 void SetValue(double value, int precision = 0);
00554
00555 protected:
00556 int m_precision;
00557
00558 double m_value;
00559 };
00560
00561 inline SgPropReal::SgPropReal(SgPropID id)
00562 : SgProp(id),
00563 m_precision(0),
00564 m_value(0)
00565 {
00566 }
00567
00568 inline SgPropReal::SgPropReal(SgPropID id, double value, int precision)
00569 : SgProp(id),
00570 m_precision(precision),
00571 m_value(value)
00572 {
00573 }
00574
00575 inline double SgPropReal::Value() const
00576 {
00577 return m_value;
00578 }
00579
00580 inline void SgPropReal::SetValue(double value, int precision)
00581 {
00582 m_value = value;
00583 m_precision = precision;
00584 }
00585
00586
00587
00588
00589
00590
00591 class SgPropSimple
00592 : public SgProp
00593 {
00594 public:
00595 explicit SgPropSimple(SgPropID id);
00596
00597 SgProp* Duplicate() const;
00598
00599 bool ToString(std::vector<std::string>& values, int boardSize,
00600 SgPropPointFmt fmt, int fileFormat) const;
00601
00602 bool FromString(const std::vector<std::string>& values,
00603 int boardSize, SgPropPointFmt fmt);
00604 };
00605
00606 inline SgPropSimple::SgPropSimple(SgPropID id)
00607 : SgProp(id)
00608 {
00609 }
00610
00611
00612
00613
00614
00615
00616
00617 class SgPropMultiple
00618 : public SgPropInt
00619 {
00620 public:
00621 explicit SgPropMultiple(SgPropID id);
00622
00623 SgPropMultiple(SgPropID id, int value);
00624
00625 SgProp* Duplicate() const;
00626 };
00627
00628 inline SgPropMultiple::SgPropMultiple(SgPropID id)
00629 : SgPropInt(id, 1)
00630 {
00631 }
00632
00633 inline SgPropMultiple::SgPropMultiple(SgPropID id, int value)
00634 : SgPropInt(id, value)
00635 {
00636 }
00637
00638
00639
00640
00641 class SgPropValue
00642 : public SgPropInt
00643 {
00644 public:
00645 explicit SgPropValue(SgPropID id);
00646
00647 SgPropValue(SgPropID id, int value);
00648
00649 SgProp* Duplicate() const;
00650
00651 virtual void ChangeToOpponent();
00652 };
00653
00654 inline SgPropValue::SgPropValue(SgPropID id)
00655 : SgPropInt(id)
00656 {
00657 }
00658
00659 inline SgPropValue::SgPropValue(SgPropID id, int value)
00660 : SgPropInt(id, value)
00661 {
00662 }
00663
00664
00665
00666
00667 class SgPropTime
00668 : public SgPropReal
00669 {
00670 public:
00671 SgPropTime(SgPropID id, double value = 0, int precision = 1);
00672
00673 virtual ~SgPropTime();
00674
00675 SgProp* Duplicate() const;
00676 };
00677
00678 inline SgPropTime::SgPropTime(SgPropID id, double value, int precision)
00679 : SgPropReal(id, value, precision)
00680 {
00681 }
00682
00683
00684
00685
00686
00687
00688 class SgPropMSec
00689 : public SgPropTime
00690 {
00691 public:
00692 explicit SgPropMSec(SgPropID id);
00693
00694 SgPropMSec(SgPropID id, double value);
00695
00696 virtual ~SgPropMSec();
00697
00698 SgProp* Duplicate() const;
00699 };
00700
00701 inline SgPropMSec::SgPropMSec(SgPropID id)
00702 : SgPropTime(id, 0, 3)
00703 {
00704 }
00705
00706 inline SgPropMSec::SgPropMSec(SgPropID id, double value)
00707 : SgPropTime(id, value, 3)
00708 {
00709 }
00710
00711
00712
00713
00714
00715
00716 class SgPropMove
00717 : public SgProp
00718 {
00719 public:
00720 explicit SgPropMove(SgPropID id);
00721
00722 SgPropMove(SgPropID id, SgMove move);
00723
00724 SgProp* Duplicate() const;
00725
00726
00727 SgPoint Value() const;
00728
00729 bool IsValue(SgPoint move) const;
00730
00731 bool ToString(std::vector<std::string>& values, int boardSize,
00732 SgPropPointFmt fmt, int fileFormat) const;
00733
00734 bool FromString(const std::vector<std::string>& values,
00735 int boardSize, SgPropPointFmt fmt);
00736
00737 protected:
00738 SgPoint m_move;
00739 };
00740
00741 inline SgPropMove::SgPropMove(SgPropID id)
00742 : SgProp(id),
00743 m_move(SG_NULLMOVE)
00744 {
00745 }
00746
00747 inline SgPropMove::SgPropMove(SgPropID id, SgMove move)
00748 : SgProp(id),
00749 m_move(move)
00750 {
00751 }
00752
00753 inline SgPoint SgPropMove::Value() const
00754 {
00755 return m_move;
00756 }
00757
00758 inline bool SgPropMove::IsValue(SgPoint move) const
00759 {
00760 return m_move == move;
00761 }
00762
00763
00764
00765
00766 class SgPropPointList
00767 : public SgProp
00768 {
00769 public:
00770 explicit SgPropPointList(SgPropID id);
00771
00772 SgPropPointList(SgPropID id, const SgVector<SgPoint>& list);
00773
00774 virtual ~SgPropPointList();
00775
00776 SgProp* Duplicate() const;
00777
00778
00779 const SgVector<SgPoint>& Value() const;
00780 SgVector<SgPoint>& Value();
00781
00782
00783 void SetValue(const SgVector<SgPoint>& list);
00784
00785 void PushBack(SgPoint p);
00786
00787 bool ToString(std::vector<std::string>& values, int boardSize,
00788 SgPropPointFmt fmt, int fileFormat) const;
00789
00790 bool FromString(const std::vector<std::string>& values,
00791 int boardSize, SgPropPointFmt fmt);
00792
00793 private:
00794 SgVector<SgPoint> m_list;
00795 };
00796
00797 inline SgPropPointList::SgPropPointList(SgPropID id)
00798 : SgProp(id)
00799 {
00800 }
00801
00802 inline const SgVector<SgPoint>& SgPropPointList::Value() const
00803 {
00804 return m_list;
00805 }
00806
00807 inline SgVector<SgPoint>& SgPropPointList::Value()
00808 {
00809 return m_list;
00810 }
00811
00812 inline void SgPropPointList::SetValue(const SgVector<SgPoint>& list)
00813 {
00814 m_list = list;
00815 }
00816
00817 inline void SgPropPointList::PushBack(SgPoint p)
00818 {
00819 m_list.PushBack(p);
00820 }
00821
00822
00823
00824
00825 class SgPropText
00826 : public SgProp
00827 {
00828 public:
00829 explicit SgPropText(SgPropID id);
00830
00831 SgPropText(SgPropID id, const std::string& text);
00832
00833 SgProp* Duplicate() const;
00834
00835
00836 const std::string& Value() const;
00837
00838 std::string& Value();
00839
00840 void SetValue(const std::string& value);
00841
00842 void AppendText(const std::string& text);
00843
00844 bool ToString(std::vector<std::string>& values, int boardSize,
00845 SgPropPointFmt fmt, int fileFormat) const;
00846
00847 bool FromString(const std::vector<std::string>& values,
00848 int boardSize, SgPropPointFmt fmt);
00849
00850 virtual bool ContainsText(const std::string& findText);
00851
00852 private:
00853 std::string m_text;
00854 };
00855
00856 inline SgPropText::SgPropText(SgPropID id)
00857 : SgProp(id),
00858 m_text()
00859 {
00860 }
00861
00862 inline SgPropText::SgPropText(SgPropID id, const std::string& text)
00863 : SgProp(id),
00864 m_text(text)
00865 {
00866 }
00867
00868 inline const std::string& SgPropText::Value() const
00869 {
00870 return m_text;
00871 }
00872
00873 inline std::string& SgPropText::Value()
00874 {
00875 return m_text;
00876 }
00877
00878 inline void SgPropText::SetValue(const std::string& value)
00879 {
00880 m_text = value;
00881 }
00882
00883 inline void SgPropText::AppendText(const std::string& text)
00884 {
00885 m_text += text;
00886 }
00887
00888
00889
00890
00891 class SgPropTextList
00892 : public SgProp
00893 {
00894 public:
00895 explicit SgPropTextList(SgPropID id);
00896
00897 SgPropTextList(SgPropID id, const SgVector<SgPoint>& points,
00898 SgVectorOf<std::string> strings);
00899
00900 virtual ~SgPropTextList();
00901
00902 SgProp* Duplicate() const;
00903
00904
00905
00906
00907 const SgVector<SgPoint>& GetPointsWithText() const;
00908
00909
00910
00911
00912
00913 bool GetStringAtPoint(SgPoint p, std::string* s) const;
00914
00915
00916
00917
00918 void AddStringAtPoint(SgPoint p, const std::string& s);
00919
00920
00921
00922
00923 void AppendToStringAtPoint(SgPoint p, const std::string& s);
00924
00925
00926 void ClearStringAtPoint(SgPoint p);
00927
00928 bool ToString(std::vector<std::string>& values, int boardSize,
00929 SgPropPointFmt fmt, int fileFormat) const;
00930
00931 bool FromString(const std::vector<std::string>& values,
00932 int boardSize, SgPropPointFmt fmt);
00933
00934 virtual bool ContainsText(const std::string& findText);
00935
00936 private:
00937 SgVector<SgPoint> m_points;
00938
00939 SgVectorOf<std::string> m_strings;
00940 };
00941
00942 inline SgPropTextList::SgPropTextList(SgPropID id)
00943 : SgProp(id),
00944 m_points(),
00945 m_strings()
00946 {
00947 }
00948
00949 inline const SgVector<SgPoint>& SgPropTextList::GetPointsWithText() const
00950 {
00951 return m_points;
00952 }
00953
00954
00955
00956
00957 class SgPropPlayer
00958 : public SgProp
00959 {
00960 public:
00961 explicit SgPropPlayer(SgPropID id);
00962
00963 SgPropPlayer(SgPropID id, int player);
00964
00965 SgProp* Duplicate() const;
00966
00967 SgBlackWhite Value() const;
00968
00969 void SetValue(SgBlackWhite player);
00970
00971 virtual void ChangeToOpponent();
00972
00973 bool ToString(std::vector<std::string>& values, int boardSize,
00974 SgPropPointFmt fmt, int fileFormat) const;
00975
00976 bool FromString(const std::vector<std::string>& values,
00977 int boardSize, SgPropPointFmt fmt);
00978
00979 private:
00980 SgBlackWhite m_player;
00981 };
00982
00983 inline SgPropPlayer::SgPropPlayer(SgPropID id)
00984 : SgProp(id),
00985 m_player(SG_BLACK)
00986 {
00987 }
00988
00989 inline SgPropPlayer::SgPropPlayer(SgPropID id, int player)
00990 : SgProp(id),
00991 m_player(player)
00992 {
00993 }
00994
00995 inline SgBlackWhite SgPropPlayer::Value() const
00996 {
00997 return m_player;
00998 }
00999
01000 inline void SgPropPlayer::SetValue(SgBlackWhite player)
01001 {
01002 m_player = player;
01003 }
01004
01005
01006
01007
01008
01009
01010 class SgPropAddStone
01011 : public SgPropPointList
01012 {
01013 public:
01014 explicit SgPropAddStone(SgPropID id);
01015
01016 SgPropAddStone(SgPropID id, const SgVector<SgPoint>& list);
01017
01018 virtual ~SgPropAddStone();
01019
01020 SgProp* Duplicate() const;
01021 };
01022
01023 inline SgPropAddStone::SgPropAddStone(SgPropID id)
01024 : SgPropPointList(id)
01025 {
01026 }
01027
01028 inline SgPropAddStone::SgPropAddStone(SgPropID id,
01029 const SgVector<SgPoint>& list)
01030 : SgPropPointList(id, list)
01031 {
01032 }
01033
01034
01035
01036
01037
01038
01039
01040 extern SgPropID SG_PROP_NONE;
01041
01042
01043 extern SgPropID SG_PROP_UNKNOWN;
01044
01045
01046
01047
01048
01049
01050
01051 extern SgPropID SG_PROP_MOVE;
01052
01053
01054 extern SgPropID SG_PROP_MOVE_BLACK;
01055
01056
01057 extern SgPropID SG_PROP_MOVE_WHITE;
01058
01059
01060
01061
01062
01063
01064
01065 extern SgPropID SG_PROP_ADD_BLACK;
01066
01067
01068 extern SgPropID SG_PROP_ADD_WHITE;
01069
01070
01071 extern SgPropID SG_PROP_ADD_EMPTY;
01072
01073
01074 extern SgPropID SG_PROP_PLAYER;
01075
01076
01077
01078
01079
01080
01081 extern SgPropID SG_PROP_VALUE;
01082
01083
01084 extern SgPropID SG_PROP_TERR_BLACK;
01085
01086
01087 extern SgPropID SG_PROP_TERR_WHITE;
01088
01089
01090
01091
01092
01093
01094
01095 extern SgPropID SG_PROP_MARKS;
01096
01097
01098 extern SgPropID SG_PROP_SELECT;
01099
01100
01101 extern SgPropID SG_PROP_MARKED;
01102
01103
01104 extern SgPropID SG_PROP_TRIANGLE;
01105
01106
01107 extern SgPropID SG_PROP_SQUARE;
01108
01109
01110 extern SgPropID SG_PROP_DIAMOND;
01111
01112
01113 extern SgPropID SG_PROP_CIRCLE;
01114
01115
01116 extern SgPropID SG_PROP_DIMMED;
01117
01118
01119 extern SgPropID SG_PROP_LABEL;
01120
01121
01122
01123
01124
01125
01126
01127 extern SgPropID SG_PROP_TIMES;
01128
01129
01130 extern SgPropID SG_PROP_TIME_BLACK;
01131
01132
01133 extern SgPropID SG_PROP_TIME_WHITE;
01134
01135
01136 extern SgPropID SG_PROP_OT_BLACK;
01137
01138
01139 extern SgPropID SG_PROP_OT_WHITE;
01140
01141
01142 extern SgPropID SG_PROP_OT_NU_MOVES;
01143
01144
01145 extern SgPropID SG_PROP_OT_PERIOD;
01146
01147
01148 extern SgPropID SG_PROP_OVERHEAD;
01149
01150
01151 extern SgPropID SG_PROP_LOSE_TIME;
01152
01153
01154
01155
01156
01157
01158
01159 extern SgPropID SG_PROP_COUNT;
01160
01161
01162 extern SgPropID SG_PROP_TIME_USED;
01163
01164
01165 extern SgPropID SG_PROP_NUM_NODES;
01166
01167
01168 extern SgPropID SG_PROP_NUM_LEAFS;
01169
01170
01171 extern SgPropID SG_PROP_MAX_DEPTH;
01172
01173
01174 extern SgPropID SG_PROP_DEPTH;
01175
01176
01177 extern SgPropID SG_PROP_PART_DEPTH;
01178
01179
01180 extern SgPropID SG_PROP_EVAL;
01181
01182
01183 extern SgPropID SG_PROP_EXPECTED;
01184
01185
01186 extern SgPropID SG_PROP_SELF_TEST;
01187
01188
01189
01190
01191
01192
01193
01194 extern SgPropID SG_PROP_FORMAT;
01195
01196
01197 extern SgPropID SG_PROP_SIZE;
01198
01199
01200 extern SgPropID SG_PROP_GAME;
01201
01202
01203 extern SgPropID SG_PROP_SPEC_BLACK;
01204
01205
01206 extern SgPropID SG_PROP_SPEC_WHITE;
01207
01208
01209 extern SgPropID SG_PROP_CHINESE;
01210
01211
01212 extern SgPropID SG_PROP_APPLIC;
01213
01214
01215
01216
01217
01218
01219
01220 extern SgPropID SG_PROP_ANNOTATE;
01221
01222
01223 extern SgPropID SG_PROP_COMMENT;
01224
01225
01226 extern SgPropID SG_PROP_NAME;
01227
01228
01229 extern SgPropID SG_PROP_CHECK;
01230
01231
01232 extern SgPropID SG_PROP_SIGMA;
01233
01234
01235 extern SgPropID SG_PROP_HOTSPOT;
01236
01237
01238 extern SgPropID SG_PROP_FIGURE;
01239
01240
01241
01242
01243
01244
01245
01246 extern SgPropID SG_PROP_POS_ANNO;
01247
01248
01249 extern SgPropID SG_PROP_GOOD_BLACK;
01250
01251
01252 extern SgPropID SG_PROP_GOOD_WHITE;
01253
01254
01255 extern SgPropID SG_PROP_EVEN_POS;
01256
01257
01258 extern SgPropID SG_PROP_UNCLEAR;
01259
01260
01261
01262
01263
01264
01265
01266 extern SgPropID SG_PROP_MOVE_ANNO;
01267
01268
01269 extern SgPropID SG_PROP_GOOD_MOVE;
01270
01271
01272 extern SgPropID SG_PROP_BAD_MOVE;
01273
01274
01275 extern SgPropID SG_PROP_INTERESTING;
01276
01277
01278 extern SgPropID SG_PROP_DOUBTFUL;
01279
01280
01281
01282
01283
01284
01285
01286 extern SgPropID SG_PROP_INFO;
01287
01288
01289 extern SgPropID SG_PROP_GAME_NAME;
01290
01291
01292 extern SgPropID SG_PROP_GAME_COMMENT;
01293
01294
01295 extern SgPropID SG_PROP_EVENT;
01296
01297
01298 extern SgPropID SG_PROP_ROUND;
01299
01300
01301 extern SgPropID SG_PROP_DATE;
01302
01303
01304 extern SgPropID SG_PROP_PLACE;
01305
01306
01307 extern SgPropID SG_PROP_PLAYER_BLACK;
01308
01309
01310 extern SgPropID SG_PROP_PLAYER_WHITE;
01311
01312
01313 extern SgPropID SG_PROP_RESULT;
01314
01315
01316 extern SgPropID SG_PROP_USER;
01317
01318
01319 extern SgPropID SG_PROP_TIME;
01320
01321
01322 extern SgPropID SG_PROP_SOURCE;
01323
01324
01325 extern SgPropID SG_PROP_COPYRIGHT;
01326
01327
01328 extern SgPropID SG_PROP_ANALYSIS;
01329
01330
01331 extern SgPropID SG_PROP_RANK_BLACK;
01332
01333
01334 extern SgPropID SG_PROP_RANK_WHITE;
01335
01336
01337 extern SgPropID SG_PROP_TEAM_BLACK;
01338
01339
01340 extern SgPropID SG_PROP_TEAM_WHITE;
01341
01342
01343 extern SgPropID SG_PROP_OPENING;
01344
01345
01346 extern SgPropID SG_PROP_RULES;
01347
01348
01349 extern SgPropID SG_PROP_HANDICAP;
01350
01351
01352 extern SgPropID SG_PROP_KOMI;
01353
01354
01355
01356
01357
01358
01359
01360 extern SgPropID SG_PROP_FIND_MOVE;
01361
01362
01363 extern SgPropID SG_PROP_FIND_TEXT;
01364
01365
01366 extern SgPropID SG_PROP_BRANCH;
01367
01368
01369 extern SgPropID SG_PROP_TERMINAL;
01370
01371
01372
01373
01374
01375
01376
01377 extern SgPropID SG_PROP_MOTIVE;
01378
01379
01380 extern SgPropID SG_PROP_SEQUENCE;
01381
01382
01383 extern SgPropID SG_PROP_NOT_EMPTY;
01384
01385
01386 extern SgPropID SG_PROP_NOT_BLACK;
01387
01388
01389 extern SgPropID SG_PROP_NOT_WHITE;
01390
01391
01392
01393
01394
01395 #endif // SG_PROP_H