Code:
[+] (CURRENT_HERO) constant (-1) can be safely used in triggers from now. Previosly this global value could be overwritten by nested events.
Example:
!?HM0; current hero is Orrin
!!HE(HERO_XERON):Ed100000; Level up for Xeron, current hero used to become Xeron in previous Era versions
!!HE(CURRENT_HERO):N?(hero:y); (hero) is always (HERO_ORRIN), starting from Era 3.4.1
[+] Implemented high level API for WoG radio dialogs. Configure dialog before showing. Optionally assign value and tag to each item.
Optionally add special "cancel" item. The result is item index, value and tag. No need to convert bits anymore.
Example 1:
!?FU(OnAfterErmInstructions);
!!FU(RadioDlg_Reset):P;
!!FU(RadioDlg_SetTitle):P^What primary skill would you like to increase?^;
!!FU(RadioDlg_AddCancelButton):P;
!!FU(RadioDlg_AddItem):P^Attack^/(SKILL_ATTACK)/^attack^;
!!FU(RadioDlg_AddItem):P^Defense^/(SKILL_DEFENSE)/^defense^;
!!FU(RadioDlg_AddItem):P^Knowledge^/(SKILL_KNOWLEDGE)/^knowledge^;
!!FU(RadioDlg_AddItem):P^Power^/(SKILL_POWER)/^power^;
!!FU(RadioDlg_SelectItemByTag):P^knowledge^;
!!FU(RadioDlg_Show):P?(item:y)/?(value:y)/?(tag:z);
!!IF:M^Item: %(item). Value: %(value). Tag: %(tag)^;
API:
!?FU(RadioDlg_Reset);
; Resets all radio dialog settings to empty values.
!?FU(RadioDlg_SetTitle);
; Changes radio dialog title.
!?FU(RadioDlg_AddCancelButton);
; Adds cancel button to dialog. Decreases maximum number of items in dialog by one.
!?FU(RadioDlg_SelectItem);
; Sets new selected item by its index.
!#VA(itemInd:x);
!?FU(RadioDlg_SelectItemByValue);
; Finds the first item with specified value and selects it.
!#VA(itemValue:x);
!?FU(RadioDlg_SelectItemByTag);
; Finds the first item with specified tag and selects it.
!#VA(itemTagPtr:x); Tag string
!?FU(RadioDlg_AddItem);
; Adds new item to radio dialog.
!#VA(itemCaptionPtr:x); Optional. New item caption. Empty/spacy captions are valid. Default: ^^.
!#VA(itemValue:x); Optional. Numeric value, associated with item. Default: 0.
!#VA(itemTagPtr:x); Optional. String tag, associated with item. Default: ^^.
!#VA(selectItem:x); Optional. Boolean. If TRUE, item will be selected. Default: FALSE.
!?FU(RadioDlg_AddItems);
; Adds up to 5 items to radio dialog. For detailed arguments description see (RadioDlg_AddItem).
!#VA(firstItemCaptionPtr:x);
!#VA(firstItemValue:x);
!#VA(firstItemTagPtr:x);
!?FU(RadioDlg_Show);
; Display previously configured radio dialog with single possible choice.
; Currently maximum RADIO_DLG_MAX_ITEMS (-1 for cancel button) items can be added to the dialog.
; Returns selected item index, value and tag. Item index is (NO_RADIO_DLG_ITEM) if no items are present for selection
; or Cancel button was pressed.
!#VA(resultItem:x); Default: (NO_RADIO_DLG_ITEM).
!#VA(resultValue:x); Default: -1.
!#VA(resultTagPtr:x); Default: ^^.