Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
#include <string>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <sqlite3.h>
//#include "save.h"
#include <iostream>
#include <menu.h>
#include <vector>
#include <typeinfo>
using namespace std;
//int argv;
static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
for(i = 0; i<argc; i++) {
printf("%s = %s\n", azColName[i], &argv[i] ? argv[i] : "NULL");
//static int argv = argv;
//cout<<argv[i]<<"sadfasdfdsaadsadadsadadssdafddasd"<<endl;
//return *argv[i];
}
printf("\n");
return 0;//*argv[i];
}
char* value;
static int newcallback(void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
for(i = 0; i<argc; i++) {
value = argv[i];
}
return 0;
}
int initSave()
{
const char * str= str;
int numberOfSaves;
sqlite3 *db;
char *zErrMsg = 0;
int rc;
const char *sql;
//string sql11;
rc = sqlite3_open("game.db", &db);
if( rc )
{
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
return(0);
}
else
{
fprintf(stderr, "Opened database successfully\n");
}
/* Create SQL statement */
sql = "CREATE TABLE characters(name_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
sql = "CREATE TABLE armour(name_id INTEGER PRIMARY KEY AUTOINCREMENT, a_name TEXT, defenceBonus INTEGER)";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
sql = "CREATE TABLE weapon(name_id INTEGER PRIMARY KEY AUTOINCREMENT, w_name TEXT, attackBonus INTEGER)";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: \%s \n", zErrMsg);
sqlite3_free(zErrMsg);
} else {
fprintf(stdout, "Records created successfully\n");
}
sqlite3_close(db);
return 0;
}
int saveName(string name)
{
//const char * str= str;
sqlite3 *db;
char *zErrMsg = 0;
int rc;
const char *sql;
//string sql11;
rc = sqlite3_open("game.db", &db);
if( rc )
{
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
return(0);
}
else
{
fprintf(stderr, "Opened database successfully\n");
}
string string1 = "INSERT INTO characters (name) VALUES (' ";
//string string2 = to_string(numberOfSaves);
//tring string3 = ", \'" ;
string string4 = name;
string string5 = "\' " ;
string string6 = ");";
string sqll = string1 + string4 + string5 +string6;
cout<< sqll <<endl;
//numberOfSaves= numberOfSaves;
sql = sqll.c_str();
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: \%s \n", zErrMsg);
sqlite3_free(zErrMsg);
} else {
fprintf(stdout, "Records created successfully\n");
}
sqlite3_close(db);
return 0;
}
int takeWeapon(int weapon_id) // use takeWeapon to get attack bonus
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
const char *sql;
const char* data = "Callback function called";
/* Open database */
rc = sqlite3_open("game.db", &db);
string string1 = "SELECT attackBonus FROM weapon WHERE name_id = ";
string string2 = "" ;
string weapon_idd = to_string(weapon_id);
string endstring = string1 + weapon_idd + string2;
sql = endstring.c_str();
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, newcallback, (void*)data, &zErrMsg);
sqlite3_close(db);
int a = atoi(value);
return a; //it will return integer 5,10 or 15 from table weapon
}
int takeArmour(int armour_id) // use take armour to get defenceBonus
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
const char *sql;
const char* data = "Callback function called";
/* Open database */
rc = sqlite3_open("game.db", &db);
string string1 = "SELECT defenceBonus FROM armour WHERE name_id = ";
string string2 = "" ;
string armour_idd = to_string(armour_id);
string endstring = string1 + armour_idd + string2;
sql = endstring.c_str();
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, newcallback, (void*)data, &zErrMsg);
sqlite3_close(db);
int a = atoi(value);
//cout << typeid(a).name() << endl;
//cout << typeid(value).name() << endl;
return a; //it will return integer 5,10 or 15 from table armour
}