changeset 17:5e6c9260913a

lots of cleanups and small fixes
author meillo@marmaro.de
date Wed, 23 Jul 2008 17:14:38 +0200
parents 3c104b5f5158
children 5937504619f2
files clock.c db.c db.h environment.c game.h growth.c weather.c
diffstat 7 files changed, 50 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/clock.c	Wed Jul 23 16:49:10 2008 +0200
+++ b/clock.c	Wed Jul 23 17:14:38 2008 +0200
@@ -1,29 +1,29 @@
 #include <stdio.h>
 #include <stdlib.h>
-
 #include "db.h"
 #include "game.h"
 
 
-
-
 void inc_time() {
 	/* get current time */
 	sprintf(query, "select time from game;");
-	db_query(query);
+	stmt = db_query(query);
 	if (sqlite3_step(stmt) == SQLITE_ROW) {
 		gametime = sqlite3_column_int(stmt, 0);
 	} else {
-		fprintf(stderr, "error: %s\n", sqlite3_errmsg(db));
+		db_error("get current time");
 	}
 	sqlite3_finalize(stmt);
 
 	/* increment time */
-	sprintf(query, " update game set time = '%d';", ++gametime);
+	sprintf(query,
+			"update game"
+			"set time = '%d';"
+			, ++gametime
+			);
 	if (!db_update(query)) {
-		printf("error: time update failed: %s\n", sqlite3_errmsg(db));
+		db_error("time update");
 	}
-	sqlite3_finalize(stmt);
 }
 
 
--- a/db.c	Wed Jul 23 16:49:10 2008 +0200
+++ b/db.c	Wed Jul 23 17:14:38 2008 +0200
@@ -45,6 +45,18 @@
 }
 
 
+int db_rows(sqlite3_stmt* stmt) {
+	int i = 0;
+
+	sqlite3_reset(stmt);
+	while (sqlite3_step(stmt) == SQLITE_ROW) {
+		i++;
+	}
+	sqlite3_reset(stmt);
+	return i;
+}
+
+
 int read_time() {
 	sprintf(query, "select time from game;");
 	stmt = db_query(query);
@@ -57,3 +69,7 @@
 	return gametime;
 }
 
+
+void db_error(char* info) {
+	fprintf(stderr, "%s%sSQL error: %s\n", (info) ? info : "", (info) ? ": " : "", sqlite3_errmsg(db));
+}
--- a/db.h	Wed Jul 23 16:49:10 2008 +0200
+++ b/db.h	Wed Jul 23 17:14:38 2008 +0200
@@ -1,12 +1,16 @@
 #include <sqlite3.h>
 
 char* database;
+int gametime;
 char query[1024];
 sqlite3* db;
 sqlite3_stmt* stmt;
 
+int read_time();
 
 void db_connect();
 void db_close();
 sqlite3_stmt* db_query(char* query);
 int db_update(char* query);
+int db_rows(sqlite3_stmt* stmt);
+void db_error(char* info);
--- a/environment.c	Wed Jul 23 16:49:10 2008 +0200
+++ b/environment.c	Wed Jul 23 17:14:38 2008 +0200
@@ -24,12 +24,17 @@
 
 
 	/* set weather */
-	sprintf(query, " insert into environment \
-			(tick, groundwater, slugs, earthworms) \
-			values ('%d', '%d', '%d', '%d') ",
-			gametime, groundwater, slugs, earthworms);
+	sprintf(query,
+			"insert into environment "
+			"(tick, groundwater, slugs, earthworms) "
+			"values ('%d', '%d', '%d', '%d') "
+			, gametime
+			, groundwater
+			, slugs
+			, earthworms
+			);
 	if (!db_update(query)) {
-		printf("error: environment insertion failed: %s\n", sqlite3_errmsg(db));
+		db_error("environment insertion");
 	}
 
 }
--- a/game.h	Wed Jul 23 16:49:10 2008 +0200
+++ b/game.h	Wed Jul 23 17:14:38 2008 +0200
@@ -1,9 +1,3 @@
-int gametime;
-
-
-int read_time();
-
-
 void worldclock(void);
 void environment(void);
 void weather(void);
--- a/growth.c	Wed Jul 23 16:49:10 2008 +0200
+++ b/growth.c	Wed Jul 23 17:14:38 2008 +0200
@@ -5,14 +5,13 @@
 
 
 void grow_plants() {
-	/* get weather and last environments to calculate the next one */
-	sprintf(query, "update field \
-			set age = age+1, size = size+1 ");
-	stmt = db_query(query);
+	sprintf(query,
+			"update field "
+			"set age = age+1, size = size+1 "
+			);
 	if (!db_update(query)) {
-		printf("E: update failed  ++  %s\n", sqlite3_errmsg(db));
+		db_error("grow plants");
 	}
-	sqlite3_finalize(stmt);
 }
 
 
--- a/weather.c	Wed Jul 23 16:49:10 2008 +0200
+++ b/weather.c	Wed Jul 23 17:14:38 2008 +0200
@@ -26,8 +26,8 @@
 float mean_hum[12] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0};
 
 
+/* generates random number between -limit and +limit */
 float rand_limit(float limit) {
-	/* generates random number between -limit and +limit */
 	int r;
 
 	r = rand() / ( ((float) RAND_MAX + 1) / (2*limit) );
@@ -45,8 +45,9 @@
 			" select temp, sun, rain, wind, hum from weather "
 			" order by tick desc "
 			" limit %d "
-			, nlast);
-	db_query(query);
+			, nlast
+			);
+	stmt = db_query(query);
 	for (i = 0; i < nlast && sqlite3_step(stmt) == SQLITE_ROW; i++) {
 		lastw[i].temp = sqlite3_column_double(stmt, 0);
 		lastw[i].sun = sqlite3_column_double(stmt, 1);
@@ -55,19 +56,6 @@
 		lastw[i].hum = sqlite3_column_double(stmt, 4);
 	}
 	sqlite3_finalize(stmt);
-
-	/*
-	result = mysql_store_result(conn);
-	for (i = 0; i < nlast && (row = mysql_fetch_row(result)); i++) {
-		lastw[i].temp = atof(row[0]);
-		lastw[i].sun = atof(row[1]);
-		lastw[i].rain = atof(row[2]);
-		lastw[i].wind = atof(row[3]);
-		lastw[i].hum = atof(row[4]);
-	}
-	mysql_free_result(result);
-	*/
-
 }
 
 
@@ -86,10 +74,10 @@
 			" insert into weather "
 			" (tick, temp, sun, rain, wind, hum) "
 			" values ('%d', '%f', '%f', '%f', '%f', '%f') "
-			, gametime, w->temp, w->sun, w->rain, w->wind, w->hum);
-	/* puts(query); */
+			, gametime, w->temp, w->sun, w->rain, w->wind, w->hum
+			);
 	if (!db_update(query)) {
-		printf("error: weather insertion failed: %s\n", sqlite3_errmsg(db));
+		db_error("weather insertion");
 	}
 }