From 40b6c37a9e9e339ac329bc2abac745ad4b0c3d84 Mon Sep 17 00:00:00 2001 From: hgn Date: Wed, 5 Mar 2025 11:42:17 +0000 Subject: [PATCH] fix all the things broken by api update --- content_skaterift/maps/mp_spawn/main.mdl | Bin 14409672 -> 14410760 bytes skaterift_blender/sr_mdl.py | 8 +++---- src/world_entity.c | 26 +++++++++++++++++------ 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/content_skaterift/maps/mp_spawn/main.mdl b/content_skaterift/maps/mp_spawn/main.mdl index eefd82e82a8c41aebc15db612eb2a89b88c75df7..12e63c55211c6ee048a059654c31aa861adad85e 100644 GIT binary patch delta 5759 zcmchZcU+Xmy2n|{QkJfObX1Tgf{2}xnB?4?gq&y+PlCoM#zl!G#uj7m8cSkC9Wi2W zvBefvjb+{i1`r!4wnx+$HJYO+c5?#n{mrb#`}v&nM?Uv+?sfgn&ilO2JoB`frR>lh zXD`*)OF!-U#KC{MeZ;)HDYJ57 z$7D~|zUtMzOXT9m5D!{{1keg3f+WxyB!e~}1+)e2Kzq;u zbOfD1XOIfgKsv|(FM*dq7w`&r6}$%i0{#oU4*m+>0B?d!@D}(RcpG#D-M~BGUGN_0 z4*m|_2Ooee&;#@YAA(-sBhVZ40okB0_!#s9W{?B=g8?8Hd;$i7L0~W#0zL&p!DnC? z7!F2&kzf?~9E=8EfH7b!7zf6K31A|a1SW$iU@Djfrh^$^CYS}j1hc^$Fc-`NUxBZ| zeDDoe0P?^>um~&$3@icpU@7<(ECU5#IamQ!f>mHOSOeCAbznW%05*c}z$UO6Yyn%r zHt;>z4t9W@U>Dd8egK8Q0``EtU?2Dq><0(HL2w9gpaCl=0>z*N2v7>jKsh)JD!>tN z6dVJ`!3j_as=!Hb3RHvB;0!nm&RJ3(pO5Y3vh;R$o^3Ywv-Eq9G7JGfU9Q)EyL|cg zT>ZC;7wh$>H8sDR^`~Un*PY%s_%`5Ke|q7uS$}f6 z`mz3``qWeX$*Gf1^d~2)p7ycieL!6d;nk-eNg-aJs(PqDsj9?d<%!4o;}gdo>W`1H z2U)bsNq>6n!b7&P2kj4Scv5*>zPyi@M<1B=$44qKJzV}ESASG)na~ryHfeZ#^et+k-U-kPtw%*Y1e{VV1my%!tGAa56qAk}kZ2HBVUD%Iu4Ix`LT-EPyUVp8- zes9y-tNOi-Yp&_{HmtsC*6*#gOgGaIL*V*VSLD-*pD`@IqTgFn@UvdGdfAme7We+t z+u+|&x9VHHZspQTX1#93lArXt0(QBd*)m}O1sFQ$b$gax;u!NU>UEa<8VpP1YzbzC z>|(CDq3+v-dfn2zOL|@Yf{VHO-6iuc>35k$c zVAk)>p9SH3OY%U9GtBG!hnX_@q_i+af7R%GIn4k*K5aoQf2;#_4tgo zLvO{vN@f~HgPSzm9^Ieow?EH0E{7Aj7|ocDWb=lR#Yw-t%zT`^Hk^hAHryW3R|m(; z`t9M_N1-^pkDL!<6~pNeH1m5OWphSQyU>Q)LwmvG&<~Hw;fNe6p#Eu3Oh0AkM^G-b zS&s_#>PRZ|)^88VI-Hw>1%ux&*KZAG#!>VSZ~fN5?xndLU+e)N*l z19CVdhl8x^SUP30VofG*8>h96V{zlC#9hAIS1iXL8?*c4=n`DY$=oA{y*%ADox8I0 zR_$;sTzJ0RPHIB`?kT;>fp&1Pp1NRDJqi6>pD2F_A_X|dxEmHmM1jh3GAOU=!WuMs;mxh z$A|qolTN$IbxLs+v(BP*9?C0aXgQB(1HYtFlUz~|!TorIAL}@qZmQI%HOo*Yp21@0 z(03*kvQ*7aVbyc!uxqS*Si)n&*xI@Ds|s(iTE$!%ahFDH@jT)txxI>RVH(T&it=5R zKgrR_(d_Y8&ssA9n3)TJ2u)$D*%|Z1#Mra8*uQJM$!#^$q>3ayD1)J}*d% z3SwOr&|J?K6`Ad&1+kM0=%(6BbL^-&GA)l5xvR9Q&1SY@SqrILdDpxNZ{DPN6Bf6K zHW}5{f>ke~4QiKZN`0zk-=0lbOjSxYMeaPgrL}2G)`QVlXXR~Ee|DD96{Rpi1w2u+ zGcmq|mK&A#g7wa)tF~rRM#si!;q3LLG};(04US>frBvgk+DNVcg3DH2_bp9uQ9_>H zhP7BmXS`lSIx>cb#xREhTH&lzLVek~0t71U4U@z0;#8Ktoc6e<%BRnGDsRnGS;KPr zoAIo4Td=oQ&`pm&N;@RjJD7D|Nh?%lyt$J%KJ3a$T5UUL(#pV2Z00ID?IPC~B}OK) z?A0_3r&wA$wVH}lJM~u~3}8#wP^qhfddT4pEN3nCc&4hYr8QnEGt%hCycrK@#s;pV zBkloG&^N%H%O1{HPyLO>HtQSK(@KwWIadkn&D*gzH_&0Xc)8%CcxyyF3*JcURSkMs zBm6Xd#flXlvafbh5WBXK8k?@jwNkmK8~c4DEiuY@j|{f>J36b}&eBqNEKgx0H{ry| zmmi?L@jsRYZKibNF`FM*o5}1U-*%V7-?cOsRA=c;+_H--#)pS8wlRkE}`Pg?G1sV_A_87N~#u`g)^C#PAx2?aWiMMzX zk77H&r%Kl-mDo&c6q~i3&btN4*KY=SS%cVs9W=#cYa1^|?&Zkt?w}l(GHDM7f@STb zMB@pY^)Gi)bK?=)e5;gSw#{pHQpU4dh3+Er^CC>$MT^v>{0a-)jdLgWd|3`%n&L>X z&AVxfiu5Jkl>0Yjy?&rV7w#_=GW?l;A+5KaN|T+*j%kIo-(;tPNaJ?AEt_VcHEwO? zFFm>m~45KHBMAD zc5h!_ZQs8Bo=s)rK~%|hoP)i2us2IOL{+Zd>UK`R!83BQxN#@d?JcTQ%uXGY| z!o;$R$_L?TBwXd%1Rjtg6%G$H=g&KUP4Ej zNqvLX&cNHXM%n{JTkP6g_)7J5YTt0%zRoZ9buOin5Op(z@%W-(ktz%#TsR`!RH+mp z*p*Uh^}KO>%4n;LpK81iKcIfp&@E3A1%bkT_m8pyy0xRNRTQ% zg1vTv_N!k!Z|=j5K1LsdXeOeOvpCU4G?Pk3!GbF36^E;sd{jxHfwmTJhr)*-b>YZu zfYj?O*t|-L542rm@xmS5m?;gX zElSv=k^fV~PE=9zXZ!kzb~qq`2*FvjlPiL7(VV0M$kE9))DbpdJx&og-S~UqtNKDPoCoKUZAe))d@3LCAh6 zD&!{@brkl)Wa7gbCZi&iGL$vgHO}0F0E9Rom&-!!5c@^ z#~DS;kc*n5yZ(%by?=&Aq^rB55uEFY+NGk#Dbhw0bl;y5G5rj^kzu>qUEpjhRJb)7 zAXXajK!5%j5gUJ&Dzb{y@3o@`x91-AX^5dYI-v!+B~03~M<4$$MQq_YIx|tmY0ukp zdo3BUH9^A!hyVZp delta 4780 zcmciGd2|$2z6bDBy1Tj)vhSUpBqU@55|R)IA*eGCMj4-@Fv#K{m_}LwS>1445Cs(m zHNp=N64}BcC=j4Q0#tQ6Hwg(#LI{B$Aqa@5>>vT2vF2ON%sA)xhv&WX-lO|-yXtpu zRo#1kw{Fg1UhP%6cK=m*ORZ<<5DyOz+vFKzo|!Oq;zZlzXKgsoFKP3Pk|vbg^^A&{ z(&^!`biBc%7vhtOCysg1Hf;tD-T&fCvJ6qN*Y2nu0q3nA5@J)vKJ)xPD)0ZaRXk@1 zd&l$Iypq}T#;49pZd7RbrU%0zTjie&7!Q5C}mK3?UE- zVGs@xV1-DCf@p|=Scrpo=n4st2uaWlk|71ULn@>}I%Gg5^njkw3$h>^dP5H6LLT&i zeCP}PpaA+qAq;>b7zhu*gYXdi4t@{+0fS&L`~e<@M_>s25gvvAgva1d@HjjHLtz;F z8HU4?Fak!xC>RY-!CznuJPl)E96STXV1x1SEKC49JO|IiM3@AV;RToiQ(+oRhZ!&v zUWAw6Wq1W%g<0?#{1sk@H{eZp3ueRHFbCd&cVRBfgZJQl_yFd^0{9y&gb(2(_!vsy z6IcX`fnW(Ng=O$5EQb|P3T5yatb|pt8rHyCD2H{h9yY*6_#8IDX7~cWge|ZYwm}7K zhaIpJ9Iy*^!&k5eDq%0|gZ-d@3Qnj37gU3Q8mNUjH~{s~00-d^9EKy%2u*Mln&B9< zz;S4W6OO?hC%ZjmwhvQmHroWp%%NN)gri&p14F&u&BLZ0mm&J938e2r2Sx>s^~&yL0APhjypE`L1^7^wB%oowlaC#g27P z@`F-bd-H8Qi0ac#Kcc1)r>Bl|XdQg$N3G)|Sw?b&)RUBvTp4NCqc;&fc*~}BwASPB zc-<|#cDu!~bQF3RisbN$VpO7M(tFLOen_bsz+U+JM4jYwg z+K)%}U$qrGp85+=>H&~8?L@x6A_wfUlUv&zvvj(bT#BlPocalYvSijCjeY>uR2 zwoB3Ky7SsirTm*=+Kv5d&TBXJt^P*4v3J#Zn|5Q5V}p$+OV-MjXYDvEJBOn5tajt8 z73Z|;yO*CWcJz9d$4J2=wClT;wcE7ojwN4f*LTvHV!LDQ1P+&^JW}l(9b(t6Z!c-r zu2+0~+OA#O_F+2;$1OV#k>a;5IHg_NvVc*{$I+J`w4r$aluf&~c^-nB9Zx^cNm9V( zxhHV)?#W>`JF<9n1AQ`)$4j}SP2^fXoWFTOFIx3lN8=>6N)hF+wrE$&UpY3+u3cI4 zQVYt}GmoKgc)o!72vfBytEL}Cbk)@6@%UN!!cpzYXEbCA&y*5LOyQmA^_8+oO?vr! zqoQ3YeXhwql1irX7Ri?ePvc3Uc163qeEea(IATX>!{MiNa2h+L0(x&cPYD~ZU0ycs z5bBnVJ*byYAF^qemr~FS-Y;cP%M8x5s@mlxqYvsugI?658I8grQR+@AL_` zkH^Cn53kcMEvBbl^e=KPi0Es@=n$ZnBJH=6!B zpRp)Lf1{$`VcZ*hLst7LJ(RvQ?oDP{jc_JLB+?^q@jipg)0aYL^A3Z^@T8X6e9Yv^ zP`hT(j<@+6OPJC{3B#8*&fyEPhnnl5aS!e{j+G`2mGB`O^#BM zl_<)e&l?O*Qvh9>j~OuaQ%wD6{{sHrlBD!Z>Zv64q}_jG#o+X_(wv37)TH_u{0x-* zAzzf$d?hnKlcGQ3RfgK|1Um2$*BeE+;zOk$^Eo+B%2Tnb7nbmRlPf-5&7;&$_&bv` zK2(jTs71WUP+R0pm5aE}q7>!eTa-f|F6NEWK^jQBPL5TA)!1PAk+?~=6k42x7CN?s zXBnJ@*))79pOvH46g4`91})=K=>Yw(jL(~#1+rQ|ZJ+YXp2*Rt<=iG$AxFs2pcVYO z!5QgK2UqZM+11ym^fgjNDVG`4zCCC}880$MB)TH#UK#JQD85RBj`n@Vk4k4KXrJmm{R&$Hd)y1O=6|TX)R72a>aFroWO{3XsxyBTy zhA46LcsX{V8roXUtIbutk-FXk=$UogVA0d2=$R{6&(BH?w0=E*W~?_WK{RXwACS%c z&CdR2O5Moi-dWE6S*li6RyLXjuICU6*ugS&Y~&Ebxu|3c`<$0}21L>J&$-oXQUer| z5QW8+xVoM zm!6mI%%hqLo-I4myDHTCaHw}@XM3o3 ztKMMHzaHx?HBoMoxRV!2!Bo1F=gWoewL|$1 z-Xv!$g-UiIU2*VEgPM{}n|5)z$(a(3w|vxYt~5uhfl9OzNC{u@YB|s;D|qD(f5ji^ z>#9Je=l1XdJml^k{FSMt>6MtsL*%IBbW6S7nLfhb-5HaAXJ=; zQa$fJ{e?na+A@eufJPPb{L)5$Y@6ur%K<`*Hs)XH|xDg``47ol;A?98tDNS zH^{lzRa6fOujXBmxvsQaFOepC3SW^e3PhUTasA?yUoJMqxknQ$_(ka`EfnmE2vNO4 zyh4=j!b|vx3=t?Ig_pb0)EZ==nU>XXsq7rk8y|YGmS3~#YrD!Ux{IIRIj4y(qL=6^ zy1TD9Rm%?}VHtJY5TnGXK`}~DmIxBzA{RGJ6hZ&&P~5+D$n3syzyYofGh=hBiW2>W zB;te-qv-Fhi>v1zNX--Vyg8yOIZHK(WRZ^E{(RxW1<^+&-*42wFUj@#HW)=K8@NC^ zN9_$9iT-O1+!j_Hpqc`bgh_a#-@YPDnA}(0J;-lIR+;*_tfHSN5;4LPGKwT zznfbQvA#}~Lp(V$sb{r8B;6mm`F;;_MUwkoj~?cl&?IY;D_>YeEJo24xv;vcdL7}q z2&?L+SpAet%yO{ELKotMpSw1^k&lEq{je=32!pU-bX`PZS*_({Bp;z zJUtjH^00ob7>ZfA1GKY+_ok)iDcE}Q(!G)XUYN$-nB;W5{jUPF_BiiKOOJQ&PU%G= zUUb9McE_~G>+OFPpoOhWDfm+s>dXBvxZ~vQo@%02++~f?0CZ!tXh=d6udybSRVmcJ{J7}|F;3BhD}HcP_2R@ z&u|y%C+dENW8P?v#+&MiWoN=NE!4a5{~E~p?>tx2|9gl6@2b(1_BH#_+Ozy8dh8q< PDdsHy&RsZg^n>(wn^FXd diff --git a/skaterift_blender/sr_mdl.py b/skaterift_blender/sr_mdl.py index 217f236..9942acf 100644 --- a/skaterift_blender/sr_mdl.py +++ b/skaterift_blender/sr_mdl.py @@ -865,9 +865,9 @@ def _mdl_compiler_compile_entities(): elif ent_type == 'ent_list': #{ obj_data = obj.SR_data.ent_list[0] - list = ent_list() - list.entity_ref_start = _mdl_compiler_ent_count( 'file_entity_ref' ) - list.entity_ref_count = 0 + lista = ent_list() + lista.entity_ref_start = _mdl_compiler_ent_count( 'file_entity_ref' ) + lista.entity_ref_count = 0 for k in range(len(obj_data.entities)): #{ if obj_data.entities[k]: @@ -878,7 +878,7 @@ def _mdl_compiler_compile_entities(): list.entity_ref_count += 1 #} #} - sr_ent_push( list ) + sr_ent_push( lista ) #} elif ent_type == 'ent_region':#{ region = ent_region() diff --git a/src/world_entity.c b/src/world_entity.c index abcbbd0..5184b11 100644 --- a/src/world_entity.c +++ b/src/world_entity.c @@ -484,14 +484,19 @@ entity_call_result ent_audio_call( world_instance *world, ent_call *call ) { vg_audio_lock(); + u32 flags = AUDIO_FLAG_WORLD | AUDIO_FLAG_RELINQUISHED; + flags |= audio->flags & (AUDIO_FLAG_LOOP|AUDIO_FLAG_NO_DOPPLER|AUDIO_FLAG_NO_DSP); + if( audio->behaviour == k_channel_behaviour_unlimited ) { audio_channel_id channel_id = vg_audio_get_first_idle_channel(); if( channel_id ) { - vg_audio_add_channel_flags( channel_id, AUDIO_FLAG_WORLD | AUDIO_FLAG_RELINQUISHED ); + vg_audio_add_channel_flags( channel_id, flags ); + vg_audio_set_channel_group( channel_id, audio->group ); vg_audio_set_channel_clip( channel_id, &clip->_.clip ); - vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] ); + if( audio->flags & AUDIO_FLAG_SPACIAL_3D ) + vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] ); vg_audio_set_channel_volume( channel_id, audio->volume, 1 ); vg_audio_start_channel( channel_id ); } @@ -504,9 +509,11 @@ entity_call_result ent_audio_call( world_instance *world, ent_call *call ) audio_channel_id channel_id = vg_audio_get_first_idle_channel(); if( channel_id ) { - vg_audio_add_channel_flags( channel_id, AUDIO_FLAG_WORLD | AUDIO_FLAG_RELINQUISHED ); + vg_audio_add_channel_flags( channel_id, flags ); + vg_audio_set_channel_group( channel_id, audio->group ); vg_audio_set_channel_clip( channel_id, &clip->_.clip ); - vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] ); + if( audio->flags & AUDIO_FLAG_SPACIAL_3D ) + vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] ); vg_audio_set_channel_volume( channel_id, audio->volume, 1 ); vg_audio_start_channel( channel_id ); } @@ -518,16 +525,21 @@ entity_call_result ent_audio_call( world_instance *world, ent_call *call ) { audio_channel_id channel_id = vg_audio_get_first_active_channel_in_group( audio->group ); if( channel_id ) - vg_audio_crossfade( channel_id, &clip->_.clip, audio->crossfade ); + { + if( !vg_audio_is_channel_using_clip( channel_id, &clip->_.clip ) ) + vg_audio_crossfade( channel_id, &clip->_.clip, audio->crossfade ); + } } else { audio_channel_id channel_id = vg_audio_get_first_idle_channel(); if( channel_id ) { - vg_audio_add_channel_flags( channel_id, AUDIO_FLAG_WORLD|AUDIO_FLAG_RELINQUISHED ); + vg_audio_add_channel_flags( channel_id, flags ); + vg_audio_set_channel_group( channel_id, audio->group ); vg_audio_set_channel_clip( channel_id, &clip->_.clip ); - vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] ); + if( audio->flags & AUDIO_FLAG_SPACIAL_3D ) + vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] ); vg_audio_set_channel_volume( channel_id, audio->volume, 1 ); vg_audio_start_channel( channel_id ); } -- 2.25.1