- Fix Blow Torch and Air Attack
authorunc0rr
Mon, 22 Jan 2007 18:32:00 +0000
changeset 357 165a040e4cfa
parent 356 ca3a5dfcae75
child 358 236bbd12d4d9
- Fix Blow Torch and Air Attack - Use Sin values table - Fix some warnings
hedgewars/CMakeLists.txt
hedgewars/GSHandlers.inc
hedgewars/SinTable.inc
hedgewars/hwengine.dpr
hedgewars/uFloat.pas
hedgewars/uGears.pas
--- a/hedgewars/CMakeLists.txt	Sun Jan 21 22:27:42 2007 +0000
+++ b/hedgewars/CMakeLists.txt	Mon Jan 22 18:32:00 2007 +0000
@@ -17,6 +17,7 @@
 	uCollisions.pas
 	uConsole.pas
 	uConsts.pas
+	uFloat.pas
 	uGame.pas
 	uGears.pas
 	uIO.pas
@@ -35,6 +36,7 @@
 	CCHandlers.inc
 	GSHandlers.inc
 	HHHandlers.inc
+	SinTable.inc
 	options.inc
 	proto.inc
 	tunsetborder.inc
--- a/hedgewars/GSHandlers.inc	Sun Jan 21 22:27:42 2007 +0000
+++ b/hedgewars/GSHandlers.inc	Mon Jan 22 18:32:00 2007 +0000
@@ -370,8 +370,8 @@
    end;
 if (Gear^.Timer and $3F) = 0 then
    begin
-   i:= hwRound(Gear^.X) - Gear^.Radius  - GetRandom(2);
-   ei:= hwRound(Gear^.X) + Gear^.Radius + GetRandom(2);
+   i:= hwRound(Gear^.X) - Gear^.Radius - integer(GetRandom(2));
+   ei:= hwRound(Gear^.X) + Gear^.Radius + integer(GetRandom(2));
    while i <= ei do
          begin
          doMakeExplosion(i, hwRound(Gear^.Y) + 3, 3, 0);
@@ -413,8 +413,8 @@
 y:= hwRound(Gear^.Y) - cHHRadius*2;
 while y < hwRound(Gear^.Y) do
    begin
-   ar[i].Left := hwRound(Gear^.X) - Gear^.Radius - GetRandom(2);
-   ar[i].Right:= hwRound(Gear^.X) + Gear^.Radius + GetRandom(2);
+   ar[i].Left := hwRound(Gear^.X) - Gear^.Radius - integer(GetRandom(2));
+   ar[i].Right:= hwRound(Gear^.X) + Gear^.Radius + integer(GetRandom(2));
    inc(y, 2);
    inc(i)
    end;
@@ -445,7 +445,7 @@
    Gear^.dX:= hwSign(HHGear^.dX) * AngleSin(HHGear^.Angle) * _0_5;
    Gear^.dY:= AngleCos(HHGear^.Angle) * ( - _0_5);
    BTPrevAngle:= HHGear^.Angle;
-   b:= true
+//   b:= true
    end;
 
 if Gear^.Timer mod cHHStepTicks = 0 then
@@ -453,7 +453,10 @@
    b:= true;
    if Gear^.dX < 0 then HHGear^.Message:= (HHGear^.Message or gm_Left) and not gm_Right
                   else HHGear^.Message:= (HHGear^.Message or gm_Right) and not gm_Left;
+
+   HHGear^.State:= HHGear^.State and not gstAttacking;
    HedgehogStep(HHGear);
+   HHGear^.State:= HHGear^.State or gstAttacking;
 
    inc(BTSteps);
    if BTSteps = 11 then
@@ -488,7 +491,6 @@
 BTPrevAngle:= High(Longword);
 BTSteps:= 0;
 HHGear:= PHedgehog(Gear^.Hedgehog)^.Gear;
-HHGear^.State:= HHGear^.State and not gstAttacking;
 HHGear^.Message:= 0;
 Gear^.doStep:= @doStepBlowTorchWork
 end;
@@ -1017,13 +1019,16 @@
 end;
 
 procedure doStepAirAttack(Gear: PGear);
+var t: integer;
 begin
 AllInactive:= false;
 Gear^.X:= -1024;
 Gear^.Y:= -128;
 Gear^.dX:= TargetPoint.X -
-          cBombsDistance * 5 / 2;{ -
-          cBombsSpeed * sqrt(2 * (TargetPoint.Y - Gear^.Y) / cGravity);}
+          cBombsDistance * 5 / 2;
+
+if TargetPoint.Y - Gear^.Y > 0 then
+   Gear^.dX:= Gear^.dX - cBombsSpeed * hwSqrt(2 * (TargetPoint.Y - Gear^.Y) / cGravity);
 Gear^.Health:= 6;
 Gear^.doStep:= @doStepAirAttackWork
 end;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hedgewars/SinTable.inc	Mon Jan 22 18:32:00 2007 +0000
