# HG changeset patch # User koda # Date 1277519788 -7200 # Node ID 4bdc59101ce574b1ee5594b536f3bedefb20d544 # Parent d4de36b3801a7a8e02a1709867f0cdd12dbb70a6# Parent 066faceb977dc3923d1d3b054a904e819157ab9c merge diff -r d4de36b3801a -r 4bdc59101ce5 hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Sat Jun 26 04:36:04 2010 +0200 +++ b/hedgewars/GSHandlers.inc Sat Jun 26 04:36:28 2010 +0200 @@ -2375,6 +2375,7 @@ dec(Gear^.Health); Gear^.Timer := Gear^.Health*10; + Gear^.PortalCounter:= 0; // This is not seconds, but at least it is *some* feedback if (Gear^.Health = 0) or ((Gear^.Message and gm_Attack) <> 0) then begin @@ -3234,7 +3235,7 @@ // wow! good candidate there, let's see if the distance really is small enough! if (Distance(Gear^.X-iterator^.X,Gear^.Y-iterator^.Y) > acptRadius) then continue; - +(* noTrap := ((not Gear^.dY.isNegative or (Gear^.dY.QWordValue = 0)) // can't be entered from above or ((conPortal^.dY.isNegative and not (conPortal^.dY.QWordValue = 0)))); @@ -3242,7 +3243,7 @@ // prevent getting stuck in a ground portal loop if noTrap and (iterator^.dY.QWordValue < _0_08.QWordValue) then - continue; + continue; *) iterator^.Active := true; iterator^.State := iterator^.State or gstMoving; @@ -3255,13 +3256,21 @@ cdxy := Distance(conPortal^.dX, conPortal^.dY); s := (Int2hwFloat(Gear^.Radius)) / cdxy; - iterator^.X := conPortal^.X + s * conPortal^.dX; - iterator^.Y := conPortal^.Y + s * conPortal^.dY; - - s := Distance(iterator^.dX, iterator^.dY) / cdxy; - - iterator^.dX := s * conPortal^.dX; - iterator^.dY := s * conPortal^.dY; + if iterator^.Kind = gtCake then + begin + iterator^.X := conPortal^.X ; + iterator^.Y := conPortal^.Y ; + end + else + begin + iterator^.X := conPortal^.X + s * conPortal^.dX; + iterator^.Y := conPortal^.Y + s * conPortal^.dY; + + s := Distance(iterator^.dX, iterator^.dY) / cdxy; + + iterator^.dX := s * conPortal^.dX; + iterator^.dY := s * conPortal^.dY + end; FollowGear := iterator; diff -r d4de36b3801a -r 4bdc59101ce5 hedgewars/uLandGraphics.pas --- a/hedgewars/uLandGraphics.pas Sat Jun 26 04:36:04 2010 +0200 +++ b/hedgewars/uLandGraphics.pas Sat Jun 26 04:36:28 2010 +0200 @@ -674,36 +674,60 @@ function SweepDirty: boolean; var x, y, xx, yy: LongInt; - bRes, updateBlock, resweep: boolean; + bRes, updateBlock, resweep, recheck: boolean; begin bRes:= false; +reCheck:= true; -for y:= 0 to LAND_HEIGHT div 32 - 1 do +while recheck do begin - - for x:= 0 to LAND_WIDTH div 32 - 1 do + recheck:= false; + for y:= 0 to LAND_HEIGHT div 32 - 1 do begin - if LandDirty[y, x] <> 0 then + for x:= 0 to LAND_WIDTH div 32 - 1 do begin - updateBlock:= false; - resweep:= true; - while(resweep) do + if LandDirty[y, x] <> 0 then begin - resweep:= false; - for yy:= y * 32 to y * 32 + 31 do - for xx:= x * 32 to x * 32 + 31 do - if Despeckle(xx, yy) then - begin - bRes:= true; - updateBlock:= true; - resweep:= true; - end; + updateBlock:= false; + resweep:= true; + while(resweep) do + begin + resweep:= false; + for yy:= y * 32 to y * 32 + 31 do + for xx:= x * 32 to x * 32 + 31 do + if Despeckle(xx, yy) then + begin + bRes:= true; + updateBlock:= true; + resweep:= true; + if (yy = y*32) and (y > 0) then + begin + LandDirty[y-1, x]:= 1; + recheck:= true; + end + else if (yy = y*32+31) and (y < LAND_HEIGHT div 32 - 1) then + begin + LandDirty[y+1, x]:= 1; + recheck:= true; + end; + if (xx = x*32) and (x > 0) then + begin + LandDirty[y, x-1]:= 1; + recheck:= true; + end + else if (xx = x*32+31) and (x < LAND_WIDTH div 32 - 1) then + begin + LandDirty[y, x+1]:= 1; + recheck:= true; + end + end; + end; + if updateBlock then UpdateLandTexture(x * 32, 32, y * 32, 32); + LandDirty[y, x]:= 0; end; - if updateBlock then UpdateLandTexture(x * 32, 32, y * 32, 32); - LandDirty[y, x]:= 0; end; end; - end; + end; SweepDirty:= bRes; end; diff -r d4de36b3801a -r 4bdc59101ce5 share/hedgewars/Data/Locale/uk.txt --- a/share/hedgewars/Data/Locale/uk.txt Sat Jun 26 04:36:04 2010 +0200 +++ b/share/hedgewars/Data/Locale/uk.txt Sat Jun 26 04:36:28 2010 +0200 @@ -267,48 +267,48 @@ 03:43=Performing Beathoven's deadly sonata ; Weapon Descriptions (use | as line breaks) -04:00=Атакуй ворогів використовуючи просту гранату.|Вона вибухне як тільки її таймер доходить до нуля.|1-5: Виставте тайиер гранати|Атака: Утримуйте щоб метнути сильніше -04:01=Атакуй ворогів використовуючи кластерну бомбу.|Вона розділиться на менші бомби коли таймер|досягає нуля.|1-5: Виставте тайиер гранати|Атака: Утримуйте щоб метнути сильніше -04:02=Атакуй ворогів балістичним снарядом,|на політ якого впливає вітер.|Атака: Утримуйте щоб стрельнути сильніше -04:03=Запусти вибухонебезпечну бджолу, яка полетить|до вибраної цілі. Не стріляйте на повну силу|щоб поліпшити її точність.|Курсор: Виберіть ціль|Атака: Утримуйте щоб стрельнути сильніше -04:04=Атакуй ворогів використовуючи рушницю з двома|пострілами.Завдяки її розмаху вам не потрібні точні|попадання щоб зашходити супернику.|Атака: Стріляй (кілька разів) -04:05=Прямуй під землю! Візьми відбійний молоток,|просвердли в землі дірку та досягни інших областей.|Атака: Почніть або завершіть рити +04:00=Атакуй ворогів використовуючи просту гранату.|Вона вибухне як тільки її таймер доходить до нуля.|1-5: Вистав таймер гранати|Атака: Утримуй щоб метнути сильніше +04:01=Атакуй ворогів використовуючи кластерну|бомбу. Вона розділиться на менші бомби|коли таймер досягає нуля.|1-5: Вистав таймер гранати|Атака: Утримуй щоб метнути сильніше +04:02=Атакуй ворогів балістичним снарядом,|на політ якого впливає вітер.|Атака: Утримуй щоб стрельнути сильніше +04:03=Запусти вибухонебезпечну бджолу, яка|полетить до вибраної цілі. Не стріляй на|повну силу щоб поліпшити її точність.|Курсор: Вибери ціль|Атака: Утримуй щоб стрельнути сильніше +04:04=Атакуй ворогів використовуючи рушницю з двома|пострілами.Завдяки її розмаху тобі не потрібні точні|попадання щоб зашкодити супернику.|Атака: Стріляй (кілька разів) +04:05=Прямуй під землю! Візьми відбійний молоток,|просвердли в землі дірку та досягни інших областей.|Атака: Почни або заверши рити 04:06=Засмутився? Немає можливості атакувати? Хочеш зберегти|боєприпаси? Без проблем! Просто пропусти хід, боягузе!|Атака: Пропусти свою чергу без бою -04:07=Переміщуйся на далекі відстані з допомогою мотузки.|Використайте момент хитання щоб штовхнути інших їжаків|чи киньте в них гранату або іншу зброю.|Атака: Зачепіть або звільніть мотузку|Довгий Стрибок: Киньте гранати чи подібну зброю -04:08=Утриуйте ворогів на відстані, кинувши міну|у вузький прохід або прямо прямо їм під ноги.|Тікайте подалі поки вона не здетонувала!|Атака: Киньте міну собі під ноги -04:09=Вагаєтесь відносно цілі? Візьміть Пустельного|Орла та стріляйте аж до чотирьох разів.|Атака: Стріляй (кілька разів) -04:10=Груба сила - завжди варіант. Киньте цю класичну|вибухівку поруч з ворогом та відступайте.|Атака: Киньте динаміт собі під ноги +04:07=Переміщуйся на далекі відстані з допомогою мотузки.|Використай момент хитання щоб штовхнути інших їжаків|чи кинь в них гранату або іншу зброю.|Атака: Зачепи або звільни мотузку|Довгий Стрибок: Кинь гранати чи подібну зброю +04:08=Утримуй ворогів на відстані, кинувши міну|у вузький прохід або прямо їм під ноги.|Тікай подалі поки вона не здетонувала!|Атака: Кинь міну собі під ноги +04:09=Вагаєшся відносно цілі? Візьми Пустельного|Орла та стріляй аж до чотирьох разів.|Атака: Стріляй (кілька разів) +04:10=Груба сила - завжди варіант. Кинь цю класичну|вибухівку поруч з ворогом та відступай.|Атака: Кинь динаміт собі під ноги 04:11=Позбудься ворога, відправивши його за межі|мапи чи у воду. А як щодо|пограти бейсбол мінами з друзями?|Атака: Дубась все, що бачиш перед собою -04:12=Підійдіть близенько та розкрийте всю силу|цієї майже смертельної техніки бойових мистецтв.|Атака: Виконайте Вогняний Стусан +04:12=Підійди близенько та розкрий всю силу|цієї майже смертельної техніки бойових мистецтв.|Атака: Виконай Вогняний Стусан 04:13=UNUSED -04:14=Боїшся висоти? Краще візьми парашут.|Він відкриється коли|ви будете падати та|вбереже вашого їжака від поранення.|Атака: Розкрийте парашут|Довгий Стрибок: Киньте гранати чи подібну зброю -04:15=Покличте літак для атаки ваших ворогів|бомбардуванням.|Вліво/Вправо: Визначіть напрямок нападу|Курсор: Виберіть цільовий регіон -04:16=Покличте літак для скидання кількох мін|в вибрану область.|Вліво/Вправо: Визначіть напрямок нападу|Курсор: Виберіть цільовий регіон -04:17=Необхідне укриття? З допомогою паяльної лампи вирийте|тунель в землі і забезпечте себе|укриттям.|Атака: Почніть або завершіть рити -04:18=Потрібний додатковий захист або хочеш пройти|непрохідну землю? Розмістіть кілька балок як|вам до вподоби.|Вліво/Вправо: Виберіть потрібну балку|Курсор: Встановіть балку в доступне місце -04:19=Застосована в потрбний момент телепортація може|бути могутнішою більшості зброї, оскільки|дозволяє вберегти їжаків від небезпечних|ситуацій за лічені секунди.|Курсор: Виберіть цільовий регіон -04:20=Дозволяє здійснити поточний хід|іншим їжаком.|Атака: Ввімкніть перемикання їжаків -04:21=Стріляє гранато-подібним снарядом, який|при зіткненні розлетиться на декілька бомб.|Атака: Стріляйте з всієї сили +04:14=Боїшся висоти? Краще візьми парашут.Він|відкриється коли ти будеш падати та|вбереже твого їжака від поранення.|Атака: Розкрий парашут|Довгий Стрибок: Кинь гранати чи подібну зброю +04:15=Поклич літак для атаки ваших ворогів|бомбардуванням.|Вліво/Вправо: Визнач напрямок нападу|Курсор: Вибери цільовий регіон +04:16=Поклич літак для скидання кількох мін|в вибрану область.|Вліво/Вправо: Визнач напрямок нападу|Курсор: Вибери цільовий регіон +04:17=Необхідне укриття? З допомогою|паяльної лампи вирий тунель|в землі і забезпеч себе укриттям.|Атака: Почни або заверш рити +04:18=Потрібний додатковий захист або хочеш пройти|непрохідну землю? Розмісти кілька балок як|тобі до вподоби.|Вліво/Вправо: Вибери потрібну балку|Курсор: Встанови балку в доступне місце +04:19=Застосована в потрбний момент телепортація|може бути могутнішою більшості зброї,|оскільки дозволяє вберегти їжаків від|небезпечних ситуацій за лічені секунди.|Курсор: Вибери цільовий регіон +04:20=Дозволяє здійснити поточний хід|іншим їжаком.|Атака: Ввімкни перемикання їжаків +04:21=Стріляє гранато-подібним снарядом, який|при зіткненні розлетиться на декілька бомб.|Атака: Стріляй з всієї сили 04:22=Не лише для Індіани Джонс! Батіг корисний|в багатьох ситуаціях. Особливо|коли треба штовхнути когось з кручі.|Атака: Бий все, що бачиш перед собою -04:23=Коли нічого втрачати, це може бути|доречним. Принесіть їжака в жертву, запустивши|його в певному напрямку та шкодячи всьому|на його шляху.В кінці шляху він вибухне.|Атака: Почність спустошливу та смертоносну атаку -04:24=З днем народження! Запустіть цей торт, нехай він йде прямо|до ваших ворогів і влаштує їм вибухову|вечірку. Торт може пройти майже всюди|але може вибухнути раніше, ніж треба.|Атака: Запустіть торт або хай зупиниться і вибухне -04:25=Використайте це маскування, щоб ворог стрибнув|назустріч вашому їжакові (і в яку-небудь щілину або яму).|Атака: Візьміть костюм і спробуйте спокусити іншого їжака -04:26=Киньте цей соковитий кавун в ворогів. Коли вийде|час на таймері, він буде розбитий на кілька|вибухових кусків.|1-5: Встановити таймер кавуна|Атака: Утримуйте щоб стрельнути сильніше +04:23=Коли нічого втрачати, це може бути|доречним. Принеси їжака в жертву, запустивши|його в певному напрямку та шкодячи всьому|на його шляху.В кінці шляху він вибухне.|Атака: Почни спустошливу та смертоносну атаку +04:24=З днем народження! Запусти цей торт, нехай він|йде прямо до твоїх ворогів і влаштує їм вибухову|вечірку. Торт може пройти майже всюди|але може вибухнути раніше, ніж треба.|Атака: Запусти торт або хай зупиниться і вибухне +04:25=Використай це маскування, щоб ворог стрибнув|назустріч твоєму їжакові (і в яку-небудь щілину або яму).|Атака: Візьми костюм і спробуй спокусити іншого їжака +04:26=Кинь цей соковитий кавун в ворогів. Коли вийде|час на таймері, він буде розбитий на кілька|вибухових кусків.|1-5: Встановити таймер кавуна|Атака: Утримуй щоб стрельнути сильніше 04:27=Щоб на суперників випав пекельний дощ|візьміть цю диявольську вибухівку. Не підходьте близько|бо іскри можуть летіти ще довго.|Атака: Утримуйте щоб стрельнути сильніше -04:28=Через короткий час після запуску цієї ракети вона|почне бурити землю і вибухне як тільки спрацює|детонатор чи вона знов зіштовхнеться з поверхнею.|Атака: Утримуйте щоб стрельнути сильніше -04:29=Це вам не іграшка! Цей пістолет стріляє купою|маленьких кольорових кульок, начинених вибухівкою.|Атака: Стріляйте з всієї сили|Вверх/Вниз: Змінюйте ціль -04:30=Покличте літак для атаки потужним напалмом.|При правильному виборі цілі ця атака може|викоренити величезні частини ландшафту та|їжаків, які там опинились.|Вліво/Вправо: Визначіть напрямок нападу|Курсор: Виберіть цільовий регіон -04:31=Літак є чудовою зброєю для збору ящиків чи|атаки на віддалених їжаків. Скеруйте його на ворога або|скиньте перед цим пару бомб.|Атака: Запустіть літак або скиньте бомби|Довгий Стрибок: Нехай валькірії вступають в бій|Вверх/Вниз: Керуйте літаком +04:28=Через короткий час після запуску цієї ракети вона|почне бурити землю і вибухне як тільки спрацює|детонатор чи вона знов зіштовхнеться з поверхнею.|Атака: Утримуй щоб стрельнути сильніше +04:29=Це тобі не іграшка! Цей пістолет стріляє купою|маленьких кольорових кульок, начинених вибухівкою.|Атака: Стріляй з всієї сили|Вверх/Вниз: Змінюй ціль +04:30=Поклич літак для атаки потужним напалмом.|При правильному виборі цілі ця атака може|викоренити величезні частини ландшафту та|їжаків, які там опинились.|Вліво/Вправо: Визнач напрямок нападу|Курсор: Вибери цільовий регіон +04:31=Літак є чудовою зброєю для збору ящиків чи|атаки на віддалених їжаків. Скеруй його на|ворога або скинь перед цим пару бомб.|Атака: Запусти літак або скинь бомби|Довгий Стрибок: Нехай валькірії вступають в бій|Вверх/Вниз: Керуй літаком 04:32=Слабка гравітація ефективніша за будь-яку дієту! Стрибай|вище і на більші відстані або дозволь ворогам|літати ще краще.|Атака: Активувати 04:33=Інколи просто нобхідний цей бонус, щоб нанести|більше шкоди.|Атака: Активувати 04:34=Не чіпайте мене!|Атака: Активувати 04:35=Інколи час минає занадто швидко. Візьми додаткові|секунди, щоб завершити атаку.|Атака: Активувати 04:36=Так, інколи просто немає цілі. На|допомогу прийдуть сучасні технології.|Атака: Активувати 04:37=Не бійся денного світла. Вампіризм буде діяти|лише протягом одного ходу, але передась тобі|життя, яке ти забрав в інших їжаків.|Атака: Активувати -04:38=Снайперська гвинтівка може бути найбільш руйнівною|зброєю у вашому арсеналі, але вона не є ефективною|на близьких відстанях. Шкода зростає зі збільшенням|відстані до цілі.|Атака: Стріляй (двічі) -04:39=Лети до іншої частини карти на літаючій|тарілці. Цей важко керований пристрій здатний|перенести вас на практично будь-яку позицію поля бою.|Атака: Активувати|Вверх/Вліво/Вправо: Прикладіть зусилля в одному напрямку|Довгий Стрибок: Киньте гранати чи подібну зброю -04:40=Покрийте землю вогнем, використавши цю плашечку|наповнену горючою (незабаром) рідиною.|Атака: Утримуйте щоб стрельнути сильніше -04:41=Природа може переплюнути навіть літаючу|тарілку. Пташка може поносити їжака навколо та|скинути яйця на ворогів!|Атака: Активуйте та скиньте яйця|Вверх/Вліво/Вправо: Лети в одному напрямку +04:38=Снайперська гвинтівка може бути найбільш руйнівною|зброєю у твоєму арсеналі, але вона не є ефективною|на близьких відстанях. Шкода зростає зі збільшенням|відстані до цілі.|Атака: Стріляй (двічі) +04:39=Лети до іншої частини карти на літаючій тарілці.|Цей важко керований пристрій здатний перенести|тебе на практично будь-яку позицію поля бою.|Атака: Активувати|Вверх/Вліво/Вправо: Приклади зусилля в одному напрямку|Довгий Стрибок: Кинь гранати чи подібну зброю +04:40=Покрий землю вогнем, використавши цю плашечку|наповнену горючою (незабаром) рідиною.|Атака: Утримуй щоб стрельнути сильніше +04:41=Природа може переплюнути навіть літаючу|тарілку. Пташка може поносити їжака|навколо та скинути яйця на ворогів!|Атака: Активуй та скинь яйця|Вверх/Вліво/Вправо: Лети в одному напрямку 04:42=ВЕЛИЧЕЗНИЙ УСПІХ| | |(але текст відсутній!) 04:43=(текст відсутній)