# HG changeset patch # User nemo # Date 1444315696 14400 # Node ID 2f4d0a387a02d121d8a928660e89cf502b3c697f # Parent a85b0ef91685f9fb414654f63e6e1ce6e5455d78 Pass overridden uid into AddGear instead diff -r a85b0ef91685 -r 2f4d0a387a02 hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Thu Oct 08 10:42:00 2015 -0400 +++ b/hedgewars/uGearsHandlersMess.pas Thu Oct 08 10:48:16 2015 -0400 @@ -5429,8 +5429,7 @@ for i:= 0 to graves.size - 1 do if graves.ar^[i]^.Health > 0 then begin - resgear := AddGear(hwRound(graves.ar^[i]^.X), hwRound(graves.ar^[i]^.Y), gtHedgehog, gstWait, _0, _0, 0); - resgear^.uid:= graves.ar^[i]^.Pos; + resgear := AddGear(hwRound(graves.ar^[i]^.X), hwRound(graves.ar^[i]^.Y), gtHedgehog, gstWait, _0, _0, 0,graves.ar^[i]^.Pos); resgear^.Hedgehog := graves.ar^[i]^.Hedgehog; resgear^.Health := graves.ar^[i]^.Health; PHedgehog(graves.ar^[i]^.Hedgehog)^.Gear := resgear; diff -r a85b0ef91685 -r 2f4d0a387a02 hedgewars/uGearsList.pas --- a/hedgewars/uGearsList.pas Thu Oct 08 10:42:00 2015 -0400 +++ b/hedgewars/uGearsList.pas Thu Oct 08 10:48:16 2015 -0400 @@ -23,6 +23,7 @@ uses uFloat, uTypes, SDLh; function AddGear(X, Y: LongInt; Kind: TGearType; State: Longword; dX, dY: hwFloat; Timer: LongWord): PGear; +function AddGear(X, Y: LongInt; Kind: TGearType; State: Longword; dX, dY: hwFloat; Timer, newUid: LongWord): PGear; procedure DeleteGear(Gear: PGear); procedure InsertGearToList(Gear: PGear); procedure RemoveGearFromList(Gear: PGear); @@ -164,11 +165,16 @@ function AddGear(X, Y: LongInt; Kind: TGearType; State: Longword; dX, dY: hwFloat; Timer: LongWord): PGear; +begin +AddGear:= AddGear(X, Y, Kind, State, dX, dY, Timer, 0); +end; +function AddGear(X, Y: LongInt; Kind: TGearType; State: Longword; dX, dY: hwFloat; Timer, newUid: LongWord): PGear; var gear: PGear; //c: byte; cakeData: PCakeData; begin -inc(GCounter); +if newUid = 0 then + inc(GCounter); AddFileLog('AddGear: #' + inttostr(GCounter) + ' (' + inttostr(x) + ',' + inttostr(y) + '), d(' + floattostr(dX) + ',' + floattostr(dY) + ') type = ' + EnumToStr(Kind)); @@ -186,7 +192,9 @@ gear^.doStep:= doStepHandlers[Kind]; gear^.CollisionIndex:= -1; gear^.Timer:= Timer; -gear^.uid:= GCounter; +if newUid = 0 then + gear^.uid:= GCounter +else gear^.uid:= newUid; gear^.SoundChannel:= -1; gear^.ImpactSound:= sndNone; gear^.Density:= _1;