User Interface

This page lists all user interface additions, changes, fixes that are implemented in Vinifera.

Beacons

Vinifera implements multiplayer beacons, similar to those seen in Red Alert 2.

In RULES.INI:

[General]
BeaconsEnabled=no  ; boolean, are beacons enabled?
SPBeacons=no       ; boolean, can the player place beacons in single-player?
MaxBeacons=-1      ; integer, maximum beacons per player. When the cap is reached, the oldest beacon will be deleted when a new beacon is placed. Negative numbers mean there is no cap.
  • When a beacon is placed/detected, a sound effect and an EVA line are played.

[AudioVisual]
PlaceBeaconSound=   ; VocType, the sound played when the player places a beacon.
PlaceBeaconVoice=   ; VoxType, the EVA line played when the player places a beacon.
DetectBeaconVoice=  ; VoxType, the EVA line played another player places a beacon.
  • Beacons can have a text label.

  • Additionally, beacons may be placed with a preset label by holding CTRL, SHIFT, ALT, or a combination of them. The text that is shows as the preview, and the text that is set on the placed beacon can be configured.

In UI.INI:

[Ingame]
BeaconTextOffset=32         ; integer, the Y offset for the beacon text.
BeaconPreviewTextOffset=20  ; integer, the Y offset for the beacon text during preview.

BeaconText1=Expand  ; string, shown when placing with Shift.
BeaconText2=Attack  ; string, shown when placing with Ctrl.
BeaconText3=Move    ; string, shown when placing with Alt.
BeaconText4=        ; string, shown when placing with Ctrl+Shift.
BeaconText5=        ; string, shown when placing with Alt+Shift.
BeaconText6=Defend  ; string, shown when placing with Ctrl+Alt.
BeaconText7=        ; string, shown when placing with Ctrl+Alt+Shift.

BeaconPreviewText1=Expand  ; string, preview shown with Shift.
BeaconPreviewText2=Attack  ; string, preview shown with Ctrl.
BeaconPreviewText3=Move    ; string, preview shown with Alt.
BeaconPreviewText4=        ; string, preview shown with Ctrl+Shift.
BeaconPreviewText5=        ; string, preview shown with Alt+Shift.
BeaconPreviewText6=Defend  ; string, preview shown with Ctrl+Alt.
BeaconPreviewText7=        ; string, preview shown with Ctrl+Alt+Shift.
  • When drawn on the map, beacons use PBEACON.SHP. The animation is drawn using the unit palette, and is remapped to the beacon owner’s house color. The second half of the animation is played when the beacon is selected.

  • When drawn on the radar, beacons use RDRBEACN.SHP.

  • Beacon animations are not tied to game FPS and instead play at a set framerate.

In UI.INI:

[Ingame]
BeaconAnimFramesPerSecond=25       ; integer, the framerate at which the beacon anim is played.
RadarBeaconAnimFramesPerSecond=25  ; integer, the framerate at which the radar beacon anim is played.
  • Beacon placement/selection uses new mouse actions. For their defaults, please refer to Actions.

Hotkey Commands

Vinifera modifies the vanilla “Deploy” keyboard command to work with air transports and carryalls.

[ ] Place Building

  • Enters the manual placement mode when a building is complete and pending on the sidebar.

[ ] Veterancy Filter

  • Cycles through green/veteran/elite units among the initially selected group.

[ ] Health Level Filter

  • Cycles through red/yellow/green HP units among the initially selected group.

[ ] Toggle Special Timers

  • Toggles the visibility of Super Weapon timers.

[ ] Toggle Scenario Overlay

  • Opens/closes the in-game scenario debug window (developer mode only). Browses loaded type heaps (TriggerTypes, TagTypes, TeamTypes, TaskForces, ScriptTypes, AITriggerTypes, HouseTypes), live scenario instances (Triggers, Tags, Teams, Scripts, Houses), named global/local variables, and per-house AI base nodes.

