diff --git a/src/editor/editloop.cpp b/src/editor/editloop.cpp index 79b04daeb..e90c02695 100644 --- a/src/editor/editloop.cpp +++ b/src/editor/editloop.cpp @@ -1014,9 +1014,12 @@ local void EditorCallbackButtonDown(unsigned button __attribute__ ((unused))) if( UnitUnderCursor->Type->GoldMine || UnitUnderCursor->Type->OilPatch || UnitUnderCursor->Type->GivesOil ) { - EditorEditResource();; + EditorEditResource(); return; } + if( !UnitUnderCursor->Type->Building && UnitUnderCursor->HP > 0 ) { + EditorEditAiProperties(); + } } } diff --git a/src/include/menus.h b/src/include/menus.h index 4805a42cf..1abddd0a8 100644 --- a/src/include/menus.h +++ b/src/include/menus.h @@ -327,6 +327,8 @@ extern void InitMenuFunctions(void); /// Edit resource properties extern void EditorEditResource(void); + /// Edit ai properties +extern void EditorEditAiProperties(void); //@} diff --git a/src/ui/menus.cpp b/src/ui/menus.cpp index d219271f5..efda4e03b 100644 --- a/src/ui/menus.cpp +++ b/src/ui/menus.cpp @@ -257,6 +257,9 @@ local void EditorMapPropertiesOk(void); local void EditorEditResourceEnterAction(Menuitem *mi,int key); local void EditorEditResourceOk(void); local void EditorEditResourceCancel(void); +local void EditorEditAiPropertiesGem(Menuitem *mi); +local void EditorEditAiPropertiesOk(void); +local void EditorEditAiPropertiesCancel(void); local void EditorQuitMenu(void); /*---------------------------------------------------------------------------- @@ -534,6 +537,11 @@ global void InitMenuFuncHash(void) { HASHADD(EditorEditResourceEnterAction,"editor-edit-resource-enter-action"); HASHADD(EditorEditResourceOk,"editor-edit-resource-ok"); HASHADD(EditorEditResourceCancel,"editor-edit-resource-cancel"); + +// Editor edit ai properties + HASHADD(EditorEditAiPropertiesGem,"editor-edit-ai-properties-gem"); + HASHADD(EditorEditAiPropertiesOk,"editor-edit-ai-properties-ok"); + HASHADD(EditorEditAiPropertiesCancel,"editor-edit-ai-properties-cancel"); } /*---------------------------------------------------------------------------- @@ -4867,6 +4875,64 @@ local void EditorEditResourceCancel(void) GameMenuReturn(); } +/** +** Edit ai properties +*/ +global void EditorEditAiProperties(void) +{ + Menu *menu; + + menu = FindMenu("menu-editor-edit-ai-properties"); + if (UnitUnderCursor->Active) { + menu->items[1].d.gem.state = MI_GSTATE_CHECKED; + menu->items[3].d.gem.state = MI_GSTATE_UNCHECKED; + } else { + menu->items[1].d.gem.state = MI_GSTATE_UNCHECKED; + menu->items[3].d.gem.state = MI_GSTATE_CHECKED; + } + + ProcessMenu("menu-editor-edit-ai-properties", 1); +} + +/** +** Active or Passive gem clicked in menu-editor-edit-ai-properties +*/ +local void EditorEditAiPropertiesGem(Menuitem *mi) +{ + if (&mi->menu->items[1] == mi) { + mi->d.gem.state = MI_GSTATE_CHECKED; + mi->menu->items[3].d.gem.state = MI_GSTATE_UNCHECKED; + } else { + mi->d.gem.state = MI_GSTATE_CHECKED; + mi->menu->items[1].d.gem.state = MI_GSTATE_UNCHECKED; + } +} + +/** +** Ok button from menu-editor-edit-ai-properties +*/ +local void EditorEditAiPropertiesOk(void) +{ + Menu *menu; + + menu = FindMenu("menu-editor-edit-ai-properties"); + if (menu->items[1].d.gem.state == MI_GSTATE_CHECKED) { + UnitUnderCursor->Active = 1; + } else { + UnitUnderCursor->Active = 0; + } + GameMenuReturn(); +} + +/** +** Cancel button from menu-editor-edit-ai-properties +*/ +local void EditorEditAiPropertiesCancel(void) +{ + GameMenuReturn(); +} + + /** ** Called from menu, to quit editor to menu. **