mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-08-15 14:43:32 -07:00
This patch adds a new tutorial step type and corresponding tutorial panel labelled "info". It is intended to display steps whose purpose it is to explain something to the player and give tips -- rather than just giving instructions and telling the player what to do, like the instruction panel does. Also, it can show several related steps at once. To do that, the first step has to set the 'appendable' flag to true and can also define a title; then the succeeding steps can then set the 'appendToPrevious' flag to true in order to do exactly that. Note: 'info'-type tutorial steps are still supposed to be able to define triggers, switch to the next step on their own and hide the continue button on the info panel, to teach the topic interactively, e.g. "Select a unit by left-clicking on it." In order to prevent code duplication between `InfoPanel` and `InstructionPanel` a generic superclass `TutorialPanel` is introduced, which manages the text, hint, and button objects.
131 lines
4.8 KiB
XML
131 lines
4.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<objects>
|
|
|
|
<script directory="gui/common/"/>
|
|
<script directory="gui/common/campaigns/"/>
|
|
<script directory="gui/maps/"/>
|
|
<script directory="gui/session/"/>
|
|
<script directory="gui/session/campaigns/"/>
|
|
<script directory="gui/session/chat/"/>
|
|
<script directory="gui/session/cinema/"/>
|
|
<script directory="gui/session/developer_overlay/"/>
|
|
<script directory="gui/session/diplomacy/"/>
|
|
<script directory="gui/session/diplomacy/playercontrols/"/>
|
|
<script directory="gui/session/lobby/"/>
|
|
<script directory="gui/session/lobby/LobbyRatingReport/"/>
|
|
<script directory="gui/session/match_settings/"/>
|
|
<script directory="gui/session/message_box/"/>
|
|
<script directory="gui/session/minimap/"/>
|
|
<script directory="gui/session/top_panel/"/>
|
|
<script directory="gui/session/top_panel/IconButtons/"/>
|
|
<script directory="gui/session/trade/"/>
|
|
<script directory="gui/session/tutorial/"/>
|
|
<script directory="gui/session/tutorial/panels/"/>
|
|
|
|
<object name="session">
|
|
|
|
<action on="Tick">
|
|
onTick();
|
|
</action>
|
|
|
|
<action on="SavegameLoaded">
|
|
restoreSavedGameData(arguments[0]);
|
|
</action>
|
|
|
|
<object name="primaryOverlays">
|
|
<!-- Chat messages -->
|
|
<object name="chatPanel" size="3 131 100% 100%-240" z="0" absolute="true">
|
|
<object name="chatLines">
|
|
<repeat count="20">
|
|
<object name="chatLine[n]" type="button" style="chatPanelOverlay" tooltip_style="sessionToolTipBottomBold" ghost="true" hidden="true"/>
|
|
</repeat>
|
|
</object>
|
|
</object>
|
|
|
|
<include directory="gui/session/chat/"/>
|
|
<include directory="gui/session/developer_overlay/"/>
|
|
<include directory="gui/session/dialogs/"/>
|
|
<include directory="gui/session/diplomacy/"/>
|
|
<include directory="gui/session/match_settings/"/>
|
|
<include file="gui/session/GameSpeedControl.xml"/>
|
|
<include file="gui/session/PanelEntities.xml"/>
|
|
<include file="gui/session/ResearchProgress.xml"/>
|
|
<include file="gui/session/TimeNotificationOverlay.xml"/>
|
|
<include file="gui/session/TopPanel.xml"/>
|
|
<include file="gui/session/trade/TradeDialog.xml"/>
|
|
<include file="gui/session/tutorial/Tutorial.xml"/>
|
|
<include file="gui/session/Menu.xml"/>
|
|
|
|
<!-- Contains miscellanious objects s.a.: the technology research -->
|
|
<!-- progress, group selection icons, and the hero selection icon -->
|
|
<include directory="gui/session/session_objects/"/>
|
|
|
|
<!-- Information tooltip -->
|
|
<!-- Follows the mouse around if 'independent' is set to 'true'. -->
|
|
<object name="informationTooltip" type="tooltip" independent="true" style="informationTooltip"/>
|
|
|
|
<!-- Structure placement info tooltip -->
|
|
<object name="placementTooltip" type="tooltip" independent="true" style="informationTooltip"/>
|
|
|
|
<!-- START of BOTTOM PANEL -->
|
|
<!-- Limit to the minimal supported width of 1024 pixels. -->
|
|
<object size="50%-512 0 50%+512 100%">
|
|
|
|
<object size="50%-512 100%-204 50%-312 100%">
|
|
<include file="gui/session/minimap/MiniMap.xml"/>
|
|
</object>
|
|
|
|
<!-- Supplemental Details Panel (left). -->
|
|
<object name="supplementalSelectionDetails"
|
|
size="50%-316 100%-166 50%-110 100%"
|
|
sprite="supplementalDetailsPanel"
|
|
type="image"
|
|
z="20"
|
|
>
|
|
<include directory="gui/session/selection_panels_left/"/>
|
|
</object>
|
|
|
|
<!-- Selection Details Panel (middle). -->
|
|
<object name="selectionDetails"
|
|
size="50%-114 100%-204 50%+114 100%"
|
|
sprite="selectionDetailsPanel"
|
|
type="image"
|
|
>
|
|
<include directory="gui/session/selection_panels_middle/"/>
|
|
</object>
|
|
|
|
<!-- Commands Panel (right). -->
|
|
<object name="unitCommands"
|
|
size="50%+110 100%-173 50%+512 100%"
|
|
sprite="unitCommandsPanel"
|
|
type="image"
|
|
z="20"
|
|
>
|
|
<include directory="gui/session/selection_panels_right/"/>
|
|
</object>
|
|
</object><!-- END OF BOTTOM PANEL -->
|
|
</object><!-- END OF PRIMARY OVERLAYS -->
|
|
|
|
<!-- Hotkeys of button objects can only be triggered while the object is neither set hidden nor disabled. -->
|
|
<!-- That is why they are placed outside of menus and overlays. -->
|
|
<!-- And this object can therefore be used to turn on and off all these hotkeys here at once. -->
|
|
<object name="hotkeys">
|
|
<include directory="gui/session/hotkeys/"/>
|
|
</object>
|
|
|
|
<!-- Selection bandbox. -->
|
|
<!-- Placed outside the primary overlays, so it can be shown even when all overlays are hidden (e.g. with the hotkey)-->
|
|
<object name="bandbox" type="image" sprite="bandbox" ghost="true" hidden="true" z="200"/>
|
|
|
|
<!-- Overlaps with the primary overlays, they're never shown both at once. -->
|
|
<include file="gui/session/cinema/CinemaOverlay.xml"/>
|
|
|
|
<!-- Objects that make sense to sometimes still show while the primary overlays are hidden. -->
|
|
<object name="supplementaryOverlays">
|
|
<include file="gui/session/NetworkStatusOverlay.xml"/>
|
|
<include file="gui/session/NetworkDelayOverlay.xml"/>
|
|
<include file="gui/session/PauseOverlay.xml"/>
|
|
</object>
|
|
</object> <!-- END OF SESSION OBJECT -->
|
|
</objects>
|