本文整理汇总了C++中GUI_Widget_MakeNormal函数的典型用法代码示例。如果您正苦于以下问题:C++ GUI_Widget_MakeNormal函数的具体用法?C++ GUI_Widget_MakeNormal怎么用?C++ GUI_Widget_MakeNormal使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GUI_Widget_MakeNormal函数的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: GUI_Purchase_Plus_Click
/**
* Handles Click event for the "+" button in starport window.
*
* @return True, always.
*/
bool GUI_Purchase_Plus_Click(Widget *w)
{
FactoryWindowItem *item;
ObjectInfo *oi;
House *h = g_playerHouse;
GUI_Widget_MakeNormal(w, false);
item = GUI_FactoryWindow_GetItem(g_factoryWindowSelected);
oi = item->objectInfo;
if (item->amount < oi->available && item->credits <= h->credits) {
item->amount++;
GUI_FactoryWindow_UpdateDetails();
g_factoryWindowOrdered++;
h->credits -= item->credits;
GUI_FactoryWindow_DrawCaption(NULL);
}
return true;
}
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:30,代码来源:widget_click.c
示例2: GUI_Production_BuildThis_Click
/**
* Handles Click event for the "Build this" button in production window.
*
* @return True, always.
*/
bool GUI_Production_BuildThis_Click(Widget *w)
{
if (g_factoryWindowStarport) {
if (g_factoryWindowOrdered == 0) {
GUI_Widget_MakeInvisible(w);
GUI_Purchase_ShowInvoice();
GUI_Widget_MakeVisible(w);
} else {
g_factoryWindowResult = FACTORY_BUY;
}
} else {
FactoryWindowItem *item;
ObjectInfo *oi;
item = GUI_FactoryWindow_GetItem(g_factoryWindowSelected);
oi = item->objectInfo;
if (oi->available > 0) {
item->amount = 1;
g_factoryWindowResult = FACTORY_BUY;
}
}
GUI_Widget_MakeNormal(w, false);
return true;
}
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:32,代码来源:widget_click.c
示例3: GUI_Purchase_Invoice_Click
/**
* Handles Click event for the "Invoice" button in starport window.
*
* @return True, always.
*/
bool GUI_Purchase_Invoice_Click(Widget *w)
{
GUI_Widget_MakeInvisible(w);
GUI_Purchase_ShowInvoice();
GUI_Widget_MakeVisible(w);
GUI_Widget_MakeNormal(w, false);
return true;
}
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:13,代码来源:widget_click.c
示例4: GUI_Production_Upgrade_Click
/**
* Handles Click event for the "Ugrade" button in production window.
*
* @return True, always.
*/
bool GUI_Production_Upgrade_Click(Widget *w)
{
GUI_Widget_MakeNormal(w, false);
g_factoryWindowResult = FACTORY_UPGRADE;
return true;
}
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:13,代码来源:widget_click.c
示例5: GUI_Widget_GameControls_Click
/**
* Handles Click event for "Game controls" button.
*
* @param w The widget.
*/
static void GUI_Widget_GameControls_Click(Widget *w)
{
WindowDesc *desc = &g_gameControlWindowDesc;
bool loop;
GUI_Window_BackupScreen(desc);
GUI_Window_Create(desc);
loop = true;
while (loop) {
Widget *w2 = g_widgetLinkedListTail;
uint16 key = GUI_Widget_HandleEvents(w2);
if ((key & 0x8000) != 0) {
w = GUI_Widget_Get_ByIndex(w2, key & 0x7FFF);
switch ((key & 0x7FFF) - 0x1E) {
case 0:
g_gameConfig.music ^= 0x1;
if (g_gameConfig.music == 0) Driver_Music_Stop();
break;
case 1:
g_gameConfig.sounds ^= 0x1;
if (g_gameConfig.sounds == 0) Driver_Sound_Stop();
break;
case 2:
if (++g_gameConfig.gameSpeed >= 5) g_gameConfig.gameSpeed = 0;
break;
case 3:
g_gameConfig.hints ^= 0x1;
break;
case 4:
g_gameConfig.autoScroll ^= 0x1;
break;
case 5:
loop = false;
break;
default: break;
}
GUI_Widget_MakeNormal(w, false);
GUI_Widget_Draw(w);
}
GUI_PaletteAnimate();
sleepIdle();
}
GUI_Window_RestoreScreen(desc);
}
开发者ID:alex-game-of-2012,项目名称:opendune,代码行数:63,代码来源:widget_click.c
示例6: GUI_Mentat_List_Click
/**
* Handles Click event for list in mentat window.
*
* @param w The widget.
*/
bool GUI_Mentat_List_Click(Widget *w)
{
uint16 index;
Widget *w2;
index = s_selectedHelpSubject + 3;
if (w->index != index) {
w2 = GUI_Widget_Get_ByIndex(g_widgetMentatTail, index);
GUI_Widget_MakeNormal(w, false);
GUI_Widget_MakeNormal(w2, false);
if (w2->stringID == 0x31) {
w2->fgColourDown = 15;
w2->fgColourNormal = 15;
GUI_Widget_Draw(w2);
}
if (w->stringID == 0x31) {
w->fgColourDown = 8;
w->fgColourNormal = 8;
GUI_Widget_Draw(w);
}
s_selectedHelpSubject = w->index - 3;
return true;
}
if ((w->state.buttonState & 0x11) == 0 && !s_selectMentatHelp) return true;
if (w->stringID != 0x31) return true;
GUI_Widget_MakeNormal(w, false);
GUI_Mentat_ShowHelp();
GUI_Mentat_Draw(true);
Input_HandleInput(0x841);
Input_HandleInput(0x842);
return false;
}
开发者ID:gnaghi,项目名称:OpenDUNE,代码行数:50,代码来源:mentat.c
示例7: GUI_Mentat_ShowHelp_Close
void GUI_Mentat_ShowHelp_Close() {
GUI_Widget_MakeNormal(g_widgetMentatFirst, false);
GUI_Mentat_LoadHelpSubjects(false);
GUI_Mentat_Create_HelpScreen_Widgets();
GUI_Mentat_Draw(true);
}
开发者ID:damajor,项目名称:play-dune,代码行数:9,代码来源:mentat.c
示例8: GUI_Widget_HOF_ClearList_Click
/**
* Handles Click event for "Clear List" button.
*
* @param w The widget.
* @return True, always.
*/
bool GUI_Widget_HOF_ClearList_Click(Widget *w)
{
/* "Are you sure you want to clear the high scores?" */
if (GUI_YesNo(0x148)) {
HallOfFameStruct *data = w->data;
memset(data, 0, 128);
if (File_Exists("SAVEFAME.DAT")) File_Delete("SAVEFAME.DAT");
GUI_HallOfFame_DrawData(data, true);
g_doQuitHOF = true;
}
GUI_Widget_MakeNormal(w, false);
return true;
}
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:25,代码来源:widget_click.c
示例9: GUI_Production_Up_Click
/**
* Handles Click event for the "Up" button in production window.
*
* @return True, always.
*/
bool GUI_Production_Up_Click(Widget *w)
{
bool locdi = false;
if (g_factoryWindowSelected != 0) {
g_timerTimeout = 10;
GUI_FactoryWindow_B495_0F30();
g_factoryWindowSelected--;
GUI_FactoryWindow_UpdateSelection(true);
locdi = true;
} else {
if (g_factoryWindowBase != 0) {
g_timerTimeout = 10;
g_factoryWindowBase--;
locdi = true;
GUI_FactoryWindow_ScrollList(-1);
GUI_FactoryWindow_UpdateSelection(true);
} else {
locdi = false;
GUI_FactoryWindow_DrawDetails();
GUI_FactoryWindow_FailScrollList(-1);
}
}
do {
GUI_FactoryWindow_UpdateSelection(false);
sleepIdle();
} while (g_timerTimeout != 0);
if (locdi) GUI_FactoryWindow_DrawDetails();
GUI_Widget_MakeNormal(w, false);
return true;
}
开发者ID:alex-game-of-2012,项目名称:opendune,代码行数:46,代码来源:widget_click.c
示例10: GUI_Production_Down_Click
/**
* Handles Click event for the "Down" button in production window.
*
* @return True, always.
*/
bool GUI_Production_Down_Click(Widget *w)
{
bool locdi = false;
if (g_factoryWindowSelected < 3 && (g_factoryWindowSelected + 1) < g_factoryWindowTotal) {
g_timerTimeout = 10;
GUI_FactoryWindow_B495_0F30();
g_factoryWindowSelected++;
GUI_FactoryWindow_UpdateSelection(true);
locdi = true;
} else {
if (g_factoryWindowBase + 4 < g_factoryWindowTotal) {
g_timerTimeout = 10;
g_factoryWindowBase++;
locdi = true;
GUI_FactoryWindow_ScrollList(1);
GUI_FactoryWindow_UpdateSelection(true);
} else {
locdi = false;
GUI_FactoryWindow_DrawDetails();
GUI_FactoryWindow_FailScrollList(1);
}
}
for (; g_timerTimeout != 0; sleepIdle()) {
GUI_FactoryWindow_UpdateSelection(false);
}
if (locdi) GUI_FactoryWindow_DrawDetails();
GUI_Widget_MakeNormal(w, false);
return true;
}
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:45,代码来源:widget_click.c
示例11: GUI_Purchase_Minus_Click
/**
* Handles Click event for the "-" button in startport window.
*
* @return True, always.
*/
bool GUI_Purchase_Minus_Click(Widget *w)
{
FactoryWindowItem *item;
House *h = g_playerHouse;
GUI_Widget_MakeNormal(w, false);
item = GUI_FactoryWindow_GetItem(g_factoryWindowSelected);
if (item->amount != 0) {
item->amount--;
GUI_FactoryWindow_UpdateDetails();
g_factoryWindowOrdered--;
h->credits += item->credits;
GUI_FactoryWindow_DrawCaption(NULL);
}
return true;
}
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:28,代码来源:widget_click.c
示例12: GUI_Production_ResumeGame_Click
/**
* Handles Click event for the "Resume Game" button in production window.
*
* @return True, always.
*/
bool GUI_Production_ResumeGame_Click(Widget *w)
{
g_factoryWindowResult = FACTORY_RESUME;
if (g_factoryWindowStarport) {
uint8 i = 0;
House *h = g_playerHouse;
while (g_factoryWindowOrdered != 0) {
if (g_factoryWindowItems[i].amount != 0) {
h->credits += g_factoryWindowItems[i].amount * g_factoryWindowItems[i].credits;
g_factoryWindowOrdered -= g_factoryWindowItems[i].amount;
g_factoryWindowItems[i].amount = 0;
}
i++;
GUI_DrawCredits(g_playerHouseID, 0);
}
}
if (w != NULL) GUI_Widget_MakeNormal(w, false);
return true;
}
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:29,代码来源:widget_click.c
示例13: GUI_Mentat_ShowHelp
static void GUI_Mentat_ShowHelp(void)
{
struct {
uint8 notused[8];
uint32 length;
} info;
uint8 *subject;
uint16 i;
bool noDesc;
uint8 fileID;
uint32 offset;
char *compressedText;
char *desc;
char *picture;
char *text;
bool loc12;
subject = s_helpSubjects;
for (i = 0; i < s_selectedHelpSubject; i++) subject = String_NextString(subject);
noDesc = (subject[5] == '0');
offset = HTOBE32(*(uint32 *)(subject + 1));
fileID = ChunkFile_Open(s_mentatFilename);
ChunkFile_Read(fileID, HTOBE32(CC_INFO), &info, 12);
ChunkFile_Close(fileID);
info.length = HTOBE32(info.length);
text = g_readBuffer;
compressedText = GFX_Screen_Get_ByIndex(SCREEN_1);
fileID = File_Open(s_mentatFilename, FILE_MODE_READ);
File_Seek(fileID, offset, 0);
File_Read(fileID, compressedText, info.length);
String_Decompress(compressedText, text);
String_TranslateSpecial(text, text);
File_Close(fileID);
while (*text != '*' && *text != '?') text++;
loc12 = (*text == '*');
*text++ = '\0';
if (noDesc) {
uint16 index;
picture = g_scenario.pictureBriefing;
desc = NULL;
text = (char *)g_readBuffer;
index = *text - 44 + g_campaignID * 4 + STR_HOUSE_HARKONNENFROM_THE_DARK_WORLD_OF_GIEDI_PRIME_THE_SAVAGE_HOUSE_HARKONNEN_HAS_SPREAD_ACROSS_THE_UNIVERSE_A_CRUEL_PEOPLE_THE_HARKONNEN_ARE_RUTHLESS_TOWARDS_BOTH_FRIEND_AND_FOE_IN_THEIR_FANATICAL_PURSUIT_OF_POWER + g_playerHouseID * 40;
strncpy(g_readBuffer, String_Get_ByIndex(index), g_readBufferSize);
} else {
picture = (char *)g_readBuffer;
desc = text;
while (*text != '\0' && *text != 0xC) text++;
if (*text != '\0') *text++ = '\0';
}
GUI_Mentat_Loop(picture, desc, text, loc12 ? 1 : 0, g_widgetMentatFirst);
GUI_Widget_MakeNormal(g_widgetMentatFirst, false);
GUI_Mentat_LoadHelpSubjects(false);
GUI_Mentat_Create_HelpScreen_Widgets();
GUI_Mentat_Draw(true);
}
开发者ID:gnaghi,项目名称:OpenDUNE,代码行数:74,代码来源:mentat.c
示例14: GUI_Mentat_Draw
static void GUI_Mentat_Draw(bool force)
{
static uint16 displayedHelpSubject = 0;
Screen oldScreenID;
Widget *line;
Widget *w = g_widgetMentatTail;
uint8 *helpSubjects = s_helpSubjects;
uint16 i;
if (!force && s_topHelpList == displayedHelpSubject) return;
displayedHelpSubject = s_topHelpList;
oldScreenID = GFX_Screen_SetActive(SCREEN_1);
Widget_SetAndPaintCurrentWidget(8);
GUI_DrawSprite(SCREEN_1, g_sprites[397 + g_playerHouseID * 15], g_shoulderLeft, g_shoulderTop, 0, 0);
GUI_DrawText_Wrapper(String_Get_ByIndex(STR_SELECT_SUBJECT), (g_curWidgetXBase << 3) + 16, g_curWidgetYBase + 2, 12, 0, 0x12);
GUI_DrawText_Wrapper(NULL, 0, 0, 0, 0, 0x11);
line = GUI_Widget_Get_ByIndex(w, 3);
for (i = 0; i < 11; i++) {
line->drawParameterDown.text = (char *)helpSubjects + 7;
line->drawParameterSelected.text = (char *)helpSubjects + 7;
line->drawParameterNormal.text = (char *)helpSubjects + 7;
if (helpSubjects[6] == '0') {
line->offsetX = 16;
line->fgColourSelected = 11;
line->fgColourDown = 11;
line->fgColourNormal = 11;
line->stringID = 0x30;
} else {
uint8 colour = (i == s_selectedHelpSubject) ? 8 : 15;
line->offsetX = 24;
line->fgColourSelected = colour;
line->fgColourDown = colour;
line->fgColourNormal = colour;
line->stringID = 0x31;
}
GUI_Widget_MakeNormal(line, false);
GUI_Widget_Draw(line);
line = GUI_Widget_GetNext(line);
helpSubjects = String_NextString(helpSubjects);
}
GUI_Widget_Scrollbar_Init(GUI_Widget_Get_ByIndex(w, 15), s_numberHelpSubjects, 11, s_topHelpList);
GUI_Widget_Draw(GUI_Widget_Get_ByIndex(w, 16));
GUI_Widget_Draw(GUI_Widget_Get_ByIndex(w, 17));
GUI_Mouse_Hide_Safe();
GUI_Screen_Copy(g_curWidgetXBase, g_curWidgetYBase, g_curWidgetXBase, g_curWidgetYBase, g_curWidgetWidth, g_curWidgetHeight, SCREEN_1, SCREEN_0);
GUI_Mouse_Show_Safe();
GFX_Screen_SetActive(oldScreenID);
}
开发者ID:gnaghi,项目名称:OpenDUNE,代码行数:61,代码来源:mentat.c
示例15: GUI_Widget_SaveLoad_Click
/**
* Handles Click event for "Save Game" or "Load Game" button.
*
* @param save Wether to save or load.
* @return True if a game has been saved or loaded, False otherwise.
*/
bool GUI_Widget_SaveLoad_Click(bool save)
{
WindowDesc *desc = &g_saveLoadWindowDesc;
bool loop;
s_savegameCountOnDisk = GetSavegameCount();
s_savegameIndexBase = max(0, s_savegameCountOnDisk - (save ? 0 : 1));
FillSavegameDesc(save);
desc->stringID = save ? STR_SELECT_A_POSITION_TO_SAVE_TO : STR_SELECT_A_SAVED_GAME_TO_LOAD;
GUI_Window_BackupScreen(desc);
GUI_Window_Create(desc);
UpdateArrows(save, true);
for (loop = true; loop; sleepIdle()) {
Widget *w = g_widgetLinkedListTail;
uint16 key = GUI_Widget_HandleEvents(w);
UpdateArrows(save, false);
if ((key & 0x8000) != 0) {
Widget *w2;
key &= 0x7FFF;
w2 = GUI_Widget_Get_ByIndex(w, key);
switch (key) {
case 0x25:
s_savegameIndexBase = min(s_savegameCountOnDisk - (save ? 0 : 1), s_savegameIndexBase + 1);
FillSavegameDesc(save);
GUI_Widget_DrawAll(w);
break;
case 0x26:
s_savegameIndexBase = max(0, s_savegameIndexBase - 1);
FillSavegameDesc(save);
GUI_Widget_DrawAll(w);
break;
case 0x23:
loop = false;
break;
default: {
GUI_Window_RestoreScreen(desc);
key -= 0x1E;
if (!save) {
LoadFile(GenerateSavegameFilename(s_savegameIndexBase - key));
return true;
}
if (GUI_Widget_Savegame_Click(key)) return true;
GUI_Window_BackupScreen(desc);
UpdateArrows(save, true);
GUI_Window_Create(desc);
UpdateArrows(save, true);
} break;
}
GUI_Widget_MakeNormal(w2, false);
}
GUI_PaletteAnimate();
}
GUI_Window_RestoreScreen(desc);
return false;
}
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:90,代码来源:widget_click.c
示例16: GUI_Widget_Savegame_Click
/**
* Handles Click event for savegame button.
*
* @param key The index of the clicked button.
* @return True if a game has been saved, False otherwise.
*/
static bool GUI_Widget_Savegame_Click(uint16 key)
{
WindowDesc *desc = &g_savegameNameWindowDesc;
bool loop;
char *saveDesc = g_savegameDesc[key];
uint16 loc08;
uint16 loc0A;
bool ret;
if (*saveDesc == '[') *saveDesc = 0;
GUI_Window_BackupScreen(desc);
GUI_Window_Create(desc);
ret = false;
loc08 = 1;
if (*saveDesc == '[') key = s_savegameCountOnDisk;
GFX_Screen_SetActive(SCREEN_0);
Widget_SetCurrentWidget(15);
GUI_Mouse_Hide_Safe();
GUI_DrawBorder((g_curWidgetXBase << 3) - 1, g_curWidgetYBase - 1, (g_curWidgetWidth << 3) + 2, g_curWidgetHeight + 2, 4, false);
GUI_Mouse_Show_Safe();
for (loop = true; loop; sleepIdle()) {
Widget *w = g_widgetLinkedListTail;
GUI_DrawText_Wrapper(NULL, 0, 0, 232, 235, 0x22);
loc0A = GUI_EditBox(saveDesc, 50, 15, g_widgetLinkedListTail, NULL, loc08);
loc08 = 2;
if ((loc0A & 0x8000) == 0) continue;
GUI_Widget_MakeNormal(GUI_Widget_Get_ByIndex(w, loc0A & 0x7FFF), false);
switch (loc0A & 0x7FFF) {
case 0x1E:
if (*saveDesc == 0) break;
SaveFile(GenerateSavegameFilename(s_savegameIndexBase - key), saveDesc);
loop = false;
ret = true;
break;
case 0x1F:
loop = false;
ret = false;
FillSavegameDesc(true);
break;
default: break;
}
}
GUI_Window_RestoreScreen(desc);
return ret;
}
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:69,代码来源:widget_click.c
示例17: GUI_Window_Create
static void GUI_Window_Create(WindowDesc *desc)
{
uint8 i;
if (desc == NULL) return;
g_widgetLinkedListTail = NULL;
GFX_Screen_SetActive(SCREEN_1);
Widget_SetCurrentWidget(desc->index);
GUI_Widget_DrawBorder(g_curWidgetIndex, 2, true);
if (GUI_String_Get_ByIndex(desc->stringID) != NULL) {
GUI_DrawText_Wrapper(GUI_String_Get_ByIndex(desc->stringID), (g_curWidgetXBase << 3) + (g_curWidgetWidth << 2), g_curWidgetYBase + 6 + ((desc == &g_yesNoWindowDesc) ? 2 : 0), 238, 0, 0x122);
}
if (GUI_String_Get_ByIndex(desc->widgets[0].stringID) == NULL) {
GUI_DrawText_Wrapper(String_Get_ByIndex(STR_THERE_ARE_NO_SAVED_GAMES_TO_LOAD), (g_curWidgetXBase + 2) << 3, g_curWidgetYBase + 42, 232, 0, 0x22);
}
for (i = 0; i < desc->widgetCount; i++) {
Widget *w = &g_table_windowWidgets[i];
if (GUI_String_Get_ByIndex(desc->widgets[i].stringID) == NULL) continue;
w->next = NULL;
w->offsetX = desc->widgets[i].offsetX;
w->offsetY = desc->widgets[i].offsetY;
w->width = desc->widgets[i].width;
w->height = desc->widgets[i].height;
w->shortcut = 0;
w->shortcut2 = 0;
if (desc != &g_savegameNameWindowDesc) {
if (desc->widgets[i].labelStringId != STR_NULL) {
w->shortcut = GUI_Widget_GetShortcut(*GUI_String_Get_ByIndex(desc->widgets[i].labelStringId));
} else {
w->shortcut = GUI_Widget_GetShortcut(*GUI_String_Get_ByIndex(desc->widgets[i].stringID));
}
}
w->shortcut2 = desc->widgets[i].shortcut2;
if (w->shortcut == 0x1B) {
w->shortcut2 = 0x13;
}
w->stringID = desc->widgets[i].stringID;
w->drawModeNormal = DRAW_MODE_CUSTOM_PROC;
w->drawModeSelected = DRAW_MODE_CUSTOM_PROC;
w->drawModeDown = DRAW_MODE_CUSTOM_PROC;
w->drawParameterNormal.proc = &GUI_Widget_TextButton_Draw;
w->drawParameterSelected.proc = &GUI_Widget_TextButton_Draw;
w->drawParameterDown.proc = &GUI_Widget_TextButton_Draw;
w->parentID = desc->index;
memset(&w->state, 0, sizeof(w->state));
g_widgetLinkedListTail = GUI_Widget_Link(g_widgetLinkedListTail, w);
GUI_Widget_MakeVisible(w);
GUI_Widget_MakeNormal(w, false);
GUI_Widget_Draw(w);
if (desc->widgets[i].labelStringId == STR_NULL) continue;
if (g_config.language == LANGUAGE_FRENCH) {
GUI_DrawText_Wrapper(GUI_String_Get_ByIndex(desc->widgets[i].labelStringId), (g_widgetProperties[w->parentID].xBase << 3) + 40, w->offsetY + g_widgetProperties[w->parentID].yBase + 3, 232, 0, 0x22);
} else {
GUI_DrawText_Wrapper(GUI_String_Get_ByIndex(desc->widgets[i].labelStringId), w->offsetX + (g_widgetProperties[w->parentID].xBase << 3) - 10, w->offsetY + g_widgetProperties[w->parentID].yBase + 3, 232, 0, 0x222);
}
}
if (s_savegameCountOnDisk >= 5 && desc->addArrows) {
Widget *w = &g_table_windowWidgets[7];
w->drawParameterNormal.sprite = g_sprites[59];
w->drawParameterSelected.sprite = g_sprites[60];
w->drawParameterDown.sprite = g_sprites[60];
w->next = NULL;
w->parentID = desc->index;
GUI_Widget_MakeNormal(w, false);
GUI_Widget_MakeInvisible(w);
GUI_Widget_Undraw(w, 233);
g_widgetLinkedListTail = GUI_Widget_Link(g_widgetLinkedListTail, w);
w = &g_table_windowWidgets[8];
w->drawParameterNormal.sprite = g_sprites[61];
w->drawParameterSelected.sprite = g_sprites[62];
w->drawParameterDown.sprite = g_sprites[62];
w->next = NULL;
w->parentID = desc->index;
GUI_Widget_MakeNormal(w, false);
GUI_Widget_MakeInvisible(w);
GUI_Widget_Undraw(w, 233);
//.........这里部分代码省略.........
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:101,代码来源:widget_click.c
示例18: GUI_Widget_TextButton_Click
/**
* Handles Click event for unit commands button.
*
* @param w The widget.
* @return True, always.
*/
bool GUI_Widget_TextButton_Click(Widget *w)
{
const UnitInfo *ui;
const ActionInfo *ai;
const uint16 *actions;
ActionType action;
Unit *u;
uint16 *found;
ActionType unitAction;
u = g_unitSelected;
ui = &g_table_unitInfo[u->o.type];
actions = ui->o.actionsPlayer;
if (Unit_GetHouseID(u) != g_playerHouseID && u->o.type != UNIT_HARVESTER) {
actions = g_table_actionsAI;
}
action = actions[w->index - 8];
unitAction = u->nextActionID;
if (unitAction == ACTION_INVALID) {
unitAction = u->actionID;
}
if (u->deviated != 0) {
Unit_Deviation_Decrease(u, 5);
if (u->deviated == 0) {
GUI_Widget_MakeNormal(w, false);
return true;
}
}
GUI_Widget_MakeSelected(w, false);
ai = &g_table_actionInfo[action];
if (ai->selectionType != g_selectionType) {
g_unitActive = g_unitSelected;
g_activeAction = action;
GUI_ChangeSelectionType(ai->selectionType);
return true;
}
Object_Script_Variable4_Clear(&u->o);
u->targetAttack = 0;
u->targetMove = 0;
u->route[0] = 0xFF;
Unit_SetAction(u, action);
if (ui->movementType == MOVEMENT_FOOT) Sound_StartSound(ai->soundID);
if (unitAction == action) return true;
found = memchr(actions, unitAction, 4);
if (found == NULL) return true;
GUI_Widget_MakeNormal(GUI_Widget_Get_ByIndex(g_widgetLinkedListHead, found - actions + 8), false);
return true;
}
开发者ID:Haozerk,项目名称:OpenDUNE,代码行数:69,代码来源:widget_click.c
注:本文中的GUI_Widget_MakeNormal函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论