ott: Okay, a modified version of your patch has been commited, along with the ability to define per-side objectives.
//provide a means of specifying win/loss conditions:
// [event]
// name=prestart
// [objectives]
// side=1
// summary="Escape the forest alive"
// victory_string="Victory:"
// defeat_string="Defeat:"
// [objective]
// condition=win
// description="Defeat all enemies"
// [/objective]
// [objective]
// description="Death of Konrad"
// condition=loss
// [/objective]
// [/objectives]
// [/event]
//instead of the current (but still supported):
// objectives= _ "
// Victory:
// @Move Konrad to the signpost in the north-west
// Defeat:
// #Death of Konrad
// #Death of Delfador
// #Turns run out"
//
// If side is set to 0, the new objectives are added to each player.
//
// The new objectives will be automatically displayed, but only to the
// player whose objectives did change, and only when it's this player's
// turn.
The old way of defining objectives, which is to supply an "objectives=" value into the level, is still supported, but is considered obsolete, in favour of using prestart events setting objectives. The old way of setting objectives sets them for all sides.
[objective] events replace the current objectives, and do not merge them.
When the objectives of a player change during his turn, an "objectives" dialog automatically appears.
When the objectives of a player A change during player B's turn, the "objectives" dialog appear only to player A when it's his turn.
Objective changes for other players do never appear (those are, however, sent to clients, so cheaters may see them anyway.)