|
|
@ -97,6 +97,7 @@ u8 newcam_invertY; |
|
|
|
u8 newcam_panlevel; //How much the camera sticks out a bit in the direction you're looking.
|
|
|
|
u8 newcam_aggression; //How much the camera tries to centre itself to Mario's facing and movement.
|
|
|
|
u8 newcam_analogue; //Wether to accept inputs from a player 2 joystick, and then disables C button input.
|
|
|
|
u8 newcam_mouse; // Whether to accept mouse input
|
|
|
|
s16 newcam_distance_values[] = {750,1250,2000}; |
|
|
|
u8 newcam_active = 1; // basically the thing that governs if newcam is on.
|
|
|
|
u16 newcam_mode; |
|
|
@ -109,12 +110,15 @@ f32 newcam_option_timer = 0; |
|
|
|
u8 newcam_option_index = 0; |
|
|
|
u8 newcam_option_scroll = 0; |
|
|
|
u8 newcam_option_scroll_last = 0; |
|
|
|
u8 newcam_total = 7; //How many options there are in newcam_uptions.
|
|
|
|
u8 newcam_total = 8; //How many options there are in newcam_uptions.
|
|
|
|
|
|
|
|
u8 newcam_options[][64] = {{NC_ANALOGUE}, {NC_CAMX}, {NC_CAMY}, {NC_INVERTX}, {NC_INVERTY}, {NC_CAMC}, {NC_CAMP}}; |
|
|
|
u8 newcam_options[][64] = {{NC_ANALOGUE}, {NC_MOUSE}, {NC_CAMX}, {NC_CAMY}, {NC_INVERTX}, {NC_INVERTY}, {NC_CAMC}, {NC_CAMP}}; |
|
|
|
u8 newcam_flags[][64] = {{NC_DISABLED}, {NC_ENABLED}}; |
|
|
|
u8 newcam_strings[][64] = {{NC_BUTTON}, {NC_BUTTON2}, {NC_OPTION}, {NC_HIGHLIGHT}}; |
|
|
|
|
|
|
|
extern int mouse_x; |
|
|
|
extern int mouse_y; |
|
|
|
|
|
|
|
///This is called at every level initialisation.
|
|
|
|
void newcam_init(struct Camera *c, u8 dv) |
|
|
|
{ |
|
|
@ -370,6 +374,12 @@ static void newcam_rotate_button(void) |
|
|
|
else |
|
|
|
newcam_tilt_acc -= (newcam_tilt_acc*(DEGRADE)); |
|
|
|
} |
|
|
|
|
|
|
|
if (newcam_mouse == 1) |
|
|
|
{ |
|
|
|
newcam_yaw += mouse_x * 16; |
|
|
|
newcam_tilt += mouse_y * 16; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
static void newcam_zoom_button(void) |
|
|
@ -690,24 +700,27 @@ void newcam_change_setting(u8 toggle) |
|
|
|
newcam_analogue ^= 1; |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
newcam_mouse ^= 1; |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
if (newcam_sensitivityX > 10 && newcam_sensitivityX < 250) |
|
|
|
newcam_sensitivityX += toggle; |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
case 3: |
|
|
|
if (newcam_sensitivityY > 10 && newcam_sensitivityY < 250) |
|
|
|
newcam_sensitivityY += toggle; |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
case 4: |
|
|
|
newcam_invertX ^= 1; |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
case 5: |
|
|
|
newcam_invertY ^= 1; |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
case 6: |
|
|
|
if (newcam_aggression > 0 && newcam_aggression < 100) |
|
|
|
newcam_aggression += toggle; |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
case 7: |
|
|
|
if (newcam_panlevel > 0 && newcam_panlevel < 100) |
|
|
|
newcam_panlevel += toggle; |
|
|
|
break; |
|
|
@ -765,24 +778,27 @@ void newcam_display_options() |
|
|
|
newcam_text(160,scroll-12,newcam_flags[newcam_analogue],newcam_option_selection-i); |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
newcam_text(160,scroll-12,newcam_flags[newcam_mouse],newcam_option_selection-i); |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
int_to_str(newcam_sensitivityX,newstring); |
|
|
|
newcam_text(160,scroll-12,newstring,newcam_option_selection-i); |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
case 3: |
|
|
|
int_to_str(newcam_sensitivityY,newstring); |
|
|
|
newcam_text(160,scroll-12,newstring,newcam_option_selection-i); |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
case 4: |
|
|
|
newcam_text(160,scroll-12,newcam_flags[newcam_invertX],newcam_option_selection-i); |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
case 5: |
|
|
|
newcam_text(160,scroll-12,newcam_flags[newcam_invertY],newcam_option_selection-i); |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
case 6: |
|
|
|
int_to_str(newcam_aggression,newstring); |
|
|
|
newcam_text(160,scroll-12,newstring,newcam_option_selection-i); |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
case 7: |
|
|
|
int_to_str(newcam_panlevel,newstring); |
|
|
|
newcam_text(160,scroll-12,newstring,newcam_option_selection-i); |
|
|
|
break; |
|
|
|