X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_glide.h;fp=player_glide.h;h=2e2d1eb288d67ae52f5999d47971263011ef169c;hb=a5d462e0b43a8f0c4a36a17a11636a56f324e45f;hp=83a4d38e2a871a88605c253e1dd45766a0a81d3e;hpb=8e54abfae338fc4c5ad2c95310e137f77f8a0e66;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_glide.h b/player_glide.h index 83a4d38..2e2d1eb 100644 --- a/player_glide.h +++ b/player_glide.h @@ -32,8 +32,9 @@ struct player_glide { }; enum rb_shape shape; + bool is_damage; } - parts[3]; + parts[4]; mdl_context glider; GLuint *glider_textures; @@ -42,23 +43,39 @@ struct player_glide { static player_glide = { .parts = { { - .co = { 1.0f, 1.0f, -1.0f }, + .co = { 1.0f, 0.5f, -1.0f }, .euler = { VG_TAUf*0.25f, VG_TAUf*0.125f, 0.0f }, .shape = k_rb_shape_capsule, .inf = { .h = 2.82842712475f, .r = 0.25f }, }, { - .co = { -1.0f, 1.0f, -1.0f }, + .co = { -1.0f, 0.5f, -1.0f }, .euler = { VG_TAUf*0.25f, -VG_TAUf*0.125f, 0.0f }, .shape = k_rb_shape_capsule, .inf = { .h = 2.82842712475f, .r = 0.25f }, }, + { + .co = { 0.0f, 0.5f, 1.0f }, + .euler = { VG_TAUf*0.25f, VG_TAUf*0.25f, 0.0f }, + .shape = k_rb_shape_capsule, + .inf = { .h = 6.0f, .r = 0.25f }, + }, + { + .co = { 0.0f, -0.5f, 0.0f }, + .euler = { VG_TAUf*0.25f, VG_TAUf*0.25f, 0.0f }, + .shape = k_rb_shape_capsule, + .inf = { .h = 2.0f, .r = 0.25f }, + .is_damage = 1, + }, + +#if 0 { .co = { 0.0f, 0.0f, 0.0f }, .euler = { 0.0f, 0.0f, 0.0f }, .shape = k_rb_shape_sphere, .r = 0.5f } +#endif } }; @@ -71,8 +88,8 @@ static void player_glide_pose( void *animator, player_pose *pose ); static void player_glide_post_animate(void); static void player_glide_im_gui(void); static void player_glide_bind(void); -static void player_glide_transition( bool reverse ); -static bool glider_physics(void); +static void player_glide_transition(void); +static bool glider_physics( v2f steer ); struct player_subsystem_interface static player_subsystem_glide = { .pre_update = player_glide_pre_update,