1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
|
const unsigned char*d;
unsigned char*p;
int i,j;
long n;
int txn=sqlite3_get_autocommit(userdb)?sqlite3_exec(userdb,"BEGIN;",0,0,0):1;
if(!levels_schema) return SQLITE_CORRUPT_VTAB;
if(screen) set_cursor(XC_coffee_mug);
fprintf(stderr,"Loading level table...\n");
if(sqlite3_exec(userdb,levels_schema,0,0,0)) {
err: fatal("SQL error while loading LEVELS table: %s\n",sqlite3_errmsg(userdb));
}
if(sqlite3_prepare_v2(userdb,"SELECT `LEVEL`, IFNULL(`DATA`,READ_LUMP_AT(`OFFSET`,?1)), `USERSTATE` FROM `USERCACHEDATA`"
" WHERE `FILE` = LEVEL_CACHEID() AND `LEVEL` NOT NULL AND `LEVEL` >= 0 ORDER BY `LEVEL`;",-1,&st1,0))
goto err;
// ?1=ID, ?2=CODE, ?3=WIDTH, ?4=HEIGHT, ?5=TITLE, ?6=SOLVED, ?7=SOLVABLE
|
|
|
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
|
const unsigned char*d;
unsigned char*p;
int i,j;
long n;
int txn=sqlite3_get_autocommit(userdb)?sqlite3_exec(userdb,"BEGIN;",0,0,0):1;
if(!levels_schema) return SQLITE_CORRUPT_VTAB;
if(screen) set_cursor(XC_coffee_mug);
printStatus("Loading level table...\n");
if(sqlite3_exec(userdb,levels_schema,0,0,0)) {
err: fatal("SQL error while loading LEVELS table: %s\n",sqlite3_errmsg(userdb));
}
if(sqlite3_prepare_v2(userdb,"SELECT `LEVEL`, IFNULL(`DATA`,READ_LUMP_AT(`OFFSET`,?1)), `USERSTATE` FROM `USERCACHEDATA`"
" WHERE `FILE` = LEVEL_CACHEID() AND `LEVEL` NOT NULL AND `LEVEL` >= 0 ORDER BY `LEVEL`;",-1,&st1,0))
goto err;
// ?1=ID, ?2=CODE, ?3=WIDTH, ?4=HEIGHT, ?5=TITLE, ?6=SOLVED, ?7=SOLVABLE
|
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
|
sqlite3_bind_int(st2,2,level_index[j]);
while((i=sqlite3_step(st2))==SQLITE_ROW);
if(i!=SQLITE_DONE) goto err;
}
sqlite3_finalize(st2);
sqlite3_exec(userdb,"CREATE UNIQUE INDEX `LEVELS_ORD` ON `LEVELS`(`ORD`) WHERE `ORD` NOT NULL;",0,0,0);
if(!txn) sqlite3_exec(userdb,"COMMIT;",0,0,0);
fprintf(stderr,"Done\n");
if(screen) set_cursor(XC_arrow);
return SQLITE_SCHEMA;
}
Module(vt_levels,
.xConnect=vt1_levels_connect,
.xOpen=vt1_levels_open,
|
|
|
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
|
sqlite3_bind_int(st2,2,level_index[j]);
while((i=sqlite3_step(st2))==SQLITE_ROW);
if(i!=SQLITE_DONE) goto err;
}
sqlite3_finalize(st2);
sqlite3_exec(userdb,"CREATE UNIQUE INDEX `LEVELS_ORD` ON `LEVELS`(`ORD`) WHERE `ORD` NOT NULL;",0,0,0);
if(!txn) sqlite3_exec(userdb,"COMMIT;",0,0,0);
printStatus("Done\n");
if(screen) set_cursor(XC_arrow);
return SQLITE_SCHEMA;
}
Module(vt_levels,
.xConnect=vt1_levels_connect,
.xOpen=vt1_levels_open,
|