From 343b0b4298e2d084d5544d3d40a8b7dcb586ce8e Mon Sep 17 00:00:00 2001
From: Stijn Buys <ingar@osirion.org>
Date: Mon, 6 Oct 2008 18:22:00 +0000
Subject: use new inifile API

---
 src/game/base/base.cc | 145 ++++++++++++++++++++++++++++----------------------
 1 file changed, 81 insertions(+), 64 deletions(-)

(limited to 'src/game/base')

diff --git a/src/game/base/base.cc b/src/game/base/base.cc
index d337391..dee303b 100644
--- a/src/game/base/base.cc
+++ b/src/game/base/base.cc
@@ -269,17 +269,24 @@ bool Base::load_world()
 			if (worldini.got_section("world")) {
 				continue;
 			} else {
-				con_warn << worldini.name() << "  unknown section '" << worldini.section() << "' at line " << worldini.line() << std::endl;
+				worldini.unknown_section();
 			}
 
-		} else if (worldini.section().compare("world") == 0 ) {
-			if (worldini.got_key_string("zone", label)) {
-				aux::to_label(label);
-				zone = new core::Zone(label);
-				core::Zone::add(zone);
+		} else if (worldini.got_key()) {
+			
+			if (worldini.in_section("world")) {
+
+				if (worldini.got_key_string("zone", label)) {
+					aux::to_label(label);
+					zone = new core::Zone(label);
+					core::Zone::add(zone);
+				} else {
+					worldini.unkown_key();
+				}
 			}
 		}
 	}
