# HG changeset patch # User Stepan777 # Date 1340738582 -14400 # Node ID 998128081b8652be790c40ff8fe4a0f08bdfdaa9 # Parent 135e4fb3b09531c0573dc04a6e1fd482ed48d427# Parent 7672733e4dc9a05771c83d40a1e3b34c1932a667 merge diff -r 135e4fb3b095 -r 998128081b86 QTfrontend/drawmapscene.cpp --- a/QTfrontend/drawmapscene.cpp Tue Jun 26 02:15:50 2012 +0400 +++ b/QTfrontend/drawmapscene.cpp Tue Jun 26 23:23:02 2012 +0400 @@ -224,8 +224,11 @@ qint16 px = qToBigEndian((qint16)point.x()); qint16 py = qToBigEndian((qint16)point.y()); quint8 flags = 0; - if(!cnt) flags = 0x80 + params.width; - if(params.erasing) flags |= 0x40; + if(!cnt) + { + flags = 0x80 + params.width; + if(params.erasing) flags |= 0x40; + } b.append((const char *)&px, 2); b.append((const char *)&py, 2); b.append((const char *)&flags, 1); diff -r 135e4fb3b095 -r 998128081b86 hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Tue Jun 26 02:15:50 2012 +0400 +++ b/hedgewars/GSHandlers.inc Tue Jun 26 23:23:02 2012 +0400 @@ -3437,7 +3437,7 @@ //////////////////////////////////////////////////////////////////////////////// procedure doStepBallgunWork(Gear: PGear); var - HHGear: PGear; + HHGear, ball: PGear; rx, ry: hwFloat; gX, gY: LongInt; begin @@ -3452,7 +3452,8 @@ rx := rndSign(getRandomf * _0_1); ry := rndSign(getRandomf * _0_1); - AddGear(gx, gy, gtBall, 0, SignAs(AngleSin(HHGear^.Angle) * _0_8, HHGear^.dX) + rx, AngleCos(HHGear^.Angle) * ( - _0_8) + ry, 0); + ball:= AddGear(gx, gy, gtBall, 0, SignAs(AngleSin(HHGear^.Angle) * _0_8, HHGear^.dX) + rx, AngleCos(HHGear^.Angle) * ( - _0_8) + ry, 0); + ball^.CollisionMask:= $FF7F; PlaySound(sndGun); end; @@ -4410,7 +4411,7 @@ ty := 0; // avoid compiler hints - if ((y and LAND_HEIGHT_MASK) = 0) and ((x and LAND_WIDTH_MASK) = 0) and (Land[y, x] > 255) then + if ((y and LAND_HEIGHT_MASK) = 0) and ((x and LAND_WIDTH_MASK) = 0) and (Land[y, x] and ($FF00 and not lfBouncy) <> 0) then begin Gear^.State := Gear^.State or gstCollision; Gear^.State := Gear^.State and (not gstMoving); diff -r 135e4fb3b095 -r 998128081b86 hedgewars/uConsts.pas --- a/hedgewars/uConsts.pas Tue Jun 26 02:15:50 2012 +0400 +++ b/hedgewars/uConsts.pas Tue Jun 26 23:23:02 2012 +0400 @@ -99,6 +99,7 @@ lfObject = $2000; lfDamaged = $1000; // lfIce = $0800; // blue + lfBouncy = $0400; // green cMaxPower = 1500; cMaxAngle = 2048; diff -r 135e4fb3b095 -r 998128081b86 hedgewars/uLand.pas --- a/hedgewars/uLand.pas Tue Jun 26 02:15:50 2012 +0400 +++ b/hedgewars/uLand.pas Tue Jun 26 23:23:02 2012 +0400 @@ -434,19 +434,22 @@ begin for x:= 0 to Pred(tmpsurf^.w) do begin - if ((AMask and p^[x]) = 0) then + // this an if instead of masking colours to avoid confusing map creators + if ((AMask and p^[x]) = 0) then Land[cpY + y, cpX + x]:= 0 - else if p^[x] = $FFFFFFFF then + else if p^[x] = $FFFFFFFF then // white Land[cpY + y, cpX + x]:= lfObject - else if p^[x] = (AMask or RMask) then - Land[cpY + y, cpX + x]:= lfIndestructible - else if p^[x] = AMask then + else if p^[x] = AMask then // black begin Land[cpY + y, cpX + x]:= lfBasic; disableLandBack:= false end - else if p^[x] = (AMask or BMask) then + else if p^[x] = (AMask or RMask) then // red + Land[cpY + y, cpX + x]:= lfIndestructible + else if p^[x] = (AMask or BMask) then // blue Land[cpY + y, cpX + x]:= lfObject or lfIce + else if p^[x] = (AMask or GMask) then // green + Land[cpY + y, cpX + x]:= lfObject or lfBouncy end; p:= @(p^[tmpsurf^.pitch div 4]); end; diff -r 135e4fb3b095 -r 998128081b86 share/hedgewars/Data/Graphics/hedgewars.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Graphics/hedgewars.svg Tue Jun 26 23:23:02 2012 +0400 @@ -0,0 +1,111 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + +