summaryrefslogtreecommitdiff
path: root/src/Panorama.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Panorama.cxx')
-rw-r--r--src/Panorama.cxx35
1 files changed, 4 insertions, 31 deletions
diff --git a/src/Panorama.cxx b/src/Panorama.cxx
index 38f2037..a9ab97b 100644
--- a/src/Panorama.cxx
+++ b/src/Panorama.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Panorama.cxx,v 1.37 2005/05/10 17:06:50 hofmann Exp $"
+// "$Id: Panorama.cxx,v 1.38 2005/05/10 17:16:54 hofmann Exp $"
//
// Panorama routines.
//
@@ -69,43 +69,16 @@ Panorama::~Panorama() {
delete(mountains);
}
+
int
Panorama::load_file(const char *name) {
- FILE *fp;
- char buf[4000];
- char *vals[10];
- char **ap, *bp;
- double phi, lam, height;
- Hill *m;
-
visible_mountains->clear();
mountains->clobber();
-
-
- fp = fopen(name, "r");
- if (!fp) {
- perror("fopen");
- return 1;
- }
- while (fgets(buf, sizeof(buf), fp)) {
- bp = buf;
- for (ap = vals; (*ap = strsep(&bp, ",")) != NULL;)
- if (++ap >= &vals[10])
- break;
-
- phi = atof(vals[3]) * deg2rad;
- lam = atof(vals[4]) * deg2rad;
-
- height = atof(vals[5]);
-
- m = new Hill(vals[1], phi, lam, height);
-
- mountains->add(m);
+ if (mountains->load(name) != 0) {
+ return 1;
}
- fclose(fp);
-
update_angles();
return 0;