[ ] Toggle Debug Overlay

  • Opens/closes the in-game debug overlay window. The window has four tabs:

    • Stats — mission time, FPS, and (developer mode only) live heap counts and the multiplayer event queue depths (OutList / DoList).

    • House (developer mode only) — credits, power, current production, biases, losses and state flags of the owner of the currently selected object (or the local player when nothing is selected).

    • Unit — identity, HP, armor type, rank/experience, speed, and per-weapon stats (Attack/Burst/ROF, DPS raw and with house firepower bias, warhead, and a collapsible verses-vs-armor table) of the selected unit.

    • Network — sync block (Frame, FPS, MaxAhead, Resp Time, Lat Fudge, Retry delta/timeout, local process time) and a per-peer table with name, avg/max rtt, resends, lost packets, percent loss, missed packets, queue depth and process time.

[ ] Repeat Last Building

  • Queue the last structure that was built.

[ ] Repeat Last Infantry

  • Queue the last infantry that was built.

[ ] Repeat Last Unit

  • Queue the last vehicle that was built.

[ ] Repeat Last Aircraft

  • Queue the last aircraft that was built.

[ ] Select Building Tab

  • Switch the command bar to the Building Tab and select the completed building if any.

[ ] Select Infantry Tab

  • Switch the command bar to the Infantry Tab.

[ ] Select Vehicles Tab

  • Switch the command bar to the Vehicle Tab.

[ ] Select Specials Tab

  • Switch the command bar to the Special Tab.

[ ] Jump Camera West

  • Jump the tactical map camera to the west edge of the map.

[ ] Jump Camera East

  • Jump the tactical map camera to the east edge of the map.

[ ] Jump Camera North

  • Jump the tactical map camera to the north edge of the map.

[ ] Jump Camera South

  • Jump the tactical map camera to the north edge of the map.

[ ] Scroll North-East

  • Scroll the camera North-East.

[ ] Scroll South-East

  • Scroll the camera South-East.

[ ] Scroll South-West

  • Scroll the camera South-West.

[ ] Scroll North-West

  • Scroll the camera North-West.

[ ] Previous Track

  • Plays the previous music track.

[ ] Next Track

  • Plays the next music track.

[ ] Place Beacon

  • Enters beacon placement mode.

image

Customizable Vanilla Modifier Keys

  • Vinifera allows the player to customize the keys used for Force Move, Force Attack, Select and Queued Move.

Note

Due to engine limitations, these keys will not appear in the options menu and must be customized in KEYBOARD.INI.

In KEYBOARD.INI:

[Hotkey]
ForceMove=18    ; key number, ALT
ForceAttack=17  ; key number, CONTROL
Select=16       ; key number, SHIFT
QueueMove=81    ; key number, Q if the new sidebar is off, otherwise Z

Dropship Loadout

  • The Tiberian Sun Map theme is now played on the Dropship Loadout screen (DSHPLOAD can be defined in THEME.INI to customise this.)

  • Help text is now shown on the screen to aid the user.

image

Loading screen

  • PNG images can be used as an alternative to PCX images. This new system scans for the requested filename with the .PNG extension and use that if found, otherwise it will fall back to scanning and load the .PCX file.

Note

This system only supports 8-bit PNG. All other formats such as Greyscale, Paletted, Alpha and 16-bit are not supported.

Attached is a set of the original loading screens with a minor edit and saved as PNG for testing; PNG_Loading_Screens.zip

Tactical UI

Super Weapon Timers

  • Super Weapon timers, similar to those found in Red Alert 2, can now be displayed on the tactical view. This is disabled by default and each relevant SuperWeaponType must have it enabled. Superweapons that are offline due to low power or are disabled via other purposes will not show.

In RULES.INI:

[SOMESUPERWEAPON]  ; SuperWeaponType
ShowTimer=no       ; boolean, when this superweapon is active, does its recharge timer display on the tactical view?