@@ -0,0 +1,1027 @@
+const SinTable: array[0..1024] of QWord = (
+     $00000000,
+     $006487EB,
+     $00C90FC6,
+     $012D9782,
+     $01921F10,
+     $01F6A660,
+     $025B2D62,
+     $02BFB407,
+     $03243A40,
+     $0388BFFC,
+     $03ED452D,
+     $0451C9C3,
+     $04B64DAF,
+     $051AD0E0,
+     $057F5348,
+     $05E3D4D7,
+     $0648557E,
+     $06ACD52C,
+     $071153D3,
+     $0775D163,
+     $07DA4DCC,
+     $083EC900,
+     $08A342EE,
+     $0907BB86,
+     $096C32BB,
+     $09D0A87B,
+     $0A351CB8,
+     $0A998F62,
+     $0AFE0069,
+     $0B626FBF,
+     $0BC6DD53,
+     $0C2B4916,
+     $0C8FB2F9,
+     $0CF41AEB,
+     $0D5880DF,
+     $0DBCE4C3,
+     $0E214689,
+     $0E85A622,
+     $0EEA037D,
+     $0F4E5E8B,
+     $0FB2B73D,
+     $10170D83,
+     $107B614E,
+     $10DFB28F,
+     $11440135,
+     $11A84D31,
+     $120C9675,
+     $1270DCF0,
+     $12D52093,
+     $1339614E,
+     $139D9F13,
+     $1401D9D1,
+     $14661179,
+     $14CA45FC,
+     $152E774A,
+     $1592A554,
+     $15F6D00B,
+     $165AF75E,
+     $16BF1B3E,
+     $17233B9D,
+     $1787586A,
+     $17EB7197,
+     $184F8713,
+     $18B398CF,
+     $1917A6BC,
+     $197BB0CB,
+     $19DFB6EB,
+     $1A43B90E,
+     $1AA7B724,
+     $1B0BB11E,
+     $1B6FA6EC,
+     $1BD3987F,
+     $1C3785C8,
+     $1C9B6EB6,
+     $1CFF533B,
+     $1D633348,
+     $1DC70ECC,
+     $1E2AE5B8,
+     $1E8EB7FE,
+     $1EF2858D,
+     $1F564E57,
+     $1FBA124B,
+     $201DD15B,
+     $20818B77,
+     $20E5408F,
+     $2148F095,
+     $21AC9B79,
+     $2210412C,
+     $2273E19E,
+     $22D77CBF,
+     $233B1281,
+     $239EA2D5,
+     $24022DAA,
+     $2465B2F1,
+     $24C9329C,
+     $252CAC9A,
+     $259020DD,
+     $25F38F55,
+     $2656F7F3,
+     $26BA5AA7,
+     $271DB762,
+     $27810E14,
+     $27E45EB0,
+     $2847A924,
+     $28AAED62,
+     $290E2B5B,
+     $297162FF,
+     $29D4943F,
+     $2A37BF0B,
+     $2A9AE355,
+     $2AFE010D,
+     $2B611823,
+     $2BC42889,
+     $2C27322F,
+     $2C8A3506,
+     $2CED30FF,
+     $2D50260A,
+     $2DB31418,
+     $2E15FB1A,
+     $2E78DB01,
+     $2EDBB3BD,
+     $2F3E853F,
+     $2FA14F78,
+     $30041258,
+     $3066CDD1,
+     $30C981D3,
+     $312C2E50,
+     $318ED336,
+     $31F17079,
+     $32540608,
+     $32B693D3,
+     $331919CD,
+     $337B97E6,
+     $33DE0E0E,
+     $34407C36,
+     $34A2E250,
+     $3505404B,
+     $3567961A,
+     $35C9E3AC,
+     $362C28F3,
+     $368E65DE,
+     $36F09A61,
+     $3752C66A,
+     $37B4E9EB,
+     $381704D5,
+     $38791719,
+     $38DB20A7,
+     $393D2170,
+     $399F1966,
+     $3A010879,
+     $3A62EE9A,
+     $3AC4CBBA,
+     $3B269FCB,
+     $3B886ABB,
+     $3BEA2C7E,
+     $3C4BE503,
+     $3CAD943C,
+     $3D0F3A1A,
+     $3D70D68C,
+     $3DD26986,
+     $3E33F2F6,
+     $3E9572CF,
+     $3EF6E901,
+     $3F58557E,
+     $3FB9B836,
+     $401B111A,
+     $407C601B,
+     $40DDA52A,
+     $413EE039,
+     $41A01138,
+     $42013818,
+     $426254CA,
+     $42C3673F,
+     $43246F69,
+     $43856D38,
+     $43E6609E,
+     $4447498B,
+     $44A827F0,
+     $4508FBBF,
+     $4569C4E9,
+     $45CA835E,
+     $462B3710,
+     $468BDFF0,
+     $46EC7DEE,
+     $474D10FD,
+     $47AD990D,
+     $480E160F,
+     $486E87F5,
+     $48CEEEAF,
+     $492F4A2F,
+     $498F9A65,
+     $49EFDF44,
+     $4A5018BB,
+     $4AB046BD,
+     $4B10693A,
+     $4B708024,
+     $4BD08B6C,
+     $4C308B02,
+     $4C907ED9,
+     $4CF066E1,
+     $4D50430C,
+     $4DB0134A,
+     $4E0FD78D,
+     $4E6F8FC7,
+     $4ECF3BE8,
+     $4F2EDBE2,
+     $4F8E6FA6,
+     $4FEDF725,
+     $504D7250,
+     $50ACE11A,
+     $510C4372,
+     $516B994B,
+     $51CAE295,
+     $522A1F43,
+     $52894F44,
+     $52E8728C,
+     $5347890A,
+     $53A692B0,
+     $54058F70,
+     $54647F3B,
+     $54C36203,
+     $552237B8,
+     $5581004C,
+     $55DFBBB0,
+     $563E69D7,
+     $569D0AB0,
+     $56FB9E2E,
+     $575A2443,
+     $57B89CDE,
+     $581707F3,
+     $58756572,
+     $58D3B54D,
+     $5931F775,
+     $59902BDC,
+     $59EE5273,
+     $5A4C6B2B,
+     $5AAA75F7,
+     $5B0872C8,
+     $5B66618E,
+     $5BC4423C,
+     $5C2214C4,
+     $5C7FD916,
+     $5CDD8F25,
+     $5D3B36E1,
+     $5D98D03D,
+     $5DF65B29,
+     $5E53D798,
+     $5EB1457C,
+     $5F0EA4C4,
+     $5F6BF565,
+     $5FC9374E,
+     $60266A71,
+     $60838EC1,
+     $60E0A42F,
+     $613DAAAC,
+     $619AA22A,
+     $61F78A9B,
+     $625463F0,
+     $62B12E1B,
+     $630DE90E,
+     $636A94BB,
+     $63C73113,
+     $6423BE08,
+     $64803B8B,
+     $64DCA98F,
+     $65390805,
+     $659556DF,
+     $65F1960E,
+     $664DC585,
+     $66A9E535,
+     $6705F510,
+     $6761F508,
+     $67BDE50F,
+     $6819C516,
+     $6875950F,
+     $68D154EC,
+     $692D049F,
+     $6988A41B,
+     $69E4334F,
+     $6A3FB230,
+     $6A9B20AE,
+     $6AF67EBB,
+     $6B51CC49,
+     $6BAD094B,
+     $6C0835B2,
+     $6C635170,
+     $6CBE5C77,
+     $6D1956B9,
+     $6D744028,
+     $6DCF18B5,
+     $6E29E054,
+     $6E8496F6,
+     $6EDF3C8C,
+     $6F39D10A,
+     $6F945460,
+     $6FEEC681,
+     $70492760,
+     $70A376EE,
+     $70FDB51D,
+     $7157E1DF,
+     $71B1FD26,
+     $720C06E5,
+     $7265FF0E,
+     $72BFE593,
+     $7319BA65,
+     $73737D77,
+     $73CD2EBC,
+     $7426CE24,
+     $74805BA4,
+     $74D9D72C,
+     $753340AF,
+     $758C981F,
+     $75E5DD6E,
+     $763F108F,
+     $76983174,
+     $76F1400F,
+     $774A3C52,
+     $77A32630,
+     $77FBFD9B,
+     $7854C285,
+     $78AD74E0,
+     $7906149F,
+     $795EA1B5,
+     $79B71C13,
+     $7A0F83AC,
+     $7A67D872,
+     $7AC01A58,
+     $7B184950,
+     $7B70654C,
+     $7BC86E3F,
+     $7C20641B,
+     $7C7846D3,
+     $7CD01659,
+     $7D27D2A0,
+     $7D7F7B99,
+     $7DD71139,
+     $7E2E9370,
+     $7E860232,
+     $7EDD5D71,
+     $7F34A51F,
+     $7F8BD930,
+     $7FE2F995,
+     $803A0641,
+     $8090FF28,
+     $80E7E43A,
+     $813EB56C,
+     $819572AF,
+     $81EC1BF7,
+     $8242B135,
+     $8299325D,
+     $82EF9F62,
+     $8345F835,
+     $839C3CC9,
+     $83F26D12,
+     $84488902,
+     $849E908B,
+     $84F483A1,
+     $854A6236,
+     $85A02C3C,
+     $85F5E1A8,
+     $864B826B,
+     $86A10E78,
+     $86F685C2,
+     $874BE83C,
+     $87A135D9,
+     $87F66E8C,
+     $884B9247,
+     $88A0A0FD,
+     $88F59AA1,
+     $894A7F26,
+     $899F4E7F,
+     $89F408A0,
+     $8A48AD7A,
+     $8A9D3D00,
+     $8AF1B727,
+     $8B461BE0,
+     $8B9A6B1F,
+     $8BEEA4D7,
+     $8C42C8FA,
+     $8C96D77C,
+     $8CEAD050,
+     $8D3EB368,
+     $8D9280B9,
+     $8DE63834,
+     $8E39D9CD,
+     $8E8D6578,
+     $8EE0DB27,
+     $8F343ACD,
+     $8F87845E,
+     $8FDAB7CC,
+     $902DD50C,
+     $9080DC0F,
+     $90D3CCCA,
+     $9126A72F,
+     $91796B31,
+     $91CC18C5,
+     $921EAFDD,
+     $9271306C,
+     $92C39A66,
+     $9315EDBE,
+     $93682A67,
+     $93BA5055,
+     $940C5F7A,
+     $945E57CB,
+     $94B0393B,
+     $950203BD,
+     $9553B744,
+     $95A553C4,
+     $95F6D930,
+     $9648477C,
+     $96999E9A,
+     $96EADE80,
+     $973C071F,
+     $978D186C,
+     $97DE125A,
+     $982EF4DD,
+     $987FBFE7,
+     $98D0736D,
+     $99210F62,
+     $997193BA,
+     $99C20068,
+     $9A125560,
+     $9A629296,
+     $9AB2B7FD,
+     $9B02C588,
+     $9B52BB2C,
+     $9BA298DC,
+     $9BF25E8C,
+     $9C420C2F,
+     $9C91A1B9,
+     $9CE11F1F,
+     $9D308453,
+     $9D7FD149,
+     $9DCF05F6,
+     $9E1E224C,
+     $9E6D2640,
+     $9EBC11C6,
+     $9F0AE4D1,
+     $9F599F56,
+     $9FA84148,
+     $9FF6CA9A,
+     $A0453B42,
+     $A0939332,
+     $A0E1D25F,
+     $A12FF8BC,
+     $A17E063F,
+     $A1CBFAD9,
+     $A219D681,
+     $A2679928,
+     $A2B542C5,
+     $A302D349,
+     $A3504AAB,
+     $A39DA8DD,
+     $A3EAEDD3,
+     $A4381983,
+     $A4852BDF,
+     $A4D224DD,
+     $A51F046F,
+     $A56BCA8B,
+     $A5B87724,
+     $A6050A2F,
+     $A65183A0,
+     $A69DE36B,
+     $A6EA2984,
+     $A73655DF,
+     $A7826871,
+     $A7CE612E,
+     $A81A400B,
+     $A86604FB,
+     $A8B1AFF3,
+     $A8FD40E7,
+     $A948B7CB,
+     $A9941495,
+     $A9DF5738,
+     $AA2A7FA9,
+     $AA758DDB,
+     $AAC081C5,
+     $AB0B5B59,
+     $AB561A8D,
+     $ABA0BF54,
+     $ABEB49A4,
+     $AC35B971,
+     $AC800EB0,
+     $ACCA4954,
+     $AD146953,
+     $AD5E6EA1,
+     $ADA85932,
+     $ADF228FC,
+     $AE3BDDF3,
+     $AE85780B,
+     $AECEF73A,
+     $AF185B73,
+     $AF61A4AC,
+     $AFAAD2D9,
+     $AFF3E5EF,
+     $B03CDDE3,
+     $B085BAA9,
+     $B0CE7C36,
+     $B117227F,
+     $B15FAD79,
+     $B1A81D19,
+     $B1F07153,
+     $B238AA1C,
+     $B280C769,
+     $B2C8C930,
+     $B310AF64,
+     $B35879FB,
+     $B3A028E9,
+     $B3E7BC25,
+     $B42F33A1,
+     $B4768F55,
+     $B4BDCF34,
+     $B504F334,
+     $B54BFB49,
+     $B592E769,
+     $B5D9B789,
+     $B6206B9E,
+     $B667039D,
+     $B6AD7F7A,
+     $B6F3DF2C,
+     $B73A22A7,
+     $B78049E1,
+     $B7C654CE,
+     $B80C4364,
+     $B8521599,
+     $B897CB60,
+     $B8DD64B0,
+     $B922E17E,
+     $B96841BF,
+     $B9AD8569,
+     $B9F2AC70,
+     $BA37B6CB,
+     $BA7CA46D,
+     $BAC1754E,
+     $BB062962,
+     $BB4AC09E,
+     $BB8F3AF8,
+     $BBD39866,
+     $BC17D8DD,
+     $BC5BFC52,
+     $BCA002BA,
+     $BCE3EC0D,
+     $BD27B83E,
+     $BD6B6744,
+     $BDAEF913,
+     $BDF26DA3,
+     $BE35C4E7,
+     $BE78FED6,
+     $BEBC1B66,
+     $BEFF1A8C,
+     $BF41FC3E,
+     $BF84C071,
+     $BFC7671B,
+     $C009F032,
+     $C04C5BAB,
+     $C08EA97D,
+     $C0D0D99E,
+     $C112EC02,
+     $C154E0A0,
+     $C196B76D,
+     $C1D87060,
+     $C21A0B6E,
+     $C25B888D,
+     $C29CE7B4,
+     $C2DE28D7,
+     $C31F4BEE,
+     $C36050ED,
+     $C3A137CB,
+     $C3E2007E,
+     $C422AAFC,
+     $C463373A,
+     $C4A3A530,
+     $C4E3F4D2,
+     $C5242618,
+     $C56438F7,
+     $C5A42D65,
+     $C5E40359,
+     $C623BAC8,
+     $C66353A9,
+     $C6A2CDF2,
+     $C6E22999,
+     $C7216694,
+     $C76084DA,
+     $C79F8461,
+     $C7DE651F,
+     $C81D270B,
+     $C85BCA1B,
+     $C89A4E44,
+     $C8D8B37F,
+     $C916F9C0,
+     $C95520FE,
+     $C9932930,
+     $C9D1124D,
+     $CA0EDC49,
+     $CA4C871D,
+     $CA8A12BF,
+     $CAC77F24,
+     $CB04CC45,
+     $CB41FA16,
+     $CB7F088F,
+     $CBBBF7A6,
+     $CBF8C752,
+     $CC35778A,
+     $CC720844,
+     $CCAE7977,
+     $CCEACB19,
+     $CD26FD21,
+     $CD630F87,
+     $CD9F0240,
+     $CDDAD543,
+     $CE168888,
+     $CE521C04,
+     $CE8D8FAF,
+     $CEC8E380,
+     $CF04176E,
+     $CF3F2B6E,
+     $CF7A1F79,
+     $CFB4F385,
+     $CFEFA78A,
+     $D02A3B7D,
+     $D064AF56,
+     $D09F030C,
+     $D0D93696,
+     $D11349EB,
+     $D14D3D02,
+     $D1870FD2,
+     $D1C0C253,
+     $D1FA547A,
+     $D233C641,
+     $D26D179C,
+     $D2A64885,
+     $D2DF58F1,
+     $D31848D8,
+     $D3511832,
+     $D389C6F5,
+     $D3C25519,
+     $D3FAC295,
+     $D4330F60,
+     $D46B3B73,
+     $D4A346C3,
+     $D4DB3148,
+     $D512FAFB,
+     $D54AA3D1,
+     $D5822BC4,
+     $D5B992C9,
+     $D5F0D8D8,
+     $D627FDEA,
+     $D65F01F5,
+     $D695E4F1,
+     $D6CCA6D6,
+     $D703479A,
+     $D739C736,
+     $D77025A2,
+     $D7A662D4,
+     $D7DC7EC5,
+     $D812796C,
+     $D84852C1,
+     $D87E0ABB,
+     $D8B3A152,
+     $D8E9167F,
+     $D91E6A38,
+     $D9539C76,
+     $D988AD30,
+     $D9BD9C5E,
+     $D9F269F8,
+     $DA2715F5,
+     $DA5BA04F,
+     $DA9008FC,
+     $DAC44FF5,
+     $DAF87531,
+     $DB2C78A8,
+     $DB605A53,
+     $DB941A29,
+     $DBC7B822,
+     $DBFB3437,
+     $DC2E8E60,
+     $DC61C694,
+     $DC94DCCB,
+     $DCC7D0FF,
+     $DCFAA326,
+     $DD2D533A,
+     $DD5FE131,
+     $DD924D06,
+     $DDC496AF,
+     $DDF6BE25,
+     $DE28C360,
+     $DE5AA658,
+     $DE8C6707,
+     $DEBE0563,
+     $DEEF8167,
+     $DF20DB09,
+     $DF521242,
+     $DF83270B,
+     $DFB4195C,
+     $DFE4E92D,
+     $E0159678,
+     $E0462134,
+     $E076895A,
+     $E0A6CEE2,
+     $E0D6F1C6,
+     $E106F1FD,
+     $E136CF81,
+     $E1668A4A,
+     $E1962250,
+     $E1C5978C,
+     $E1F4E9F7,
+     $E224198A,
+     $E253263D,
+     $E2821009,
+     $E2B0D6E7,
+     $E2DF7AD0,
+     $E30DFBBC,
+     $E33C59A4,
+     $E36A9482,
+     $E398AC4D,
+     $E3C6A0FF,
+     $E3F47291,
+     $E42220FC,
+     $E44FAC38,
+     $E47D143F,
+     $E4AA590A,
+     $E4D77A91,
+     $E50478CE,
+     $E53153B9,
+     $E55E0B4D,
+     $E58A9F81,
+     $E5B71050,
+     $E5E35DB2,
+     $E60F87A0,
+     $E63B8E14,
+     $E6677106,
+     $E6933071,
+     $E6BECC4C,
+     $E6EA4493,
+     $E715993D,
+     $E740CA44,
+     $E76BD7A2,
+     $E796C150,
+     $E7C18746,
+     $E7EC2980,
+     $E816A7F6,
+     $E84102A1,
+     $E86B397B,
+     $E8954C7D,
+     $E8BF3BA2,
+     $E8E906E2,
+     $E912AE37,
+     $E93C319B,
+     $E9659107,
+     $E98ECC75,
+     $E9B7E3DE,
+     $E9E0D73D,
+     $EA09A68A,
+     $EA3251C0,
+     $EA5AD8D9,
+     $EA833BCD,
+     $EAAB7A97,
+     $EAD39531,
+     $EAFB8B94,
+     $EB235DBB,
+     $EB4B0B9E,
+     $EB729539,
+     $EB99FA84,
+     $EBC13B7B,
+     $EBE85816,
+     $EC0F5050,
+     $EC362422,
+     $EC5CD387,
+     $EC835E7A,
+     $ECA9C4F3,
+     $ECD006EC,
+     $ECF62461,
+     $ED1C1D4B,
+     $ED41F1A4,
+     $ED67A167,
+     $ED8D2C8E,
+     $EDB29312,
+     $EDD7D4EE,
+     $EDFCF21D,
+     $EE21EA98,
+     $EE46BE5A,
+     $EE6B6D5D,
+     $EE8FF79C,
+     $EEB45D11,
+     $EED89DB6,
+     $EEFCB986,
+     $EF20B07B,
+     $EF448290,
+     $EF682FBF,
+     $EF8BB802,
+     $EFAF1B55,
+     $EFD259B1,
+     $EFF57311,
+     $F0186771,
+     $F03B36C9,
+     $F05DE116,
+     $F0806651,
+     $F0A2C676,
+     $F0C5017F,
+     $F0E71767,
+     $F1090828,
+     $F12AD3BD,
+     $F14C7A22,
+     $F16DFB50,
+     $F18F5744,
+     $F1B08DF6,
+     $F1D19F64,
+     $F1F28B86,
+     $F2135259,
+     $F233F3D8,
+     $F2546FFC,
+     $F274C6C2,
+     $F294F824,
+     $F2B5041D,
+     $F2D4EAA8,
+     $F2F4ABC1,
+     $F3144762,
+     $F333BD87,
+     $F3530E2B,
+     $F3723949,
+     $F3913EDB,
+     $F3B01EDE,
+     $F3CED94D,
+     $F3ED6E23,
+     $F40BDD5A,
+     $F42A26F0,
+     $F4484ADD,
+     $F466491F,
+     $F48421B1,
+     $F4A1D48D,
+     $F4BF61B0,
+     $F4DCC915,
+     $F4FA0AB6,
+     $F5172691,
+     $F5341C9F,
+     $F550ECDE,
+     $F56D9747,
+     $F58A1BD8,
+     $F5A67A8B,
+     $F5C2B35C,
+     $F5DEC647,
+     $F5FAB347,
+     $F6167A59,
+     $F6321B77,
+     $F64D969E,
+     $F668EBC9,
+     $F6841AF5,
+     $F69F241C,
+     $F6BA073B,
+     $F6D4C44E,
+     $F6EF5B50,
+     $F709CC3E,
+     $F7241713,
+     $F73E3BCB,
+     $F7583A63,
+     $F77212D5,
+     $F78BC51F,
+     $F7A5513C,
+     $F7BEB729,
+     $F7D7F6E1,
+     $F7F11060,
+     $F80A03A4,
+     $F822D0A6,
+     $F83B7765,
+     $F853F7DD,
+     $F86C5208,
+     $F88485E4,
+     $F89C936D,
+     $F8B47AA0,
+     $F8CC3B78,
+     $F8E3D5F1,
+     $F8FB4A09,
+     $F91297BC,
+     $F929BF05,
+     $F940BFE2,
+     $F9579A4F,
+     $F96E4E48,
+     $F984DBCA,
+     $F99B42D2,
+     $F9B1835B,
+     $F9C79D63,
+     $F9DD90E6,
+     $F9F35DE1,
+     $FA090450,
+     $FA1E8430,
+     $FA33DD7E,
+     $FA491036,
+     $FA5E1C55,
+     $FA7301D8,
+     $FA87C0BC,
+     $FA9C58FD,
+     $FAB0CA99,
+     $FAC5158C,
+     $FAD939D2,
+     $FAED376A,
+     $FB010E50,
+     $FB14BE80,
+     $FB2847F8,
+     $FB3BAAB4,
+     $FB4EE6B3,
+     $FB61FBF0,
+     $FB74EA69,
+     $FB87B21A,
+     $FB9A5302,
+     $FBACCD1D,
+     $FBBF2068,
+     $FBD14CE1,
+     $FBE35284,
+     $FBF5314F,
+     $FC06E93F,
+     $FC187A52,
+     $FC29E484,
+     $FC3B27D4,
+     $FC4C443D,
+     $FC5D39BE,
+     $FC6E0855,
+     $FC7EAFFD,
+     $FC8F30B6,
+     $FC9F8A7C,
+     $FCAFBD4D,
+     $FCBFC926,
+     $FCCFAE05,
+     $FCDF6BE8,
+     $FCEF02CB,
+     $FCFE72AD,
+     $FD0DBB8C,
+     $FD1CDD64,
+     $FD2BD833,
+     $FD3AABF8,
+     $FD4958B0,
+     $FD57DE58,
+     $FD663CEF,
+     $FD747472,
+     $FD8284DF,
+     $FD906E34,
+     $FD9E306F,
+     $FDABCB8D,
+     $FDB93F8C,
+     $FDC68C6B,
+     $FDD3B228,
+     $FDE0B0BF,
+     $FDED8830,
+     $FDFA3878,
+     $FE06C196,
+     $FE132387,
+     $FE1F5E4A,
+     $FE2B71DC,
+     $FE375E3C,
+     $FE432368,
+     $FE4EC15E,
+     $FE5A381D,
+     $FE6587A2,
+     $FE70AFEB,
+     $FE7BB0F8,
+     $FE868AC7,
+     $FE913D55,
+     $FE9BC8A1,
+     $FEA62CAA,
+     $FEB0696D,
+     $FEBA7EEA,
+     $FEC46D1F,
+     $FECE3409,
+     $FED7D3A9,
+     $FEE14BFB,
+     $FEEA9D00,
+     $FEF3C6B4,
+     $FEFCC918,
+     $FF05A429,
+     $FF0E57E6,
+     $FF16E44E,
+     $FF1F495F,
+     $FF278719,
+     $FF2F9D79,
+     $FF378C80,
+     $FF3F542A,
+     $FF46F478,
+     $FF4E6D68,
+     $FF55BEF9,
+     $FF5CE92A,
+     $FF63EBF9,
+     $FF6AC766,
+     $FF717B6F,
+     $FF780814,
+     $FF7E6D54,
+     $FF84AB2C,
+     $FF8AC19E,
+     $FF90B0A7,
+     $FF967847,
+     $FF9C187C,
+     $FFA19147,
+     $FFA6E2A6,
+     $FFAC0C97,
+     $FFB10F1C,
+     $FFB5EA32,
+     $FFBA9DD9,
+     $FFBF2A10,
+     $FFC38ED7,
+     $FFC7CC2C,
+     $FFCBE210,
+     $FFCFD082,
+     $FFD39780,
+     $FFD7370B,
+     $FFDAAF21,
+     $FFDDFFC3,
+     $FFE128F0,
+     $FFE42AA6,
+     $FFE704E7,
+     $FFE9B7B1,
+     $FFEC4304,
+     $FFEEA6E0,
+     $FFF0E344,
+     $FFF2F82F,
+     $FFF4E5A2,
+     $FFF6AB9D,
+     $FFF84A1E,
+     $FFF9C126,
+     $FFFB10B5,
+     $FFFC38CA,
+     $FFFD3965,
+     $FFFE1286,
+     $FFFEC42C,
+     $FFFF4E59,
+     $FFFFB10B,
+     $FFFFEC43,
+    $100000000
+     );
--- a/hedgewars/hwengine.dpr	Sun Jan 21 22:27:42 2007 +0000
+++ b/hedgewars/hwengine.dpr	Mon Jan 22 18:32:00 2007 +0000
@@ -55,6 +55,7 @@
 // also: GSHandlers.inc
 //       CCHandlers.inc
 //       HHHandlers.inc
