|  | @@ -55,6 +55,7 @@ typedef struct user_info {
 | 
	
		
			
				|  |  |    int hitpoints; // Total hitpoints till we die (Rules for taking damage, shields first then armor then hitpoints)
 | 
	
		
			
				|  |  |    int armorpoints; // Points we get from armors (Repairable but costs 1 metal per point, but can break if taking too much damage)
 | 
	
		
			
				|  |  |    int shieldpoints; // Points we get from shields (Self-Regenerates, and does not get destroyed)
 | 
	
		
			
				|  |  | +  int shieldsup; // 0 means yes, anything else means shields are offline, deduct if not 0 for each attack.
 | 
	
		
			
				|  |  |    char nick[256]; // What they go by on score board, this allows duping since we really go by real
 | 
	
		
			
				|  |  |    char real[256]; // Their real name to match with drop file info, prevents someone from loging in as another
 | 
	
		
			
				|  |  |  } user_inf;
 | 
	
	
		
			
				|  | @@ -158,7 +159,9 @@ void db_test() {
 | 
	
		
			
				|  |  |        sqlite3_column_name(stmt, 10), // int, shieldpoints
 | 
	
		
			
				|  |  |        sqlite3_column_int(stmt, 10),
 | 
	
		
			
				|  |  |        sqlite3_column_name(stmt, 11), // int,  hitpoints
 | 
	
		
			
				|  |  | -      sqlite3_column_int(stmt, 11)
 | 
	
		
			
				|  |  | +      sqlite3_column_int(stmt, 11),
 | 
	
		
			
				|  |  | +      sqlite3_column_name(stmt, 12), // int,  shieldsup
 | 
	
		
			
				|  |  | +      sqlite3_column_int(stmt, 12)
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  |    } // Clean up database
 | 
	
		
			
				|  |  |    sqlite3_finalize(stmt);
 | 
	
	
		
			
				|  | @@ -310,6 +313,7 @@ user_inf load_player(int uuid) {
 | 
	
		
			
				|  |  |      result.armorpoints = sqlite3_column_int(stmt, 9);
 | 
	
		
			
				|  |  |      result.shieldpoints = sqlite3_column_int(stmt, 10);
 | 
	
		
			
				|  |  |      result.hitpoints = sqlite3_column_int(stmt, 11);
 | 
	
		
			
				|  |  | +    result.shieldsup = sqlite3_column_int(stmt, 12);
 | 
	
		
			
				|  |  |    } else {
 | 
	
		
			
				|  |  |      dolog("E: Unable to locate user with id=%d", uuid);
 | 
	
		
			
				|  |  |      sqlite3_finalize(stmt);
 | 
	
	
		
			
				|  | @@ -335,7 +339,7 @@ void update_player(user_inf data) {
 | 
	
		
			
				|  |  |    // Bad, don't do this... opens to SQL injection!
 | 
	
		
			
				|  |  |    //snprintf(sqlbuffer, 1024, "UPDATE user SET nick = '%s', experience = %d, metal = %d, fuel = %d, guns = %d, armors = %d, shields = %d, armorpoints = %d, shieldpoints = %d, hitpoints = %d WHERE uid=%d;",
 | 
	
		
			
				|  |  |    //  data.nick, data.experience, data.metal, data.fuel, data.guns, data.armors, data.shields, data.armorpoints, data.shieldpoints, data.hitpoints, data.uid);
 | 
	
		
			
				|  |  | -  strcpy(sqlbuffer, "UPDATE user SET nick=?, experience=?, metal=?, fuel=?, guns=?, armors=?, shields=?, armorpoints=?, shieldpoints=?, hitpoints=? WHERE uid=?;");
 | 
	
		
			
				|  |  | +  strcpy(sqlbuffer, "UPDATE user SET nick=?, experience=?, metal=?, fuel=?, guns=?, armors=?, shields=?, armorpoints=?, shieldpoints=?, hitpoints=?, shieldsup=? WHERE uid=?;");
 | 
	
		
			
				|  |  |    sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
 | 
	
		
			
				|  |  |    // Bind All data values
 | 
	
		
			
				|  |  |    sqlite3_bind_text(stmt, 1, data.nick, strlen(data.nick), SQLITE_STATIC);
 | 
	
	
		
			
				|  | @@ -348,7 +352,8 @@ void update_player(user_inf data) {
 | 
	
		
			
				|  |  |    sqlite3_bind_int(stmt, 8, data.armorpoints);
 | 
	
		
			
				|  |  |    sqlite3_bind_int(stmt, 9, data.shieldpoints);
 | 
	
		
			
				|  |  |    sqlite3_bind_int(stmt, 10, data.hitpoints);
 | 
	
		
			
				|  |  | -  sqlite3_bind_int(stmt, 11, data.uid);
 | 
	
		
			
				|  |  | +  sqlite3_bind_int(stmt, 11, data.shieldsup);
 | 
	
		
			
				|  |  | +  sqlite3_bind_int(stmt, 12, data.uid);
 | 
	
		
			
				|  |  |    // Execute
 | 
	
		
			
				|  |  |    rc = sqlite3_step(stmt);
 | 
	
		
			
				|  |  |    if(rc != SQLITE_DONE) {
 | 
	
	
		
			
				|  | @@ -479,9 +484,8 @@ int main(int argc, char **argv) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // Main Menu
 | 
	
		
			
				|  |  |    //main_menu();
 | 
	
		
			
				|  |  | -  user_inf ply = load_player(locate_player(mdcontrol.user_firstname, mdcontrol.user_lastname));
 | 
	
		
			
				|  |  | -  ply.experience += 10;
 | 
	
		
			
				|  |  | -  update_player(ply);
 | 
	
		
			
				|  |  | +  //user_inf ply = load_player(locate_player(mdcontrol.user_firstname, mdcontrol.user_lastname));
 | 
	
		
			
				|  |  | +  //update_player(ply);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // Unlock game
 | 
	
		
			
				|  |  |    if (inuse == 0) {
 |