+
 	worldini.close();
 
 	if (!core::Zone::registry().size()) {
@@ -343,8 +350,54 @@ bool Base::load_zone(core::Zone *zone)
 	zone->set_sky("sky");
 
 	while (zoneini.getline()) {
-		if (zoneini.got_key()) {
-			if (zoneini.section().compare("zone") == 0) {
+
+		if (zoneini.got_section()) {	
+			if (zoneini.got_section("zone")) {
+				continue;
+	
+			} else if (zoneini.got_section("star")) {
+				star = new Star();
+				star->set_zone(zone);
+				count ++;
+	
+			} else if (zoneini.got_section("navpoint")) {
+				navpoint = new NavPoint();
+				navpoint->set_zone(zone);
+				count ++;
+			
+			} else if (zoneini.got_section("jumppoint")) {
+				jumppoint = new JumpPoint();
+				jumppoint->set_zone(zone);
+				count ++;
+	
+			} else if(zoneini.got_section("racetrack")) {
+				racetrack = new RaceTrack();
+				racetrack->set_zone(zone);
+	
+			} else if(zoneini.got_section("checkpoint")) {
+				checkpoint = new CheckPoint(racetrack);
+				if (!racetrack) {
+					con_warn << zoneini.name() << " checkpoint without racetrack at line " << zoneini.line() << std::endl;
+				}
+	
+			} else if (zoneini.got_section("planet")) {
+				planet = new Planet();
+				planet->set_zone(zone);
+				count ++;
+	
+			} else if (zoneini.got_section("entity")) {
+				entity = new core::Entity();
+				entity->entity_flags += core::Entity::Static;
+				entity->set_zone(zone);
+				count ++;
+	
+			} else {
+				zoneini.unknown_section();
+			}
+
+		} else if (zoneini.got_key()) {
+
+			if (zoneini.in_section("zone")) {
 				if (zoneini.got_key_string("name", strval)) {
 					aux::strip_quotes(strval);
 					zone->set_name(strval);
@@ -356,31 +409,35 @@ bool Base::load_zone(core::Zone *zone)
 					if (b) default_zone = zone;
 					continue;
 				} else {
-					con_warn << zoneini.name() << " unknown key '" << zoneini.key() << "' at line " << zoneini.line() << std::endl;
+					zoneini.unkown_key();
 				}
-			} else if (zoneini.section().compare("star") == 0) {
+
+			} else if (zoneini.in_section("star")) {
 				if (core::Parser::got_entity_key(zoneini, star)) {
 					continue;
 				} else if (zoneini.got_key_string("texture", star->entity_texture)) {
 					 continue;
 				} else {
-					con_warn << zoneini.name() << " unknown key '" << zoneini.key() << "' at line " << zoneini.line() << std::endl;
+					zoneini.unkown_key();
 				}
-			} else if (zoneini.section().compare("navpoint") == 0) {
+
+			} else if (zoneini.in_section("navpoint")) {
 				if (core::Parser::got_entity_key(zoneini, navpoint)) {
 					continue;
 				} else {
-					con_warn << zoneini.name() << " unknown key '" << zoneini.key() << "' at line " << zoneini.line() << std::endl;
+					zoneini.unkown_key();
 				}
-			} else if (zoneini.section().compare("jumppoint") == 0) {
+
+			} else if (zoneini.in_section("jumppoint")) {
 				if (core::Parser::got_entity_key(zoneini, jumppoint)) {
 					continue;
 				} else if (zoneini.got_key_string("target", jumppoint->jumppoint_targetlabel)) {
 					continue;
 				} else {
-					con_warn << zoneini.name() << " unknown key '" << zoneini.key() << "' at line " << zoneini.line() << std::endl;
+					zoneini.unkown_key();
 				}
-			} else if (zoneini.section().compare("planet") == 0) {
+
+			} else if (zoneini.in_section("planet")) {
 				if (core::Parser::got_entity_key(zoneini, planet)) {
 					continue;
 				} else if (zoneini.got_key_string("texture", planet->entity_texture)) {
@@ -388,71 +445,31 @@ bool Base::load_zone(core::Zone *zone)
 				} else if (zoneini.got_key_float("rotationspeed", planet->entity_rotationspeed)) {
 					continue;
 				} else {
-					con_warn << zoneini.name() << " unknown key '" << zoneini.key() << "' at line " << zoneini.line() << std::endl;
+					zoneini.unkown_key();
 				}
 
-			} else if (zoneini.section().compare("racetrack") == 0) {
+			} else if (zoneini.in_section("racetrack")) {
 				if (core::Parser::got_entity_key(zoneini, racetrack)) {
 					continue;
 				} else {
-					con_warn << zoneini.name() << " unknown key '" << zoneini.key() << "' at line " << zoneini.line() << std::endl;
+					zoneini.unkown_key();
 				}
 
-			} else if (zoneini.section().compare("checkpoint") == 0) {
+			} else if (zoneini.in_section("checkpoint")) {
 				if (core::Parser::got_entity_key(zoneini, checkpoint)) {
 					continue;
 				} else {
-					con_warn << zoneini.name() << " unknown key '" << zoneini.key() << "' at line " << zoneini.line() << std::endl;
+					zoneini.unkown_key();
 				}
 
-			} else if (zoneini.section().compare("entity") == 0) {
+			} else if (zoneini.in_section("entity")) {
 				if (core::Parser::got_entity_key(zoneini, entity)) {
 					continue;
 				} else {
-					con_warn << zoneini.name() << " unknown key '" << zoneini.key() << "' at line " << zoneini.line() << std::endl;
+					zoneini.unkown_key();
 				}
 			}
-		} else if (zoneini.got_section("zone")) {
-			continue;
-
-		} else if (zoneini.got_section("star")) {
-			star = new Star();
-			star->set_zone(zone);
-			count ++;
-
-		} else if (zoneini.got_section("navpoint")) {
-			navpoint = new NavPoint();
-			navpoint->set_zone(zone);
-			count ++;
-		
-		} else if (zoneini.got_section("jumppoint")) {
-			jumppoint = new JumpPoint();
-			jumppoint->set_zone(zone);
-			count ++;
-
-		} else if(zoneini.got_section("racetrack")) {
-			racetrack = new RaceTrack();
-			racetrack->set_zone(zone);
-
-		} else if(zoneini.got_section("checkpoint")) {
-			checkpoint = new CheckPoint(racetrack);
-			if (!racetrack) {
-				con_warn << zoneini.name() << " checkpoint without racetrack at line " << zoneini.line() << std::endl;
-			}
-
-		} else if (zoneini.got_section("planet")) {
-			planet = new Planet();
-			planet->set_zone(zone);
-			count ++;
-
-		} else if (zoneini.got_section("entity")) {
-			entity = new core::Entity();
-			entity->entity_flags += core::Entity::Static;
-			entity->set_zone(zone);
-			count ++;
-
-		} else if (zoneini.got_section()) {
-			con_warn << zoneini.name() << " unknown section '" << zoneini.section() << "' at line " << zoneini.line() << std::endl;
+			
 		}
 	}
 	zoneini.close();
-- 
cgit v1.2.3