#include "model.h"
#include "skeleton.h"
+#include "camera.h"
+#include "world.h"
struct player_avatar
{
id_board;
};
-struct player_model
-{
- glmesh mesh;
- GLuint texture;
-};
-
enum eboard_truck{
k_board_truck_back = 0,
k_board_truck_front = 1
k_board_wheel_br = 3,
};
-struct player_board
-{
+/* 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],
board;
};
+struct player_model{
+ struct dynamic_model_1texture mdl;
+};
+
+enum board_shader{
+ k_board_shader_player,
+ k_board_shader_entity
+};
+
+static void dynamic_model_load( mdl_context *ctx,
+ struct dynamic_model_1texture *mdl,
+ const char *path );
+static void dynamic_model_unload( struct dynamic_model_1texture *mdl );
+
+static void player_board_load( struct player_board *mdl, const char *path );
+static void player_board_unload( struct player_board *mdl );
+
+static void player_model_load( struct player_model *board, const char *path);
+static void player_model_unload( struct player_model *board );
+
+static void render_board( camera *cam, world_instance *world,
+ struct player_board *board, m4x3f root,
+ struct player_board_pose *pose,
+ enum board_shader shader );
+
+static void render_playermodel( camera *cam, world_instance *world,
+ int depth_compare,
+ struct player_model *model,
+ struct skeleton *skeleton,
+ m4x3f *final_mtx );
+static void apply_full_skeleton_pose( struct skeleton *sk, player_pose *pose,
+ m4x3f *final_mtx );
+
#endif /* PLAYER_RENDER_H */