#ifndef CHARACTER_H
#define CHARACTER_H
-/* TODO: -> Common.h */
-#define VG_3D
-#include "vg/vg.h"
-
+#include "common.h"
#include "model.h"
#include "scene.h"
#include "ik.h"
#include "rigidbody.h"
#include "shaders/character.h"
+vg_tex2d tex_pallet = { .path = "textures/ch_gradient.qoi" };
+
+static void character_register(void)
+{
+ shader_character_register();
+}
+
+static void character_init(void)
+{
+ vg_tex2d_init( (vg_tex2d *[]){ &tex_pallet }, 1 );
+}
+
#define FOREACH_PART(FN) \
FN( foot_l ) \
FN( foot_r ) \
#define ADD_ONE(_) +1
#define PART_COUNT FOREACH_PART(ADD_ONE)
+
enum character_part
{
FOREACH_PART( MAKE_ENUM )
static void character_draw( struct character *ch, float temp )
{
shader_character_use();
-
shader_character_uPv( vg_pv );
+
+ vg_tex2d_bind( &tex_pallet, 0 );
shader_character_uTexMain( 0 );
shader_character_uOpacity( temp );
}
}
-static void character_register(void)
-{
- shader_character_register();
-}
-
-
/*
* Ragdoll Stuff
*/
rb_debug( &ch->ragdoll[k_chpart_foot_r], 0xff00a5ff );
}
-static void character_ragdoll_iter( struct character *ch, scene *sc )
+static void character_ragdoll_iter( struct character *ch )
{
for( int i=0; i<PART_COUNT; i++ )
- {
- rb_build_manifold( &ch->ragdoll[i], sc );
- }
+ rb_build_manifold( &ch->ragdoll[i] );
v3f rv;