+//       SinTable.inc
 //       proto.inc
 
 
--- a/hedgewars/uFloat.pas	Sun Jan 21 22:27:42 2007 +0000
+++ b/hedgewars/uFloat.pas	Mon Jan 22 18:32:00 2007 +0000
@@ -53,9 +53,10 @@
 function hwRound(t: hwFloat): integer;
 function hwAbs(t: hwFloat): hwFloat;
 function hwSqr(t: hwFloat): hwFloat;
+function hwSqrt(t: hwFloat): hwFloat;
 function Distance(dx, dy: hwFloat): hwFloat;
-function AngleSin(angle: Longword): hwFloat;
-function AngleCos(angle: Longword): hwFloat;
+function AngleSin(Angle: Longword): hwFloat;
+function AngleCos(Angle: Longword): hwFloat;
 
 const  _1div1024: hwFloat = (isNegative: false; QWordValue:     4194304);
       _1div10000: hwFloat = (isNegative: false; QWordValue:      429496);
@@ -246,6 +247,12 @@
 hwSqr:= t * t
 end;
 
+function hwSqrt(t: hwFloat): hwFloat;
+begin
+hwSqrt.isNegative:= false;
+hwSqrt.QWordValue:= Round(sqrt(1.0 / $100000000 * (t.QWordValue)) * $100000000)
+end;
+
 function Distance(dx, dy: hwFloat): hwFloat;
 var x, y: hwFloat;
     Result: hwFloat;
