I can't sleep, so fixing bugs #39
[neverball] / share / solid.h
index 8198d9a..7a0afec 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef SOL_H
 #define SOL_H
 
-#include <SDL.h>
 #include "glext.h"
 #include "base_config.h"
 
@@ -198,18 +197,22 @@ struct s_goal
 {
     float p[3];                                /* position                   */
     float r;                                   /* radius                     */
+    int   s;                                   /* levels skiped              */
+    int   c;                                   /* special coloration?        */
 };
 
 struct s_swch
 {
     float p[3];                                /* position                   */
     float r;                                   /* radius                     */
-    int  pi;
+    int  pi;                                   /* the linked path            */
 
     float t0;                                  /* default timer              */
     float t;                                   /* current timer              */
     int   f0;                                  /* default state              */
     int   f;                                   /* current state              */
+    int   i;                                   /* is invisible?              */
+    int   e;                                   /* is a ball inside it?       */
 };
 
 struct s_bill
@@ -301,21 +304,20 @@ struct s_file
 
 /*---------------------------------------------------------------------------*/
 
-int   sol_load(struct s_file *, const char *, int, int);
+void sol_body_p(float p[3], const struct s_file *, const struct s_body *);
+
+/*---------------------------------------------------------------------------*/
+
+int   sol_load_only_file(struct s_file *, const char *);
 int   sol_stor(struct s_file *, const char *);
 void  sol_free(struct s_file *);
 
-void  sol_back(const struct s_file *, float, float, float);
-void  sol_refl(const struct s_file *);
-void  sol_draw(const struct s_file *);
-void  sol_shad(const struct s_file *);
-
 float sol_step(struct s_file *, const float *, float, int, int *);
 
 int   sol_coin_test(struct s_file *, float *, float);
-int   sol_goal_test(struct s_file *, float *, int);
+struct s_goal *sol_goal_test(struct s_file *, float *, int);
 int   sol_jump_test(struct s_file *, float *, int);
-int   sol_swch_test(struct s_file *, int, int);
+int   sol_swch_test(struct s_file *, int);
 
 /*---------------------------------------------------------------------------*/