Add PF map

This commit is contained in:
Miloslav Ciz 2025-06-06 15:56:42 +02:00
parent cbc67ae388
commit 94773472ba
7 changed files with 653 additions and 596 deletions

View file

@ -2,7 +2,7 @@ fuck issue trackers :D
=========== GENERAL ============== =========== GENERAL ==============
- set target times for maps - check again the target times for maps
- frontends: - frontends:
- auto test frontend, with no I/O, that will just internally run a series of - auto test frontend, with no I/O, that will just internally run a series of
inputs and check if the output is as expected inputs and check if the output is as expected

1134
assets.h

File diff suppressed because it is too large Load diff

View file

@ -12,7 +12,7 @@
const char *part1 = // big maps const char *part1 = // big maps
// MAP 1: // MAP 1:
"MLC1;4321 0 " "MLC1;487 0 "
":*C2mL:!x6G:+L2H:+D38" // start, finish, CPs ":*C2mL:!x6G:+L2H:+D38" // start, finish, CPs
// pillars: // pillars:
":nw0w2L:f151:m151" ":nw0w2L:f151:m151"
@ -80,7 +80,7 @@ const char *part1 = // big maps
":'w5G:f311" ":'w5G:f311"
// MAP2: // MAP2:
"#MLC2;4321 1" "#MLC2;809 1"
// start platform: // start platform:
":-v8k:f213:'v8n:f211:Iv0m2|:f181:.v2l2I:.v4l2I:|x8kL-:f114:xv0k:m3a4" ":-v8k:f213:'v8n:f211:Iv0m2|:f181:.v2l2I:.v4l2I:|x8kL-:f114:xv0k:m3a4"
// house: // house:
@ -138,7 +138,7 @@ const char *part1 = // big maps
":*v9h:+v8r:+j2K:+F3r:+l3m:!C1p" ":*v9h:+v8r:+j2K:+F3r:+l3m:!C1p"
// MAP 3: // MAP 3:
"#MLC3;4321 2" "#MLC3;560 2"
":*qrt:!o1y:!o1z:+Wsz" ":*qrt:!o1y:!o1z:+Wsz"
// start box: // start box:
":=mqr:f96d:xnrs:f74b:^mvrJ:f11d:^uvrL:f11d" ":=mqr:f96d:xnrs:f74b:^mvrJ:f11d:^uvrL:f11d"
@ -227,7 +227,7 @@ const char *part1 = // big maps
":\\6031I|:\\6021:=5021:n5031I:A5011" ":\\6031I|:\\6021:=5021:n5031I:A5011"
// MAP 4: // MAP 4:
"#MLC4;4321 1" "#MLC4;821 1"
// overall structure: // overall structure:
":=000:f53a:x111:f424:x116:f323" ":=000:f53a:x111:f424:x116:f323"
":)115L:)315J:)125L-:)325J-:x215:f121" // start door ":)115L:)315J:)125L-:)325J-:x215:f121" // start door
@ -300,7 +300,7 @@ const char *part1 = // big maps
":!612:f212:+W1V:+21Q:+D13:*217I" ":!612:f212:+W1V:+21Q:+D13:*217I"
// MAP 5: // MAP 5:
"#MLC5;4321 0" "#MLC5;954 0"
":*I8wJ" ":*I8wJ"
":vq1t1J:m111:vs1r1J:m111" ":vq1t1J:m111:vs1r1J:m111"
":vI4g3J:AI3g1L:AI2g1L:m131" ":vI4g3J:AI3g1L:AI2g1L:m131"
@ -390,8 +390,7 @@ const char *part2 = // small maps
- 1536 (0x600) triangles */ - 1536 (0x600) triangles */
// TINY MAP 1: // TINY MAP 1:
"#MLCtiny1;330 0 :*G1b:+n9H:!I1H"
"#MLCtiny1;4321 0 :*G1b:+n9H:!I1H"
// start // start
":=E0b:f61i" ":=E0b:f61i"
":^D1bJ:f11i:^J1bL:f11i" ":^D1bJ:f11i:^J1bL:f11i"
@ -410,7 +409,7 @@ const char *part2 = // small maps
":=y0F1:fb15:^y0F1:fb11:^y0J1I:fb11" // end ":=y0F1:fb15:^y0F1:fb11:^y0J1I:fb11" // end
// TINY MAP 2: // TINY MAP 2:
"#MLCtiny2;4321 1" "#MLCtiny2;175 1"
":*w@v-:!v0u:f313" ":*w@v-:!v0u:f313"
// tunnel: // tunnel:
":=wct:f1K1:=wcx:f1K1:=ucv:f1K1:=ycv:f1K1" ":=wct:f1K1:=wcx:f1K1:=ucv:f1K1:=ycv:f1K1"
@ -424,8 +423,7 @@ const char *part2 = // small maps
":f113:~xnw3-:~xow3:~weu3-:~wfu3:\\vcv2L|" ":f113:~xnw3-:~xow3:~weu3-:~wfu3:\\vcv2L|"
// TINY MAP 3: // TINY MAP 3:
"#MLCtiny3;381 2"
"#MLCtiny3;4321 2"
":*w1d:!w1d:+w1A" ":*w1d:!w1d:+w1A"
// big bumps: // big bumps:
":vw1hJ:m111" ":vw1hJ:m111"
@ -450,8 +448,7 @@ const char *part2 = // small maps
":~y1i1:~w1j3:~x1l:~x1p3:~u1q2:~w1s2:~x1v:~v1w1:~x1x3" ":~y1i1:~w1j3:~x1l:~x1p3:~u1q2:~w1s2:~x1v:~v1w1:~x1x3"
// TINY MAP 4: // TINY MAP 4:
"#MLCtiny4;172 2"
"#MLCtiny4;4321 2"
":*M1AJ" ":*M1AJ"
// box: // box:
":=C2w:faca" ":=C2w:faca"
@ -477,8 +474,7 @@ const char *part2 = // small maps
":!Hgx:!Hgw:!HgE:!HgF" ":!Hgx:!Hgw:!HgE:!HgF"
// TINY MAP 5: // TINY MAP 5:
"#MLCtiny5;296 1"
"#MLCtiny5;4321 1"
":*x1q:+u1F:!x1o" ":*x1q:+u1F:!x1o"
// platform: // platform:
":=j0o:fg1j" ":=j0o:fg1j"