@@ -253,22 +260,25 @@
 x:= dx * dx;
 y:= dy * dy;
 Result:= x + y;
-Result.QWordValue:= Round(sqrt(1.0 / 4294967296 * (Result.QWordValue)) * 4294967296);
+Result.QWordValue:= Round(sqrt(1.0 / $100000000 * (Result.QWordValue)) * $100000000);
 Distance:= Result
 end;
 
-function AngleSin(angle: Longword): hwFloat;
+{$INCLUDE SinTable.inc}
+
+function AngleSin(Angle: Longword): hwFloat;
 begin
 AngleSin.isNegative:= false;
-AngleSin.QWordValue:= Round(Sin(Angle * pi / cMaxAngle) * 4294967296)
+if Angle < 1024 then AngleSin.QWordValue:= SinTable[Angle]
+                else AngleSin.QWordValue:= SinTable[2048 - Angle]
 end;
 
-function AngleCos(angle: Longword): hwFloat;
+function AngleCos(Angle: Longword): hwFloat;
 var CosVal: Extended;
 begin
-CosVal:= Cos(Angle * pi / cMaxAngle);
-AngleCos.isNegative:= CosVal < 0;
-AngleCos.QWordValue:= Round(Abs(Cosval) * 4294967296)
+AngleCos.isNegative:= Angle > 1024;
+if Angle < 1024 then AngleCos.QWordValue:= SinTable[1024 - Angle]
+                else AngleCos.QWordValue:= SinTable[Angle - 1024]
 end;
 
 {$ENDIF}
