hedgewars/GSHandlers.inc
changeset 2460 ac0c497fb842
parent 2457 ecf0c7e7995b
child 2462 fa3ddd1ff2a1
equal deleted inserted replaced
2459:a4176afd61e1 2460:ac0c497fb842
  1201 	CheckGearDrowning(Gear);
  1201 	CheckGearDrowning(Gear);
  1202 	end;
  1202 	end;
  1203 
  1203 
  1204 if (Gear^.dY.QWordValue = 0) then AddGearCI(Gear)
  1204 if (Gear^.dY.QWordValue = 0) then AddGearCI(Gear)
  1205 	else if (Gear^.dY.QWordValue <> 0) then DeleteCI(Gear)
  1205 	else if (Gear^.dY.QWordValue <> 0) then DeleteCI(Gear)
       
  1206 end;
       
  1207 
       
  1208 ////////////////////////////////////////////////////////////////////////////////
       
  1209 
       
  1210 procedure doStepTarget(Gear: PGear);
       
  1211 begin
       
  1212 if (Gear^.Timer = 0) and (Gear^.Tag = 0) then
       
  1213 	PlaySound(sndWarp, false, nil);
       
  1214 
       
  1215 if (Gear^.Tag = 0) and (Gear^.Timer < 1000) then
       
  1216 	inc(Gear^.Timer)
       
  1217 else if Gear^.Tag = 1 then
       
  1218 	if Gear^.Timer > 0 then
       
  1219 		dec(Gear^.Timer)
       
  1220 	else
       
  1221 		begin
       
  1222 			TrainingTargetGear:= AddGear(0, 0, gtTarget, 0, _0, _0, 0);
       
  1223 			FindPlace(TrainingTargetGear, false, 0, LAND_WIDTH);
       
  1224 			inc(TurnTimeLeft, TrainingTimeInc);
       
  1225 			
       
  1226 			if TrainingTimeInc > TrainingTimeInM then
       
  1227 				dec(TrainingTimeInc, TrainingTimeInD);
       
  1228 			if TurnTimeLeft > TrainingTimeMax then
       
  1229 				TurnTimeLeft:= TrainingTimeMax;
       
  1230 			
       
  1231 			DeleteGear(Gear);
       
  1232 			exit;
       
  1233 		end;
       
  1234 
       
  1235 doStepCase(Gear)
  1206 end;
  1236 end;
  1207 
  1237 
  1208 ////////////////////////////////////////////////////////////////////////////////
  1238 ////////////////////////////////////////////////////////////////////////////////
  1209 procedure doStepIdle(Gear: PGear);
  1239 procedure doStepIdle(Gear: PGear);
  1210 begin
  1240 begin
  2217 		AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtSmokeTrace, 0, _0, _0, 0);
  2247 		AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtSmokeTrace, 0, _0, _0, 0);
  2218 
  2248 
  2219 	// pickup targets
  2249 	// pickup targets
  2220 	t:= CheckGearNear(Gear, gtTarget, 36, 36);
  2250 	t:= CheckGearNear(Gear, gtTarget, 36, 36);
  2221 	if t <> nil then
  2251 	if t <> nil then
  2222 		begin;
  2252 		begin
  2223 		// TODO: Sound!
  2253 		if t^.Tag = 1 then // collect it only once
  2224 		PlaySound(sndGraveImpact, false, nil);
  2254 			exit;
  2225 		DeleteGear(t);
  2255 		PlaySound(sndShotgunReload, false, nil);
  2226 		TrainingTargetGear:= AddGear(0, 0, gtTarget, 0, _0, _0, 0);
  2256 		t^.Tag:= 1;
  2227 		FindPlace(TrainingTargetGear, false, 0, LAND_WIDTH);
  2257 		TrainingTargetGear:= nil; // remove target cursor
  2228 		inc(TurnTimeLeft, TrainingTimeInc);
  2258 		exit;
  2229 		
       
  2230 		if TrainingTimeInc > TrainingTimeInM then
       
  2231 			dec(TrainingTimeInc, TrainingTimeInD);
       
  2232 		if TurnTimeLeft > TrainingTimeMax then TurnTimeLeft:= TrainingTimeMax;
       
  2233 		end;
  2259 		end;
  2234 
  2260 
  2235 	if (TurnTimeLeft > 0) then 
  2261 	if (TurnTimeLeft > 0) then 
  2236 		dec(TurnTimeLeft)
  2262 		dec(TurnTimeLeft)
  2237 	else
  2263 	else