74
data
View file

@ -1,5 +1,4 @@
#MLCbonus1;4321 0 #MLCbonus1;457 0
ovaerall structure ovaerall structure
:=h0h :fl1v :fm51 :=h0h :fl1v :fm51
@ -53,7 +52,7 @@ details
:.B1w1J :f112 :.B1w1J :f112
:=h0h2 :fl12 :f11o :=B0i2 :f11m :=m0n2 :fb12 :=h0h2 :fl12 :f11o :=B0i2 :f11m :=m0n2 :fb12
:*n1EI :!n1F :+p1r :+y1l :+y3I :+k1l :*n1EI :!n1F :+p1r :+y1l :+y3I :+k1l
#MLCbonus2;4321 1 #MLCbonus2;1309 1
:*B1lJ :*B1lJ
:^y0oI :f611 :^y0oI :f611
@ -89,7 +88,7 @@ details
:~vcd2 :f212 :~vcd2 :f212
:uzba| :uBba :AybcJ :ABbeL :uzba| :uBba :AybcJ :ABbeL
:'yap :^yaqI- :+Aca :!ybq :nw0k| :'yap :^yaqI- :+Aca :!ybq :nw0k|
#Mdevtest;4321 2 #Mdevtest;12345 2
:*313 :*313
:\a13L :m111 :\a13L :m111
:=000 :fE15 :f41& :f3c1 :f771 :=000 :fE15 :f41& :f3c1 :f771
@ -131,15 +130,78 @@ details
:]h0gI :}g0gI :|g1gI :f211 :|g3gI- :f211 :]g4gI- :f211 :;g0fJ :f251 :]h0gI :}g0gI :|g1gI :f211 :|g3gI- :f211 :]g4gI- :f211 :;g0fJ :f251
:-e5g :f413 :|g0hL :-e5g :f413 :|g0hL
:+018 :f213 :!v05 :f311 :+018 :f213 :!v05 :f311
#MLCpressforw1;594 0
:*cac
press forward map, blocks go in the direction that car travels
:=b9b :f31n
:>b9b :f31c
:^b9b-J :f11n :)bab1L :f11c
:^d9b-L :f11n :)dab1J :f11c
:ybax :f311
:~cai :~cap :,cas|2
:!cag
:ycbBJ :ydbBL
:)abD3 :f811
:^abEI- :f811
:(acE3 :f811
:=n0z :f1h4 :f714
:An1z :f1g1
:>aaA :fg13
:=aaA3 :fb13
:)pbAJ :f113
:=qaA2 :f173
:=o1A2L :f391
:)pgAJ- :f113
:)ogAL- :f113
:+oaB
:)nbAI- :)nbB-
:-nhA1 :f413
:|o2BL :f112 :]o1BL :f112
:~r1B1 :\q1CJ2 :f191
:Vt1B2J :f112
air path
:!AgB :!BiB :!CjB :!DkB :!EkB :!FkB :!GkB :!HjB :!IiB :!JgB :!KeB :!LcB :!M9B
:vAcCJ :m111
:;N0CJ :f681
:>N0t1 :f61a
:oN0t :f611
:(O3C :f211 :=O1C :f221 :|O2B :f211 :]O1B :f211
:~R3p-
:~R4p
:+S7n
:=X021
:!X12
#RLC1 00'15'147;00LC1;8bd6e314 0000459:0001:00c9:0041:0039:0041:01c9:0071:0039:0051:0059:0011:0029:0051:0189:0061:0055:0021:0039:0161:0069:0051:0089:0041:0039:0041:0243:0041:02b5:0021:0123:0031:0073:0051:0023:0101:0083:0031:00a3:0031:00a9:0031:0569:0011:0059:0021:00d3:0021 #RLC1 00'15'147;00LC1;8bd6e314 0000459:0001:00c9:0041:0039:0041:01c9:0071:0039:0051:0059:0011:0029:0051:0189:0061:0055:0021:0039:0161:0069:0051:0089:0041:0039:0041:0243:0041:02b5:0021:0123:0031:0073:0051:0023:0101:0083:0031:00a3:0031:00a9:0031:0569:0011:0059:0021:00d3:0021
#RLC2 00'24'354;00LC2;3c5ba5dd 0000738:0001:00d3:0051:01a9:0041:0115:0031:01e9:0041:0049:0041:0049:0021:0069:0051:0039:0021:00c3:0041:00b9:0021:0073:0031:0023:0031:0053:0091:0073:00a1:0013:0081:00a3:0021:0369:0011:02a5:0031:0053:0031:0033:00e1:00a3:00b1:0113:0021:00c9:0031:0059:0031:00e9:0061:0069:0091:0213:0101:0073:0031:00c9:0011:0069:0061:0053:0041:0113:0077:0076:0052:0123:0131:0323:0041:03a9:0031 #RLC2 00'24'354;00LC2;3c5ba5dd 0000738:0001:00d3:0051:01a9:0041:0115:0031:01e9:0041:0049:0041:0049:0021:0069:0051:0039:0021:00c3:0041:00b9:0021:0073:0031:0023:0031:0053:0091:0073:00a1:0013:0081:00a3:0021:0369:0011:02a5:0031:0053:0031:0033:00e1:00a3:00b1:0113:0021:00c9:0031:0059:0031:00e9:0061:0069:0091:0213:0101:0073:0031:00c9:0011:0069:0061:0053:0041:0113:0077:0076:0052:0123:0131:0323:0041:03a9:0031
#RLC3 00'16'566;00LC3;cb1b38e6 0000502:0001:00b3:0031:00e9:0031:0104:0125:0031:0153:0071:0063:0031:0053:0021:0043:0051:0023:0031:0053:0071:0083:0041:0053:0031:0143:0071:0033:0061:00d9:01c1:0039:0041:0033:0021:0033:0051:0053:0061:0043:0021:00b3:0061:00c3:0081:0053:0021:00d3:0041:0133:00c1:0039:0091:0119:0031:0133:0031:01b5:0041 #RLC3 00'16'566;00LC3;cb1b38e6 0000502:0001:00b3:0031:00e9:0031:0104:0125:0031:0153:0071:0063:0031:0053:0021:0043:0051:0023:0031:0053:0071:0083:0041:0053:0031:0143:0071:0033:0061:00d9:01c1:0039:0041:0033:0021:0033:0051:0053:0061:0043:0021:00b3:0061:00c3:0081:0053:0021:00d3:0041:0133:00c1:0039:0091:0119:0031:0133:0031:01b5:0041
#RLC4 00'25'443;00LC4;bcf27d79 0000771:0001:00d9:0071:0029:00c1:00c9:0031:0329:0021:00f3:0031:00a9:0011:00c9:0011:00d5:0031:00a9:0031:00e3:0041:00d3:0031:0039:0091:0029:0061:0059:0031:0069:0061:0029:0041:01c3:0021:0089:0021:0253:0021:0183:0011:0159:0091:0069:0031:0079:0051:00b2:0071:0079:0061:0093:0051:0183:0041:00b9:0041:00d9:0071:0073:0091:0119:0041:0053:0051:0039:0071:0039:0021:0039:0021:0053:0051:0079:0081:0049:0071:0083:0021:0059:0031:00c3:0031:00b9:0021:0039:0031:02a9:0021:0063:0041:0123:0021:0073:0021 #RLC4 00'25'443;00LC4;bcf27d79 0000771:0001:00d9:0071:0029:00c1:00c9:0031:0329:0021:00f3:0031:00a9:0011:00c9:0011:00d5:0031:00a9:0031:00e3:0041:00d3:0031:0039:0091:0029:0061:0059:0031:0069:0061:0029:0041:01c3:0021:0089:0021:0253:0021:0183:0011:0159:0091:0069:0031:0079:0051:00b2:0071:0079:0061:0093:0051:0183:0041:00b9:0041:00d9:0071:0073:0091:0119:0041:0053:0051:0039:0071:0039:0021:0039:0021:0053:0051:0079:0081:0049:0071:0083:0021:0059:0031:00c3:0031:00b9:0021:0039:0031:02a9:0021:0063:0041:0123:0021:0073:0021
#RLC5 00'25'971;00LC5;90f26004 0000787:0001:0023:0071:0063:0031:0155:0031:0139:0031:01d9:0021:0179:0031:0064:006c:0038:0029:0171:0063:0091:0033:0061:00e9:0041:0029:0031:0093:0081:0079:0091:00a9:0051:0019:0061:0039:0031:0099:0031:0029:0041:0089:0041:0029:0031:0049:0031:0019:0071:0029:0031:0193:0031:00a3:0021:00d3:0051:0063:0021:0139:0068:001c:0070:0028:0059:00b1:0033:00d1:0043:0041:0043:0051:0319:00d1:0043:0051:0189:0061:0029:0031:0099:0031:00b5:0051:00c9:0051:0039:0051:0049:0061:0039:0041:0169:0051:0105:0031:01f3:0031:0053:0012:0076:0062:0043:0101:00b9:0021 #RLC5 00'25'971;00LC5;90f26004 0000787:0001:0023:0071:0063:0031:0155:0031:0139:0031:01d9:0021:0179:0031:0064:006c:0038:0029:0171:0063:0091:0033:0061:00e9:0041:0029:0031:0093:0081:0079:0091:00a9:0051:0019:0061:0039:0031:0099:0031:0029:0041:0089:0041:0029:0031:0049:0031:0019:0071:0029:0031:0193:0031:00a3:0021:00d3:0051:0063:0021:0139:0068:001c:0070:0028:0059:00b1:0033:00d1:0043:0041:0043:0051:0319:00d1:0043:0051:0189:0061:0029:0031:0099:0031:00b5:0051:00c9:0051:0039:0051:0049:0061:0039:0041:0169:0051:0105:0031:01f3:0031:0053:0012:0076:0062:0043:0101:00b9:0021
#RLCtiny1 00'09'900;00LCtiny1;ae1ab677 0000300:0001:0179:0031:0299:0021:0129:0075:0031:0029:0031:0039:0041:0049:0021:0079:0051:00f3:0041:0033:0021:0053:00b5:0017:0033:0151:0069:0051:0033:0071:0033:0031:0115:0017:0015:0021:0073:0041:0063:0031:0053:0021:0063:0051:0099:0031:0073:0031 #RLCtiny1 00'09'900;00LCtiny1;ae1ab677 0000300:0001:0179:0031:0299:0021:0129:0075:0031:0029:0031:0039:0041:0049:0021:0079:0051:00f3:0041:0033:0021:0053:00b5:0017:0033:0151:0069:0051:0033:0071:0033:0031:0115:0017:0015:0021:0073:0041:0063:0031:0053:0021:0063:0051:0099:0031:0073:0031
#RLCtiny2 00'05'181;00LCtiny2;833ee4b2 0000157:0011:0320:0034:00a0:00d4:00f0 #RLCtiny2 00'04'719;00LCtiny2;833ee4b2 0000143:0006:040c:00b8:0330
#RLCtiny3 00'11'880;00LCtiny3;df0bd8ce 0000360:0001:00c3:0031:00d3:0031:00e9:0031:00e9:0041:0069:0021:0059:0021:00c3:0041:0233:0041:0159:0251:0113:0031:01a3:0031:0143:0021:00a9:0021:00d3:0041:0253:0031:00a3:0041 #RLCtiny3 00'11'880;00LCtiny3;df0bd8ce 0000360:0001:00c3:0031:00d3:0031:00e9:0031:00e9:0041:0069:0021:0059:0021:00c3:0041:0233:0041:0159:0251:0113:0031:01a3:0031:0143:0021:00a9:0021:00d3:0041:0253:0031:00a3:0041
#RLCtiny4 00'05'280;00LCtiny4;f999f0ec 0000160:0003:01d1:0019:01f1:0119:0061:0109:0041:0209:0041 #RLCtiny4 00'05'280;00LCtiny4;f999f0ec 0000160:0003:01d1:0019:01f1:0119:0061:0109:0041:0209:0041
#RLCtiny5 00'08'811;00LCtiny5;5c14d8b6 0000267:0001:00f9:0041:0139:00b1:0109:0041:0049:0021:0103:0151:0083:0061:0069:0081:0093:0031:0083:00d1:0083:0031:0143:0021:0175:0021:0109:0031 #RLCtiny5 00'08'811;00LCtiny5;5c14d8b6 0000267:0001:00f9:0041:0139:00b1:0109:0041:0049:0021:0103:0151:0083:0061:0069:0081:0093:0031:0083:00d1:0083:0031:0143:0021:0175:0021:0109:0031
#RLCbonus1 00'13'629;00LCbonus1;999b1acd 0000413:0001:00d9:0051:0113:0031:0069:0021:00a9:0031:0049:0041:0039:0051:0043:0121:0053:0061:0083:0021:0083:0041:0079:01b1:0059:0041:0049:0021:00e9:0031:0063:0041:0169:00c1:03e9:0038:0020:0081:0119:00b1:00c9:0041:0079:0041:0039:0051:0039:0058:0179:0031 #RLCbonus1 00'13'629;00LCbonus1;999b1acd 0000413:0001:00d9:0051:0113:0031:0069:0021:00a9:0031:0049:0041:0039:0051:0043:0121:0053:0061:0083:0021:0083:0041:0079:01b1:0059:0041:0049:0021:00e9:0031:0063:0041:0169:00c1:03e9:0038:0020:0081:0119:00b1:00c9:0041:0079:0041:0039:0051:0039:0058:0179:0031
#RLCbonus2 00'26'103;00LCbonus2;288d28fe 0000791:0001:0163:0101:0053:0021:00c3:0071:0063:0031:0059:00b8:0050:0034:0016:00f4:003c:00a4:00a6:0044:0056:0024:00a6:0112:0020:0029:0071:00d9:0031:0053:0091:0113:0061:00b5:0049:0101:00a3:00c2:0083:0101:0029:0051:0183:0041:0063:0041:00c3:0041:0119:0051:0019:0041:0055:0049:0018:0099:0031:0052:0023:0022:0023:0052:0073:0041:0070:0032:0046:00e4:0010:0038:0069:00a8:0139:0078:0079:00ac:0014:006c:0078:0010:0061:0079:00a1:0063:0031:0133:0031:0030:0058:002c:0018:0190:0022:0026:0030:0062:0010:0028:0029:0121:0043:0062:0020:0042:0053:00b1:0175:004c:0018:0080:0061:0033:0031:0022:0093:0011:0020:0018:0069