--- a/hedgewars/uGears.pas	Sun Jan 21 22:27:42 2007 +0000
+++ b/hedgewars/uGears.pas	Mon Jan 22 18:32:00 2007 +0000
@@ -162,7 +162,7 @@
 inc(Counter);
 {$IFDEF DEBUGFILE}AddFileLog('AddGear: ('+inttostr(x)+','+inttostr(y)+'), d('+floattostr(dX)+','+floattostr(dY)+')');{$ENDIF}
 New(Result);
-{$IFDEF DEBUGFILE}AddFileLog('AddGear: type = '+inttostr(ord(Kind))+'; handle = '+inttostr(integer(Result)));{$ENDIF}
+{$IFDEF DEBUGFILE}AddFileLog('AddGear: type = ' + inttostr(ord(Kind)));{$ENDIF}
 FillChar(Result^, sizeof(TGear), 0);
 Result^.X:= X;
 Result^.Y:= Y;
@@ -286,7 +286,6 @@
 if Gear^.Kind = gtHedgehog then
    if CurAmmoGear <> nil then
       begin
-      {$IFDEF DEBUGFILE}AddFileLog('DeleteGear: Sending gm_Destroy, hh handle = '+inttostr(integer(Gear)));{$ENDIF}
       Gear^.Message:= gm_Destroy;
       CurAmmoGear^.Message:= gm_Destroy;
       exit
