Update switch:
[neverball] / share / mapc.c
index 48e85ea..e8b5f0a 100644 (file)
@@ -72,7 +72,7 @@
 #define MAXU   16
 #define MAXW    32
 #define MAXD    128
-#define MAXA   512
+#define MAXA   8192
 #define MAXI   32767
 
 static int overflow(const char *s)
@@ -790,19 +790,23 @@ static void make_body(struct s_file *fp,
         if (strcmp(k[i], "targetname") == 0)
             make_sym(v[i], bi);
 
-        if (strcmp(k[i], "target") == 0)
+       else if (strcmp(k[i], "target") == 0)
             make_ref(v[i], &bp->pi);
 
-        if (strcmp(k[i], "model") == 0)
+       else if (strcmp(k[i], "model") == 0)
             read_obj(fp, v[i]);
 
-        if (strcmp(k[i], "origin") == 0)
+       else if (strcmp(k[i], "origin") == 0)
             sscanf(v[i], "%d %d %d", &x, &y, &z);
 
-        if (strcmp(k[i], "message") == 0)
+       else if (strcmp(k[i], "classname") != 0)
         {
-            strcpy(fp->av, v[i]);
-            fp->ac = (int) (strlen(v[i]) + 1);
+           /* Considers other strings as metadata */
+            strcat(fp->av, k[i]);
+            strcat(fp->av, "=");
+            strcat(fp->av, v[i]);
+           strcat(fp->av, "\n");
+            fp->ac += (int) (strlen(v[i]) + (strlen(k[i])) + 2);
         }
     }
 
@@ -924,11 +928,14 @@ static void make_goal(struct s_file *fp,
     zp->p[1] = 0.f;
     zp->p[2] = 0.f;
     zp->r    = 0.75;
+    zp->s    = 0;
 
     for (i = 0; i < c; i++)
     {
         if (strcmp(k[i], "radius") == 0)
             sscanf(v[i], "%f", &zp->r);
+        if (strcmp(k[i], "skip") == 0)
+            sscanf(v[i], "%d", &zp->s);
 
         if (strcmp(k[i], "origin") == 0)
         {
@@ -1030,6 +1037,7 @@ static void make_swch(struct s_file *fp,
     xp->t    = 0;
     xp->f0   = 0;
     xp->f    = 0;
+    xp->i    = 0;
 
     for (i = 0; i < c; i++)
     {
@@ -1044,6 +1052,9 @@ static void make_swch(struct s_file *fp,
 
         if (strcmp(k[i], "state") == 0)
             xp->f = atoi(v[i]);
+       
+        if (strcmp(k[i], "invisible") == 0)
+            xp->i = atoi(v[i]);
 
         if (strcmp(k[i], "origin") == 0)
         {