BEGIN
DECLARE sInstance VARCHAR(8) DEFAULT i;
DECLARE iVehSpawnMax INT DEFAULT 1000;
DECLARE iTimeoutMax INT DEFAULT 250;
DECLARE iTimeout INT DEFAULT 0;
DECLARE iNumVehExisting INT DEFAULT 0;
DECLARE iNumClassExisting INT DEFAULT 0;
DECLARE i INT DEFAULT 1;
CALL pvCleanup(8178);
SELECT COUNT(*)
INTO iNumVehExisting
FROM Object_DATA
WHERE Instance = sInstance
AND Classname != '-'
AND Classname != 'Hedgehog_DZ'
AND Classname != 'Wire_cat1'
AND Classname != 'Sandbag1_DZ'
AND Classname != 'BearTrap_DZ'
AND Classname != 'TentStorage';
WHILE (iNumVehExisting < iVehSpawnMax) DO
SELECT Classname, Chance, MaxNum, Damage
INTO @rsClassname, @rsChance, @rsMaxNum, @rsDamage
FROM object_classes ORDER BY RAND() LIMIT 1;
SELECT COUNT(*)
INTO iNumClassExisting
FROM Object_DATA
WHERE Instance = sInstance
AND Classname = @rsClassname;
IF (iNumClassExisting < @rsMaxNum) THEN
IF (rndspawn(@rschance) = 1) THEN
INSERT INTO Object_DATA (ObjectUID, Instance, Classname, Damage, CharacterID, Worldspace, Inventory, Hitpoints, Fuel, Datestamp)
SELECT ObjectUID, sInstance, Classname, 0.1, '0', Worldspace, Inventory, Hitpoints, 0.9, SYSDATE()
FROM object_spawns
WHERE Classname = @rsClassname
AND NOT ObjectUID IN (select objectuid from Object_DATA where instance = sInstance)
ORDER BY RAND()
LIMIT 0, 1;
SELECT COUNT(*)
INTO iNumVehExisting
FROM Object_DATA
WHERE Instance = sInstance
AND Classname != '-'
AND Classname != 'Hedgehog_DZ'
AND Classname != 'Wire_cat1'
AND Classname != 'Sandbag1_DZ'
AND Classname != 'BearTrap_DZ'
AND Classname != 'TentStorage';
SELECT COUNT(*)
INTO iNumClassExisting
FROM Object_DATA
WHERE Instance = sInstance
AND Classname = @rsClassname;
END IF;
END IF;
SET iTimeout = iTimeout + 1;
IF (iTimeout >= iTimeoutMax) THEN
SET iNumVehExisting = iVehSpawnMax;
END IF;
END WHILE;
SET i = i + 1;
END