share/hedgewars/Data/Scripts/Multiplayer/HedgeEditor.lua
changeset 12015 37787ab00853
parent 12014 9937075bbfd5
child 12016 e93ee0bedad8
equal deleted inserted replaced
12014:9937075bbfd5 12015:37787ab00853
   160 							"Utility Crate Placement Mode",
   160 							"Utility Crate Placement Mode",
   161 
   161 
   162 
   162 
   163 			napalm =		arrow sprite (selection/modification/deletion mode)
   163 			napalm =		arrow sprite (selection/modification/deletion mode)
   164 							"Repositioning Mode",  -- also include a delete
   164 							"Repositioning Mode",  -- also include a delete
   165 							"Goal Mode",
   165 							"Goal Editing Mode",
   166 							"Hog Identity Mode",
   166 							"Hog Identity Mode",
   167 							"Team Identity Mode",
   167 							"Team Identity Mode",
   168 							"Health Modification Mode",
   168 							"Health Modification Mode",
   169 							"Sprite Testing Mode",
   169 							"Sprite Testing Mode",
   170 							"Sprite Modification Mode",
   170 							"Sprite Modification Mode",
   171 							"Sprite Placement Mode",
   171 							"Sprite Placement Mode",
   172 							"Waypoint Mode"
   172 							"Waypoint Editing Mode"
   173 							}]]
   173 							}]]
   174 
   174 
   175 -- [low]	improve support for ShoppaBalance and ConstructionMode, see ranking)
   175 -- [low]	improve support for ShoppaBalance and ConstructionMode, see ranking)
   176 
   176 
   177 -- [low] 	consider combining landflags
   177 -- [low] 	consider combining landflags
   636 				loc("Weapon Crate Placement Mode"),
   636 				loc("Weapon Crate Placement Mode"),
   637 				loc("Utility Crate Placement Mode"),
   637 				loc("Utility Crate Placement Mode"),
   638 				loc("Target Placement Mode"),
   638 				loc("Target Placement Mode"),
   639 				loc("Cleaver Placement Mode"),
   639 				loc("Cleaver Placement Mode"),
   640 				loc("Repositioning Mode"),
   640 				loc("Repositioning Mode"),
   641 				loc("Goal Mode"),
   641 				loc("Goal Definition Mode"),
   642 				loc("Hog Identity Mode"),
   642 				loc("Hog Identity Mode"),
   643 				loc("Team Identity Mode"),
   643 				loc("Team Identity Mode"),
   644 				loc("Health Modification Mode"),
   644 				loc("Health Modification Mode"),
   645 				--loc("Sprite Testing Mode"),
       
   646 				loc("Sprite Placement Mode"),
   645 				loc("Sprite Placement Mode"),
   647 				loc("Sprite Modification Mode"),
   646 				loc("Sprite Modification Mode"),
   648 				loc("Waypoint Mode")
   647 				loc("Waypoint Editing Mode")
   649 				}
   648 				}
   650 
   649 
   651 
   650 
   652 local pMode = {}	-- pMode contains custom subsets of the main categories
   651 local pMode = {}	-- pMode contains custom subsets of the main categories
   653 local pIndex = 1
   652 local pIndex = 1
   917 
   916 
   918 function PlaceWaypoint(x,y)
   917 function PlaceWaypoint(x,y)
   919 
   918 
   920 	placedX[placedCount] = x
   919 	placedX[placedCount] = x
   921 	placedY[placedCount] = y
   920 	placedY[placedCount] = y
   922 	placedType[placedCount] = loc("Waypoint Mode")
   921 	placedType[placedCount] = loc("Waypoint Editing Mode")
   923 	placedLandFlags[placedCount] = nil -- use this to specify waypoint type maybe
   922 	placedLandFlags[placedCount] = nil -- use this to specify waypoint type maybe
   924 	placedHWMapFlag[placedCount] = 0
   923 	placedHWMapFlag[placedCount] = 0
   925 
   924 
   926 	placedSprite[placedCount] = vgtCircle
   925 	placedSprite[placedCount] = vgtCircle
   927 	placedSpec[placedCount] = AddVisualGear(x,y,vgtCircle,0,true)
   926 	placedSpec[placedCount] = AddVisualGear(x,y,vgtCircle,0,true)
  1066 
  1065 
  1067 	closestDist = 999999999
  1066 	closestDist = 999999999
  1068 	closestSpriteID = nil -- just in case
  1067 	closestSpriteID = nil -- just in case
  1069 
  1068 
  1070 	for i = 0, (placedCount-1) do
  1069 	for i = 0, (placedCount-1) do
  1071 		if (placedType[i] == loc("Waypoint Mode")) then
  1070 		if (placedType[i] == loc("Waypoint Editing Mode")) then
  1072 				q = placedX[i] - placedX[placedCount]
  1071 				q = placedX[i] - placedX[placedCount]
  1073 				w = placedY[i] - placedY[placedCount]
  1072 				w = placedY[i] - placedY[placedCount]
  1074 				d = ( (q*q) + (w*w) )
  1073 				d = ( (q*q) + (w*w) )
  1075 				if d < closestDist then
  1074 				if d < closestDist then
  1076 					closestDist = d
  1075 					closestDist = d
  1276 
  1275 
  1277 			end
  1276 			end
  1278 		end
  1277 		end
  1279 
  1278 
  1280 
  1279 
  1281 	elseif cat[cIndex] == loc("Goal Mode") then
  1280 	elseif cat[cIndex] == loc("Goal Definition Mode") then
  1282 
  1281 
  1283 		sGear = GetClosestGear()
  1282 		sGear = GetClosestGear()
  1284 		if sGear ~= nil then  -- used to be closestGear
  1283 		if sGear ~= nil then  -- used to be closestGear
  1285 
  1284 
  1286 			if getGearValue(sGear,"tag") == nil then
  1285 			if getGearValue(sGear,"tag") == nil then
  1321 			placedType[placedCount] = "bogus"
  1320 			placedType[placedCount] = "bogus"
  1322 			SelectClosestSprite()
  1321 			SelectClosestSprite()
  1323 			EraseClosestSprite()
  1322 			EraseClosestSprite()
  1324 		end
  1323 		end
  1325 
  1324 
  1326 	elseif cat[cIndex] == loc("Waypoint Mode") then
  1325 	elseif cat[cIndex] == loc("Waypoint Editing Mode") then
  1327 
  1326 
  1328 
  1327 
  1329 		if pMode[pIndex] == loc("Delete Waypoint") then
  1328 		if pMode[pIndex] == loc("Delete Waypoint") then
  1330 			placedType[placedCount] = "bogus"
  1329 			placedType[placedCount] = "bogus"
  1331 			EraseClosestWaypoint()
  1330 			EraseClosestWaypoint()
  1382 		pMode = {500,1000,1500,2000,2500,0}
  1381 		pMode = {500,1000,1500,2000,2500,0}
  1383 	elseif cat[cIndex] == loc("Air Mine Placement Mode") then
  1382 	elseif cat[cIndex] == loc("Air Mine Placement Mode") then
  1384 		pMode = {750,1000,1250,0,250,500}
  1383 		pMode = {750,1000,1250,0,250,500}
  1385 	elseif cat[cIndex] == loc("Repositioning Mode") then
  1384 	elseif cat[cIndex] == loc("Repositioning Mode") then
  1386 		pMode = {loc("Selection Mode"),loc("Placement Mode"), loc("Deletion Mode")}
  1385 		pMode = {loc("Selection Mode"),loc("Placement Mode"), loc("Deletion Mode")}
  1387 	elseif cat[cIndex] == loc("Goal Mode") then
  1386 	elseif cat[cIndex] == loc("Goal Definition Mode") then
  1388 		pMode = {loc("Victory Condition: Destroy"),loc("Losing Condition: Destroy"),loc("Victory Condition: Collect")}
  1387 		pMode = {loc("Victory Condition: Destroy"),loc("Losing Condition: Destroy"),loc("Victory Condition: Collect")}
  1389 	elseif cat[cIndex] == loc("Hog Identity Mode") then
  1388 	elseif cat[cIndex] == loc("Hog Identity Mode") then
  1390 		pMode = {loc("Soldier"),loc("Grenadier"),loc("Sniper"),loc("Pyro"),loc("Ninja"),loc("Commander"),loc("Chef"),loc("Engineer"),loc("Physicist"),loc("Trapper"),loc("Saint"),loc("Clown")}
  1389 		pMode = {loc("Soldier"),loc("Grenadier"),loc("Sniper"),loc("Pyro"),loc("Ninja"),loc("Commander"),loc("Chef"),loc("Engineer"),loc("Physicist"),loc("Trapper"),loc("Saint"),loc("Clown")}
  1391 	elseif cat[cIndex] == loc("Team Identity Mode") then
  1390 	elseif cat[cIndex] == loc("Team Identity Mode") then
  1392 		pMode = preMadeTeamNamesTranslated
  1391 		pMode = preMadeTeamNamesTranslated
  1399 		pMode = {loc("LandFlag Modification Mode"),loc("Sprite Erasure Mode")}
  1398 		pMode = {loc("LandFlag Modification Mode"),loc("Sprite Erasure Mode")}
  1400 	elseif cat[cIndex] == loc("Sprite Testing Mode") or cat[cIndex] == loc("Sprite Placement Mode") then
  1399 	elseif cat[cIndex] == loc("Sprite Testing Mode") or cat[cIndex] == loc("Sprite Placement Mode") then
  1401 		for i = 1, #reducedSpriteTextArray do
  1400 		for i = 1, #reducedSpriteTextArray do
  1402 			pMode[i] = reducedSpriteTextArray[i]
  1401 			pMode[i] = reducedSpriteTextArray[i]
  1403 		end
  1402 		end
  1404 	elseif cat[cIndex] == loc("Waypoint Mode") then
  1403 	elseif cat[cIndex] == loc("Waypoint Editing Mode") then
  1405 		pMode = {loc("Place Waypoint"), loc("Delete Waypoint")}
  1404 		pMode = {loc("Place Waypoint"), loc("Delete Waypoint")}
  1406 	end
  1405 	end
  1407 
  1406 
  1408 end
  1407 end
  1409 
  1408 
  2061 	WriteLnToConsole("	portalDistance = " .. portalDistance*5)
  2060 	WriteLnToConsole("	portalDistance = " .. portalDistance*5)
  2062 	table.insert(hFlagList, "	" .. portalDistance*5 .. " " .. ufoFuel .. " " .. 98)
  2061 	table.insert(hFlagList, "	" .. portalDistance*5 .. " " .. ufoFuel .. " " .. 98)
  2063 	WriteLnToConsole("")
  2062 	WriteLnToConsole("")
  2064 
  2063 
  2065 	for i = 0, (placedCount-1) do
  2064 	for i = 0, (placedCount-1) do
  2066 		if placedType[i] == loc("Waypoint Mode") then
  2065 		if placedType[i] == loc("Waypoint Editing Mode") then
  2067 			table.insert(waypointList,
  2066 			table.insert(waypointList,
  2068 			"	AddWayPoint(" ..
  2067 			"	AddWayPoint(" ..
  2069 				placedX[i] ..", " ..
  2068 				placedX[i] ..", " ..
  2070 				placedY[i] ..")"
  2069 				placedY[i] ..")"
  2071 				)
  2070 				)
  2423 
  2422 
  2424 function UpdateTagCircles(gear)
  2423 function UpdateTagCircles(gear)
  2425 
  2424 
  2426 	if getGearValue(gear,"tag") ~= nil then
  2425 	if getGearValue(gear,"tag") ~= nil then
  2427 
  2426 
  2428 		if cat[cIndex] == loc("Goal Mode") then
  2427 		if cat[cIndex] == loc("Goal Definition Mode") then
  2429 
  2428 
  2430 			-- generate circs for tagged gears that don't have a circ yet (new)
  2429 			-- generate circs for tagged gears that don't have a circ yet (new)
  2431 			if getGearValue(gear,"tCirc") == nil then
  2430 			if getGearValue(gear,"tCirc") == nil then
  2432 				setGearValue(gear, "tCirc",AddVisualGear(0,0,vgtCircle,0,true))
  2431 				setGearValue(gear, "tCirc",AddVisualGear(0,0,vgtCircle,0,true))
  2433 			end
  2432 			end
  2559 		hedgeEditorMissionPanelShown = false
  2558 		hedgeEditorMissionPanelShown = false
  2560 
  2559 
  2561 	elseif cat[cIndex] == loc("Cleaver Placement Mode") then
  2560 	elseif cat[cIndex] == loc("Cleaver Placement Mode") then
  2562 
  2561 
  2563 		ShowMission	(
  2562 		ShowMission	(
  2564 				loc("CLEAVER MINE PLACEMENT MODE"),
  2563 				loc("CLEAVER PLACEMENT MODE"),
  2565 				loc("Use this mode to place cleavers"),
  2564 				loc("Use this mode to place cleavers"),
  2566 				loc("Place Object: [Left Click]") .. "|" ..
  2565 				loc("Place Object: [Left Click]") .. "|" ..
  2567 				" " .. "|" ..
  2566 				" " .. "|" ..
  2568 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  2567 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  2569 				loc("Toggle Help: Precise+1") .. "|" ..
  2568 				loc("Toggle Help: Precise+1") .. "|" ..
  2572 		hedgeEditorMissionPanelShown = false
  2571 		hedgeEditorMissionPanelShown = false
  2573 
  2572 
  2574 	elseif cat[cIndex] == loc("Target Placement Mode") then
  2573 	elseif cat[cIndex] == loc("Target Placement Mode") then
  2575 
  2574 
  2576 		ShowMission	(
  2575 		ShowMission	(
  2577 				loc("TARGET MINE PLACEMENT MODE"),
  2576 				loc("TARGET PLACEMENT MODE"),
  2578 				loc("Use this mode to place targets"),
  2577 				loc("Use this mode to place targets"),
  2579 				loc("Place Object: [Left Click]") .. "|" ..
  2578 				loc("Place Object: [Left Click]") .. "|" ..
  2580 				" " .. "|" ..
  2579 				" " .. "|" ..
  2581 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  2580 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  2582 				loc("Toggle Help: Precise+1") .. "|" ..
  2581 				loc("Toggle Help: Precise+1") .. "|" ..
  2583 				"", 1, 60000
  2582 				"", 1, 60000
  2584 				)
  2583 				)
  2585 		hedgeEditorMissionPanelShown = false
  2584 		hedgeEditorMissionPanelShown = false
  2586 
  2585 
  2587 	elseif cat[cIndex] == loc("Waypoint Mode") then
  2586 	elseif cat[cIndex] == loc("Waypoint Editing Mode") then
  2588 
  2587 
  2589 		ShowMission	(
  2588 		ShowMission	(
  2590 				loc("WAYPOINT MODE"),
  2589 				loc("WAYPOINT EDITING MODE"),
  2591 				loc("Use this mode to place or delete waypoints"),
  2590 				loc("Use this mode to place or delete waypoints"),
  2592 				loc("Place/Delete Waypoint: [Left Click]") .. "|" ..
  2591 				loc("Place/Delete Waypoint: [Left Click]") .. "|" ..
  2593 				loc("Toggle Placement/Deletion: [Left], [Right]") .. "|" ..
  2592 				loc("Toggle Placement/Deletion: [Left], [Right]") .. "|" ..
  2594 				" " .. "|" ..
  2593 				" " .. "|" ..
  2595 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  2594 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  2627 		hedgeEditorMissionPanelShown = false
  2626 		hedgeEditorMissionPanelShown = false
  2628 
  2627 
  2629 	elseif cat[cIndex] == loc("Sticky Mine Placement Mode") then
  2628 	elseif cat[cIndex] == loc("Sticky Mine Placement Mode") then
  2630 
  2629 
  2631 		ShowMission	(
  2630 		ShowMission	(
  2632 				loc("STiCKY MINE PLACEMENT MODE"),
  2631 				loc("STICKY MINE PLACEMENT MODE"),
  2633 				loc("Use this mode to place sticky mines"),
  2632 				loc("Use this mode to place sticky mines"),
  2634 				loc("Place Object: [Left Click]") .. "|" ..
  2633 				loc("Place Object: [Left Click]") .. "|" ..
  2635 				loc("Change Timer (in milliseconds): [Left], [Right]") .. "|" ..
  2634 				loc("Change Timer (in milliseconds): [Left], [Right]") .. "|" ..
  2636 				" " .. "|" ..
  2635 				" " .. "|" ..
  2637 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  2636 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  2748 				loc("Toggle Help: Precise+1") .. "|" ..
  2747 				loc("Toggle Help: Precise+1") .. "|" ..
  2749 				"", 2, 60000
  2748 				"", 2, 60000
  2750 				)
  2749 				)
  2751 		hedgeEditorMissionPanelShown = false
  2750 		hedgeEditorMissionPanelShown = false
  2752 
  2751 
  2753 	elseif cat[cIndex] == loc("Goal Mode") then
  2752 	elseif cat[cIndex] == loc("Goal Definition Mode") then
  2754 
  2753 
  2755 		ShowMission	(
  2754 		ShowMission	(
  2756 				loc("GOAL MODE"),
  2755 				loc("GOAL DEFINITION MODE"),
  2757 				loc("Use this mode to mark gears for win/lose conditions."),
  2756 				loc("Use this mode to mark gears for win/lose conditions."),
  2758 				loc("Mark/unmark gear: [Left Click]") .. "|" ..
  2757 				loc("Mark/unmark gear: [Left Click]") .. "|" ..
  2759 				loc("Select win/lose condition: [Left], [Right]") .. "|" ..
  2758 				loc("Select win/lose condition: [Left], [Right]") .. "|" ..
  2760 				" " .. "|" ..
  2759 				" " .. "|" ..
  2761 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  2760 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  2981 	--update selected gear display
  2980 	--update selected gear display
  2982 	if (cat[cIndex] == loc("Repositioning Mode")) and (sGear ~= nil) then
  2981 	if (cat[cIndex] == loc("Repositioning Mode")) and (sGear ~= nil) then
  2983 		SetVisualGearValues(sCirc, GetX(sGear), GetY(sGear), 100, 255, 1, 10, 0, 300, 3, 0xff00ffff)
  2982 		SetVisualGearValues(sCirc, GetX(sGear), GetY(sGear), 100, 255, 1, 10, 0, 300, 3, 0xff00ffff)
  2984 	elseif (cat[cIndex] == loc("Sprite Modification Mode")) and (sSprite ~= nil) then
  2983 	elseif (cat[cIndex] == loc("Sprite Modification Mode")) and (sSprite ~= nil) then
  2985 		SetVisualGearValues(sSprite, nil, nil, 0, 0, nil, nil, 10000, nil, 10000)
  2984 		SetVisualGearValues(sSprite, nil, nil, 0, 0, nil, nil, 10000, nil, 10000)
  2986 	elseif (cat[cIndex] == loc("Goal Mode")) then
  2985 	elseif (cat[cIndex] == loc("Goal Definition Mode")) then
  2987 		if (sGear ~= nil) or (closestGear ~= nil) then
  2986 		if (sGear ~= nil) or (closestGear ~= nil) then
  2988 			closestGear = nil
  2987 			closestGear = nil
  2989 			sGear = nil
  2988 			sGear = nil
  2990 		end
  2989 		end
  2991 	end
  2990 	end