# HG changeset patch # User unc0rr # Date 1169490720 0 # Node ID 165a040e4cfaaec63f4dec14d8b24b9c532ed3b8 # Parent ca3a5dfcae75f576ed8666750c9212d0be78c896 - Fix Blow Torch and Air Attack - Use Sin values table - Fix some warnings diff -r ca3a5dfcae75 -r 165a040e4cfa hedgewars/CMakeLists.txt --- 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 diff -r ca3a5dfcae75 -r 165a040e4cfa hedgewars/GSHandlers.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; diff -r ca3a5dfcae75 -r 165a040e4cfa hedgewars/SinTable.inc --- /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 + ); diff -r ca3a5dfcae75 -r 165a040e4cfa hedgewars/hwengine.dpr --- 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 diff -r ca3a5dfcae75 -r 165a040e4cfa hedgewars/uFloat.pas --- 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} diff -r ca3a5dfcae75 -r 165a040e4cfa hedgewars/uGears.pas --- 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;