Chat Improvements

  • Vinifera adds a background behind the user typed messages that appear in-game to provide better readability.

  • Additionally, Vinifera implements the system to echo the user’s sent messages back to them in-game as a confirmation they were sent. This is an enhancement from Red Alert 2. image

  • Vinifera allows players to send a message to only their allies. Additionally, all messages now display their recipient (“to all”, “to team” or “to PlayerName”).

In KEYBOARD.INI:

[Hotkey]
ChatToAll=13    ; key number, RETURN
ChatToAll2=119  ; key number, F8
ChatToAllies=8  ; key number, BACKSPACE

In UI.INI:

[Ingame]
TextLabelOutline=yes                ; boolean, should the text be drawn with a black outline?
TextLabelBackgroundTransparency=50  ; unsigned integer, the transparency of the text background fill. Ranged between 0 and 100.

Unit Promotion Indicators

  • In Red Alert 2, unit promotion is indicated by sounds, flashing and an EVA voiceline. Vinifera ports this behavior to Tiberian Sun.

In RULES.INI:

[AudioVisual]
UpgradeVeteranSound=    ; VocType, the sound played when a unit is promoited to veteran status.
UpgradeEliteSound=      ; VocType, the sound played when a unit is promoted to elite status.
VoxUnitPromoted=        ; VoxType, the EVA line played when a unit is promoted.
EliteFlashTimer=0       ; integer, the number of frames that a newly elite unit will flash for.

Unit Health Bar

  • Vinifera allows customizing the position of the heath bar.

In UI.INI:

[Ingame]
UnitHealthBarPos=-25,-16     ; Point2D, the draw position of the unit health bar.
InfantryHealthBarPos=-24,-5  ; Point2D, the draw position of the infantry health bar.

Unit Pips

  • The location of the control group number and veterancy pips can now be customized.

In UI.INI:

[Ingame]
UnitGroupNumberOffset=-4,-4            ; Point2D, the group number offset for units.
InfantryGroupNumberOffset=-4,-4        ; Point2D, the group number offset for infantry.
BuildingGroupNumberOffset=-4,-4        ; Point2D, the group number offset for buildings.
AircraftGroupNumberOffset=-4,-4        ; Point2D, the group number offset for aircraft.

UnitWithPipGroupNumberOffset=-4,-8     ; Point2D, the group number offset for units with pips.
InfantryWithPipGroupNumberOffset=-4,-8 ; Point2D, the group number offset for infantry with pips.
BuildingWithPipGroupNumberOffset=-4,-8 ; Point2D, the group number offset for buildings with pips.
AircraftWithPipGroupNumberOffset=-4,-8 ; Point2D, the group number offset for aircraft with pips.

UnitVeterancyPipOffset=10,6            ; Point2D, the veterancy pip offset for units.
InfantryVeterancyPipOffset=5,2         ; Point2D, the veterancy pip offset for infantry.
BuildingVeterancyPipOffset=10,6        ; Point2D, the veterancy pip offset for buildings.
AircraftVeterancyPipOffset=10,6        ; Point2D, the veterancy pip offset for aircraft.

UnitSpecialPipOffset=0,-8              ; Point2D, the special pip offset for units.
InfantrySpecialPipOffset=0,-8          ; Point2D, the special pip offset for infantry.
BuildingSpecialPipOffset=0,-8          ; Point2D, the special pip offset for buildings.
AircraftSpecialPipOffset=0,-8          ; Point2D, the special pip offset for aircraft.
  • TS Patches changes some of the default values. Below are the values that match them:

In UI.INI:

[Ingame]
UnitGroupNumberOffset=-8,-33
InfantryGroupNumberOffset=-8,-33
BuildingGroupNumberOffset=-8,-33
AircraftGroupNumberOffset=-8,-33
UnitWithPipGroupNumberOffset=-8,-33
InfantryWithPipGroupNumberOffset=-8,-33
BuildingWithPipGroupNumberOffset=-8,-33
AircraftWithPipGroupNumberOffset=-8,-33
  • You can also customize how many pips can be drawn per PipScale.

In RULES.INI:

