summaryrefslogtreecommitdiff
path: root/src/Hill.cxx
diff options
context:
space:
mode:
authorJohannes Hofmann <johannes.hofmann@gmx.de>2005-05-03 18:04:14 +0000
committerJohannes Hofmann <johannes.hofmann@gmx.de>2005-05-03 18:04:14 +0000
commit16c6d891d2236a30bb742c5bd4d0ac4e56bb901e (patch)
treed19f0961d42bbfb228b72cf16152c7665bf39e80 /src/Hill.cxx
parent279fa2391a9bdff90d0fcf5c2d160aa11bfc4ac9 (diff)
use class Mountains
use class Mountains
Diffstat (limited to 'src/Hill.cxx')
-rw-r--r--src/Hill.cxx66
1 files changed, 65 insertions, 1 deletions
diff --git a/src/Hill.cxx b/src/Hill.cxx
index 550f925..8d9c4f8 100644
--- a/src/Hill.cxx
+++ b/src/Hill.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Hill.cxx,v 1.4 2005/04/30 21:18:43 hofmann Exp $"
+// "$Id: Hill.cxx,v 1.5 2005/05/03 20:04:14 hofmann Exp $"
//
// PSEditWidget routines.
//
@@ -22,6 +22,7 @@
//
#include <stdlib.h>
+#include <stdio.h>
#include <string.h>
#include "Mountain.H"
@@ -92,3 +93,66 @@ void
Mountain::clear_next_visible() {
next_visible = NULL;
}
+
+
+
+Mountains::Mountains() {
+ fprintf(stderr, "===>huhu\n");
+ num = 0;
+ cap = 100;
+ m = (Mountain **) malloc(cap * sizeof(class Mountain *));
+}
+
+Mountains::~Mountains() {
+ if (m) {
+ free(m);
+ }
+}
+
+
+void
+Mountains::add(Mountain *m1) {
+ if (num >= cap) {
+ cap = cap?cap * 2:100;
+ m = (Mountain **) realloc(m, cap * sizeof(class Mountain *));
+ }
+
+ m[num++] = m1;
+}
+
+void
+Mountains::clear() {
+ if (m) {
+ free(m);
+ m = NULL;
+ }
+ cap = 0;
+ num = 0;
+}
+
+void
+Mountains::clobber() {
+ int i;
+
+ for(i=0; i<get_num();i++) {
+ if (get(i)) {
+ delete(get(i));
+ }
+ }
+
+ clear();
+}
+
+int
+Mountains::get_num() {
+ return num;
+}
+
+Mountain *
+Mountains::get(int n) {
+ if (n < 0 || n >= num) {
+ return NULL;
+ } else {
+ return m[n];
+ }
+}