View file

@ -45,14 +45,6 @@
#define LCR_EFFECTIVE_RESOLUTION_Y \ #define LCR_EFFECTIVE_RESOLUTION_Y \
(LCR_SETTING_RESOLUTION_Y / LCR_SETTING_RESOLUTION_SUBDIVIDE) (LCR_SETTING_RESOLUTION_Y / LCR_SETTING_RESOLUTION_SUBDIVIDE)
#define LCR_MAP_SIZE_BLOCKS 64
/** Physics FPS, i.e. the number of physics ticks per second. */
#define LCR_RACING_FPS 30
#define LCR_RACING_TICK_MS \
(100000 / (LCR_RACING_FPS * LCR_SETTING_TIME_MULTIPLIER))
#if LCR_SETTING_332_COLOR #if LCR_SETTING_332_COLOR
#define LCR_CONVERT_COLOR(c) \ #define LCR_CONVERT_COLOR(c) \
(((c & 0xe000) >> 8) | ((c & 0x0700) >> 6) | ((c & 0x001f) >> 3)) (((c & 0xe000) >> 8) | ((c & 0x0700) >> 6) | ((c & 0x001f) >> 3))

2
map.h
View file

@ -63,6 +63,8 @@
#undef LCR_MODULE_NAME #undef LCR_MODULE_NAME
#endif #endif
#define LCR_MAP_SIZE_BLOCKS 64
#define LCR_MODULE_NAME "map" #define LCR_MODULE_NAME "map"
#define LCR_MAP_NAME_MAX_LEN 15 /**< Maximum map name length (without #define LCR_MAP_NAME_MAX_LEN 15 /**< Maximum map name length (without

View file

@ -52,6 +52,11 @@
typedef int32_t LCR_GameUnit; ///< abstract game unit typedef int32_t LCR_GameUnit; ///< abstract game unit
#define LCR_RACING_FPS 30 /**< Physics FPS, i.e. the number of
physics ticks per second. */
#define LCR_RACING_TICK_MS \
(100000 / (LCR_RACING_FPS * LCR_SETTING_TIME_MULTIPLIER))
#define LCR_RACING_VERSION1 '0' ///< first part of physics eng. version #define LCR_RACING_VERSION1 '0' ///< first part of physics eng. version
#define LCR_RACING_VERSION2 '0' ///< second part of physics eng. version #define LCR_RACING_VERSION2 '0' ///< second part of physics eng. version