[AudioVisual]
MaxPips=5,5,5,10,8  ; list of integers - Ammo, Tiberium, Passengers, Power, Charge.

Selection Band Box

  • Vinifera allows customizing some properties of the band box used for unit drag-selection.

In UI.INI:

[Ingame]
BandBoxDropShadow=no                     ; boolean, should the tactical rubber band box be drawn with a drop shadow?
BandBoxThick=no                          ; boolean, should the tactical rubber band box be drawn with a thick border?
BandBoxColor=255,255,255                 ; RGB color, color draw the tactical rubber band box with.
BandBoxDropShadowColor=0,0,0             ; RGB color, color to draw the tactical rubber band box's shadow with.
BandBoxTintTransparency=0                ; integer, transparency of the tactical rubber band.
BandBoxTintColors=(0,0,0),(255,255,255)  ; two RGB colors, "dark" and "light" tint colors, interpolated based on the map's ambient light level.
  • Vinifera allows customizing some properties of the movement, target and target laser lines.

In UI.INI:

[Ingame]
AlwaysShowActionLines=no           ; boolean, should action lines remain visible continuously, instead of disappearing after some time?

MovementLineDashed=no              ; boolean, should movement lines be drawn with dashes?
MovementLineDropShadow=no          ; boolean, should movement lines be drawn with a drop shadow?
MovementLineThick=no               ; boolean, should movement lines be drawn with a thick line?
MovementLineColor=0,170,0          ; RGB color, color to draw movement lines with.
MovementLineDropShadowColor=0,0,0  ; RGB color, color to draw movement lines' drop shadow with.

TargetLineDashed=no                ; boolean, should target lines be drawn with dashes?
TargetLineDropShadow=no            ; boolean, should target lines be drawn with a drop shadow?
TargetLineThick=no                 ; boolean, should target lines be drawn with a thick line?
TargetLineColor=173,0,0            ; RGB color, color to draw movement lines with.
TargetLineDropShadowColor=0,0,0    ; RGB color, color to draw target lines' drop shadow with.

TargetLaserDashed=yes              ; boolean, should target lasers be drawn with dashes?
TargetLaserDropShadow=no           ; boolean, should target lasers be drawn with a drop shadow?
TargetLaserThick=no                ; boolean, should target lasers be drawn with a thick line?
TargetLaserColor=173,0,0           ; RGB color, color to draw the target lasers with.
TargetLaserDropShadowColor=0,0,0   ; RGB color, color to draw target lasers' drop shadow with.
TargetLaserTime=15                 ; integer, time in frames the target laser should be drawn for when the unit fires.

  • Additionally, you can also enable lines to be drawn indicating the unit’s current navigation queue.

In UI.INI:

[Ingame]
ShowNavComQueueLines=yes              ; boolean, should NavCom queue lines be displayed?
NavComQueueLineDashed=no              ; boolean, should NavCom queue lines be drawn with dashes?
NavComQueueLineDropShadow=no          ; boolean, should NavCom queue lines be drawn with a drop shadow?
NavComQueueLineThick=no               ; boolean, should NavCom queue lines be drawn with a thick line?
NavComQueueLineColor=74,77,255        ; RGB color, color to draw the NavCom queue lines with.
NavComQueueLineDropShadowColor=0,0,0  ; RGB color, color to draw the NavCom queue lines' drop shadow with.

drag-and-move

Miscellaneous

  • Vinifera adds support for 8-bit (paletted and non-paletted) PCX and 8-bit PNG cameos. This system auto-detects and prioritises the PNG or PCX file if found, no additional settings are required.

  • Vinifera thickens the waypoint and rally point lines and adds stroke/outline to the waypoint number.

  • Vinifera adds a “Load Game” button to the retry dialog shown after a failed mission.

  • Vinifera changes the game to save screenshots as a PNG file instead of PCX file. In addition to this, it also changes the filename format to be unique. Instead of writing SCRN[0000-9999].PNG, the game now writes SCRN_[date-time].PNG (example, SCRN_02-06-2021_12-51-40.PNG).