diff --git a/SuperScriptMaterializer/database.cpp b/SuperScriptMaterializer/database.cpp
index 08dc1f8..cf158cf 100644
--- a/SuperScriptMaterializer/database.cpp
+++ b/SuperScriptMaterializer/database.cpp
@@ -176,12 +176,19 @@ BOOL scriptDatabase::finalJob() {
sqlite3_exec(db, "commit;", NULL, NULL, NULL);
//create index for quick select in following app
- /*sqlite3_exec(db, "begin;", NULL, NULL, NULL);
- sqlite3_exec(db, "CREATE INDEX [quick_where1] ON bIn (thisobj)", NULL, NULL, NULL);
- sqlite3_exec(db, "CREATE INDEX [quick_where2] ON bOut (thisobj)", NULL, NULL, NULL);
- sqlite3_exec(db, "CREATE INDEX [quick_where3] ON pIn (thisobj)", NULL, NULL, NULL);
- sqlite3_exec(db, "CREATE INDEX [quick_where4] ON pOut (thisobj)", NULL, NULL, NULL);
- sqlite3_exec(db, "commit;", NULL, NULL, NULL);*/
+ sqlite3_exec(db, "begin;", NULL, NULL, NULL);
+ sqlite3_exec(db, "CREATE INDEX [quick_where1] ON behavior ([parent])", NULL, NULL, NULL);
+ sqlite3_exec(db, "CREATE INDEX [quick_where2] ON pOper ([belong_to], [thisobj])", NULL, NULL, NULL);
+ sqlite3_exec(db, "CREATE INDEX [quick_where3] ON pTarget ([belong_to])", NULL, NULL, NULL);
+ sqlite3_exec(db, "CREATE INDEX [quick_where4] ON bIn ([belong_to])", NULL, NULL, NULL);
+ sqlite3_exec(db, "CREATE INDEX [quick_where5] ON bOut ([belong_to])", NULL, NULL, NULL);
+ sqlite3_exec(db, "CREATE INDEX [quick_where6] ON pIn ([belong_to], [thisobj])", NULL, NULL, NULL);
+ sqlite3_exec(db, "CREATE INDEX [quick_where7] ON pOut ([belong_to], [thisobj])", NULL, NULL, NULL);
+ sqlite3_exec(db, "CREATE INDEX [quick_where8] ON pLocal ([belong_to])", NULL, NULL, NULL);
+ sqlite3_exec(db, "CREATE INDEX [quick_where9] ON pLink ([belong_to])", NULL, NULL, NULL);
+ sqlite3_exec(db, "CREATE INDEX [quick_where10] ON bLink ([belong_to])", NULL, NULL, NULL);
+ sqlite3_exec(db, "CREATE INDEX [quick_where11] ON elink ([belong_to])", NULL, NULL, NULL);
+ sqlite3_exec(db, "commit;", NULL, NULL, NULL);
return TRUE;
}
diff --git a/SuperScriptMaterializer/script_export.cpp b/SuperScriptMaterializer/script_export.cpp
index 0221cc3..91dc759 100644
--- a/SuperScriptMaterializer/script_export.cpp
+++ b/SuperScriptMaterializer/script_export.cpp
@@ -484,14 +484,14 @@ void IteratepLocalData(CKParameterLocal* p, scriptDatabase* db, dbScriptDataStru
if (unknowType || t == CKPGUID_VOIDBUF || t == CKPGUID_SHADER || t == CKPGUID_TECHNIQUE || t == CKPGUID_PASS) {
//dump data
unsigned char* cptr = (unsigned char*)p->GetReadDataPtr(false);
- char temp[4];
+ char temp[8];
int cc = 0, rcc = 0, pos = 0;
rcc = cc = p->GetDataSize();
if (rcc > 1024) rcc = 1024;
helper->_db_pLocalData->data.clear();
for (int i = 0; i < rcc; i++) {
- sprintf(temp, "%02X", cptr[i]);
+ sprintf(temp, "0x%02X", cptr[i]);
helper->_db_pLocalData->data += temp;
if (i != rcc - 1)
diff --git a/SuperScriptMaterializer/vt_menu.cpp b/SuperScriptMaterializer/vt_menu.cpp
index ef35063..74e4d16 100644
--- a/SuperScriptMaterializer/vt_menu.cpp
+++ b/SuperScriptMaterializer/vt_menu.cpp
@@ -75,7 +75,8 @@ void PluginMenuCallback(int commandID) {
ofn.lpstrFile = file;
ofn.lpstrFile[0] = '\0';
ofn.nMaxFile = 1024;
- ofn.lpstrFilter = "Database file(*.db)\0*.db\0All files(*.*)\0*.*\0";
+ ofn.lpstrFilter = "Database file(*.db)\0*.db\0";
+ ofn.lpstrDefExt = "db";
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
diff --git a/SuperScriptViewer/DecoratorCore.py b/SuperScriptViewer/DecoratorCore.py
index 5ada3bc..0512cef 100644
--- a/SuperScriptViewer/DecoratorCore.py
+++ b/SuperScriptViewer/DecoratorCore.py
@@ -2,7 +2,7 @@ import sqlite3
import DecoratorConstValue as dcv
import json
import CustomConfig
-import sys
+import Progressbar
def run():
exportDb = sqlite3.connect(CustomConfig.export_db)
@@ -22,25 +22,16 @@ def run():
# decorate each graph
print('Generating graph...')
currentGraphBlockCell = {}
- percentageAll = len(graphList)
- if percentageAll == 0:
- percentageAll = 1
- percentageNow = 0
- percentageCache = 0
- #debug
- # graphList=graphList[int(percentageAll*3/4):]
+ Progressbar.initProgressbar(len(graphList))
for i in graphList:
- sys.stdout.write('\r[{}{}]{}%'.format(int(percentageCache / 5) * '#',(20 - int(percentageCache / 5)) * '=', percentageCache))
- sys.stdout.flush()
-
currentGraphBlockCell.clear()
buildBlock(exportDb, decorateDb, i, currentGraphBlockCell)
graphPIO = buildCell(exportDb, decorateDb, i, currentGraphBlockCell)
buildLink(exportDb, decorateDb, i, currentGraphBlockCell, graphPIO)
- percentageNow += 1
- percentageCache = int(100 * percentageNow / percentageAll)
-
+ Progressbar.stepProgressbar()
+ Progressbar.finProgressbar()
+
# export information
print('Generating info...')
buildInfo(exportDb, decorateDb)
diff --git a/SuperScriptViewer/Progressbar.py b/SuperScriptViewer/Progressbar.py
new file mode 100644
index 0000000..b647777
--- /dev/null
+++ b/SuperScriptViewer/Progressbar.py
@@ -0,0 +1,29 @@
+import sys
+
+value_All = 0
+value_Now = 0
+progressbar_span = 2
+progressbar_count = int(100/progressbar_span)
+
+def initProgressbar(all):
+ global value_Now, value_All
+ value_All = all
+ value_Now = 0
+
+ sys.stdout.write('[{}] 0%'.format(progressbar_count * '='))
+ sys.stdout.flush()
+
+def stepProgressbar():
+ global value_Now, value_All
+ value_Now += 1
+ if (value_Now > value_All):
+ value_Now = value_All
+
+ percentage = int(value_Now / value_All * 100)
+ percentage_bar = int(value_Now / value_All * progressbar_count)
+ sys.stdout.write('\r[{}{}] {}%'.format(percentage_bar * '#',(progressbar_count - percentage_bar) * '=', percentage))
+ sys.stdout.flush()
+
+def finProgressbar():
+ sys.stdout.write('\r[{}] 100%\n'.format(progressbar_count * '#'))
+ sys.stdout.flush()
\ No newline at end of file
diff --git a/SuperScriptViewer/SuperScriptViewer.pyproj b/SuperScriptViewer/SuperScriptViewer.pyproj
index f3dde01..ef75fd4 100644
--- a/SuperScriptViewer/SuperScriptViewer.pyproj
+++ b/SuperScriptViewer/SuperScriptViewer.pyproj
@@ -30,6 +30,9 @@
Code
+
+ Code
+
Code