1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
/*
Caches the record times on the map.
*/
void DB_CacheRecords(int mapID)
{
char query[1024];
Transaction txn = SQL_CreateTransaction();
// Reset record exists array
for (int course = 0; course < GOKZ_MAX_COURSES; course++)
{
for (int mode = 0; mode < MODE_COUNT; mode++)
{
for (int timeType = 0; timeType < TIMETYPE_COUNT; timeType++)
{
gB_RecordExistsCache[course][mode][timeType] = false;
}
}
}
// Get Map WRs
FormatEx(query, sizeof(query), sql_getwrs, mapID);
txn.AddQuery(query);
// Get PRO WRs
FormatEx(query, sizeof(query), sql_getwrspro, mapID);
txn.AddQuery(query);
SQL_ExecuteTransaction(gH_DB, txn, DB_TxnSuccess_CacheRecords, DB_TxnFailure_Generic, _, DBPrio_High);
}
public void DB_TxnSuccess_CacheRecords(Handle db, any data, int numQueries, Handle[] results, any[] queryData)
{
int course, mode;
while (SQL_FetchRow(results[0]))
{
course = SQL_FetchInt(results[0], 1);
mode = SQL_FetchInt(results[0], 2);
gB_RecordExistsCache[course][mode][TimeType_Nub] = true;
gF_RecordTimesCache[course][mode][TimeType_Nub] = GOKZ_DB_TimeIntToFloat(SQL_FetchInt(results[0], 0));
}
while (SQL_FetchRow(results[1]))
{
course = SQL_FetchInt(results[1], 1);
mode = SQL_FetchInt(results[1], 2);
gB_RecordExistsCache[course][mode][TimeType_Pro] = true;
gF_RecordTimesCache[course][mode][TimeType_Pro] = GOKZ_DB_TimeIntToFloat(SQL_FetchInt(results[1], 0));
}
}
|