add player guide
[carveJwlIkooP6JGAAIwe30JlM.git] / player_render.h
index a31f19a86fe128f4c4c48952c3389ff75a2fbd5c..f33e2db6f76faa189d3b444c974535283cb57bd7 100644 (file)
@@ -38,11 +38,15 @@ enum eboard_wheel{
    k_board_wheel_br = 3,
 };
 
-struct player_board{
-   mdl_context model;
-
+/* TODO: Fully featured dynamic models
+ * This is FAR from the final system we want at all, but it will do for now */
+struct dynamic_model_1texture{
    glmesh mesh;
    GLuint texture;
+};
+
+struct player_board{
+   struct dynamic_model_1texture mdl;
 
    v4f wheel_positions[4],
        truck_positions[2],
@@ -53,9 +57,12 @@ struct player_board{
                board;
 };
 
+struct board_pose {
+   f32 lean;
+};
+
 struct player_model{
-   glmesh mesh;
-   GLuint texture;
+   struct dynamic_model_1texture mdl;
 };
 
 enum board_shader{
@@ -63,10 +70,25 @@ enum board_shader{
    k_board_shader_entity
 };
 
+VG_STATIC void dynamic_model_load( mdl_context *ctx,
+                                   struct dynamic_model_1texture *mdl, 
+                                   const char *path );
+VG_STATIC void dynamic_model_unload( struct dynamic_model_1texture *mdl );
+
 VG_STATIC void player_board_load( struct player_board *mdl, const char *path );
 VG_STATIC void player_board_unload( struct player_board *mdl );
+
+VG_STATIC void player_model_load( struct player_model *board, const char *path);
+VG_STATIC void player_model_unload( struct player_model *board );
+
 VG_STATIC void render_board( camera *cam, world_instance *world,
                              struct player_board *board, m4x3f root,
+                             struct board_pose *pose,
                              enum board_shader shader );
 
+VG_STATIC void render_playermodel( camera *cam, world_instance *world,
+                                   int depth_compare,
+                                   struct player_model *model,
+                                   struct skeleton *skeleton );
+
 #endif /* PLAYER_RENDER_H */