Skip to content
Merged
18 changes: 16 additions & 2 deletions gui/ModeEditor.layout
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@
<Property name="Text" value="Help"/>
<Property name="Area" value="{{0,0},{0,10},{0,0},{0,20}}" />
<Window type="OD/PopupMenu" name="PopupMenu6">
<Window type="OD/MenuItem" name="Controls">
<Property name="Text" value="Controls"/>
</Window>
<Window type="OD/MenuItem" name="About">
<Property name="Text" value="About"/>
</Window>
Expand Down Expand Up @@ -152,8 +155,8 @@
</Window>
<Window type="OD/StaticText" name="CreatureSpawnDisplay" >
<Property name="AlwaysOnTop" value="True" />
<Property name="Area" value="{{0,570},{0,0},{0,780},{0,25}}" />
<Property name="Text" value="Creature (C): ?" />
<Property name="Area" value="{{0,570},{0,0},{0,800},{0,25}}" />
<Property name="Text" value="Creature (C): ?, level (L): 1" />
<Property name="MaxSize" value="{{1,0},{1,0}}" />
<Property name="TooltipText" value="Selected Creature to spawn" />
<Property name="HorzFormatting" value="RightAligned" />
Expand All @@ -172,6 +175,15 @@
</Window>
</Window>
</Window>
<Window type="OD/StaticText" name="LevelNameDisplay" >
<Property name="AlwaysOnTop" value="True" />
<Property name="Area" value="{{1,-330},{0,32},{1,-5},{0,57}}" />
<Property name="Text" value="Level: " />
<Property name="MaxSize" value="{{1,0},{1,0}}" />
<Property name="TooltipText" value="The level being edited" />
<Property name="HorzFormatting" value="RightAligned" />
<Property name="ClippedByParent" value="False" />
</Window>
<Window type="OD/ImageButton" name="OptionsButton" >
<Property name="Area" value="{{1,-27},{0,5},{1,-2},{0,30}}" />
<Property name="ButtonImage" value="OpenDungeonsIcons/OptionsIcon" />
Expand Down Expand Up @@ -258,6 +270,8 @@
</Window>
</Window>
<LayoutImport type="DefaultWindow" filename="WindowEditorOptions.layout" name="EditorOptionsMenuImport" />
<LayoutImport type="DefaultWindow" filename="WindowEditorHelp.layout" name="EditorHelpImport" />
<LayoutImport type="DefaultWindow" filename="WindowEditorPortalWaves.layout" name="EditorPortalWavesImport" />
<LayoutImport type="DefaultWindow" filename="WindowQuit.layout" name="EditorQuitMenuImport" />
<LayoutImport type="DefaultWindow" filename="LoadConfirm.layout" name="EditorConfirmLoadImport" />
<LayoutImport type="DefaultWindow" filename="WindowEvent.layout" name="EventWindowImport" />
Expand Down
1 change: 1 addition & 0 deletions gui/ODIcons.imageset
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
<Image height="64" name="CannonButton" width="64" xPos="0" yPos="448" />
<Image height="64" name="SpikeTrapButton" width="64" xPos="64" yPos="448" />
<Image height="64" name="BoulderTrapButton" width="64" xPos="128" yPos="448" />
<Image height="64" name="WavePortalButton" width="64" xPos="192" yPos="448" />
<Image height="64" name="WoodenDoorTrapButton" width="64" xPos="192" yPos="194" />
<Image height="64" name="PrisonButton" width="64" xPos="256" yPos="194" />
<Image height="64" name="DestroyTrapButton" width="64" xPos="448" yPos="128" />
Expand Down
Binary file modified gui/ODIcons.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions gui/WindowEditorHelp.layout
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>

<GUILayout version="4" >
<Window type="OD/FrameWindow" name="EditorHelpWindow" >
<Property name="Area" value="{{0.5,-230},{0.5,-230},{0.5,230},{0.5,230}}" />
<Property name="Text" value="Editor Controls" />
<Property name="SizingEnabled" value="False" />
<Window type="OD/StaticText" name="HelpText" >
<Property name="Area" value="{{0,10},{0,30},{1,-10},{1,-10}}" />
<Property name="FrameEnabled" value="False" />
<Property name="BackgroundEnabled" value="False" />
<Property name="VertFormatting" value="TopAligned" />
<Property name="HorzFormatting" value="WordWrapLeftAligned" />
<Property name="VertScrollbar" value="True" />
</Window>
</Window>
</GUILayout>
129 changes: 129 additions & 0 deletions gui/WindowEditorPortalWaves.layout
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8"?>

