projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor model things
[carveJwlIkooP6JGAAIwe30JlM.git]
/
player.h
diff --git
a/player.h
b/player.h
index a7831b7e3b982e6182903e3ff3fd51bed6b1a222..e119ffcffaac33ee553f5e3f99076324f8bf6dbf 100644
(file)
--- a/
player.h
+++ b/
player.h
@@
-13,7
+13,7
@@
#include "skeleton.h"
#include "bvh.h"
#include "skeleton.h"
#include "bvh.h"
-
static
float
+
VG_STATIC
float
k_walkspeed = 20.0f, /* no longer used */
k_runspeed = 20.0f,
k_board_radius = 0.3f,
k_walkspeed = 20.0f, /* no longer used */
k_runspeed = 20.0f,
k_board_radius = 0.3f,
@@
-38,9
+38,10
@@
static float
k_walk_accel = 150.0f,
k_walk_friction = 8.0f;
k_walk_accel = 150.0f,
k_walk_friction = 8.0f;
-static int freecam = 0;
-static int walk_grid_iterations = 1;
-static float fc_speed = 10.0f;
+VG_STATIC int cl_playermdl_id = 0;
+VG_STATIC int freecam = 0;
+VG_STATIC int walk_grid_iterations = 1;
+VG_STATIC float fc_speed = 10.0f;
/*
* -----------------------------------------------------------------------------
/*
* -----------------------------------------------------------------------------
@@
-48,7
+49,7
@@
static float fc_speed = 10.0f;
* -----------------------------------------------------------------------------
*/
* -----------------------------------------------------------------------------
*/
-
static
struct gplayer
+
VG_STATIC
struct gplayer
{
/* Physics */
rigidbody collide_front, collide_back;
{
/* Physics */
rigidbody collide_front, collide_back;
@@
-127,7
+128,9
@@
static struct gplayer
/* player model */
struct player_model
{
/* player model */
struct player_model
{
- glmesh mesh;
+ glmesh player_meshes[3];
+
+ mdl_context meta;
struct skeleton sk;
struct skeleton_anim *anim_stand,
*anim_highg,
struct skeleton sk;
struct skeleton_anim *anim_stand,
*anim_highg,
@@
-159,7
+162,7
@@
static struct gplayer
rigidbody rb;
u32 parent;
}
rigidbody rb;
u32 parent;
}
-
*ragdoll
;
+
ragdoll[32]
;
u32 ragdoll_count;
int shoes[2];
u32 ragdoll_count;
int shoes[2];
@@
-175,12
+178,12
@@
player =
/*
* API
*/
/*
* API
*/
-
static
float *player_get_pos(void);
-
static
void player_kill(void);
-
static
float *player_cam_pos(void);
-
static
void player_save_frame(void);
-
static
void player_restore_frame(void);
-
static
void player_save_rewind_frame(void);
+
VG_STATIC
float *player_get_pos(void);
+
VG_STATIC
void player_kill(void);
+
VG_STATIC
float *player_cam_pos(void);
+
VG_STATIC
void player_save_frame(void);
+
VG_STATIC
void player_restore_frame(void);
+
VG_STATIC
void player_save_rewind_frame(void);
/*
* Submodules
/*
* Submodules
@@
-197,12
+200,20
@@
static void player_save_rewind_frame(void);
* -----------------------------------------------------------------------------
*/
* -----------------------------------------------------------------------------
*/
-
static
void player_init(void) /* 1 */
+
VG_STATIC
void player_init(void) /* 1 */
{
rb_init( &player.phys.rb );
rb_init( &player.collide_front );
rb_init( &player.collide_back );
{
rb_init( &player.phys.rb );
rb_init( &player.collide_front );
rb_init( &player.collide_back );
+ vg_convar_push( (struct vg_convar){
+ .name = "cl_playermdl_id",
+ .data = &cl_playermdl_id,
+ .data_type = k_convar_dtype_i32,
+ .opt_i32 = { .min=0, .max=2, .clamp=1 },
+ .persistent = 1
+ });
+
vg_convar_push( (struct vg_convar){
.name = "walk_speed",
.data = &k_walkspeed,
vg_convar_push( (struct vg_convar){
.name = "walk_speed",
.data = &k_walkspeed,
@@
-249,14
+260,14
@@
static void player_init(void) /* 1 */
});
player.rewind_length = 0;
});
player.rewind_length = 0;
- player.rewind_buffer = vg_alloc( sizeof(struct rewind_frame)
- * PLAYER_REWIND_FRAMES );
+ player.rewind_buffer =
+ vg_linear_alloc( vg_mem.rtmemory,
+ sizeof(struct rewind_frame) * PLAYER_REWIND_FRAMES );
- /* other systems */
- vg_loader_highwater( player_model_init, player_model_free, NULL );
+ player_model_init();
}
}
-
static
void player_save_rewind_frame(void)
+
VG_STATIC
void player_save_rewind_frame(void)
{
if( player.rewind_length < PLAYER_REWIND_FRAMES )
{
{
if( player.rewind_length < PLAYER_REWIND_FRAMES )
{
@@
-278,7
+289,7
@@
static void player_save_rewind_frame(void)
}
/* Deal with input etc */
}
/* Deal with input etc */
-
static
void player_update_pre(void)
+
VG_STATIC
void player_update_pre(void)
{
struct player_phys *phys = &player.phys;
{
struct player_phys *phys = &player.phys;
@@
-289,9
+300,9
@@
static void player_update_pre(void)
if( vg_get_button_down( "reset" ) )
{
if( vg_get_button_down( "reset" ) )
{
- double delta = world
_routes.time - world_routes
.last_use;
+ double delta = world
.time - world
.last_use;
- if(
delta <= RESET_MAX_TIME
)
+ if(
(delta <= RESET_MAX_TIME) && (world.last_use != 0.0)
)
{
player.rewinding = 1;
player.rewind_sound_wait = 1;
{
player.rewinding = 1;
player.rewind_sound_wait = 1;
@@
-353,7
+364,7
@@
static void player_update_pre(void)
}
}
}
}
-
static
void player_update_fixed(void) /* 2 */
+
VG_STATIC
void player_update_fixed(void) /* 2 */
{
if( player.rewinding )
return;
{
if( player.rewinding )
return;
@@
-380,7
+391,7
@@
static void player_update_fixed(void) /* 2 */
}
}
}
}
-
static
void player_update_post(void)
+
VG_STATIC
void player_update_post(void)
{
for( int i=0; i<player.land_log_count; i++ )
vg_line_cross( player.land_target_log[i],
{
for( int i=0; i<player.land_log_count; i++ )
vg_line_cross( player.land_target_log[i],
@@
-461,17
+472,6
@@
static void player_update_post(void)
budget -= advt;
}
budget -= advt;
}
-#if 0
- if( player.dist_accum >= 5.0f )
- {
- audio_lock();
- audio_player_playclip( &audio_rewind_player, &audio_rewind[4] );
- audio_unlock();
-
- player.dist_accum -= 5.0f;
- }
-#endif
-
player.rewind_time = vg_maxf( 0.0f, player.rewind_time );
float current_time = vg.time - player.diag_rewind_start,
player.rewind_time = vg_maxf( 0.0f, player.rewind_time );
float current_time = vg.time - player.diag_rewind_start,
@@
-539,7
+539,7
@@
static void player_update_post(void)
player_audio();
}
player_audio();
}
-
static
void draw_player( m4x3f cam )
+
VG_STATIC
void draw_player( m4x3f cam )
{
if( player.is_dead )
player_model_copy_ragdoll();
{
if( player.is_dead )
player_model_copy_ragdoll();
@@
-555,8
+555,8
@@
static void draw_player( m4x3f cam )
0,
(float *)player.mdl.sk.final_mtx );
0,
(float *)player.mdl.sk.final_mtx );
- mesh_bind( &player.mdl.
mesh
);
- mesh_draw( &player.mdl.
mesh
);
+ mesh_bind( &player.mdl.
player_meshes[cl_playermdl_id]
);
+ mesh_draw( &player.mdl.
player_meshes[cl_playermdl_id]
);
}
/*
}
/*
@@
-565,12
+565,12
@@
static void draw_player( m4x3f cam )
* -----------------------------------------------------------------------------
*/
* -----------------------------------------------------------------------------
*/
-
static
float *player_get_pos(void)
+
VG_STATIC
float *player_get_pos(void)
{
return player.phys.rb.co;
}
{
return player.phys.rb.co;
}
-
static
void player_kill(void)
+
VG_STATIC
void player_kill(void)
{
if( player.death_tick_allowance == 0 )
{
{
if( player.death_tick_allowance == 0 )
{
@@
-579,7
+579,7
@@
static void player_kill(void)
}
}
}
}
-
static
float *player_cam_pos(void)
+
VG_STATIC
float *player_cam_pos(void)
{
return player.camera_pos;
}
{
return player.camera_pos;
}