@@ -305,7 +304,7 @@
       inc(KilledHHs);
       RecountTeamHealth(team);
       end;
-{$IFDEF DEBUGFILE}AddFileLog('DeleteGear: handle = '+inttostr(integer(Gear)));{$ENDIF}
+{$IFDEF DEBUGFILE}AddFileLog('DeleteGear');{$ENDIF}
 if CurAmmoGear = Gear then CurAmmoGear:= nil;
 if FollowGear = Gear then FollowGear:= nil;
 RemoveGearFromList(Gear);
@@ -873,16 +872,14 @@
           Gear^.X:= x;
           Gear^.Y:= y;
          {$IFDEF DEBUGFILE}
-         AddFileLog('Assigned Gear ' + inttostr(integer(Gear)) +
-                    ' coordinates (' + inttostr(x) +
-                    ',' + inttostr(y) + ')');
+         AddFileLog('Assigned Gear coordinates (' + inttostr(x) + ',' + inttostr(y) + ')');
          {$ENDIF}
           exit
           end
   until (x - Gear^.Radius < fx) and (x + Gear^.Radius > fx);
 dec(Delta, 20)
 until (Delta < 70);
-OutError('Couldn''t find place for Gear ' + inttostr(integer(Gear)), false);
+OutError('Couldn''t find place for Gear', false);
 DeleteGear(Gear)
 end;