aboutsummaryrefslogtreecommitdiff
path: root/contrib/dbcEditer
diff options
context:
space:
mode:
authorNeo2003 <none@none>2008-10-02 16:23:55 -0500
committerNeo2003 <none@none>2008-10-02 16:23:55 -0500
commit9b1c0e006f20091f28f3f468cfcab1feb51286bd (patch)
treeb5d1ba94a656e6679f8737f9ea6bed1239b73b14 /contrib/dbcEditer
[svn] * Proper SVN structureinit
--HG-- branch : trunk
Diffstat (limited to 'contrib/dbcEditer')
-rw-r--r--contrib/dbcEditer/BcdEditer.ini34
-rw-r--r--contrib/dbcEditer/SearchFrm.cpp26
-rw-r--r--contrib/dbcEditer/SearchFrm.ddpbin0 -> 51 bytes
-rw-r--r--contrib/dbcEditer/SearchFrm.dfm63
-rw-r--r--contrib/dbcEditer/SearchFrm.h29
-rw-r--r--contrib/dbcEditer/TitleFrm.cpp26
-rw-r--r--contrib/dbcEditer/TitleFrm.ddpbin0 -> 51 bytes
-rw-r--r--contrib/dbcEditer/TitleFrm.dfm51
-rw-r--r--contrib/dbcEditer/TitleFrm.h27
-rw-r--r--contrib/dbcEditer/bin/BcdEditer.ini313
-rw-r--r--contrib/dbcEditer/bin/bcbsmp60.bplbin0 -> 127488 bytes
-rw-r--r--contrib/dbcEditer/bin/borlndmm.dllbin0 -> 22016 bytes
-rw-r--r--contrib/dbcEditer/bin/cc3260mt.dllbin0 -> 1497088 bytes
-rw-r--r--contrib/dbcEditer/bin/dclusr60.bplbin0 -> 52224 bytes
-rw-r--r--contrib/dbcEditer/bin/indy60.bplbin0 -> 513536 bytes
-rw-r--r--contrib/dbcEditer/bin/pjDbcEditer.exebin0 -> 94720 bytes
-rw-r--r--contrib/dbcEditer/bin/rtl60.bplbin0 -> 676352 bytes
-rw-r--r--contrib/dbcEditer/bin/update.txt11
-rw-r--r--contrib/dbcEditer/bin/vcl60.bplbin0 -> 1326080 bytes
-rw-r--r--contrib/dbcEditer/bin/vclx60.bplbin0 -> 213504 bytes
-rw-r--r--contrib/dbcEditer/dbcedit.cpp769
-rw-r--r--contrib/dbcEditer/dbcedit.ddpbin0 -> 51 bytes
-rw-r--r--contrib/dbcEditer/dbcedit.dfm1259
-rw-r--r--contrib/dbcEditer/dbcedit.h105
-rw-r--r--contrib/dbcEditer/pjDbcEditer.bpr124
-rw-r--r--contrib/dbcEditer/pjDbcEditer.cpp37
-rw-r--r--contrib/dbcEditer/pjDbcEditer.exebin0 -> 94720 bytes
-rw-r--r--contrib/dbcEditer/pjDbcEditer.resbin0 -> 876 bytes
-rw-r--r--contrib/dbcEditer/pjDbcEditer.tdsbin0 -> 2293760 bytes
-rw-r--r--contrib/dbcEditer/thOpenSource.cpp182
-rw-r--r--contrib/dbcEditer/thOpenSource.h24
31 files changed, 3080 insertions, 0 deletions
diff --git a/contrib/dbcEditer/BcdEditer.ini b/contrib/dbcEditer/BcdEditer.ini
new file mode 100644
index 00000000000..99284e8b967
--- /dev/null
+++ b/contrib/dbcEditer/BcdEditer.ini
@@ -0,0 +1,34 @@
+[TaxiNodes.dbc]
+ColType2=0
+ColType3=1
+ColType4=1
+[SpellRange.dbc]
+ColType2=0
+ColType3=0
+ColType1=0
+[Talent.dbc]
+ColType1=0
+ColType5=0
+ColType4=0
+[test.dbc]
+ColType1=0
+ColType3=1
+ColType2=0
+[TalentTab.dbc]
+ColType15=2
+[TalentTab_new.dbc]
+ColType15=2
+[SpellIcon.dbc]
+ColType2=0
+ColType1=0
+[FactionGroup.dbc]
+ColType12=0
+ColType3=2
+ColType2=0
+ColType8=0
+[gtRegenMPPerSpt.dbc]
+ColType1=1
+[gtOCTRegenMP.dbc]
+ColType1=1
+[gtOCTRegenHP.dbc]
+ColType1=1
diff --git a/contrib/dbcEditer/SearchFrm.cpp b/contrib/dbcEditer/SearchFrm.cpp
new file mode 100644
index 00000000000..59e198dfb8a
--- /dev/null
+++ b/contrib/dbcEditer/SearchFrm.cpp
@@ -0,0 +1,26 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "SearchFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TFrmSearch *FrmSearch;
+//---------------------------------------------------------------------------
+__fastcall TFrmSearch::TFrmSearch(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TFrmSearch::btOkClick(TObject *Sender)
+{
+ ModalResult = mrOk;
+}
+//---------------------------------------------------------------------------
+void __fastcall TFrmSearch::btCancelClick(TObject *Sender)
+{
+ ModalResult = mrCancel;
+}
+//---------------------------------------------------------------------------
diff --git a/contrib/dbcEditer/SearchFrm.ddp b/contrib/dbcEditer/SearchFrm.ddp
new file mode 100644
index 00000000000..cdc0ee8c2b5
--- /dev/null
+++ b/contrib/dbcEditer/SearchFrm.ddp
Binary files differ
diff --git a/contrib/dbcEditer/SearchFrm.dfm b/contrib/dbcEditer/SearchFrm.dfm
new file mode 100644
index 00000000000..134c881cbfb
--- /dev/null
+++ b/contrib/dbcEditer/SearchFrm.dfm
@@ -0,0 +1,63 @@
+object FrmSearch: TFrmSearch
+ Left = 261
+ Top = 194
+ Width = 324
+ Height = 215
+ Caption = 'Seach F3 Seach Next'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ object lbseach: TLabel
+ Left = 48
+ Top = 16
+ Width = 57
+ Height = 17
+ AutoSize = False
+ Caption = 'Input:'
+ end
+ object rgSI: TRadioGroup
+ Left = 64
+ Top = 40
+ Width = 185
+ Height = 97
+ Caption = 'Seach Dir'
+ ItemIndex = 1
+ Items.Strings = (
+ 'Seach up'
+ 'Seach down'
+ 'Seach up Current rol'
+ 'Seach down Current rol')
+ TabOrder = 0
+ end
+ object edSeach: TEdit
+ Left = 120
+ Top = 16
+ Width = 121
+ Height = 21
+ TabOrder = 1
+ end
+ object btOk: TButton
+ Left = 64
+ Top = 152
+ Width = 75
+ Height = 25
+ Caption = 'Ok'
+ TabOrder = 2
+ OnClick = btOkClick
+ end
+ object btCancel: TButton
+ Left = 176
+ Top = 152
+ Width = 75
+ Height = 25
+ Caption = 'Cancel'
+ TabOrder = 3
+ OnClick = btCancelClick
+ end
+end
diff --git a/contrib/dbcEditer/SearchFrm.h b/contrib/dbcEditer/SearchFrm.h
new file mode 100644
index 00000000000..246d7e68204
--- /dev/null
+++ b/contrib/dbcEditer/SearchFrm.h
@@ -0,0 +1,29 @@
+//---------------------------------------------------------------------------
+
+#ifndef SearchFrmH
+#define SearchFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TFrmSearch : public TForm
+{
+__published: // IDE-managed Components
+ TRadioGroup *rgSI;
+ TEdit *edSeach;
+ TLabel *lbseach;
+ TButton *btOk;
+ TButton *btCancel;
+ void __fastcall btOkClick(TObject *Sender);
+ void __fastcall btCancelClick(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TFrmSearch(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TFrmSearch *FrmSearch;
+//---------------------------------------------------------------------------
+#endif
diff --git a/contrib/dbcEditer/TitleFrm.cpp b/contrib/dbcEditer/TitleFrm.cpp
new file mode 100644
index 00000000000..a26e93ce5ec
--- /dev/null
+++ b/contrib/dbcEditer/TitleFrm.cpp
@@ -0,0 +1,26 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "TitleFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TFrmTitle *FrmTitle;
+//---------------------------------------------------------------------------
+__fastcall TFrmTitle::TFrmTitle(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TFrmTitle::Button1Click(TObject *Sender)
+{
+ ModalResult = mrOk;
+}
+//---------------------------------------------------------------------------
+void __fastcall TFrmTitle::Button2Click(TObject *Sender)
+{
+ ModalResult = mrCancel;
+}
+//---------------------------------------------------------------------------
diff --git a/contrib/dbcEditer/TitleFrm.ddp b/contrib/dbcEditer/TitleFrm.ddp
new file mode 100644
index 00000000000..cdc0ee8c2b5
--- /dev/null
+++ b/contrib/dbcEditer/TitleFrm.ddp
Binary files differ
diff --git a/contrib/dbcEditer/TitleFrm.dfm b/contrib/dbcEditer/TitleFrm.dfm
new file mode 100644
index 00000000000..3f472d59bcf
--- /dev/null
+++ b/contrib/dbcEditer/TitleFrm.dfm
@@ -0,0 +1,51 @@
+object FrmTitle: TFrmTitle
+ Left = 328
+ Top = 252
+ Width = 235
+ Height = 112
+ BorderIcons = [biSystemMenu]
+ Caption = 'Col Title'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poDesktopCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 8
+ Top = 24
+ Width = 65
+ Height = 13
+ AutoSize = False
+ Caption = 'Title:'
+ end
+ object edTitle: TEdit
+ Left = 80
+ Top = 16
+ Width = 121
+ Height = 21
+ TabOrder = 0
+ end
+ object Button1: TButton
+ Left = 24
+ Top = 48
+ Width = 75
+ Height = 25
+ Caption = 'Ok'
+ TabOrder = 1
+ OnClick = Button1Click
+ end
+ object Button2: TButton
+ Left = 136
+ Top = 48
+ Width = 75
+ Height = 25
+ Caption = 'Cancel'
+ TabOrder = 2
+ OnClick = Button2Click
+ end
+end
diff --git a/contrib/dbcEditer/TitleFrm.h b/contrib/dbcEditer/TitleFrm.h
new file mode 100644
index 00000000000..2316d8fec96
--- /dev/null
+++ b/contrib/dbcEditer/TitleFrm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+
+#ifndef TitleFrmH
+#define TitleFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+//---------------------------------------------------------------------------
+class TFrmTitle : public TForm
+{
+__published: // IDE-managed Components
+ TLabel *Label1;
+ TEdit *edTitle;
+ TButton *Button1;
+ TButton *Button2;
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall Button2Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TFrmTitle(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TFrmTitle *FrmTitle;
+//---------------------------------------------------------------------------
+#endif
diff --git a/contrib/dbcEditer/bin/BcdEditer.ini b/contrib/dbcEditer/bin/BcdEditer.ini
new file mode 100644
index 00000000000..100029b418e
--- /dev/null
+++ b/contrib/dbcEditer/bin/BcdEditer.ini
@@ -0,0 +1,313 @@
+[FactionGroup.dbc]
+ColType3=2
+[Spell.dbc]
+ColTitle1=Id
+ColTitle2=Category
+ColTitle3=castUI
+ColTitle4=Dispel
+ColTitle5=Mechanic
+ColTitle6=Attributes
+ColTitle7=AttributesEx;
+ColTitle8=AttributesEx2;
+ColTitle9=AttributesEx3;
+ColTitle10=AttributesEx4;
+ColTitle11=AttributesEx5;
+ColTitle12=AttributesEx6;
+ColTitle13=Stances;
+ColTitle14=StancesNot;
+ColTitle15=Targets;
+ColTitle16=TargetCreatureType;
+ColTitle17=RequiresSpellFocus;
+ColTitle18=FacingCasterFlags;
+ColTitle19=CasterAuraState;
+ColTitle20=TargetAuraState;
+ColTitle21=CasterAuraStateNot;
+ColTitle22=TargetAuraStateNot;
+ColTitle23=CastingTimeIndex;
+ColTitle24=RecoveryTime;
+ColTitle25=CategoryRecoveryTime;
+ColTitle26=InterruptFlags;
+ColTitle27=AuraInterruptFlags;
+ColTitle28=ChannelInterruptFlags;
+ColTitle29=procFlags;
+ColTitle30=procChance;
+ColTitle31=procCharges;
+ColTitle32=maxLevel;
+ColTitle33=baseLevel;
+ColTitle34=spellLevel;
+ColTitle35=DurationIndex;
+ColTitle36=powerType;
+ColTitle37=manaCost;
+ColTitle38=manaCostPerlevel;
+ColTitle39=manaPerSecond;
+ColTitle40=manaPerSecondPerLevel;
+ColTitle41=rangeIndex;
+ColTitle42=floatspeed;
+ColTitle43=modalNextSpell;//38
+ColTitle44=StackAmount;
+ColTitle45=Totem1
+ColTitle46=Totem2
+ColTitle47=Reagent
+ColTitle48=Reagent2
+ColTitle49=Reagent3
+ColTitle50=Reagent4
+ColTitle51=Reagent5
+ColTitle52=Reagent6
+ColTitle53=Reagent7
+ColTitle54=Reagent8
+ColTitle55=ReagentCount1
+ColTitle56=ReagentCount2
+ColTitle57=ReagentCount3
+ColTitle58=ReagentCount4
+ColTitle59=ReagentCount5
+ColTitle60=ReagentCount6
+ColTitle61=ReagentCount7
+ColTitle62=ReagentCount8
+
+ColTitle63=EqpItemClass
+ColTitle64=EquipItemSubClassMask
+ColTitle65=ItemInventoryTypeMask
+ColTitle66=Effect
+ColTitle67=Effect2
+ColTitle68=Effect3
+ColTitle69=EffectDieSides1
+ColTitle70=EffectDieSides2
+ColTitle71=EffectDieSides3
+ColTitle72=EffectBaseDice1
+ColTitle73=EffectBaseDice2
+ColTitle74=EffectBaseDice3
+ColTitle75=EffectDicePerLevel1
+ColTitle76=EffectDicePerLevel2
+ColTitle77=EffectDicePerLevel3
+ColTitle78=EffectRealPointsPerLevel1
+ColTitle79=EffectRealPointsPerLevel2
+ColTitle80=EffectRealPointsPerLevel3
+ColTitle81=BasePoints1
+ColTitle82=BasePoints2
+ColTitle83=BasePoints3
+ColTitle84=EffectMechanic1
+ColTitle85=EffectMechanic2
+ColTitle86=EffectMechanic3
+
+
+ColTitle87=ImplicTargA1
+ColTitle88=ImplicTargA2
+ColTitle89=ImplicTargA3
+ColTitle90=ImplicTargB1
+ColTitle91=ImplicTargB2
+ColTitle92=ImplicTargB3
+ColTitle93=RadiusIndex1
+ColTitle94=RadiusIndex2
+ColTitle95=RadiusIndex3
+ColTitle96=ApplyAuraName1
+ColTitle97=ApplyAuraName2
+ColTitle98=ApplyAuraName3
+ColTitle99=Amplitude1
+ColTitle100=Amplitude2
+ColTitle101=Amplitude3
+ColTitle102=MultiVal1
+ColTitle103=MultiVal2
+ColTitle104=MultiVal3
+ColTitle105=ChainTarg1
+ColTitle106=ChainTarg2
+ColTitle107=ChainTarg3
+ColTitle108=EffectItemType1
+ColTitle109=EffectItemType2
+ColTitle110=EffectItemType3
+ColTitle111=EffectMiscVal1
+ColTitle112=EffectMiscVal2
+ColTitle113=EffectMiscVal3
+ColTitle114=EffectMiscValB1
+ColTitle115=EffectMiscValB2
+ColTitle116=EffectMiscValB3
+ColTitle117=EffectTriggerSpell1
+ColTitle118=EffectTriggerSpell2
+ColTitle119=EffectTriggerSpell3
+ColTitle120=EffectPointsPerComboPoint1
+ColTitle121=EffectPointsPerComboPoint2
+ColTitle122=EffectPointsPerComboPoint3
+ColTitle123=SpellVisual
+ColTitle125=SpellIconID
+ColTitle126=activeIconID
+ColTitle127=spellPriority
+ColTitle128=SpellName1
+ColTitle129=SpellName2
+ColTitle130=SpellName3
+ColTitle131=SpellName4
+ColTitle132=SpellName5
+ColTitle133=SpellName6
+ColTitle134=SpellName7
+ColTitle135=SpellName8
+ColTitle136=SpellName9
+ColTitle137=SpellName10
+ColTitle138=SpellName11
+ColTitle139=SpellName12
+ColTitle140=SpellName13
+ColTitle141=SpellName14
+ColTitle142=SpellName15
+ColTitle143=SpellName16
+ColTitle144=SpellNameFlag
+ColTitle145=Rank1
+ColTitle146=Rank2
+ColTitle147=Rank3
+ColTitle148=Rank4
+ColTitle149=Rank5
+ColTitle150=Rank6
+ColTitle151=Rank7
+ColTitle152=Rank8
+ColTitle153=Rank9
+ColTitle154=Rank10
+ColTitle155=Rank11
+ColTitle156=Rank12
+ColTitle157=Rank13
+ColTitle158=Rank14
+ColTitle159=Rank15
+ColTitle160=Rank16
+ColTitle161=RankFlags
+ColTitle162=Description1
+ColTitle163=Description2
+ColTitle164=Description3
+ColTitle165=Description4
+ColTitle166=Description5
+ColTitle167=Description6
+ColTitle168=Description7
+ColTitle169=Description8
+ColTitle170=Description9
+ColTitle171=Description10
+ColTitle172=Description11
+ColTitle173=Description12
+ColTitle174=Description13
+ColTitle175=Description14
+ColTitle176=Description15
+ColTitle177=Description16
+ColTitle178=DescriptionFlags
+ColTitle179=ToolTip1
+ColTitle180=ToolTip2
+ColTitle181=ToolTip3
+ColTitle182=ToolTip4
+ColTitle183=ToolTip5
+ColTitle184=ToolTip6
+ColTitle185=ToolTip7
+ColTitle186=ToolTip8
+ColTitle187=ToolTip9
+ColTitle188=ToolTip10
+ColTitle189=ToolTip11
+ColTitle190=ToolTip12
+ColTitle191=ToolTip13
+ColTitle192=ToolTip14
+ColTitle193=ToolTip15
+ColTitle194=ToolTip16
+ColTitle195=ToolTipFlags
+ColTitle196=ManaCostPercentage
+ColTitle197=StartRecoveryCategory
+ColTitle198=StartRecoveryTime
+ColTitle199=MaxTargetLevel
+ColTitle200=SpellFamilyName
+ColTitle201=SpellFamilyFlags1
+ColTitle202=SpellFamilyFlags2
+ColTitle203=MaxAffectedTargets
+ColTitle204=DmgClass
+ColTitle205=PreventionType
+ColTitle206=StanceBarOrder
+ColTitle207=DmgMultiplier1
+ColTitle208=DmgMultiplier2
+ColTitle209=DmgMultiplier3
+ColTitle210=MinFactionId
+ColTitle211=MinReputation
+ColTitle212=RequiredAuraVision
+ColTitle213=TotemCategory1
+ColTitle214=TotemCategory2
+ColTitle215=AreaId
+ColTitle216=SchoolMask
+ColType102=1
+ColType103=1
+ColType104=1
+ColType128=2
+ColType129=2
+ColType130=2
+ColType131=2
+ColType132=2
+ColType133=2
+ColType134=2
+ColType135=2
+ColType136=2
+ColType137=2
+ColType138=2
+ColType139=2
+ColType140=2
+ColType141=2
+ColType142=2
+ColType143=2
+ColType145=2
+ColType146=2
+ColType147=2
+ColType148=2
+ColType149=2
+ColType150=2
+ColType151=2
+ColType152=2
+ColType153=2
+ColType154=2
+ColType155=2
+ColType157=2
+ColType156=2
+ColType158=2
+ColType159=2
+ColType160=2
+ColType162=2
+ColType163=2
+ColType164=2
+ColType165=2
+ColType166=2
+ColType167=2
+ColType168=2
+ColType169=2
+ColType170=2
+ColType171=2
+ColType172=2
+ColType173=2
+ColType174=2
+ColType175=2
+ColType176=2
+ColType177=2
+ColType179=2
+ColType180=2
+ColType181=2
+ColType182=2
+ColType183=2
+ColType184=2
+ColType185=2
+ColType186=2
+ColType187=2
+ColType188=2
+ColType189=2
+ColType190=2
+ColType191=2
+ColType192=2
+ColType193=2
+ColType194=2
+ColType208=1
+ColType209=1
+ColType207=1
+[Map.dbc]
+ColType2=2
+ColType8=0
+[AreaTrigger.dbc]
+ColTitle3=x
+ColTitle4=y
+ColTitle5=z
+ColTitle1=id
+ColTitle2=map
+ColType3=1
+ColType4=1
+ColType5=1
+ColType6=1
+ColType7=1
+ColType8=1
+ColType9=1
+ColType10=1
+ColTitle6=radius
+ColTitle7=box x
+ColTitle8=box y
+ColTitle9=box z
+ColTitle10=box orientation
diff --git a/contrib/dbcEditer/bin/bcbsmp60.bpl b/contrib/dbcEditer/bin/bcbsmp60.bpl
new file mode 100644
index 00000000000..32ebe0d1dee
--- /dev/null
+++ b/contrib/dbcEditer/bin/bcbsmp60.bpl
Binary files differ
diff --git a/contrib/dbcEditer/bin/borlndmm.dll b/contrib/dbcEditer/bin/borlndmm.dll
new file mode 100644
index 00000000000..5a8eec327d6
--- /dev/null
+++ b/contrib/dbcEditer/bin/borlndmm.dll
Binary files differ
diff --git a/contrib/dbcEditer/bin/cc3260mt.dll b/contrib/dbcEditer/bin/cc3260mt.dll
new file mode 100644
index 00000000000..fef4636a1e0
--- /dev/null
+++ b/contrib/dbcEditer/bin/cc3260mt.dll
Binary files differ
diff --git a/contrib/dbcEditer/bin/dclusr60.bpl b/contrib/dbcEditer/bin/dclusr60.bpl
new file mode 100644
index 00000000000..002a741f61d
--- /dev/null
+++ b/contrib/dbcEditer/bin/dclusr60.bpl
Binary files differ
diff --git a/contrib/dbcEditer/bin/indy60.bpl b/contrib/dbcEditer/bin/indy60.bpl
new file mode 100644
index 00000000000..f3cb7d6ca09
--- /dev/null
+++ b/contrib/dbcEditer/bin/indy60.bpl
Binary files differ
diff --git a/contrib/dbcEditer/bin/pjDbcEditer.exe b/contrib/dbcEditer/bin/pjDbcEditer.exe
new file mode 100644
index 00000000000..9b11ec74614
--- /dev/null
+++ b/contrib/dbcEditer/bin/pjDbcEditer.exe
Binary files differ
diff --git a/contrib/dbcEditer/bin/rtl60.bpl b/contrib/dbcEditer/bin/rtl60.bpl
new file mode 100644
index 00000000000..96a55c64d52
--- /dev/null
+++ b/contrib/dbcEditer/bin/rtl60.bpl
Binary files differ
diff --git a/contrib/dbcEditer/bin/update.txt b/contrib/dbcEditer/bin/update.txt
new file mode 100644
index 00000000000..e3d39c92859
--- /dev/null
+++ b/contrib/dbcEditer/bin/update.txt
@@ -0,0 +1,11 @@
+1.4版更新
+ 1.修正退出时有时退不出的bug
+ 2.加入可查找的功能
+ 3.加入列切换类型后立即刷新
+ 4.加入可以当前单元格写入打开文件的功能
+ 5.加入每一列的宽度可调整
+ 6.加入支持文本显示,但不能修改,文本修改后不会存入
+
+1.41版
+ 1.可以固定和取消第一列,以方便查看Spell ID
+ 2.可以行存,列存,行清,列清,调用计算器 \ No newline at end of file
diff --git a/contrib/dbcEditer/bin/vcl60.bpl b/contrib/dbcEditer/bin/vcl60.bpl
new file mode 100644
index 00000000000..0f0cc71ce36
--- /dev/null
+++ b/contrib/dbcEditer/bin/vcl60.bpl
Binary files differ
diff --git a/contrib/dbcEditer/bin/vclx60.bpl b/contrib/dbcEditer/bin/vclx60.bpl
new file mode 100644
index 00000000000..6fe6ac6f535
--- /dev/null
+++ b/contrib/dbcEditer/bin/vclx60.bpl
Binary files differ
diff --git a/contrib/dbcEditer/dbcedit.cpp b/contrib/dbcEditer/dbcedit.cpp
new file mode 100644
index 00000000000..2812a3f7071
--- /dev/null
+++ b/contrib/dbcEditer/dbcedit.cpp
@@ -0,0 +1,769 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "dbcedit.h"
+#include "stdio.h"
+#include "IdGlobal.hpp"
+#include <inifiles.hpp>
+#include "TitleFrm.h"
+#include <dir.h>
+#include "thOpenSource.h"
+#include "SearchFrm.h"
+//#include "SysUtils.hpp"
+
+
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TFrmMain *FrmMain;
+//---------------------------------------------------------------------------
+__fastcall TFrmMain::TFrmMain(TComponent* Owner)
+ : TForm(Owner)
+{
+ OpenOk=false;
+ Term=false;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::btOpenClick(TObject *Sender)
+{
+ if(OpenDialog1->Execute()){
+ if (FileExists(OpenDialog1->FileName)){
+ OpenOk=false;
+ if(thOpen){
+ thOpen->Terminate();
+ }
+ thOpen = new thOpenFile(false);
+ //thOpen->Priority = tpTimeCritical;
+ pnFileName->Caption = OpenDialog1->FileName;
+ }else{
+ OpenOk=false;
+ pnFileName->Caption = "";
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TFrmMain::btSaveClick(TObject *Sender)
+{
+ //CurrentOpenFile;
+ if(OpenOk){
+ SaveToFile(CurrentOpenFile.c_str());
+ }else{
+ ShowMessage("文件未打开完成!");
+ }
+}
+//---------------------------------------------------------------------------
+
+void TFrmMain::SaveToFile(const char * pszFileName)
+{
+ char szFileName[255];
+ FILE *stream;
+
+
+
+
+ fnsplit(pszFileName, 0, 0, szFileName, 0);
+ strcat(szFileName, "_new.dbc");
+
+
+ AnsiString NewFileName=ExtractFilePath(Application->ExeName)+szFileName;//=pszFileName;
+ int iFileHandle; //文件句柄
+ AnsiString iniSetFile=ExtractFilePath(Application->ExeName)+"BcdEditer.ini";
+ AnsiString SectionName=ExtractFileName(CurrentOpenFile);
+
+ DWORD w;
+
+ CopyFileTo(pszFileName,NewFileName);
+
+ iFileHandle = FileOpen(NewFileName, fmOpenRead|fmOpenWrite);//打开文件
+
+ if ((stream = fopen(CurrentOpenFile.c_str(), "r+"))
+ == NULL)
+ {
+ ShowMessage("打开文件出错");
+ return;
+ }
+
+
+ int iVal;
+ float fVal;
+ bool isFloat;
+ int ColType;
+
+ FileSeek(iFileHandle,0x14,0);
+ TIniFile *ini;
+ ini = new TIniFile( iniSetFile );
+
+ for(int i=1; i<sgEdit->RowCount; i++)
+ {
+ for(int j=1; j<sgEdit->ColCount; j++)
+ {
+ if(j==1){ //ID
+ iVal=StrToInt(sgEdit->Cells[j][i]);
+ FileWrite(iFileHandle, &iVal, 4);
+ }else{
+
+ //ColType= ini->ReadInteger(SectionName,"ColType"+IntToStr(j-1),0);
+ //thOpen->ColType[10000];
+
+ switch (thOpen->ColType[j])
+ {
+ case 0: //整型
+ iVal=StrToFloat(sgEdit->Cells[j][i]);
+ FileWrite(iFileHandle, &iVal, 4);
+ break;
+ case 1: //浮点
+ fVal=StrToFloat(sgEdit->Cells[j][i]);
+ FileWrite(iFileHandle, &fVal, 4);
+ break;
+ case 2: //文本
+ fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(j-1))*4, 0);
+ fread(&iVal, 4, 1, stream);
+ FileWrite(iFileHandle, &iVal, 4);
+ break;
+ default: //整型
+ iVal=StrToFloat(sgEdit->Cells[j][i]);
+ FileWrite(iFileHandle, &iVal, 4);
+ }
+ }
+ }
+ }
+ FileClose(iFileHandle);
+ fclose(stream);
+
+ delete ini;
+ ShowMessage("Save To File:"+NewFileName);
+}
+void __fastcall TFrmMain::btIntTypeClick(TObject *Sender)
+{
+if(OpenOk==true){
+ AnsiString iniSetFile=ExtractFilePath(Application->ExeName)+"BcdEditer.ini";
+ AnsiString SectionName=ExtractFileName(CurrentOpenFile);
+ TIniFile *ini;
+ ini = new TIniFile( iniSetFile );
+ ini->WriteInteger(SectionName,"ColType"+IntToStr(sgEdit->Col),0);
+ delete ini;
+ thOpen->ColType[sgEdit->Col]=0;
+ //重新打开对应列的值
+ //OpenFileCol(AnsiString FileName,int ColType);
+ OpenFileCol(CurrentOpenFile,sgEdit->Col,0);
+}
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TFrmMain::btFloatTypeClick(TObject *Sender)
+{
+if(OpenOk==true){
+ AnsiString iniSetFile=ExtractFilePath(Application->ExeName)+"BcdEditer.ini";
+ AnsiString SectionName=ExtractFileName(CurrentOpenFile);
+ TIniFile *ini;
+ ini = new TIniFile( iniSetFile );
+ ini->WriteInteger(SectionName,"ColType"+IntToStr(sgEdit->Col),1);
+ delete ini;
+ thOpen->ColType[sgEdit->Col]=1;
+ OpenFileCol(CurrentOpenFile,sgEdit->Col,1);
+}
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::PopupMenu1Popup(TObject *Sender)
+{
+if(OpenOk==true){
+ AnsiString iniSetFile=ExtractFilePath(Application->ExeName)+"BcdEditer.ini";
+ AnsiString SectionName=ExtractFileName(CurrentOpenFile);
+ int ColType;
+ TIniFile *ini;
+ ini = new TIniFile( iniSetFile );
+ ColType=ini->ReadInteger(SectionName,"ColType"+IntToStr(sgEdit->Col),0);
+ delete ini;
+ switch (ColType)
+ {
+ case 0:
+ btIntType->Checked=true;
+ btFloatType->Checked=false;
+ btTxtType->Checked=false;
+ break;
+ case 1:
+ btIntType->Checked=false;
+ btFloatType->Checked=true;
+ btTxtType->Checked=false;
+ break;
+ case 2:
+ btIntType->Checked=false;
+ btFloatType->Checked=false;
+ btTxtType->Checked=true;
+ break;
+ default:
+ btIntType->Checked=true;
+ btFloatType->Checked=false;
+ }
+}
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::N1Click(TObject *Sender)
+{
+ AnsiString iniSetFile=ExtractFilePath(Application->ExeName)+"BcdEditer.ini";
+ AnsiString SectionName=ExtractFileName(CurrentOpenFile);
+ int ColType;
+ FrmTitle->edTitle->Text=sgEdit->Cells[sgEdit->Col][0];
+ if(FrmTitle->ShowModal()==mrOk){
+ TIniFile *ini;
+ ini = new TIniFile( iniSetFile );
+ ini->WriteString(SectionName,"ColTitle"+IntToStr(sgEdit->Col),FrmTitle->edTitle->Text);
+ delete ini;
+ sgEdit->Cells[sgEdit->Col][0]=FrmTitle->edTitle->Text;
+ }
+}
+//---------------------------------------------------------------------------
+
+
+
+void __fastcall TFrmMain::FormDestroy(TObject *Sender)
+{
+ if(thOpen){
+ thOpen->Terminate();
+ SleepEx(200,0);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::ToolButton1Click(TObject *Sender)
+{
+ bool SeFlag=true;
+ if(FrmSearch->ShowModal()==mrOk){
+ switch (FrmSearch->rgSI->ItemIndex)
+ {
+ case 0: //向上找;
+ for(int i=sgEdit->ColCount*sgEdit->Row+sgEdit->Col-1;i>sgEdit->ColCount;i--){
+ if(i%sgEdit->ColCount!=0){
+ if( 0==CompareStr(sgEdit->Cells[i-sgEdit->ColCount*(i/sgEdit->ColCount)][i/sgEdit->ColCount],
+ FrmSearch->edSeach->Text)){ //找到了
+ sgEdit->Col=i-sgEdit->ColCount*i/sgEdit->ColCount;
+ sgEdit->Row=i/sgEdit->ColCount;
+ SeFlag=false;
+ break;
+ }
+ }
+ }
+ if(SeFlag) ShowMessage("Seach Top,Find Nothing.");
+ break;
+ case 1: //向下找;
+ for(int i=sgEdit->ColCount*sgEdit->Row+sgEdit->Col+1;i<sgEdit->ColCount*sgEdit->RowCount;i++){
+ if(i%sgEdit->ColCount!=0){
+ if( 0==CompareStr(sgEdit->Cells[i-sgEdit->ColCount*(i/sgEdit->ColCount)][i/sgEdit->ColCount],
+ FrmSearch->edSeach->Text)){ //找到了
+ sgEdit->Col=i-sgEdit->ColCount*(i/sgEdit->ColCount);
+ sgEdit->Row=i/sgEdit->ColCount;
+ SeFlag=false;
+ break;
+ }
+ }
+ }
+ if(SeFlag) ShowMessage("Seach End,Find Nothing");
+ break;
+ case 2: //当前列向上找;
+ for(int i=sgEdit->Row;i>1;i--){
+ if( 0==CompareStr(sgEdit->Cells[sgEdit->Col][i],
+ FrmSearch->edSeach->Text)){ //找到了
+ sgEdit->Row=i;
+ SeFlag=false;
+ break;
+ }
+ }
+ if(SeFlag) ShowMessage("Seach col top,Find Nothing");
+ break;
+ case 3: //当前列向下找;
+ for(int i=sgEdit->Row;i<sgEdit->RowCount;i++){
+ if( 0==CompareStr(sgEdit->Cells[sgEdit->Col][i],
+ FrmSearch->edSeach->Text)){ //找到了
+ sgEdit->Row=i;
+ SeFlag=false;
+ break;
+ }
+ }
+ if(SeFlag) ShowMessage("Seach col end,Find Nothing.");
+ break;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::sgEditKeyDown(TObject *Sender, WORD &Key,
+ TShiftState Shift)
+{
+
+ bool SeFlag=true;
+ if(Key==VK_F3){
+ switch (FrmSearch->rgSI->ItemIndex)
+ {
+ case 0: //向上找;
+ for(int i=sgEdit->ColCount*sgEdit->Row+sgEdit->Col-1;i>sgEdit->ColCount;i--){
+ if(i%sgEdit->ColCount!=0){
+ if( 0==CompareStr(sgEdit->Cells[i-sgEdit->ColCount*(i/sgEdit->ColCount)][i/sgEdit->ColCount],
+ FrmSearch->edSeach->Text)){ //找到了
+ sgEdit->Col=i-sgEdit->ColCount*i/sgEdit->ColCount;
+ sgEdit->Row=i/sgEdit->ColCount;
+ SeFlag=false;
+ break;
+ }
+ }
+ }
+ if(SeFlag) ShowMessage("Seach Top,Find Nothing.");
+ break;
+ case 1: //向下找;
+ for(int i=sgEdit->ColCount*sgEdit->Row+sgEdit->Col+1;i<sgEdit->ColCount*sgEdit->RowCount;i++){
+ if(i%sgEdit->ColCount!=0){
+ if( 0==CompareStr(sgEdit->Cells[i-sgEdit->ColCount*(i/sgEdit->ColCount)][i/sgEdit->ColCount],
+ FrmSearch->edSeach->Text)){ //找到了
+ sgEdit->Col=i-sgEdit->ColCount*(i/sgEdit->ColCount);
+ sgEdit->Row=i/sgEdit->ColCount;
+ SeFlag=false;
+ break;
+ }
+ }
+ }
+ if(SeFlag) ShowMessage("Seach End,Find Nothing.");
+ break;
+ case 2: //当前列向上找;
+ for(int i=sgEdit->Row;i>1;i--){
+ if( 0==CompareStr(sgEdit->Cells[sgEdit->Col][i],
+ FrmSearch->edSeach->Text)){ //找到了
+ sgEdit->Row=i;
+ SeFlag=false;
+ break;
+ }
+ }
+ if(SeFlag) ShowMessage("Seach col Top,Find Nothing.");
+ break;
+ case 3: //当前列向下找;
+ for(int i=sgEdit->Row;i<sgEdit->RowCount;i++){
+ if( 0==CompareStr(sgEdit->Cells[sgEdit->Col][i],
+ FrmSearch->edSeach->Text)){ //找到了
+ sgEdit->Row=i;
+ SeFlag=false;
+ break;
+ }
+ }
+ if(SeFlag) ShowMessage("Seach col end,Find Nothing.");
+ break;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::sgEditSelectCell(TObject *Sender, int ACol,
+ int ARow, bool &CanSelect)
+{
+//
+}
+//---------------------------------------------------------------------------
+void __fastcall TFrmMain::OpenFileCol(AnsiString FileName,int ColIndex,int ColType)
+{
+ int iFileHandle; //文件句柄
+ char Txtbuf[255];
+ int iVal;
+ float fVal;
+ FILE *stream;
+ long curpos, length;
+ DWORD dwRows, dwCols, dwRowLen, dwTextLen;
+
+ DWORD dwTextStartPos;
+ char* pTextPtr ;
+
+
+ if ((stream = fopen(FileName.c_str(), "r+"))
+ == NULL)
+ {
+ ShowMessage("Open File Error");
+ return;
+ }
+
+ curpos = ftell(stream);
+ fseek(stream, 0L, SEEK_END);
+ length = ftell(stream);
+
+
+ switch (ColType)
+ {
+ case 0: //整型值 Int
+ for(int i=0;i<sgEdit->RowCount-1;i++){
+ fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(ColIndex-1))*4, 0);
+ fread(&iVal, 4, 1, stream);
+ sgEdit->Cells[ColIndex][i+1]=IntToStr(iVal);
+ }
+ break;
+ case 1: //浮点值 Float
+ for(int i=0;i<sgEdit->RowCount-1;i++){
+ fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(ColIndex-1))*4, 0);
+ fread(&fVal, 4, 1, stream);
+ sgEdit->Cells[ColIndex][i+1]=FloatToStr(fVal);
+ }
+ break;
+ case 2: //文本 Text
+ fseek(stream,0x4,0);
+ fread(&iVal, 4, 1, stream);
+ dwRows= iVal;
+ fread(&iVal, 4, 1, stream);
+ dwCols = iVal;
+ fread(&iVal, 4, 1, stream);
+ dwRowLen = iVal;
+ fread(&iVal, 4, 1, stream);
+ dwTextLen = iVal;
+
+ dwTextStartPos = dwRows*dwRowLen+20;
+ for(int i=0;i<sgEdit->RowCount-1;i++){
+ fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(ColIndex-1))*4, 0);
+ fread(&iVal, 4, 1, stream);
+ sgEdit->Cells[ColIndex][i+1]=IntToStr(iVal);
+ if(dwTextStartPos + iVal < length){
+ fseek(stream,dwTextStartPos + iVal,0);
+ fread(Txtbuf, 1, 255, stream);
+ //pTextPtr = pBuff + dwTextStartPos + lTemp;
+ sgEdit->Cells[ColIndex][i+1]=Txtbuf;
+ }else{
+ sgEdit->Cells[ColIndex][i+1]="This Col Not Text!";
+ }
+ }
+ break;
+ }
+ fclose(stream);
+}
+void __fastcall TFrmMain::Timer1Timer(TObject *Sender)
+{
+ if(OpenOk){
+ lbOpState->Caption = "Open File Ok.";
+ }else{
+ lbOpState->Caption = "Open Now.....";
+ }
+}
+//---------------------------------------------------------------------------
+//当前格子写入修改文件中
+void __fastcall TFrmMain::N4Click(TObject *Sender)
+{
+ if(!thOpen) return;
+
+ int iFileHandle; //文件句柄
+ char buf[4];
+ int iVal;
+ float fVal;
+ FILE *stream;
+/*
+ if ((stream = fopen(CurrentOpenFile.c_str(), "r+"))
+ == NULL)
+ {
+ ShowMessage("打开文件出错");
+ return;
+ }
+*/
+ iFileHandle = FileOpen(CurrentOpenFile, fmOpenRead|fmOpenWrite);//打开文件
+
+ switch (thOpen->ColType[sgEdit->Col])
+ {
+ case 0: //整型值
+ //for(int i=0;i<sgEdit->RowCount-1;i++){
+ /*
+ fseek(stream, 0x14+((sgEdit->Row-1)*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4, 0);
+ iVal=StrToInt(sgEdit->Cells[sgEdit->Col][sgEdit->Row]);
+ memcpy(buf, &iVal, 4);
+ for(int i=0;i<4;i++)
+ fwrite(buf+i, 1, 1, stream);
+ */
+ iVal=StrToInt(sgEdit->Cells[sgEdit->Col][sgEdit->Row]);
+ memcpy(buf, &iVal, 4);
+ FileSeek(iFileHandle,0x14+((sgEdit->Row-1)*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4,0);
+ FileWrite(iFileHandle,buf,4);
+ //}
+ break;
+ case 1: //浮点值
+ //fseek(stream, 0x14+((sgEdit->Row-1)*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4, 0);
+ //fVal=StrToFloat(sgEdit->Cells[sgEdit->Col][sgEdit->Row]);
+ //fwrite(&fVal, 4, 1, stream);
+ fVal=StrToFloat(sgEdit->Cells[sgEdit->Col][sgEdit->Row]);
+ memcpy(buf, &fVal, 4);
+ FileSeek(iFileHandle,0x14+((sgEdit->Row-1)*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4,0);
+ FileWrite(iFileHandle,buf,4);
+ break;
+ case 2: //文本不写入
+ break;
+ }
+
+ // fclose(stream);
+ FileClose(iFileHandle);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::btTxtTypeClick(TObject *Sender)
+{
+if(OpenOk==true){
+ AnsiString iniSetFile=ExtractFilePath(Application->ExeName)+"BcdEditer.ini";
+ AnsiString SectionName=ExtractFileName(CurrentOpenFile);
+ TIniFile *ini;
+ ini = new TIniFile( iniSetFile );
+ ini->WriteInteger(SectionName,"ColType"+IntToStr(sgEdit->Col),2);
+ delete ini;
+ thOpen->ColType[sgEdit->Col]=2;
+ OpenFileCol(CurrentOpenFile,sgEdit->Col,2);
+}
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::ToolButton3Click(TObject *Sender)
+{
+ int OldCol;
+ int OldRow;
+ OldRow=sgEdit->Row;
+ OldCol=sgEdit->Col;
+ if(sgEdit->FixedCols==1){
+ sgEdit->FixedCols =2;
+ if(OldCol!=1)
+ sgEdit->Col=OldCol;
+ sgEdit->Row=OldRow;
+ }else{
+ sgEdit->FixedCols =1;
+ sgEdit->Row=OldRow;
+ if(OldCol!=2)
+ sgEdit->Col=OldCol;
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::btRowSaveClick(TObject *Sender)
+{
+if(OpenOk==false) return;
+
+ int iFileHandle; //文件句柄
+ char Txtbuf[255];
+ int iVal;
+ char buf[4];
+ float fVal;
+ FILE *stream;
+ long curpos, length;
+ DWORD dwRows, dwCols, dwRowLen, dwTextLen;
+
+ DWORD dwTextStartPos;
+ char* pTextPtr ;
+
+
+ //if ((stream = fopen(CurrentOpenFile.c_str(), "r+"))
+ // == NULL)
+ //{
+ // ShowMessage("打开文件出错");
+ // return;
+ //}
+
+ //curpos = ftell(stream);
+ //fseek(stream, 0L, SEEK_END);
+ //length = ftell(stream);
+ iFileHandle = FileOpen(CurrentOpenFile, fmOpenRead|fmOpenWrite);//打开文件
+
+for(int i=0;i<sgEdit->ColCount-1;i++){
+ switch (thOpen->ColType[i])
+ {
+ case 0: //整型值 sgEdit->Row
+ //fseek(stream, 0x14+((sgEdit->Row-1)*(sgEdit->ColCount-1)+i)*4, 0);
+ //iVal=StrToInt(sgEdit->Cells[i+1][sgEdit->Row]);
+ //fwrite(&iVal, 4, 1, stream);
+ iVal=StrToInt(sgEdit->Cells[i+1][sgEdit->Row]);
+ memcpy(buf, &iVal, 4);
+ FileSeek(iFileHandle,0x14+((sgEdit->Row-1)*(sgEdit->ColCount-1)+i)*4,0);
+ FileWrite(iFileHandle,buf,4);
+ break;
+ case 1: //浮点值
+ //fseek(stream, 0x14+((sgEdit->Row-1)*(sgEdit->ColCount-1)+i)*4, 0);
+ //fVal=StrToFloat(sgEdit->Cells[i+1][sgEdit->Row]);
+ //fwrite(&fVal, 4, 1, stream);
+ fVal=StrToFloat(sgEdit->Cells[i+1][sgEdit->Row]);
+ memcpy(buf, &fVal, 4);
+ FileSeek(iFileHandle,0x14+((sgEdit->Row-1)*(sgEdit->ColCount-1)+i)*4,0);
+ FileWrite(iFileHandle,buf,4);
+ break;
+ case 2: //文本 不存
+ break;
+ }
+}
+ //fclose(stream);
+ FileClose(iFileHandle);
+ ShowMessage("The "+IntToStr(sgEdit->Row)+" Row Write Ok!");
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::btColSaveClick(TObject *Sender)
+{
+if(OpenOk==false) return;
+
+ int iFileHandle; //文件句柄
+ char Txtbuf[255];
+ int iVal;
+ char buf[4];
+ float fVal;
+ FILE *stream;
+ long curpos, length;
+ DWORD dwRows, dwCols, dwRowLen, dwTextLen;
+
+ DWORD dwTextStartPos;
+ char* pTextPtr ;
+
+ iFileHandle = FileOpen(CurrentOpenFile, fmOpenRead|fmOpenWrite);//打开文件
+
+ //if ((stream = fopen(CurrentOpenFile.c_str(), "r+"))
+ // == NULL)
+ //{
+ // ShowMessage("打开文件出错");
+ // return;
+ //}
+
+ //curpos = ftell(stream);
+ //fseek(stream, 0L, SEEK_END);
+ //length = ftell(stream);
+
+
+ switch (thOpen->ColType[sgEdit->Col])
+ {
+ case 0: //整型值
+ for(int i=0;i<sgEdit->RowCount-1;i++){
+ //fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4, 0);
+ //iVal=StrToInt(sgEdit->Cells[sgEdit->Col][i+1]);
+ //fwrite(&iVal, 4, 1, stream);
+ iVal=StrToInt(sgEdit->Cells[sgEdit->Col][i+1]);
+ memcpy(buf, &iVal, 4);
+ FileSeek(iFileHandle,0x14+(i*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4,0);
+ FileWrite(iFileHandle,buf,4);
+ }
+ break;
+ case 1: //浮点值
+ for(int i=0;i<sgEdit->RowCount-1;i++){
+ //fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4, 0);
+ //fVal=StrToFloat(sgEdit->Cells[sgEdit->Col][i+1]);
+ //fwrite(&fVal, 4, 1, stream);
+ fVal=StrToFloat(sgEdit->Cells[sgEdit->Col][i+1]);
+ memcpy(buf, &fVal, 4);
+ FileSeek(iFileHandle,0x14+(i*(sgEdit->ColCount-1)+(sgEdit->Col-1))*4,0);
+ FileWrite(iFileHandle,buf,4);
+ }
+ break;
+ case 2: //文本 不存
+ break;
+ }
+ //fclose(stream);
+
+ FileClose(iFileHandle);
+ ShowMessage("The "+IntToStr(sgEdit->Col)+"Col Write Ok!");
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::btRowClearClick(TObject *Sender)
+{
+if(OpenOk==false) return;
+
+ int iFileHandle; //文件句柄
+ char Txtbuf[255];
+ int iVal;
+ float fVal;
+ FILE *stream;
+ long curpos, length;
+ DWORD dwRows, dwCols, dwRowLen, dwTextLen;
+
+ DWORD dwTextStartPos;
+ char* pTextPtr ;
+
+
+ if ((stream = fopen(CurrentOpenFile.c_str(), "r+"))
+ == NULL)
+ {
+ ShowMessage("Open File Error!");
+ return;
+ }
+
+ curpos = ftell(stream);
+ fseek(stream, 0L, SEEK_END);
+ length = ftell(stream);
+
+for(int i=1;i<sgEdit->ColCount-1;i++){
+ switch (thOpen->ColType[i])
+ {
+ case 0: //整型值 sgEdit->Row
+ //fseek(stream, 0x14+(sgEdit->Row*(sgEdit->ColCount-1)+i)*4, 0);
+ //iVal=StrToInt(sgEdit->Cells[i+1][sgEdit->Row]);
+ //fwrite(&iVal, 4, 1, stream);
+ sgEdit->Cells[i+1][sgEdit->Row]="0";
+ break;
+ case 1: //浮点值
+ //fseek(stream, 0x14+(sgEdit->Row*(sgEdit->ColCount-1)+i)*4, 0);
+ //fVal=StrToFloat(sgEdit->Cells[i+1][sgEdit->Row]);
+ //fwrite(&fVal, 4, 1, stream);
+ sgEdit->Cells[i+1][sgEdit->Row]="0";
+ break;
+ case 2: //文本 不存
+ break;
+ }
+}
+ fclose(stream);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::btColClearClick(TObject *Sender)
+{
+if(OpenOk==false) return;
+
+ int iFileHandle; //文件句柄
+ char Txtbuf[255];
+ int iVal;
+ float fVal;
+ FILE *stream;
+ long curpos, length;
+ DWORD dwRows, dwCols, dwRowLen, dwTextLen;
+
+ DWORD dwTextStartPos;
+ char* pTextPtr ;
+
+
+ if ((stream = fopen(CurrentOpenFile.c_str(), "r+"))
+ == NULL)
+ {
+ ShowMessage("Open File Error!");
+ return;
+ }
+
+ curpos = ftell(stream);
+ fseek(stream, 0L, SEEK_END);
+ length = ftell(stream);
+
+
+ switch (thOpen->ColType[sgEdit->Col])
+ {
+ case 0: //整型值
+ for(int i=0;i<sgEdit->RowCount-1;i++){
+ //fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(ColIndex-1))*4, 0);
+ //iVal=StrToInt(sgEdit->Cells[ColIndex][i+1]);
+ //fwrite(&iVal, 4, 1, stream);
+ sgEdit->Cells[sgEdit->Col][i+1]="0";
+ }
+ break;
+ case 1: //浮点值
+ for(int i=0;i<sgEdit->RowCount-1;i++){
+ //fseek(stream, 0x14+(i*(sgEdit->ColCount-1)+(ColIndex-1))*4, 0);
+ //fVal=StrToFloat(sgEdit->Cells[ColIndex][i+1]);
+ //fwrite(&fVal, 4, 1, stream);
+ sgEdit->Cells[sgEdit->Col][i+1]="0";
+ }
+ break;
+ case 2: //文本 不存
+ break;
+ }
+ fclose(stream);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFrmMain::ToolButton4Click(TObject *Sender)
+{
+ AnsiString Cmd;
+ Cmd = "calc.exe";
+ WinExec(Cmd.c_str(), SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+
+
diff --git a/contrib/dbcEditer/dbcedit.ddp b/contrib/dbcEditer/dbcedit.ddp
new file mode 100644
index 00000000000..cdc0ee8c2b5
--- /dev/null
+++ b/contrib/dbcEditer/dbcedit.ddp
Binary files differ
diff --git a/contrib/dbcEditer/dbcedit.dfm b/contrib/dbcEditer/dbcedit.dfm
new file mode 100644
index 00000000000..24bf375ab74
--- /dev/null
+++ b/contrib/dbcEditer/dbcedit.dfm
@@ -0,0 +1,1259 @@
+object FrmMain: TFrmMain
+ Left = 162
+ Top = 122
+ Width = 544
+ Height = 375
+ Caption = 'Dbc Editer v1.4.2 Vendy QQ:11177905'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ OnDestroy = FormDestroy
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel1: TPanel
+ Left = 0
+ Top = 33
+ Width = 536
+ Height = 315
+ Align = alClient
+ Caption = 'Panel1'
+ TabOrder = 0
+ object sgEdit: TStringGrid
+ Left = 1
+ Top = 1
+ Width = 534
+ Height = 287
+ Align = alClient
+ Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected, goRowSizing, goColSizing, goEditing]
+ PopupMenu = PopupMenu1
+ TabOrder = 0
+ OnKeyDown = sgEditKeyDown
+ OnSelectCell = sgEditSelectCell
+ end
+ object pnFileName: TPanel
+ Left = 1
+ Top = 288
+ Width = 534
+ Height = 26
+ Align = alBottom
+ Alignment = taLeftJustify
+ Caption = 'pnFileName'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clRed
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ TabOrder = 1
+ object lbOpState: TLabel
+ Left = 444
+ Top = 1
+ Width = 89
+ Height = 24
+ Align = alRight
+ AutoSize = False
+ Caption = #25171#24320#25991#20214#29366#24577
+ end
+ end
+ end
+ object CoolBar1: TCoolBar
+ Left = 0
+ Top = 0
+ Width = 536
+ Height = 33
+ Bands = <
+ item
+ Control = ToolBar1
+ ImageIndex = -1
+ Width = 532
+ end>
+ object ToolBar1: TToolBar
+ Left = 9
+ Top = 0
+ Width = 519
+ Height = 25
+ Caption = 'ToolBar1'
+ Images = ImageList1
+ TabOrder = 0
+ object btOpen: TToolButton
+ Left = 0
+ Top = 2
+ Caption = 'btOpen'
+ ImageIndex = 7
+ OnClick = btOpenClick
+ end
+ object btSave: TToolButton
+ Left = 23
+ Top = 2
+ Caption = 'btSave'
+ Enabled = False
+ Grouped = True
+ ImageIndex = 8
+ OnClick = btSaveClick
+ end
+ object ToolButton2: TToolButton
+ Left = 46
+ Top = 2
+ Width = 8
+ Caption = 'ToolButton2'
+ ImageIndex = 10
+ Style = tbsSeparator
+ end
+ object ToolButton1: TToolButton
+ Left = 54
+ Top = 2
+ Caption = 'ToolButton1'
+ ImageIndex = 9
+ OnClick = ToolButton1Click
+ end
+ object ToolButton3: TToolButton
+ Left = 77
+ Top = 2
+ Caption = 'ToolButton3'
+ ImageIndex = 10
+ OnClick = ToolButton3Click
+ end
+ object ToolButton5: TToolButton
+ Left = 100
+ Top = 2
+ Width = 8
+ Caption = 'ToolButton5'
+ ImageIndex = 12
+ Style = tbsSeparator
+ end
+ object ToolButton4: TToolButton
+ Left = 108
+ Top = 2
+ Caption = 'ToolButton4'
+ ImageIndex = 11
+ OnClick = ToolButton4Click
+ end
+ end
+ end
+ object OpenDialog1: TOpenDialog
+ Filter = '.dbc|*.dbc'
+ Left = 216
+ Top = 96
+ end
+ object PopupMenu1: TPopupMenu
+ OnPopup = PopupMenu1Popup
+ Left = 264
+ Top = 96
+ object N1: TMenuItem
+ Caption = 'Set Current Col Title'
+ OnClick = N1Click
+ end
+ object N2: TMenuItem
+ Caption = 'Set Current Col Type'
+ object btIntType: TMenuItem
+ Caption = 'INT'
+ OnClick = btIntTypeClick
+ end
+ object btFloatType: TMenuItem
+ Caption = 'FLOAT'
+ OnClick = btFloatTypeClick
+ end
+ object btTxtType: TMenuItem
+ Caption = 'TEXT'
+ OnClick = btTxtTypeClick
+ end
+ end
+ object N4: TMenuItem
+ Caption = 'Write Current Grid'
+ OnClick = N4Click
+ end
+ object btRowSave: TMenuItem
+ Caption = 'Write Current Row'
+ OnClick = btRowSaveClick
+ end
+ object btColSave: TMenuItem
+ Caption = 'Write Current Col'
+ OnClick = btColSaveClick
+ end
+ object btRowClear: TMenuItem
+ Caption = 'Clear Current Row'
+ OnClick = btRowClearClick
+ end
+ object btColClear: TMenuItem
+ Caption = 'Clear Current Col'
+ OnClick = btColClearClick
+ end
+ end
+ object ImageList1: TImageList
+ Left = 352
+ Top = 112
+ Bitmap = {
+ 494C010118001D00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 0000000000003600000028000000400000008000000001002000000000000080
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000800000008000000080000000800000008000000080000000800000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000FF000000FF00FFFFFF00FFFFFF00FFFFFF000000FF000000FF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000008000
+ 000080000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008000
+ 000080000000000000000000000000000000000000000000000000000000FFFF
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00FFFF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 00000000FF0080808000000000000000000000000000000000000000FF008080
+ 8000000000000000000000000000000000000000000000000000800000008000
+ 000080000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008000
+ 0000800000008000000000000000000000000000000000000000FFFFFF000000
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000
+ FF00FFFFFF000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000FF00808080000000000000000000000000000000FF00808080000000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000FFFFFF00FFFFFF00FFFFFF00800000008000
+ 00008000000080000000000000000000000000000000FFFFFF000000FF000000
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000
+ FF000000FF00FFFFFF0000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000FF008080800000000000000000000000FF0080808000000000000000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000FFFFFF00FFFFFF00FFFFFF00800000008000
+ 0000800000008000000080000000000000000000FF000000FF000000FF000000
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000
+ FF000000FF000000FF000000FF00000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000FF0080808000000000000000FF008080800000000000000000000000
+ 0000000000000000000000000000000000008000000080000000800000008000
+ 0000800000008000000080000000FFFFFF00FFFFFF00FFFFFF00800000008000
+ 0000800000008000000080000000000000000000FF000000FF000000FF000000
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000
+ FF000000FF000000FF000000FF00000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000FF00808080000000FF00808080000000000000000000000000000000
+ 0000000000000000000000000000000000008000000080000000800000008000
+ 0000800000008000000080000000FFFFFF00FFFFFF00FFFFFF00800000008000
+ 000080000000800000008000000000000000FFFFFF000000FF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF000000FF00FFFFFF00000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000FF000000FF000000FF000000FF000000FF000000FF000000FF008080
+ 8000000000000000000000000000000000008000000080000000800000008000
+ 0000800000008000000080000000FFFFFF00FFFFFF00FFFFFF00800000008000
+ 000080000000800000008000000000000000FFFFFF000000FF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF000000FF00FFFFFF00000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000FF0080808000808080008080800080808000808080000000FF008080
+ 8000000000000000000000000000000000008000000080000000800000008000
+ 0000800000008000000080000000FFFFFF00FFFFFF00FFFFFF00800000008000
+ 000080000000800000008000000000000000FFFFFF000000FF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF000000FF00FFFFFF00000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000FF0080808000000000000000000000000000000000000000FF008080
+ 8000000000000000000000000000000000000000000080000000800000008000
+ 000080000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00800000008000
+ 0000800000008000000080000000000000000000FF000000FF000000FF000000
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000
+ FF000000FF000000FF000000FF00000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000FF00808080000000000000000000000000000000FF000000FF008080
+ 8000000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000800000008000000080000000000000000000FF000000FF000000FF000000
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000
+ FF000000FF000000FF000000FF00000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000FF000000FF000000FF000000FF000000FF00808080000000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 00008000000080000000FFFFFF00FFFFFF00FFFFFF0080000000800000008000
+ 00008000000080000000000000000000000000000000FFFFFF000000FF000000
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000
+ FF000000FF00FFFFFF0000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000008080800080808000808080008080800080808000000000000000
+ 0000000000000000000000000000000000000000000000000000800000008000
+ 00008000000080000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00800000008000
+ 0000800000000000000000000000000000000000000000000000FFFFFF000000
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000
+ FF00FFFFFF000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000008000
+ 00008000000080000000FFFFFF00FFFFFF00FFFFFF0080000000800000008000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00FFFF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000080000000800000008000000080000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000FF000000FF00FFFFFF00FFFFFF00FFFFFF000000FF000000FF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000080000000800000008000000080000000800000008000
+ 0000800000008000000080000000800000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000800000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000080000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00800000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000000000000000000000000
+ 0000000000000000000080000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00800000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000000000000000000000000
+ 0000000000000000000080000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00800000000000000000000000000000000000
+ 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
+ 000000FF00000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000000000000000000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000800000008000000080000000800000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000000000000000000008000
+ 0000FFFFFF00FFFFFF0080000000800000008000000080000000800000008000
+ 00008000000080000000FFFFFF00800000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000000000000000000008000
+ 0000FFFFFF00FFFFFF0080000000800000008000000080000000800000008000
+ 0000800000008000000080000000800000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000000000000000000008000
+ 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00800000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000800000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000080000000FFFFFF008000
+ 000080000000800000008000000080000000800000008000000080000000FFFF
+ FF00800000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000080000000FFFFFF008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000800000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000800000008000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00800000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 00008000000080000000FFFFFF00800000008000000080000000800000008000
+ 0000FFFFFF008000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FF00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000800000008000000000000000000000000000000080000000800000008000
+ 00008000000080000000800000008000000080000000FFFFFF00800000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000800000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000008000
+ 0000C0C0C0008000000080000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000008000000080000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000800000008000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000080000000C0C0
+ C000800000008000000080000000000000000000000000000000000000000000
+ 0000000000000000000000000000800000008000000080000000000000000000
+ 0000000000000000000000000000000000000000000000000000C0C0C000C0C0
+ C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0000000
+ 0000C0C0C0000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000C0C0C0008000
+ 0000800000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000080000000800000008000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000C0C0C00000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000080000000C0C0C000800000008000
+ 000080000000000000000000000000000000000000000000000080808000C0C0
+ C000FFFFFF008080800000000000800000000000000000000000000000000000
+ 00000000800000000000000000000000000000000000C0C0C000C0C0C000C0C0
+ C000C0C0C000C0C0C000C0C0C00000FFFF0000FFFF0000FFFF00C0C0C000C0C0
+ C000000000000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF008000000000000000000000000000000000000000000000000000
+ 0000C0C0C000C0C0C000C0C0C000FFFFFF008080800080000000800000008000
+ 0000000000000000000000000000000000000000000080808000C0C0C000C0C0
+ C000C0C0C000FFFFFF0080808000000000000000000000000000000000000000
+ 80000000800000000000000000000000000000000000C0C0C000C0C0C000C0C0
+ C000C0C0C000C0C0C000C0C0C000808080008080800080808000C0C0C000C0C0
+ C00000000000C0C0C00000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 000080000000800000000000000000000000000000000000000080808000C0C0
+ C000C0C0C000C0C0C000C0C0C000C0C0C000FFFFFF0080808000000000000000
+ 00000000000000000000000000000000000000000000C0C0C000C0C0C000C0C0
+ C000C0C0C000C0C0C000FFFFFF00000000000000000000000000000080000000
+ 8000000080000000800000008000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000C0C0C000C0C0C000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000FFFFFF008000000000000000000000000000000000000000C0C0C000C0C0
+ C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000FFFFFF00000000000000
+ 00000000000000000000000000000000000000000000C0C0C000FFFFFF00FFFF
+ 0000C0C0C000C0C0C000C0C0C000000000000000000000000000000000000000
+ 80000000800000000000000000000000800000000000C0C0C000C0C0C000C0C0
+ C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0000000
+ 0000C0C0C00000000000C0C0C000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 00008000000080000000000000000000000000000000C0C0C000C0C0C000C0C0
+ C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0000000
+ 0000000000000000000000000000000000000000000080808000FFFFFF00FFFF
+ FF00C0C0C000C0C0C00080808000000000000000000000000000000000000000
+ 0000000080000000000000000000000080000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000C0C0
+ C00000000000C0C0C00000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF0080000000000000000000000000000000C0C0C000C0C0C000C0C0
+ C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0000000
+ 000000000000000000000000000000000000000000000000000080808000C0C0
+ C000C0C0C0008080800000000000000000000000000000000000000000000000
+ 000000000000000000000000000000008000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
+ 0000C0C0C00000000000C0C0C000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF0080000000000000000000000000000000C0C0C000FFFFFF00FFFF
+ 0000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000008000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000FFFFFF000000000000000000000000000000000000000000FFFFFF000000
+ 0000000000000000000000000000000000000000000080000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF0080000000000000000000000000000000C0C0C000FFFFFF00FFFF
+ 0000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000008000000000000000
+ 0000000080000000000000000000000000000000000000000000000000000000
+ 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000800000008000000000000000000000000000000000000000FFFFFF00FFFF
+ FF00FFFF0000FFFF0000C0C0C000C0C0C000C0C0C000C0C0C000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000008000000000000000
+ 0000000080000000800000000000000000000000000000000000000000000000
+ 000000000000FFFFFF000000000000000000000000000000000000000000FFFF
+ FF00000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000FFFFFF00800000000000000000000000000000000000000080808000FFFF
+ FF00FFFFFF00FFFFFF00C0C0C000C0C0C000C0C0C00080808000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000080000000
+ 8000000080000000800000008000000000000000000000000000000000000000
+ 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF000000000000000000000000000000000080000000800000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 0000800000008000000000000000000000000000000000000000000000000000
+ 0000C0C0C000C0C0C000C0C0C000C0C0C0000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000080000000800000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000080000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000008080000080
+ 8000000000000000000000000000000000000000000000000000C0C0C000C0C0
+ C0000000000000808000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
+ 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000008080000080
+ 8000000000000000000000000000000000000000000000000000C0C0C000C0C0
+ C0000000000000808000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFFFF00000000000000
+ 0000FFFFFF000000000000000000000000000000000000000000FFFFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000800000008000
+ 0000800000000000000000000000000000000000000000000000008080000080
+ 8000000000000000000000000000000000000000000000000000C0C0C000C0C0
+ C0000000000000808000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF000000000080808000C0C0C000C0C0C0008080
+ 80000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000800000008000
+ 0000800000000000000000000000000000000000000000000000008080000080
+ 8000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000808000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF000000000080808000C0C0C000C0C0C000FFFF00008080
+ 80008080800000000000000000000000000000000000FFFFFF00000000000000
+ 0000FFFFFF000000000000000000000000000000000000000000FFFFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000808000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF0000000000C0C0C000C0C0C000C0C0C000C0C0C0008080
+ 8000C0C0C00000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000800000008000
+ 0000800000000000000000000000000000000000000000000000008080000080
+ 8000000000000000000000000000000000000000000000000000000000000000
+ 00000080800000808000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF0000000000C0C0C000FFFF0000C0C0C000C0C0C0008080
+ 8000C0C0C00000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000800000008000
+ 0000800000000000000000000000000000000000000000000000008080000000
+ 0000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
+ C0000000000000808000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF000000000080808000FFFF0000FFFF0000C0C0C0008080
+ 80008080800000000000000000000000000000000000FFFFFF00000000000000
+ 0000FFFFFF00FFFFFF00FFFFFF0000000000C0C0C00000000000FFFFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000008000
+ 0000800000008000000000000000000000000000000000000000008080000000
+ 0000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
+ C0000000000000808000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF000000000080808000C0C0C000C0C0C0008080
+ 80000000000000000000000000000000000000000000FFFFFF0000000000C0C0
+ C00000000000FFFFFF0000000000C0C0C00000000000C0C0C000000000000000
+ 0000000000000000000080000000800000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000800000008000000080000000000000000000000000000000008080000000
+ 0000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
+ C0000000000000808000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFFFF00FFFFFF000000
+ 0000C0C0C00000000000C0C0C00000000000C0C0C00000000000C0C0C000C0C0
+ C000C0C0C0000000000080000000800000000000000000000000000000000000
+ 0000000000000000000000000000800000008000000080000000000000000000
+ 0000000000008000000080000000800000000000000000000000008080000000
+ 0000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
+ C0000000000000808000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000C0C0C00000000000C0C0C00000000000C0C0C000C0C0C000C0C0
+ C000C0C0C000C0C0C00080000000800000000000000000000000000000000000
+ 0000000000000000000000000000800000008000000080000000000000000000
+ 0000000000008000000080000000800000000000000000000000008080000000
+ 0000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
+ C0000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000C0C0C00000000000C0C0C000C0C0C000C0C0C000C0C0
+ C000C0C0C000C0C0C00080000000800000000000000000000000000000000000
+ 0000000000000000000000000000800000008000000080000000000000000000
+ 0000000000008000000080000000800000000000000000000000008080000000
+ 0000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
+ C00000000000C0C0C000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000C0C0C000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
+ C000C0C0C0000000000080000000800000000000000000000000000000000000
+ 0000000000000000000000000000000000008000000080000000800000008000
+ 0000800000008000000080000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000080000000800000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00000000000000000000000000000000000000000000000000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00000000000000000000000000000000000000000000FFFF00000000000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000000000000000000000000000000000000000000000000000000000008000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF000000000000000000000000000000000000000000FFFFFF0000FFFF000000
+ 0000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000000000000000000000000000000000000000000000000008000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 0000800000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF
+ FF00000000000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000000000000000000000000000000000800000000000
+ 0000000000000000000000000000000000000000000000000000800000008000
+ 0000800000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF000000000000000000000000000000000000000000FFFFFF0000FFFF00FFFF
+ FF0000FFFF000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000800000000000
+ 0000000000000000000000000000000000000000000000000000000000008000
+ 0000800000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF
+ FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000800000000000
+ 0000000000000000000000000000000000000000000000000000800000000000
+ 0000800000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF000000000000000000000000000000000000000000FFFFFF0000FFFF00FFFF
+ FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000008000
+ 0000000000000000000000000000000000008000000080000000000000000000
+ 0000000000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000800000008000000080000000800000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000008000000080000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000080000000800000008000000080000000800000008000
+ 0000800000008000000080000000800000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000800000000000000000000000800000000000000000000000800000008000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000800000008000000080000000800000008000
+ 0000800000008000000080000000800000000000000000000000000000000000
+ 0000000000000000000080000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00800000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000800000000000000000000000800000000000000080000000000000000000
+ 0000800000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00800000000000000080808000008080008080
+ 8000008080008080800080000000FFFFFF000000000000000000000000000000
+ 00000000000000000000FFFFFF00800000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000800000000000000000000000800000000000000080000000000000000000
+ 0000800000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000080000000FFFFFF0000000000000000000000
+ 00000000000000000000FFFFFF00800000000000000000808000808080000080
+ 8000808080000080800080000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00800000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000008000000080000000800000000000000080000000000000000000
+ 0000800000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00800000000000000080808000008080008080
+ 8000008080008080800080000000FFFFFF00000000000000000000000000FFFF
+ FF00800000008000000080000000800000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000800000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000800000000000000080000000800000008000
+ 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF0000000000000000000000
+ 00000000000000000000FFFFFF00800000000000000000808000808080000080
+ 8000808080000080800080000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF0080000000FFFFFF0080000000000000000000000000000000800000008000
+ 0000800000008000000080000000000000000000000000000000000000000000
+ 0000800000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000800000000000000080000000000000000000
+ 0000000000000000000000000000000000000000000000000000FFFFFF000000
+ 000000000000000000000000000080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00800000000000000080808000008080008080
+ 8000008080008080800080000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00800000008000000000000000000000000000000000000000800000008000
+ 0000800000008000000000000000000000000000000000000000000000000000
+ 0000000000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF000000000000000000FFFF
+ FF00800000008000000080000000800000000000000000808000808080000080
+ 8000808080000080800080000000800000008000000080000000800000008000
+ 0000800000000000000000000000000000000000000000000000800000008000
+ 0000800000000000000000000000000000000000000000000000000000000000
+ 0000000000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000FFFFFF000000
+ 000000000000000000000000000080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF0080000000FFFFFF0080000000000000000000000080808000008080008080
+ 8000008080008080800000808000808080000080800080808000008080008080
+ 8000008080000000000000000000000000000000000000000000800000008000
+ 0000000000008000000000000000000000000000000000000000000000000000
+ 0000000000008000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00800000008000000000000000000000000000000000808000808080000000
+ 0000000000000000000000000000000000000000000000000000000000008080
+ 8000808080000000000000000000000000000000000000000000800000000000
+ 0000000000000000000080000000800000000000000000000000000000000000
+ 0000800000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000FFFFFF000000
+ 000000000000FFFFFF0000000000800000008000000080000000800000008000
+ 0000800000000000000000000000000000000000000080808000808080000000
+ 0000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000000000008080
+ 8000008080000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000008000000080000000800000008000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000808000808080000080
+ 80000000000000FFFF00000000000000000000FFFF0000000000808080000080
+ 8000808080000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000FFFF0000FFFF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000424D3E000000000000003E000000
+ 2800000040000000800000000100010000000000000400000000000000000000
+ 000000000000000000000000FFFFFF0000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000FFF7FFFFFC3FFFFFFFFBFFFFE00FF01F
+ E001FFFFC007E00FE003F3CF8003C007E7F7F39F80018003E7C3F33F00010001
+ E7EFF27F00000001E7F7F0FF00000001E7FBF00F00000001E7C3F00F00000001
+ E77FF3CF00010001E77FF38F00010001A37FF81F80018003C6BFF83FC003C007
+ EDDFFFFFE007E00FFFFFFFFFF01FF01FFFFFFC00FFF7FFF78003FC00FFFBFFFB
+ 8003FC00E001E0018003FC00E003E0038003E000E7F7E7F78003E000E7DDE707
+ 8003E000E7EBE7BF8003E007E7F7E7DF80038007E7EBE70F80038007E75DE7FF
+ 80038007E77FE5DF8003801FE77FE6BF8003801FA37FA37F8003801FC6BFC6BF
+ FFFF801FEDDFEDDFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFFFFFE1FF3FC0078003
+ FFC1FE3F80038003FF83C07F00018003F00780F700018003C00F00E700018003
+ 801F00C100008003801F00E600008003000F00F680008003000F81FEC0008003
+ 000FC3BFE0018003000FFFB7E0078003801FFFB3F0078003801FFFC1F0038003
+ C03FFFF3F803FFFFF0FFFFF7FFFFFFFFFFFFFFFFFFFFFFFFC001000C000FF9FF
+ 80010008000FF9FF80010001000FF3C780010003000F73C780010003000F27FF
+ 80010003000F07C780010003000F00C780010003000F01E380010007000403F1
+ 8001000F000006388001000F00000E388001000FF8001E388001001FFC003F01
+ 8001003FFE047F83FFFF007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFEFFDC007001FFFFFC7FFC007000FFFFFC3FBC0070007EFFFE3F7C0070003
+ EF83F1E7C0070001DFC3F8CFC0070000DFE3FC1FC007001FDFD3FE3FC007001F
+ EF3BFC1FC007001FF0FFF8CFC0078FF1FFFFE1E7C00FFFF9FFFFC3F3C01FFF75
+ FFFFC7FDC03FFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFFFFC00FFFF
+ F6CFFE008000FFFFF6B7FE000000FFFFF6B7FE000000FFFFF8B780000000FFF7
+ FE8F80000001C1F7FE3F80000003C3FBFF7F80000003C7FBFE3F80010003CBFB
+ FEBF80030003DCF7FC9F80070003FF0FFDDF807F0003FFFFFDDF80FF8007FFFF
+ FDDF81FFF87FFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000
+ 000000000000}
+ end
+ object Timer1: TTimer
+ Interval = 300
+ OnTimer = Timer1Timer
+ Left = 440
+ Top = 48
+ end
+end
diff --git a/contrib/dbcEditer/dbcedit.h b/contrib/dbcEditer/dbcedit.h
new file mode 100644
index 00000000000..a603768ea38
--- /dev/null
+++ b/contrib/dbcEditer/dbcedit.h
@@ -0,0 +1,105 @@
+//---------------------------------------------------------------------------
+
+#ifndef dbceditH
+#define dbceditH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+#include <ToolWin.hpp>
+#include <Grids.hpp>
+#include <Dialogs.hpp>
+#include <Menus.hpp>
+#include <ImgList.hpp>
+#include "thOpenSource.h"
+
+union TypePtr
+{
+ long* l;
+ DWORD* dw;
+ WORD* w;
+ char* c;
+ void* p;
+ float* f;
+
+ TypePtr(void* in) :p(in)
+ {
+ }
+};
+
+#define TAG(x) (DWORD)( (((DWORD)x&0x0000ff00)<<8)+(((DWORD)x&0x000000ff)<<24)+(((DWORD)x&0x00ff0000)>>8)+(((DWORD)x&0xff000000)>>24) )
+
+
+//---------------------------------------------------------------------------
+class TFrmMain : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TCoolBar *CoolBar1;
+ TToolBar *ToolBar1;
+ TToolButton *btOpen;
+ TToolButton *btSave;
+ TStringGrid *sgEdit;
+ TOpenDialog *OpenDialog1;
+ TPopupMenu *PopupMenu1;
+ TMenuItem *N1;
+ TMenuItem *N2;
+ TMenuItem *btIntType;
+ TMenuItem *btFloatType;
+ TMenuItem *btTxtType;
+ TImageList *ImageList1;
+ TPanel *pnFileName;
+ TToolButton *ToolButton1;
+ TToolButton *ToolButton2;
+ TTimer *Timer1;
+ TLabel *lbOpState;
+ TMenuItem *N4;
+ TToolButton *ToolButton3;
+ TMenuItem *btRowSave;
+ TMenuItem *btColSave;
+ TMenuItem *btRowClear;
+ TMenuItem *btColClear;
+ TToolButton *ToolButton4;
+ TToolButton *ToolButton5;
+ void __fastcall btOpenClick(TObject *Sender);
+ void __fastcall btSaveClick(TObject *Sender);
+ void __fastcall btIntTypeClick(TObject *Sender);
+ void __fastcall btFloatTypeClick(TObject *Sender);
+ void __fastcall PopupMenu1Popup(TObject *Sender);
+ void __fastcall N1Click(TObject *Sender);
+ void __fastcall FormDestroy(TObject *Sender);
+ void __fastcall ToolButton1Click(TObject *Sender);
+ void __fastcall sgEditKeyDown(TObject *Sender, WORD &Key,
+ TShiftState Shift);
+ void __fastcall sgEditSelectCell(TObject *Sender, int ACol,
+ int ARow, bool &CanSelect);
+ void __fastcall Timer1Timer(TObject *Sender);
+ void __fastcall N4Click(TObject *Sender);
+ void __fastcall btTxtTypeClick(TObject *Sender);
+ void __fastcall ToolButton3Click(TObject *Sender);
+ void __fastcall btRowSaveClick(TObject *Sender);
+ void __fastcall btColSaveClick(TObject *Sender);
+ void __fastcall btRowClearClick(TObject *Sender);
+ void __fastcall btColClearClick(TObject *Sender);
+ void __fastcall ToolButton4Click(TObject *Sender);
+private: // User declarations
+
+
+ thOpenFile *thOpen;
+ bool Term;
+
+public: // User declarations
+ bool OpenOk;
+
+ AnsiString CurrentOpenFile;
+ __fastcall TFrmMain(TComponent* Owner);
+ void SaveToFile(const char * pszFileName);
+ void __fastcall OpenFileCol(AnsiString FileName,int ColIndex,int ColType);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TFrmMain *FrmMain;
+//---------------------------------------------------------------------------
+#endif
diff --git a/contrib/dbcEditer/pjDbcEditer.bpr b/contrib/dbcEditer/pjDbcEditer.bpr
new file mode 100644
index 00000000000..43795ce5c28
--- /dev/null
+++ b/contrib/dbcEditer/pjDbcEditer.bpr
@@ -0,0 +1,124 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="pjDbcEditer.exe"/>
+ <OBJFILES value="pjDbcEditer.obj dbcedit.obj TitleFrm.obj thOpenSource.obj SearchFrm.obj"/>
+ <RESFILES value="pjDbcEditer.res"/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES) dbcedit.dfm TitleFrm.dfm SearchFrm.dfm"/>
+ <LIBFILES value=""/>
+ <LIBRARIES value=""/>
+ <SPARELIBS value="vcl.lib rtl.lib indy.lib"/>
+ <PACKAGES value="vcl.bpi rtl.bpi dbrtl.bpi adortl.bpi vcldb.bpi vclx.bpi bdertl.bpi
+ vcldbx.bpi ibxpress.bpi dsnap.bpi cds.bpi bdecds.bpi qrpt.bpi teeui.bpi
+ teedb.bpi tee.bpi dss.bpi teeqr.bpi visualclx.bpi visualdbclx.bpi
+ dsnapcrba.bpi dsnapcon.bpi bcbsmp.bpi vclie.bpi xmlrtl.bpi inet.bpi
+ inetdbbde.bpi inetdbxpress.bpi inetdb.bpi nmfast.bpi webdsnap.bpi
+ bcbie.bpi websnap.bpi soaprtl.bpi dclocx.bpi dbexpress.bpi dbxcds.bpi
+ indy.bpi bcb2kaxserver.bpi dclusr.bpi"/>
+ <PATHCPP value=".;"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_DEBUG"/>
+ <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/>
+ <MAINSOURCE value="pjDbcEditer.cpp"/>
+ <INCLUDEPATH value="&quot;C:\Program Files\Borland\CBuilder6\Projects&quot;;E:\moshou\dbcEdit;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="&quot;C:\Program Files\Borland\CBuilder6\Projects&quot;;E:\moshou\dbcEdit;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I&quot;C:\Program Files\Borland\CBuilder6\Projects&quot; -IE:\moshou\dbcEdit
+ -I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -D_DEBUG -boa"/>
+ <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c
+ -tW -tWM"/>
+ <PFLAGS value="-$Y+ -$W -$O- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-D&quot;&quot; -aa -Tpe -x -Gn -v"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0w32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="pjDbcEditer.res" FORMNAME="" UNITNAME="pjDbcEditer.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="pjDbcEditer.cpp" FORMNAME="" UNITNAME="pjDbcEditer" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="dbcedit.cpp" FORMNAME="FrmMain" UNITNAME="dbcedit" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="TitleFrm.cpp" FORMNAME="FrmTitle" UNITNAME="TitleFrm" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="thOpenSource.cpp" FORMNAME="" UNITNAME="thOpenSource" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="SearchFrm.cpp" FORMNAME="FrmSearch" UNITNAME="SearchFrm" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=2052
+CodePage=936
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[CORBA]
+AddServerUnit=1
+AddClientUnit=1
+PrecompiledHeaders=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/contrib/dbcEditer/pjDbcEditer.cpp b/contrib/dbcEditer/pjDbcEditer.cpp
new file mode 100644
index 00000000000..db3a8bde81f
--- /dev/null
+++ b/contrib/dbcEditer/pjDbcEditer.cpp
@@ -0,0 +1,37 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+//---------------------------------------------------------------------------
+USEFORM("dbcedit.cpp", FrmMain);
+USEFORM("TitleFrm.cpp", FrmTitle);
+USEFORM("SearchFrm.cpp", FrmSearch);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->CreateForm(__classid(TFrmMain), &FrmMain);
+ Application->CreateForm(__classid(TFrmTitle), &FrmTitle);
+ Application->CreateForm(__classid(TFrmSearch), &FrmSearch);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ catch (...)
+ {
+ try
+ {
+ throw Exception("");
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/contrib/dbcEditer/pjDbcEditer.exe b/contrib/dbcEditer/pjDbcEditer.exe
new file mode 100644
index 00000000000..9b11ec74614
--- /dev/null
+++ b/contrib/dbcEditer/pjDbcEditer.exe
Binary files differ
diff --git a/contrib/dbcEditer/pjDbcEditer.res b/contrib/dbcEditer/pjDbcEditer.res
new file mode 100644
index 00000000000..d1c532760e1
--- /dev/null
+++ b/contrib/dbcEditer/pjDbcEditer.res
Binary files differ
diff --git a/contrib/dbcEditer/pjDbcEditer.tds b/contrib/dbcEditer/pjDbcEditer.tds
new file mode 100644
index 00000000000..1995524a297
--- /dev/null
+++ b/contrib/dbcEditer/pjDbcEditer.tds
Binary files differ
diff --git a/contrib/dbcEditer/thOpenSource.cpp b/contrib/dbcEditer/thOpenSource.cpp
new file mode 100644
index 00000000000..7df4debfe31
--- /dev/null
+++ b/contrib/dbcEditer/thOpenSource.cpp
@@ -0,0 +1,182 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "thOpenSource.h"
+#include "dbcedit.h"
+#include "stdio.h"
+#include <dir.h>
+#include <inifiles.hpp>
+#include <process.h>
+#pragma package(smart_init)
+//---------------------------------------------------------------------------
+
+// Important: Methods and properties of objects in VCL can only be
+// used in a method called using Synchronize, for example:
+//
+// Synchronize(UpdateCaption);
+//
+// where UpdateCaption could look like:
+//
+// void __fastcall thOpenFile::UpdateCaption()
+// {
+// Form1->Caption = "Updated in a thread";
+// }
+//---------------------------------------------------------------------------
+
+__fastcall thOpenFile::thOpenFile(bool CreateSuspended)
+ : TThread(CreateSuspended)
+{
+
+}
+//---------------------------------------------------------------------------
+void __fastcall thOpenFile::Execute()
+{
+ //---- Place thread code here ----
+ //if(!Terminated){
+ // FrmMain->LoadAndModify(FrmMain->OpenDialog1->FileName.c_str());
+ // FrmMain->OpenOk=true;
+ //}
+ thEnd=false;
+ RunOpen();
+ FrmMain->OpenOk=true;
+ thEnd=true;
+
+}
+//---------------------------------------------------------------------------
+void __fastcall thOpenFile::RunOpen()
+{
+ LoadAndModify(FrmMain->OpenDialog1->FileName.c_str());
+ //OpenOk=true;
+}
+
+void thOpenFile::ReadAndModifyFromBuff(char *pBuff, DWORD dwSize, const char* pszFileName)
+{
+ char szErrorMsg[MAX_PATH];
+ char szNewFileName[MAX_PATH];
+ DWORD w;
+ TIniFile *ini;
+
+
+ TypePtr p(pBuff);
+ if('WDBC' != TAG(*p.dw))
+ {
+ _snprintf(szErrorMsg, 512, "[%s]Not Wow's dbc file!", pszFileName);
+ ShowMessage(szErrorMsg);
+ return;
+ }
+ p.dw++;
+
+ DWORD dwRows, dwCols, dwRowLen, dwTextLen;
+ dwRows = *p.dw++;
+ dwCols = *p.dw++;
+ dwRowLen = *p.dw++;
+ dwTextLen = *p.dw++;
+
+ FrmMain->sgEdit->RowCount = dwRows+1;
+ FrmMain->sgEdit->ColCount = dwCols+1;
+
+ for(int i=0; i<FrmMain->sgEdit->RowCount; i++){
+ FrmMain->sgEdit->Cells[0][i]=IntToStr(i);
+ if(Terminated) return;
+ }
+ //设定列标题
+ AnsiString iniSetFile=ExtractFilePath(Application->ExeName)+"BcdEditer.ini";
+ AnsiString SectionName=ExtractFileName(FrmMain->CurrentOpenFile);
+
+ ini = new TIniFile( iniSetFile );
+ for(int j=0; j<FrmMain->sgEdit->ColCount; j++){
+ FrmMain->sgEdit->Cells[j][0]= ini->ReadString(SectionName,"ColTitle"+IntToStr(j),IntToStr(j));
+ //sgEdit->Cells[j][0]=IntToStr(j);
+ ColType[j]=ini->ReadInteger(SectionName,"ColType"+IntToStr(j),0);
+ if(Terminated) return;
+ }
+ delete ini;
+
+ //int *ColType = new int[dwCols];
+
+ DWORD dwTextStartPos = dwRows*dwRowLen+20;
+ char* pTextPtr = pBuff + dwTextStartPos;
+ char pszTemp[MAX_PATH];
+ float fTemp;
+ long lTemp;
+ DWORD i, j;
+ BOOL* pbString = new BOOL[dwRows*dwCols];
+ float newTmp;
+ //int ColType;
+
+ ini = new TIniFile( iniSetFile );
+
+ for(i=0; i<dwRows; i++)
+ {
+ for(j=0; j<dwCols; j++)
+ {
+ //SleepEx(0,0);
+ if(Terminated) return;
+ lTemp = *p.l;
+ newTmp = *p.f;
+ memcpy(&fTemp, &newTmp, 4);
+
+ if(j==0) //ID
+ FrmMain->sgEdit->Cells[j+1][i+1]=IntToStr(lTemp);
+ else{
+
+ //ColType= ini->ReadInteger(SectionName,"ColType"+IntToStr(j),0);
+
+ switch (ColType[j+1])
+ {
+ case 0: //整型
+ FrmMain->sgEdit->Cells[j+1][i+1]=IntToStr(lTemp);
+ break;
+ case 1: //浮点
+ FrmMain->sgEdit->Cells[j+1][i+1]=FloatToStr(fTemp);
+ break;
+ case 2: //文本 文本类型只能看,不能编辑
+ if(dwTextStartPos + lTemp < dwSize){
+ pTextPtr = pBuff + dwTextStartPos + lTemp;
+ FrmMain->sgEdit->Cells[j+1][i+1]=pTextPtr;
+ }else{
+ FrmMain->sgEdit->Cells[j+1][i+1]="该列不是文本";
+ }
+ break;
+ default: //整型
+ FrmMain->sgEdit->Cells[j+1][i+1]=IntToStr(lTemp);
+ }
+ }
+ p.c += 4;
+ }
+ }
+
+ delete [] pbString;
+ //delete [] ColType;
+ delete ini;
+
+}
+
+void thOpenFile::LoadAndModify(const char * pszFileName)
+{
+ HANDLE hFile = NULL;
+ hFile = CreateFile(pszFileName, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
+ if(hFile == INVALID_HANDLE_VALUE)return;
+
+ DWORD r = 0, nFileSize = 0;
+ nFileSize = GetFileSize(hFile, NULL);
+ char* pTmpBuf = new char[nFileSize];
+ if(pTmpBuf==NULL)
+ {
+ CloseHandle(hFile);
+ return;
+ }
+ ReadFile(hFile, pTmpBuf, nFileSize, &r, NULL);
+
+ FrmMain->CurrentOpenFile=pszFileName;
+ FrmMain->btSave->Enabled=true;
+
+ ReadAndModifyFromBuff(pTmpBuf, nFileSize, pszFileName);
+
+ //SAFE_DELETE_ARRAY(pTmpBuf);
+ delete [] pTmpBuf;
+ CloseHandle(hFile);
+
+}
diff --git a/contrib/dbcEditer/thOpenSource.h b/contrib/dbcEditer/thOpenSource.h
new file mode 100644
index 00000000000..edf6bd064f2
--- /dev/null
+++ b/contrib/dbcEditer/thOpenSource.h
@@ -0,0 +1,24 @@
+//---------------------------------------------------------------------------
+
+#ifndef thOpenSourceH
+#define thOpenSourceH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+//---------------------------------------------------------------------------
+class thOpenFile : public TThread
+{
+private:
+protected:
+ void __fastcall Execute();
+ void __fastcall RunOpen();
+public:
+ bool thEnd;
+ int ColType[10000];
+
+ __fastcall thOpenFile(bool CreateSuspended);
+ void LoadAndModify(const char * pszFileName);
+ void ReadAndModifyFromBuff(char *pBuff, DWORD dwSize, const char* pszFileName);
+
+};
+//---------------------------------------------------------------------------
+#endif