Lines Matching refs:pcam

59 camera_t * camera_ctor( camera_t * pcam )  in camera_ctor()  argument
67 memset( pcam, 0, sizeof( *pcam ) ); in camera_ctor()
69 pcam->move_mode = pcam->move_mode_old = CAM_PLAYER; in camera_ctor()
70 pcam->turn_mode = cfg.autoturncamera; in camera_ctor()
72 pcam->swing = 0; in camera_ctor()
73 pcam->swingrate = 0; in camera_ctor()
74 pcam->swingamp = 0; in camera_ctor()
75 pcam->pos.x = 0; in camera_ctor()
76 pcam->pos.y = 1500; in camera_ctor()
77 pcam->pos.z = 1500; in camera_ctor()
78 pcam->zoom = 1000; in camera_ctor()
79 pcam->zadd = 800; in camera_ctor()
80 pcam->zaddgoto = 800; in camera_ctor()
81 pcam->zgoto = 800; in camera_ctor()
82 pcam->turn_z_rad = -PI / 4.0f; in camera_ctor()
83 pcam->turn_z_one = pcam->turn_z_rad / TWO_PI; in camera_ctor()
84 pcam->ori.facing_z = CLIP_TO_16BITS(( int )( pcam->turn_z_one * ( float )0x00010000 ) ) ; in camera_ctor()
85 pcam->turnadd = 0; in camera_ctor()
86 pcam->sustain = 0.60f; in camera_ctor()
87 pcam->turnupdown = ( float )( PI / 4 ); in camera_ctor()
88 pcam->roll = 0; in camera_ctor()
89 pcam->motion_blur = 0; in camera_ctor()
91 pcam->mView = pcam->mViewSave = ViewMatrix( t1.v, t2.v, t3.v, 0 ); in camera_ctor()
92pcam->mProjection = ProjectionMatrix( .001f, 2000.0f, ( float )( CAM_FOV * PI / 180 ) ); // 60 deg… in camera_ctor()
93pcam->mProjection = MatrixMult( Translate( 0, 0, -0.999996f ), pcam->mProjection ); // Fix Z value… in camera_ctor()
94pcam->mProjection = MatrixMult( ScaleXYZ( -1, -1, 100000 ), pcam->mProjection ); // HUK // ...'ca… in camera_ctor()
97 pcam->mProjection.v[10] /= 2.0f; in camera_ctor()
98 pcam->mProjection.v[11] /= 2.0f; in camera_ctor()
102 return pcam; in camera_ctor()
127 void camera_look_at( camera_t * pcam, float x, float y ) in camera_look_at() argument
131 pcam->zgoto = pcam->zadd; in camera_look_at()
132 if ( 0 != pcam->turn_time ) in camera_look_at()
134 pcam->turn_z_rad = ( 1.5f * PI ) - ATAN2( y - pcam->pos.y, x - pcam->pos.x ); // xgg in camera_look_at()
139 void camera_make_matrix( camera_t * pcam ) in camera_make_matrix() argument
143 float local_swingamp = pcam->swingamp; in camera_make_matrix()
146 if ( pcam->motion_blur > 0 ) in camera_make_matrix()
148 pcam->motion_blur *= 0.99f; //Decay factor in camera_make_matrix()
149 if ( pcam->motion_blur < 0.001f ) pcam->motion_blur = 0; in camera_make_matrix()
156 pcam->swing = ( pcam->swing + 120 ) & 0x3FFF; in camera_make_matrix()
160 pcam->zaddgoto = CLIP( pcam->zaddgoto + zoom_add, CAM_ZADD_MIN, CAM_ZADD_MAX ); in camera_make_matrix()
161 pcam->motion_blur = MIN( 1.00f, 0.5f + 0.03f * local_stats.grog_level ); in camera_make_matrix()
167 pcam->turnadd = local_stats.daze_level * CAM_TURN_KEY * 0.5f; in camera_make_matrix()
168 pcam->motion_blur = MIN( 1.00f, 0.5f + 0.03f * local_stats.daze_level ); in camera_make_matrix()
172pcam->mView = MatrixMult( Translate( pcam->pos.x, -pcam->pos.y, pcam->pos.z ), pcam->mViewSave ); … in camera_make_matrix()
175 pcam->roll = turntosin[pcam->swing] * local_swingamp; in camera_make_matrix()
176 pcam->mView = MatrixMult( RotateY( pcam->roll ), pcam->mView ); in camera_make_matrix()
180 else if ( 0 != pcam->roll ) in camera_make_matrix()
182 pcam->roll *= 0.9875f; //Decay factor in camera_make_matrix()
183 pcam->mView = MatrixMult( RotateY( pcam->roll ), pcam->mView ); in camera_make_matrix()
186 if ( ABS( pcam->roll ) < 0.001f ) in camera_make_matrix()
188 pcam->roll = 0; in camera_make_matrix()
189 pcam->swing = 0; in camera_make_matrix()
193 pcam->mView = MatrixMult( RotateZ( pcam->turn_z_rad ), pcam->mView ); in camera_make_matrix()
194 pcam->mView = MatrixMult( RotateX( pcam->turnupdown ), pcam->mView ); in camera_make_matrix()
197 mat_getCamForward( pcam->mView.v, pcam->vfw.v ); in camera_make_matrix()
198 fvec3_self_normalize( pcam->vfw.v ); in camera_make_matrix()
200 mat_getCamUp( pcam->mView.v, pcam->vup.v ); in camera_make_matrix()
201 fvec3_self_normalize( pcam->vup.v ); in camera_make_matrix()
203 mat_getCamRight( pcam->mView.v, pcam->vrt.v ); in camera_make_matrix()
204 fvec3_self_normalize( pcam->vrt.v ); in camera_make_matrix()
208 void camera_adjust_angle( camera_t * pcam, float height ) in camera_adjust_angle() argument
218 pcam->turnupdown = (( CAM_UPDOWN_MIN * percentmin ) + ( CAM_UPDOWN_MAX * percentmax ) ); in camera_adjust_angle()
219 pcam->zoom = ( CAM_ZOOM_MIN * percentmin ) + ( CAM_ZOOM_MAX * percentmax ); in camera_adjust_angle()
223 void camera_move( camera_t * pcam, ego_mpd_t * pmesh ) in camera_move() argument
231 if ( CAM_TURN_NONE != pcam->turn_mode ) in camera_move()
232 pcam->turn_time = 255; in camera_move()
233 else if ( 0 != pcam->turn_time ) in camera_move()
234 pcam->turn_time--; in camera_move()
237 x = pcam->track_pos.x; in camera_move()
238 y = pcam->track_pos.y; in camera_move()
239 z = pcam->track_pos.z; in camera_move()
242 if ( CAM_FREE == pcam->move_mode ) in camera_move()
247 pcam->track_pos.x -= pcam->mView.CNV( 0, 1 ) * 50; in camera_move()
248 pcam->track_pos.y -= pcam->mView.CNV( 1, 1 ) * 50; in camera_move()
253 pcam->track_pos.x += pcam->mView.CNV( 0, 1 ) * 50; in camera_move()
254 pcam->track_pos.y += pcam->mView.CNV( 1, 1 ) * 50; in camera_move()
259 pcam->track_pos.x += pcam->mView.CNV( 0, 0 ) * 50; in camera_move()
260 pcam->track_pos.y += pcam->mView.CNV( 1, 0 ) * 50; in camera_move()
265 pcam->track_pos.x -= pcam->mView.CNV( 0, 0 ) * 10; in camera_move()
266 pcam->track_pos.y -= pcam->mView.CNV( 1, 0 ) * 10; in camera_move()
271 pcam->turnadd += CAM_TURN_KEY; in camera_move()
276 pcam->turnadd -= CAM_TURN_KEY; in camera_move()
279 pcam->track_pos.z = 128 + mesh_get_level( pmesh, pcam->track_pos.x, pcam->track_pos.y ); in camera_move()
281 else if ( CAM_RESET == pcam->move_mode ) in camera_move()
316 else if ( CAM_PLAYER == pcam->move_mode ) in camera_move()
402 if ( CAM_RESET == pcam->move_mode ) in camera_move()
405 pcam->track_pos.x = x; in camera_move()
406 pcam->track_pos.y = y; in camera_move()
407 pcam->track_pos.z = z; in camera_move()
408 pcam->track_level = level; in camera_move()
411 pcam->move_mode = pcam->move_mode_old; in camera_move()
416 pcam->track_pos.x = 0.9f * pcam->track_pos.x + 0.1f * x; in camera_move()
417 pcam->track_pos.y = 0.9f * pcam->track_pos.y + 0.1f * y; in camera_move()
418 pcam->track_pos.z = 0.9f * pcam->track_pos.z + 0.1f * z; in camera_move()
419 pcam->track_level = 0.9f * pcam->track_level + 0.1f * level; in camera_move()
422 pcam->turnadd = pcam->turnadd * pcam->sustain; in camera_move()
423 pcam->zadd = 0.9f * pcam->zadd + 0.1f * pcam->zaddgoto; in camera_move()
424 pcam->pos.z = 0.9f * pcam->pos.z + 0.1f * pcam->zgoto; in camera_move()
427 if ( CAM_TURN_GOOD == pcam->turn_mode && 1 == local_numlpla ) in camera_move()
433 pcam->turnadd -= ( mous.x * 0.5f ); in camera_move()
439pcam->turnadd += ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_LEFT ) - control_is_pressed… in camera_move()
446 pcam->turnadd -= joy[0].x * CAM_TURN_JOY; in camera_move()
454 pcam->turnadd -= joy[1].x * CAM_TURN_JOY; in camera_move()
464 pcam->turnadd += ( mous.x / 3.0f ); in camera_move()
465 pcam->zaddgoto += ( float ) mous.y / 3.0f; in camera_move()
466 if ( pcam->zaddgoto < CAM_ZADD_MIN ) pcam->zaddgoto = CAM_ZADD_MIN; in camera_move()
467 if ( pcam->zaddgoto > CAM_ZADD_MAX ) pcam->zaddgoto = CAM_ZADD_MAX; in camera_move()
469 pcam->turn_time = CAM_TURN_TIME; // Sticky turn... in camera_move()
478 pcam->turnadd += joy[0].x * CAM_TURN_JOY; in camera_move()
479 pcam->zaddgoto += joy[0].y * CAM_TURN_JOY; in camera_move()
480 if ( pcam->zaddgoto < CAM_ZADD_MIN ) pcam->zaddgoto = CAM_ZADD_MIN; in camera_move()
481 if ( pcam->zaddgoto > CAM_ZADD_MAX ) pcam->zaddgoto = CAM_ZADD_MAX; in camera_move()
483 pcam->turn_time = CAM_TURN_TIME; // Sticky turn... in camera_move()
492 pcam->turnadd += joy[1].x * CAM_TURN_JOY; in camera_move()
493 pcam->zaddgoto += joy[1].y * CAM_TURN_JOY; in camera_move()
494 if ( pcam->zaddgoto < CAM_ZADD_MIN ) pcam->zaddgoto = CAM_ZADD_MIN; in camera_move()
495 if ( pcam->zaddgoto > CAM_ZADD_MAX ) pcam->zaddgoto = CAM_ZADD_MAX; in camera_move()
497 pcam->turn_time = CAM_TURN_TIME; // Sticky turn... in camera_move()
507pcam->turnadd += ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_CAMERA_LEFT ) - control_is_… in camera_move()
508 pcam->turn_time = CAM_TURN_TIME; // Sticky turn... in camera_move()
513pcam->zaddgoto += ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_CAMERA_OUT ) - control_is_… in camera_move()
514 if ( pcam->zaddgoto < CAM_ZADD_MIN ) pcam->zaddgoto = CAM_ZADD_MIN; in camera_move()
515 if ( pcam->zaddgoto > CAM_ZADD_MAX ) pcam->zaddgoto = CAM_ZADD_MAX; in camera_move()
519 pcam->pos.x -= ( float )( pcam->mView.CNV( 0, 0 ) ) * pcam->turnadd; // xgg in camera_move()
520 pcam->pos.y += ( float )( pcam->mView.CNV( 1, 0 ) ) * -pcam->turnadd; in camera_move()
523 if ( 0 != pcam->turn_time ) in camera_move()
525 pcam->center.x = pcam->center.x * 0.9f + pcam->track_pos.x * 0.1f; in camera_move()
526 pcam->center.y = pcam->center.y * 0.9f + pcam->track_pos.y * 0.1f; in camera_move()
530 x = pcam->track_pos.x - pcam->pos.x; in camera_move()
531 y = pcam->track_pos.y - pcam->pos.y; in camera_move()
532 …newx = -( pcam->mView.CNV( 0, 0 ) * x + pcam->mView.CNV( 1, 0 ) * y ); // newx = -(pcam->mView(0,0… in camera_move()
533 …newy = -( pcam->mView.CNV( 0, 1 ) * x + pcam->mView.CNV( 1, 1 ) * y ); // newy = -(pcam->mView(0,1… in camera_move()
540 z = ( CAM_TRACK_X_AREA_LOW * ( CAM_ZADD_MAX - pcam->zadd ) ) + in camera_move()
541 ( CAM_TRACK_X_AREA_HIGH * ( pcam->zadd - CAM_ZADD_MIN ) ); in camera_move()
555 z = ( CAM_TRACK_Y_AREA_MINLOW * ( CAM_ZADD_MAX - pcam->zadd ) ) + in camera_move()
556 ( CAM_TRACK_Y_AREA_MINHIGH * ( pcam->zadd - CAM_ZADD_MIN ) ); in camera_move()
566 z = ( CAM_TRACK_Y_AREA_MAXLOW * ( CAM_ZADD_MAX - pcam->zadd ) ) + in camera_move()
567 ( CAM_TRACK_Y_AREA_MAXHIGH * ( pcam->zadd - CAM_ZADD_MIN ) ); in camera_move()
576 turnsin = TO_TURN( pcam->ori.facing_z ); in camera_move()
577pcam->center.x += movex * turntocos[ turnsin & TRIG_TABLE_MASK ] + movey * turntosin[ turnsin & TR… in camera_move()
578pcam->center.y += -movex * turntosin[ turnsin & TRIG_TABLE_MASK ] + movey * turntocos[ turnsin & T… in camera_move()
581 camera_look_at( pcam, pcam->center.x, pcam->center.y ); in camera_move()
582 pcam->pos.x = ( float ) pcam->center.x + ( pcam->zoom * SIN( pcam->turn_z_rad ) ); in camera_move()
583 pcam->pos.y = ( float ) pcam->center.y + ( pcam->zoom * COS( pcam->turn_z_rad ) ); in camera_move()
585 camera_adjust_angle( pcam, pcam->pos.z ); in camera_move()
587 camera_make_matrix( pcam ); in camera_move()
589 pcam->turn_z_one = ( pcam->turn_z_rad ) / ( TWO_PI ); in camera_move()
590 pcam->ori.facing_z = CLIP_TO_16BITS( FLOAT_TO_FP16( pcam->turn_z_one ) ); in camera_move()
594 void camera_reset( camera_t * pcam, ego_mpd_t * pmesh ) in camera_reset() argument
598 pcam->swing = 0; in camera_reset()
599 pcam->pos.x = pmesh->gmem.edge_x / 2; in camera_reset()
600 pcam->pos.y = pmesh->gmem.edge_y / 2; in camera_reset()
601 pcam->pos.z = 1500; in camera_reset()
602 pcam->zoom = 1000; in camera_reset()
603 pcam->center.x = pcam->pos.x; in camera_reset()
604 pcam->center.y = pcam->pos.y; in camera_reset()
605 pcam->track_pos.x = pcam->pos.x; in camera_reset()
606 pcam->track_pos.y = pcam->pos.y; in camera_reset()
607 pcam->track_pos.z = 1500; in camera_reset()
608 pcam->turnadd = 0; in camera_reset()
609 pcam->track_level = 0; in camera_reset()
610 pcam->zadd = 1500; in camera_reset()
611 pcam->zaddgoto = CAM_ZADD_MAX; in camera_reset()
612 pcam->zgoto = 1500; in camera_reset()
613 pcam->turn_z_rad = -PI / 4.0f; in camera_reset()
614 pcam->turn_z_one = pcam->turn_z_rad / TWO_PI; in camera_reset()
615 pcam->ori.facing_z = CLIP_TO_16BITS(( int )( pcam->turn_z_one * ( float )0x00010000 ) ) ; in camera_reset()
616 pcam->turnupdown = PI / 4.0f; in camera_reset()
617 pcam->roll = 0; in camera_reset()
620 camera_reset_target( pcam, pmesh ); in camera_reset()
624 bool_t camera_reset_target( camera_t * pcam, ego_mpd_t * pmesh ) in camera_reset_target() argument
632 if ( NULL == pcam ) return bfalse; in camera_reset_target()
634 turn_mode_save = pcam->turn_mode; in camera_reset_target()
637 pcam->mView = IdentityMatrix(); in camera_reset_target()
640 pcam->turn_mode = CAM_TURN_AUTO; in camera_reset_target()
641 pcam->move_mode = CAM_RESET; in camera_reset_target()
645 camera_move( pcam, pmesh ); in camera_reset_target()
648 pcam->center.x = pcam->track_pos.x; in camera_reset_target()
649 pcam->center.y = pcam->track_pos.y; in camera_reset_target()
652 pcam->turn_mode = turn_mode_save; in camera_reset_target()
653 pcam->turn_time = 0; in camera_reset_target()