From 27d2e8913331782f3810d5376802a3b8ba8b31f0 Mon Sep 17 00:00:00 2001 From: Miloslav Ciz Date: Sun, 13 Apr 2025 15:48:16 +0200 Subject: [PATCH] Address some TODOs --- TODO.txt | 10 +++++----- data | 4 ++++ map.h | 16 ++++++++-------- racing.h | 4 +++- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/TODO.txt b/TODO.txt index 17d83af..15977dd 100644 --- a/TODO.txt +++ b/TODO.txt @@ -4,11 +4,6 @@ - Unstuck idea: make the body non-rotating for a while? - Map4: fix top bottom corner, making the curve is too hard -- either add ramps on wall or shift the down ramp further. -- CP gets often missed, would be cool to increase its radius, but also hard. - We would have to be checking 8 cells instead of one, but even then issues - would appear with multiple CPs next to each other (returned CP_TAKEN event). - Maybe at least make the CP model smaller? (make the diamond diagonal) -- Fix weird reversing. - Try doing the bouncy car body? Just keep a point and its velocity, change its velocity by a proportion of car's velocity change (this minus prev. frame), then offset car body by this. However we'll also have to transform @@ -85,6 +80,11 @@ =========== HANDLED ============== - MAP4: one triangle in top section is missing! +- Fix weird reversing. +- CP gets often missed, would be cool to increase its radius, but also hard. + We would have to be checking 8 cells instead of one, but even then issues + would appear with multiple CPs next to each other (returned CP_TAKEN event). + Maybe at least make the CP model smaller? (make the diamond diagonal) - Try to mess with car weight? (has no effect without any joint-joint coll.) - add ifdefs that change car color? - Try progressively slower steering? diff --git a/data b/data index 821aded..6df21a9 100644 --- a/data +++ b/data @@ -59,3 +59,7 @@ details #BLC4; #RLC4;00LC4;bcf27d79 0000737:0011:0149:00d1:0089:0011:00a9:0031:0059:0031:0079:0021:00d9:0021:01f9:0021:0313:0041:01e3:0021:0059:0041:0039:0071:0039:0011:0059:00d1:0159:0011:0399:0021:0093:0041:00a9:0021:0129:0011:0089:0051:0039:0031:0069:0081:0099:0041:0059:0041:0073:0031:0079:0031:00b9:0031:0039:0031:0063:0051:0043:0021:0033:0051:0099:0021:0099:0031:00b9:0031:0049:0031:0059:0071:0149:0041:0039:0041:0039:0041:0033:0051:0049:00c1:0073:0041:0233:0041:00a3:0041:00c3:0031:02a9 #RLC4;00LC4;bcf27d79 0000746:0011:00f9:0191:0039:0061:0069:00b1:0033:0081:0079:0041:0139:0031:01e3:0041:00f3:0051:0079:0061:00b3:0051:0099:0051:00b9:0021:0013:00c1:0033:00d1:0079:0041:0053:0051:0079:0061:0199:0031:0083:0041:0053:0051:0013:0041:0049:0061:0099:0031:0223:0061:0063:00a1:0083:0091:0063:0011:0089:0031:00d9:0021:00e9:0021:00b3:0021:01a5:0021:00a9:0031:0183:0141:0219:0031:0153:0081:0049:00a1:00a3:0051:0113:0031:00a3:0031:0245 +#RLCtiny5;00LCtiny5;5c14d8b6 0000988:01b8:0040:0161:0010:0038:00f0:2551:0179:00e1:0033:0041:0069:0091:0053:0061:0069:0041:0069:0028:0010:0012:00c3:0201:0049:0060:0088:0061:0079:0041:0073:0071:0059:0041:0033:00b1:0069:0051:0013:0111:0043:0041:0103:0031:0085:0041:0173:0041:0089:00a1 +#BLCtiny5; +#RLC4;00LC4;bcf27d79 0000838:0011:00c9:00d1:0109:0031:0039:0041:00a9:0041:0299:0011:0159:0011:00e9:0021:01f9:0031:00c9:0031:0083:0041:0089:00d1:0069:00d1:0123:0021:00c3:0021:02b3:0031:0089:0031:0249:0091:0069:0061:0029:0081:0159:0021:0109:0041:0039:0041:00b3:00b1:00b9:0061:00c3:0021:0049:0031:0029:0061:0143:0031:0089:0081:0063:0031:0049:00a1:0023:00a1:00d0:0124:0080:0061:0013:00e1:0039:0101:0083:0051:0129:0091:0029:0041:0033:0091:01d9:0041:0043:00b1:00f9:0041:00a9:0021:00d9:0021 +#RLC1;00LC1;8bd6e314 0000478:0011:00e3:0051:0029:0061:0119:0061:0069:0071:0049:0041:0039:0051:0139:0031:0119:0085:0014:0018:00d9:0111:0043:0021:0073:0031:0049:0031:0089:0041:00a9:0081:00e9:0021:0083:0021:0079:0021:0053:0021:00f5:0041:0179:0021:00d3:0141:0043:00d1:0193:0011:0479:0011:00d3:0031:0089:0011 diff --git a/map.h b/map.h index 7228b20..13d893c 100644 --- a/map.h +++ b/map.h @@ -805,14 +805,14 @@ void LCR_mapGetBlockShape(uint8_t blockType, uint8_t transform, case LCR_BLOCK_CHECKPOINT_0: case LCR_BLOCK_CHECKPOINT_1: case LCR_BLOCK_FINISH: - ADD(3,0,3) ADD(0,2,6) ADD(6,2,6) - ADD(3,0,3) ADD(0,2,0) ADD(0,2,6) - ADD(3,0,3) ADD(6,2,0) ADD(0,2,0) - ADD(3,0,3) ADD(6,2,6) ADD(6,2,0) - ADD(3,4,3) ADD(0,2,6) ADD(0,2,0) - ADD(3,4,3) ADD(0,2,0) ADD(6,2,0) - ADD(3,4,3) ADD(6,2,0) ADD(6,2,6) - ADD(3,4,3) ADD(6,2,6) ADD(0,2,6) + ADD(3,0,3) ADD(3,2,6) ADD(6,2,3) + ADD(3,0,3) ADD(0,2,3) ADD(3,2,6) + ADD(3,0,3) ADD(3,2,0) ADD(0,2,3) + ADD(3,0,3) ADD(6,2,3) ADD(3,2,0) + ADD(3,4,3) ADD(3,2,6) ADD(0,2,3) + ADD(3,4,3) ADD(0,2,3) ADD(3,2,0) + ADD(3,4,3) ADD(3,2,0) ADD(6,2,3) + ADD(3,4,3) ADD(6,2,3) ADD(3,2,6) break; case LCR_BLOCK_FULL: diff --git a/racing.h b/racing.h index f0fd9c6..adb71ad 100644 --- a/racing.h +++ b/racing.h @@ -1384,8 +1384,10 @@ uint32_t LCR_racingStep(unsigned int input) /* When steering, also slightly spin the car. This helps fix the car getting "stuck" by its side to a wall when too close, becoming unable to unstick itself. */ + TPE_bodySpin(&LCR_racing.carBody,_LCR_TPE_vec3DividePlain(carUp, - steering == ((input & LCR_RACING_INPUT_LEFT) != 0) ? 100 : -100)); + (steering == (((input & LCR_RACING_INPUT_LEFT) != 0)) == + ((input & (LCR_RACING_INPUT_FORW)) != 0)) ? 100 : -100)); } }