Feature #1003

Add Objective Indicators to the HUD

Added by belst about 3 years ago. Updated almost 3 years ago.

Status:New% Done:


Category:Mod CGAME
Target version:2.78
OS: Arch:


Add directional objective indicators to the HUD.

Example from Dirty Bomb attached below.

DB-obj-indicators.jpg (160 KB) Dragonji, 17.02.2017 23:22

supply.png (1.45 MB) belst, 18.02.2017 16:44

goldedit.png (1.47 MB) belst, 18.02.2017 16:44

Screenshot_20170219_120637.png - Destroy objectives... (1.39 MB) Spyhawk, 19.02.2017 12:22

Screenshot_20170219_120648.png - ... fading... (1.39 MB) Spyhawk, 19.02.2017 12:23

Screenshot_20170219_120656.png - ... to construct objectives (1.39 MB) Spyhawk, 19.02.2017 12:23

Screenshot_20170219_121150.png - With fireteam members displayed (1.4 MB) Spyhawk, 19.02.2017 12:24


Related issues

Related to ET: Legacy Development - Feature #1000: Modernize HUD New 21.02.2018
Related to ET: Legacy Development - Feature #481: Add in-game objective display Fixed 12.01.2014
Related to ET: Legacy Development - Bug #1020: Objective icon missing on command map Fixed 12.03.2017

Associated revisions

Revision f9d7c6a8
Added by IR4T4 about 3 years ago

game: acivate G_ScriptAction_SetMainObjective / wm_set_main_objective
refs #1003

Revision d147d26f
Added by IR4T4 about 3 years ago

cgame: paint the main objective given by mapper in yellow (command map)
refs #1003

Revision b07fb04a
Added by IR4T4 about 3 years ago

mod: final fix for wm_set_main_objective script commands refs #1003

wm_set_main_objective no longer expects the objective number (which was
never in sync with the game and did never work)
the new param is the target name of used toi - see oasis.script (also
for some notes) - you’ll identify all toi entities via /entiylist cmd

Revision a22816ef
Added by Spyhawk about 3 years ago

game: fixed clang warning, refs #1003

Revision d3be5a79
Added by IR4T4 about 3 years ago

game: allow all targetnames for wm_set_main_objective toi refs #1003

Revision df99df55
Added by Spyhawk 12 months ago

cgame: fixed command map objective icon color when spectating, refs #1003


#1 Updated by Spyhawk about 3 years ago

  • Category changed from Client to Mod generic
  • Target version set to 2.76

#2 Updated by keMoN about 3 years ago

#3 Updated by Spyhawk about 3 years ago

  • Related to Feature #481: Add in-game objective display added

#4 Updated by Dragonji about 3 years ago

#5 Updated by belst about 3 years ago

Icons are placeholder

#6 Updated by keMoN about 3 years ago

I really like the concepts, belst, but it shows the frequently discussed problems of them. Those icons are very intrusive.
They should be easily toggleable to display or hide, depending on whether you know the map or not. Maybe through an entry in the "Game" menu tab.
The intrusiveness can be reduced by making them smaller and transparent and also removing the "Escort", "Repair" and distance labels.

I would also not display secondary objectives. For me the primary objective in Supply is the truck. Both the capture and the plant indicator should only be visible with direct line of sight, as they are rather secondary. Same as the CP in Goldrush. To say which objective is primary and therefore which indicator should be permanent requires a new script routine. Displaying the "cunstruct" indicator for the crane controls in Supply from the beginning, is not smart. It should only appear once the truck is in position. The mapper then has to put a ETL specific script routing behind the announcement "Truck is in position" , "protect the Gold" "blabla" to switch the primary indicator from Truck to Crane controls.

If all indicators are only displayed with direct line of sight, this script routine would not be necessary. However, we need to somehow tell the game which indicators are primary and should be displayed through walls. The same thing applies to limiting this to the compass, as spyhawk mentioned. Having the objective icons from the commandmap appear at the outer border of the compass, shows the direction they are at. They do not show the height difference though. To tell the game which icons to display at the border, we also need to tell the game which icons those are (a.k.a. which are primary).

#7 Updated by keMoN about 3 years ago

//Second update to somewhat maintain read-ability.

