77 *--------------------------------------
88*/
99
10- #include <debug.h>
1110#include <stdbool.h>
1211#include <math.h>
1312#include <tice.h>
1615#include <fileioc.h>
1716#include "collide.h"
1817#include "draw.h"
19- #include "lockout_menu.h"
2018#include "gfx/gfx.h"
2119
2220#define SAVE_APPVAR_NAME ("BALL8CES")
@@ -110,14 +108,14 @@ bool step(void) {
110108 kb_Scan ();
111109
112110 // quit
113- if (kb_Data [6 ] & kb_Clear ) {
114- save_settings ();
115- return false;
116-
117- } else if (kb_Data [1 ] & kb_Del ) {
111+ if (kb_Data [1 ] & kb_Del || ((kb_Data [6 ] & kb_Clear ) && winning_player != 0 )) { // if someone has won, dont save
118112 clear_settings ();
119113 return false;
120- }
114+
115+ } else if (kb_Data [6 ] & kb_Clear ) {
116+ save_settings ();
117+ return false;
118+ }
121119
122120
123121 if (winning_player != 0 )
@@ -165,8 +163,8 @@ bool step(void) {
165163 if (kb_Data [1 ] & kb_2nd )
166164 speedmult = 4 ;
167165
168- else if (kb_Data [2 ] & kb_Math /*JUST FOR TESTING - change back to kb_Alpha*/ )
169- speedmult = 0.2 ;
166+ else if (kb_Data [2 ] & kb_Alpha )
167+ speedmult = 0.2f ;
170168
171169 else
172170 speedmult = 1 ;
@@ -176,17 +174,17 @@ bool step(void) {
176174
177175 // change angle
178176 if (kb_Data [7 ] & kb_Up )
179- cue .dir += 0.02 * speedmult ;
177+ cue .dir += 0.02f * speedmult ;
180178
181179 else if (kb_Data [7 ] & kb_Down )
182- cue .dir -= 0.02 * speedmult ;
180+ cue .dir -= 0.02f * speedmult ;
183181
184182
185183 // restrict direction range to (0, 2pi)
186184 cue .dir -= (cue .dir > 2 * PI ) ? 2 * PI : ((cue .dir < 0 ) ? -2 * PI : 0 );
187185
188186 // change power
189- int pc = 2 * speedmult + 0.5 ; // power change var
187+ int pc = 2 * ( speedmult + 0.3f ) ; // power change var
190188 // power clamping
191189 if (kb_Data [7 ] & kb_Right )
192190 cue .pow = (cue .pow + pc ) > 100 ? 100 : (cue .pow + pc );
@@ -204,17 +202,17 @@ bool step(void) {
204202 else if (gamestate == scratch ) {
205203
206204 if (kb_Data [7 ] & kb_Up )
207- balls [15 ].y -= 0.5 * speedmult ;
205+ balls [15 ].y -= 0.5f * speedmult ;
208206
209207 else if (kb_Data [7 ] & kb_Down )
210- balls [15 ].y += 0.5 * speedmult ;
208+ balls [15 ].y += 0.5f * speedmult ;
211209
212210
213211 if (kb_Data [7 ] & kb_Left )
214- balls [15 ].x -= 0.5 * speedmult ;
212+ balls [15 ].x -= 0.5f * speedmult ;
215213
216214 else if (kb_Data [7 ] & kb_Right )
217- balls [15 ].x += 0.5 * speedmult ;
215+ balls [15 ].x += 0.5f * speedmult ;
218216
219217 collidewalls (& balls [15 ]);
220218
@@ -441,13 +439,15 @@ void unserialize_ball(serialized_ball_data_t* in, ball_data* out) {
441439
442440void serialize_ball (ball_data * in , serialized_ball_data_t * out ) {
443441 // serialize sprite
444- if (in -> sprite == solid ) {
442+ if (in -> sprite == solid )
445443 out -> sprite = SERIALIZED_BALL_SPRITE_SOLID ;
446- } else if (in -> sprite == stripe ) {
444+
445+ else if (in -> sprite == stripe )
447446 out -> sprite = SERIALIZED_BALL_SPRITE_STRIPE ;
448- } else if (in -> sprite == eightball ) {
447+
448+ else if (in -> sprite == eightball )
449449 out -> sprite = SERIALIZED_BALL_SPRITE_EIGHTBALL ;
450- }
450+
451451
452452 // everything else
453453 out -> collided = in -> collided ;
@@ -565,11 +565,9 @@ void save_settings(void) {
565565
566566 // save to a file
567567 uint8_t file_handle ;
568- if (!(file_handle = ti_Open (SAVE_APPVAR_NAME , "w" ))) {
569- dbg_printf ("no file_handle" );
570-
568+ if (!(file_handle = ti_Open (SAVE_APPVAR_NAME , "w" )))
571569 return ;
572- }
570+
573571
574572 ti_Write (& saved_settings , sizeof (game_settings ), 1 , file_handle );
575573 ti_Close (file_handle );
0 commit comments