From 8fbdaaaaae21d8e6f9e35a0338354f40b0b73dfe Mon Sep 17 00:00:00 2001 From: Lephenixnoir Date: Sat, 21 Aug 2021 23:31:55 +0200 Subject: [PATCH] add outer rotating platforms --- CMakeLists.txt | 5 +++++ assets-cg/font.png | Bin 960 -> 994 bytes assets-cg/level/level21.txt | 2 +- converters.py | 25 +++++++++++++++---------- src/duet.h | 3 ++- src/main.c | 5 +++-- src/physics.c | 12 ++++++++++++ 7 files changed, 38 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 785c2b1..b89142a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,11 @@ set(ASSETS assets-cg/level/level15.txt assets-cg/level/level16.txt assets-cg/level/level17.txt + assets-cg/level/level18.txt + assets-cg/level/level19.txt + assets-cg/level/level20.txt + assets-cg/level/level21.txt + assets-cg/level/level22.txt ) fxconv_declare_converters(converters.py) diff --git a/assets-cg/font.png b/assets-cg/font.png index c1ea9872444d9a0ffdb240b8aa482c87487791cf..cb8cf89de82700034f0d68feba207d958e300a01 100644 GIT binary patch delta 905 zcmV;419tqt2jT~iLI)KTE;WC5{EAOwIA073u=0X!q*exYz_*ShU`FJ!YLJK5l{&1LYqK{WJI;-Nz0 zPm&F80n57Q8jGzp$~<(=#n4yV;R>5RCFPiJ1oY)Q6%pCVL#(bf4Qm-Hn%vdR;-^V*T~2X1XBs}Cq?B+e~YPoQN}EPJ*eYM z8(FG09vGsD5Uc2YIb(k&fuJ3kZIg8sPx2O5#`zMqCBLZOCb`k1akFp7^C3KCz5{lQ z^C7xD$e5g1>bmKA>2MA0X2^j ze?7?w^U`qn77vLNXO?<&`MZ%Z$`>Q{)X8HB!8$(=N#(=cmk0swFv|cC0zin~V?2Nm zU?f767moE3gi7Ni)*i`Rm|^tNn$ z80Tbt_2hoT|3Ep!cURZFR={p7Em&O+RK6LrTyK^Aueh|cx_PGa*x&P64$~#Mcx~2H zMHSmb#jbxA21fXum{F2SW%1gqDNXTO=tEWszG*OboctOWlrk6assUb1f%72)=+hUk f0g|^s;2-_~h~dj#`IPT900000NkvXXu0mjfU|^u> delta 871 zcmV-t1DO2c2fzoALI)Hx5m+9AlaWa%e>zD-K~#9!?VVk+gCGorwZj&>$}Y0^!KuSV z2;oP;_?@R#X~g6Z0s*>yzuyIbA70OV?R8zTJ%j)dBHUCT2aQX+_HEZkA;FI9Y=LN*%V2ebs2ioks6zcK z*#ft~5Z-JpC#%d3UB)K2?r?>mPFXqC4+3|MAz03Ns&4C=)2pJ14{W>Z518CS41rU* z-bs{d%#}7!6m6RmPEUnE?vR~_e+(<^1eHPLkyRWgK@Ev6-Kfe%jqO)GTVT$RA~3-H zCQfLDV3v6Z03iT`01yH|h)3W!ezP}I=al2UB4wo{$Yr9+We_xm5WecGXM|)4!Np^l z_6l4x$1s0AJ9ioF$xMv|nm#dv1?*gZ&=R_nvQ~GW(|ueFA!iwi;>whSf4WtElSdNv zgUS|78IHDyAvy<@EUvk03~_ciMhr1C@a=$MCx8$DLI4N>rXob&fn|%d$#-`t>o(*S z40?!dTC6>ZKbxr_#Jn&(RxjJ^tJ!NS7syIzm#?gY(9kuN9N07Zm5gI)k#27nOYri5U%K7;^M5~4kEtd}5U8W%ASDf<%nisrL?OIg6quv3}5 zmhG)cJul*hU0!CDkY`f!(imdX^{5rFfu#kj%Z|!6V_w%= zWy49F=whvwKMpcQRS0GBx>{3Xmm&sDKjj8y_@9_rf=Xrbx>{43 long if shape < 0 and position == 2 and action in [1, 2]: shape = 5 + # Rotating on the side -> huge + if shape < 0 and position in [0, 1] and action in [5, 6]: + shape = 6 # In the middle -> medium if shape < 0 and position == 2: shape = 3 diff --git a/src/duet.h b/src/duet.h index 0fa986a..98ad8d2 100644 --- a/src/duet.h +++ b/src/duet.h @@ -140,7 +140,8 @@ extern level_t level1, level2, level3, level4; extern level_t level5, level6, level7, level8; extern level_t level9, level10, level11, level12; extern level_t level13, level14, level15, level16; -extern level_t level17; +extern level_t level17, level18, level19, level20; +extern level_t level21, level22; //--- // Menu diff --git a/src/main.c b/src/main.c index 830cb8c..44bdba7 100644 --- a/src/main.c +++ b/src/main.c @@ -54,12 +54,13 @@ int main(void) level_t const *story_levels[] = { &level1, &level2, &level3, &level4, &level5, &level6, &level7, &level8, &level9, &level10, &level11, &level12, &level13, &level14, - &level15, &level16, &level17, + &level15, &level16, &level17, &level18, &level19, &level20, &level21, + &level22, NULL, }; int story_position = main_menu(); - story_position = 11; + story_position = 16; game_t game; memset(&game, 0x00, sizeof game); diff --git a/src/physics.c b/src/physics.c index 5ffdeaf..c5bf6c3 100644 --- a/src/physics.c +++ b/src/physics.c @@ -97,12 +97,16 @@ void rect_load(rect_t *r, rectmeta_t const *meta) case Position_Left: if(meta->shape == Shape_Square) r->y = DHEIGHT/2 - 0.22*CORRIDOR_SIZE; + else if(meta->shape == Shape_HugeBar) + r->y = DHEIGHT/2 - 0.38*CORRIDOR_SIZE; else r->y = DHEIGHT/2 - CORRIDOR_SIZE/2 + r->h/2; break; case Position_Right: if(meta->shape == Shape_Square) r->y = DHEIGHT/2 + 0.22*CORRIDOR_SIZE; + else if(meta->shape == Shape_HugeBar) + r->y = DHEIGHT/2 + 0.38*CORRIDOR_SIZE; else r->y = DHEIGHT/2 + CORRIDOR_SIZE/2 - r->h/2; break; @@ -132,4 +136,12 @@ void rect_physics(rect_t *r, rectmeta_t const *meta, float absolute_time) float speeding_period = fminf(2.0, fmaxf(0.0, time + 6.0)); r->x -= RECT_SPEED * speeding_period; } + else if(meta->action == Action_OuterRotateLeft) { + float vr = 0.7; /* rad/tempo */ + r->r = time * vr; + } + else if(meta->action == Action_OuterRotateRight) { + float vr = 0.7; /* rad/tempo */ + r->r = -time * vr; + } }