What we could do is to have a look at the existign hints and make those show through walls. Pak0/gfx/2d/... DisarmHint, RepairHint, DynamiteHint,...
We could let the player choose which hints he wants displayed through walls and which not. DynamiteHint and DisarmHint are pretty straight forward, as those are usually crucial map-objectives. But we have no vehicle hint. (TankHint is for things that the tank shoots, like the Fueldump sewers grate). We also have no unique hint for stealable objectives like docs, radar parts, etc. Those use the regular usableHint. That one is also used by doors and what not.

Generally I like the idea of those indicators, but I can’t really see how we can easily implement them, without a range of compromises.

#8 Updated by Spyhawk about 3 years ago

Using icons visible through wall is a bad idea, it’s way too intrusive even optionally. There are issues in differentiating main and secondary objectives too - no way we’ll provide additional scripts for all these maps.

Why not using the compass feature and the already provided code instead? The same way medic see revive icons on the compass, and the fieldops the "need ammo" icon, we can do the very same for engi/covops with the construct/destruct objectives. See the attached screenshots. I have enabled it for engineer - this is not a makeup, but actual working code.

  • using compass means the icon is visible at 360 degrees, with direction relative to you.
  • there is only planar view available, but if really needed we could work around it with some new icons/arrow to display the elevation.
  • icons are bigger when close to the player, smaller when far away
  • can be filtered by classes (construct and destruct for engi, only some of the destruct for covops, etc), or display some filter to all classes (see the command map existing filters)

It’s not perfect, can become somewhat heavy in some situation (see last screenshot, with fireteam members icons also displayed), but it isn’t bad either as the code uses a fading effect between filters and thus does not show everything at the same time.

We could also display icons over the objective (I like the idea), but these should be only visible when in sight. I don’t see the use of icons visible through walls when the compass does the job in a better manner.

#9 Updated by keMoN about 3 years ago

I’m in favour of the combination of on-screen indicators when in direct line of sight (primary and secondary objectives) and the compass for permanent objective indicators.
The fireteam members should definitely have a different icon than objectives, otherwise it is going to be a mess.

But we still have the problem that we can’t properly differentiate between primary and secondary objectives. Take Railgun for example. When the ammo is loaded onto the gun, the primary objective is to construct the gun controls. That is not a dynamite objective.
In my opinion we should provide the possibility for future mappers to set those indicators up properly. We don’t need to create hundreds of files ourselves, but maybe there is a bored volunteer. And for our 'official’ ETL maps, we could set them up properly.

I’d also like to make a suggestion for the second/alternative/minimalistic HUD:
Having the on-screen indicators in direct line of sight combined with compass indicators, makes the map inside the compass relatively redundant. In your example shots from oasis for example, the icon for the oasis wall is at the very top, because you are looking straight at it. However, in the map your player icon is looking right, because the map is fixated. Relying on the compass and on-screen indicators is entirely sufficient to get around in the map. Because of that, I would like to suggest a flat compass thing for the minimalistic HUD. Known from Skyrim, Fallout and many other RPGs.
Primary objectives, when not in line of sight of the player are displayed at the end of the bar, so the player knows he needs to turn around to see the objs. Player icons could be done like the enemy icons in this exampe, the diamond shaped thingies. Fireteam members could receive a different colour. Or you only display fireteam members there.
Objectives can be displayed related to their style. Dynamite and pliers for example. Is it possible to display the disarm icon as primary objectives for defending engineers, once a dynamite has been planted? So they know where to go.

#10 Updated by Spyhawk about 3 years ago

  • rework location system (add new display option?)
  • use location distance? (system already exists but is unused)

See G_ScriptAction_SetMainObjective(), CS_MAIN_AXIS_OBJECTIVE and CS_MAIN_ALLIES_OBJECTIVE that are currently unused. We should use them!

#11 Updated by Spyhawk about 3 years ago

  • Related to Bug #1020: Objective icon missing on command map added

#12 Updated by IR4T4 almost 3 years ago

  • Target version changed from 2.76 to 2.78

#13 Updated by Spyhawk 3 months ago

  • Related to Bug #1391: No reset for objective indicator upon auto-return added

#14 Updated by Spyhawk 3 months ago

  • Related to deleted (Bug #1391: No reset for objective indicator upon auto-return)

Also available in: Atom PDF