<GUILayout version="4" >
<Window type="OD/FrameWindow" name="EditorPortalWavesWindow" >
<Property name="Area" value="{{0.5,-270},{0.5,-240},{0.5,270},{0.5,240}}" />
<Property name="Text" value="Wave portal" />
<Property name="SizingEnabled" value="False" />
<Window type="OD/StaticText" name="TurnsLabel" >
<Property name="Area" value="{{0,8},{0,34},{0,170},{0,56}}" />
<Property name="Text" value="Turns between waves" />
<Property name="FrameEnabled" value="False" />
<Property name="BackgroundEnabled" value="False" />
</Window>
<Window type="OD/Editbox" name="TurnsBetweenWaves" >
<Property name="Area" value="{{0,174},{0,34},{0,254},{0,56}}" />
<Property name="TooltipText" value="How many turns the portal waits before it spawns the next wave." />
</Window>
<Window type="OD/StaticText" name="RangeLabel" >
<Property name="Area" value="{{0,264},{0,34},{0,400},{0,56}}" />
<Property name="Text" value="Attack range" />
<Property name="FrameEnabled" value="False" />
<Property name="BackgroundEnabled" value="False" />
</Window>
<Window type="OD/Editbox" name="RangeTilesAttack" >
<Property name="Area" value="{{0,404},{0,34},{0,484},{0,56}}" />
<Property name="TooltipText" value="How far, in tiles, a claimed tile makes the portal attack its owner. -1 means no limit." />
</Window>
<Window type="OD/StaticText" name="TeamsLabel" >
<Property name="Area" value="{{0,264},{0,60},{0,400},{0,82}}" />
<Property name="Text" value="Target teams" />
<Property name="FrameEnabled" value="False" />
<Property name="BackgroundEnabled" value="False" />
</Window>
<Window type="OD/Editbox" name="TargetTeams" >
<Property name="Area" value="{{0,404},{0,60},{0,520},{0,82}}" />
<Property name="TooltipText" value="Teams the portal attacks when its strategy is a fixed team, written 1/2. Leave empty for none." />
</Window>
<Window type="OD/StaticText" name="StrategyLabel" >
<Property name="Area" value="{{0,8},{0,60},{0,70},{0,82}}" />
<Property name="Text" value="Strategy" />
<Property name="FrameEnabled" value="False" />
<Property name="BackgroundEnabled" value="False" />
</Window>
<Window type="OD/Combobox" name="Strategy" >
<Property name="Area" value="{{0,74},{0,60},{0,254},{0,160}}" />
<Property name="ReadOnly" value="True" />
<Property name="TooltipText" value="Who the portal sends its waves against." />
</Window>
<Window type="OD/StaticText" name="WavesLabel" >
<Property name="Area" value="{{0,8},{0,88},{0,254},{0,110}}" />
<Property name="Text" value="Waves" />
<Property name="FrameEnabled" value="False" />
<Property name="BackgroundEnabled" value="False" />
</Window>
<Window type="OD/StaticText" name="CreaturesLabel" >
<Property name="Area" value="{{0,266},{0,88},{0,520},{0,110}}" />
<Property name="Text" value="Creatures of the selected wave" />
<Property name="FrameEnabled" value="False" />
<Property name="BackgroundEnabled" value="False" />
</Window>
<Window type="OD/Listbox" name="WaveList" >
<Property name="Area" value="{{0,8},{0,112},{0,254},{0,296}}" />
</Window>
<Window type="OD/Listbox" name="CreatureList" >
<Property name="Area" value="{{0,266},{0,112},{0,520},{0,296}}" />
</Window>
<Window type="OD/StaticText" name="SpawnMinLabel" >
<Property name="Area" value="{{0,8},{0,302},{0,130},{0,324}}" />
<Property name="Text" value="Spawn turn min" />
<Property name="FrameEnabled" value="False" />
<Property name="BackgroundEnabled" value="False" />
</Window>
<Window type="OD/Editbox" name="SpawnTurnMin" >
<Property name="Area" value="{{0,134},{0,302},{0,254},{0,324}}" />
<Property name="TooltipText" value="First turn the wave can be spawned on." />
</Window>
<Window type="OD/StaticText" name="SpawnMaxLabel" >
<Property name="Area" value="{{0,8},{0,328},{0,130},{0,350}}" />
<Property name="Text" value="Spawn turn max" />
<Property name="FrameEnabled" value="False" />
<Property name="BackgroundEnabled" value="False" />
</Window>
<Window type="OD/Editbox" name="SpawnTurnMax" >
<Property name="Area" value="{{0,134},{0,328},{0,254},{0,350}}" />
<Property name="TooltipText" value="Last turn the wave can be spawned on. -1 means the wave never stops coming." />
</Window>
<Window type="OD/Button" name="AddWave" >
<Property name="Area" value="{{0,8},{0,356},{0,128},{0,382}}" />
<Property name="Text" value="Add wave" />
</Window>
<Window type="OD/Button" name="RemoveWave" >
<Property name="Area" value="{{0,134},{0,356},{0,254},{0,382}}" />
<Property name="Text" value="Remove wave" />
</Window>
<Window type="OD/StaticText" name="LevelLabel" >
<Property name="Area" value="{{0,266},{0,302},{0,310},{0,324}}" />
<Property name="Text" value="Level" />
<Property name="FrameEnabled" value="False" />
<Property name="BackgroundEnabled" value="False" />
</Window>
<Window type="OD/Editbox" name="CreatureLevel" >
<Property name="Area" value="{{0,314},{0,302},{0,374},{0,324}}" />
<Property name="Text" value="1" />
<Property name="TooltipText" value="Level the creature is spawned at." />
</Window>
<Window type="OD/Button" name="AddCreature" >
<Property name="Area" value="{{0,382},{0,302},{0,448},{0,328}}" />
<Property name="Text" value="Add" />
</Window>
<Window type="OD/Button" name="RemoveCreature" >
<Property name="Area" value="{{0,454},{0,302},{0,520},{0,328}}" />
<Property name="Text" value="Remove" />
</Window>
<Window type="OD/Combobox" name="CreatureClass" >
<Property name="Area" value="{{0,266},{0,334},{0,520},{0,430}}" />
<Property name="ReadOnly" value="True" />
<Property name="TooltipText" value="Creature class added to the selected wave." />
</Window>
<Window type="OD/Button" name="ApplyButton" >
<Property name="Area" value="{{0,8},{0,392},{0,128},{0,418}}" />
<Property name="Text" value="Apply" />
<Property name="TooltipText" value="Send the waves to the map. Save the level to keep them." />
</Window>
<Window type="OD/Button" name="CloseButton" >
<Property name="Area" value="{{0,134},{0,392},{0,254},{0,418}}" />
<Property name="Text" value="Close" />
</Window>
</Window>
</GUILayout>
7 changes: 7 additions & 0 deletions gui/WindowTabRooms.layout
Original file line number Diff line number Diff line change
Expand Up @@ -119,5 +119,12 @@
<Property name="TooltipText" value="Build a Portal (3x3)" />
<Property name="InheritsAlpha" value="False" />
</Window>
<Window type="OD/GameTabButton" name="WavePortalButton" >
<Property name="Area" value="{{0,690},{0,20},{0,750},{0,80}}" />
<Property name="Visible" value="False" />
<Property name="NormalImage" value="OpenDungeonsIcons/WavePortalButton" />
<Property name="TooltipText" value="Build a Wave portal (3x3), the room that sends waves of enemies" />
<Property name="InheritsAlpha" value="False" />
</Window>
</Window>
</GUILayout>
19 changes: 19 additions & 0 deletions source/gamemap/GameMap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2716,6 +2716,25 @@ int GameMap::nextSeatId(int SeatId)
return firstSeatId;
}

int GameMap::previousSeatId(int SeatId)
{
int previousId = -1;
int lastSeatId = -1;
for(Seat* seat : mSeats)
{
if(seat->getId() == SeatId)
previousId = lastSeatId;

lastSeatId = seat->getId();
}

// The first seat id, or one we do not know, wraps around to the last one
if(previousId == -1)
return lastSeatId;

return previousId;
}

std::string GameMap::nextUniqueNameCreature(const std::string& className)
{
std::string ret;
Expand Down
1 change: 1 addition & 0 deletions source/gamemap/GameMap.h
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,7 @@ friend class ODServer;
bool addSeat(Seat* s);

int nextSeatId(int SeatId);
int previousSeatId(int SeatId);

void clearFilledSeats();
void clearAiManager();
Expand Down
Loading