diff --git a/TODO.txt b/TODO.txt index 20e5690..0b086b1 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,5 +1,7 @@ =========== GENERAL ============== +- Consider better input handling in SDL? Currently it just detects presses on + the exact frame, so a press can be missed. But how tho? - FPS logging for optim - try to add distance fog? - use 332 in SDL with potato? @@ -68,6 +70,7 @@ =========== HANDLED ============== - add ifdefs that change car color? +- Try progressively slower steering? - compile time option to choose how many maps to include (for platforms with - sometimes the games prints huge long ass number of newlines, WHY (happens when driving on accelerator) diff --git a/data b/data index 6c7602a..b5165f2 100644 --- a/data +++ b/data @@ -61,3 +61,9 @@ details :=410 :f222 :]X1uL :f118 :]&1uJ :f118x\ +#RLC1;00LC1;8bd6e314 0000622:01a1:0159:0031:0139:00b1:0143:0031:0069:0041:0093:0021:0069:0011:0085:0051:00e9:0071:0133:02c2:0038:001c:0162:0033:0141:0053:0021:00f3:0021:0139:0041:00a9:0051:0073:0041:00a9:0031:00d9:0021:01b5:0041:02d3:00d1:0043:0031:0033:0081:00a3:0041:02e9:0011:0145:0031:01d9:0021:00a3:0031:0079:0021 +#BLC1; +#RLCtiny5;00LCtiny5;5c14d8b6 0000359:0128:0060:0118:01a0:0081:00a9:0051:0063:0061:0049:00e1:0029:0061:0063:0051:0093:0051:0129:0041:0043:0151:0033:0061:00f9:0041:0083:0021:0063:0071:0033:0041:0033:0081:0093:0041:0083:0021:00e5:0031:0023:0111:0049:0071:0033:0071:0010 +#BLCtiny5; +#RLCtiny5;00LCtiny5;5c14d8b6 0000359:0128:0060:0118:01a0:0081:00a9:0051:0063:0061:0049:00e1:0029:0061:0063:0051:0093:0051:0129:0041:0043:0151:0033:0061:00f9:0041:0083:0021:0063:0071:0033:0041:0033:0081:0093:0041:0083:0021:00e5:0031:0023:0111:0049:0071:0033:0071:0010 +#RLCtiny5;00LCtiny5;5c14d8b6 0000278:0011:00b3:0051:0089:0031:0079:00b1:0069:0061:0059:0021:0123:0031:0099:0021:0013:0151:0023:00b1:0099:0081:0093:0041:00b3:00b1:0053:0041:0033:0061:0033:0041:0165:0031:0123:0051:0089:0021:0043:0031:0049 diff --git a/media/manual.txt b/media/manual.txt index f7e80a6..af33c58 100644 --- a/media/manual.txt +++ b/media/manual.txt @@ -243,6 +243,9 @@ A few tips for making maps: not even being noticed by the player. - There is a special "mirror" block that's very useful for creating 8-symmetrical structures. +- Add more visual detail only where it's worth it, i.e. where the player will + see it, for example the near the start instead of a section that just quickly + passed at high speed. ~~~~~ COMPILING AND MODIFYING ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/racing.h b/racing.h index 65fa744..666172a 100644 --- a/racing.h +++ b/racing.h @@ -76,7 +76,7 @@ typedef int32_t LCR_GameUnit; ///< abstract game unit #define LCR_CAR_STEER_FRICTION ((3 * TPE_F) / 4) #define LCR_CAR_ELASTICITY (TPE_F / 64) #define LCR_CAR_ACCELERATION (LCR_PHYSICS_UNIT / 9) -#define LCR_CAR_STEER_SPEED (LCR_GAME_UNIT / 14) +#define LCR_CAR_STEER_SPEED 13 ///< 0 to 16, lower is faster #define LCR_CAR_STEER_MAX (LCR_GAME_UNIT / 2) #define LCR_CAR_ACCELERATOR_FACTOR 2 @@ -1289,24 +1289,24 @@ uint32_t LCR_racingStep(unsigned int input) if (input & LCR_RACING_INPUT_RIGHT) { steering = 2; - - LCR_racing.wheelSteer = TPE_min( - LCR_racing.wheelSteer + LCR_CAR_STEER_SPEED, - LCR_CAR_STEER_MAX); + + LCR_racing.wheelSteer = + LCR_CAR_STEER_MAX - + (LCR_CAR_STEER_SPEED * (LCR_CAR_STEER_MAX - LCR_racing.wheelSteer)) / 16; } else if (input & LCR_RACING_INPUT_LEFT) { steering = 1; - LCR_racing.wheelSteer = TPE_max( - LCR_racing.wheelSteer - LCR_CAR_STEER_SPEED, - -1 * LCR_CAR_STEER_MAX); + LCR_racing.wheelSteer = + -1 * LCR_CAR_STEER_MAX + + (LCR_CAR_STEER_SPEED * (LCR_racing.wheelSteer + LCR_CAR_STEER_MAX)) / 16; } if ((LCR_racing.wheelCollisions & 0xcc)) // back wheel on ground? { if (input & LCR_RACING_INPUT_FORW) - { + { _LCR_racingWheelAccelerate(0,carForw,groundMat,onAccel); _LCR_racingWheelAccelerate(1,carForw,groundMat,onAccel); }