--- 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;
--- 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;
--- 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=(текст відсутній)