@@ -45,45 +45,7 @@ public void db_setupDatabase()
4545 g_bRenaming = false ;
4646 g_bInTransactionChain = false ;
4747
48- // If tables haven't been created yet.
49- if (! SQL_FastQuery (g_hDb , " SELECT steamid FROM ck_playerrank LIMIT 1" ))
50- {
51- SQL_UnlockDatabase (g_hDb );
52- db_createTables ();
53- return ;
54- }
55- else
56- {
57- // Check for db upgrades
58- if (! SQL_FastQuery (g_hDb , " SELECT prespeed FROM ck_zones LIMIT 1" ))
59- {
60- db_upgradeDatabase (0 );
61- return ;
62- }
63- else if (! SQL_FastQuery (g_hDb , " SELECT ranked FROM ck_maptier LIMIT 1" ) || ! SQL_FastQuery (g_hDb , " SELECT style FROM ck_playerrank LIMIT 1;" ))
64- {
65- db_upgradeDatabase (1 );
66- return ;
67- }
68- else if (! SQL_FastQuery (g_hDb , " SELECT wrcppoints FROM ck_playerrank LIMIT 1" ))
69- {
70- db_upgradeDatabase (2 );
71- }
72- else if (! SQL_FastQuery (g_hDb , " SELECT teleside FROM ck_playeroptions LIMIT 1" ))
73- {
74- db_upgradeDatabase (3 );
75- }
76- else if (! SQL_FastQuery (g_hDb , " SELECT steamid FROM ck_prinfo LIMIT 1" ))
77- {
78- db_upgradeDatabase (4 );
79- }
80- else if (! SQL_FastQuery (g_hDb , " SELECT csd_update_rate FROM ck_playeroptions2 LIMIT 1" ))
81- {
82- db_upgradeDatabase (5 );
83- }
84- }
85-
86- SQL_UnlockDatabase (g_hDb );
48+ CheckDatabaseForUpdates ();
8749
8850 for (int i = 0 ; i < sizeof (g_failedTransactions ); i ++ )
8951 g_failedTransactions [i ] = 0 ;
@@ -124,6 +86,66 @@ public void SQLTxn_CreateDatabaseFailed(Handle db, any data, int numQueries, con
12486 SetFailState (" [SurfTimer] Database tables could not be created! Error: %s " , error );
12587}
12688
89+ void CheckDatabaseForUpdates ()
90+ {
91+ // If tables haven't been created yet.
92+ if (! SQL_FastQuery (g_hDb , " SELECT steamid FROM ck_playerrank LIMIT 1" ))
93+ {
94+ SQL_UnlockDatabase (g_hDb );
95+ db_createTables ();
96+ return ;
97+ }
98+ else
99+ {
100+ LogMessage (" Tables exists." );
101+
102+ // Check for db upgrades
103+ if (! SQL_FastQuery (g_hDb , " SELECT prespeed FROM ck_zones LIMIT 1" ))
104+ {
105+ db_upgradeDatabase (0 );
106+ return ;
107+ }
108+ LogMessage (" Version 0 looks good." );
109+
110+ if (! SQL_FastQuery (g_hDb , " SELECT ranked FROM ck_maptier LIMIT 1" ) || ! SQL_FastQuery (g_hDb , " SELECT style FROM ck_playerrank LIMIT 1;" ))
111+ {
112+ db_upgradeDatabase (1 );
113+ return ;
114+ }
115+ LogMessage (" Version 1 looks good." );
116+
117+ if (! SQL_FastQuery (g_hDb , " SELECT wrcppoints FROM ck_playerrank LIMIT 1" ))
118+ {
119+ db_upgradeDatabase (2 );
120+ return ;
121+ }
122+ LogMessage (" Version 2 looks good." );
123+
124+ if (! SQL_FastQuery (g_hDb , " SELECT teleside FROM ck_playeroptions2 LIMIT 1" ))
125+ {
126+ db_upgradeDatabase (3 );
127+ return ;
128+ }
129+ LogMessage (" Version 3 looks good." );
130+
131+ if (! SQL_FastQuery (g_hDb , " SELECT steamid FROM ck_prinfo LIMIT 1" ))
132+ {
133+ db_upgradeDatabase (4 );
134+ return ;
135+ }
136+ LogMessage (" Version 4 looks good." );
137+
138+ if (! SQL_FastQuery (g_hDb , " SELECT csd_update_rate FROM ck_playeroptions2 LIMIT 1" ))
139+ {
140+ db_upgradeDatabase (5 );
141+ return ;
142+ }
143+ LogMessage (" Version 5 looks good." );
144+ }
145+
146+ SQL_UnlockDatabase (g_hDb );
147+ }
148+
127149public void db_upgradeDatabase (int ver )
128150{
129151 if (ver == 0 )
@@ -172,7 +194,7 @@ public void db_upgradeDatabase(int ver)
172194 SQL_FastQuery (g_hDb , " ALTER TABLE ck_playeroptions2 ADD csd_update_rate int(11) NOT NULL DEFAULT '1', ADD csd_pos_x float(11) NOT NULL DEFAULT '0.5', ADD csd_pos_y float(11) NOT NULL DEFAULT '0.3', ADD csd_r int(11) NOT NULL DEFAULT '255', ADD csd_g int(11) NOT NULL DEFAULT '255', ADD csd_b int(11) NOT NULL DEFAULT '255';" );
173195 }
174196
175- SQL_UnlockDatabase ( g_hDb );
197+ CheckDatabaseForUpdates ( );
176198}
177199
178200/* Admin Delete Menu */
0 commit comments