45 #ifndef __INTERFACE_H__
146 #define MAX_NUM_VIEWPORTS 8
232 bits_map() : Width(0), Height(0), bstore(NULL) {}
237 bool TransparentPixel(
int x,
int y)
240 const unsigned int x_index = x / 32;
244 return ((bstore[y + x_index] & (1 << x)) == 0);
251 unsigned int *bstore;
264 if (x >= 0 && y >= 0 && x < map.Width && y < map.Height) {
265 return !map.TransparentPixel(x, y);
286 void DoClicked_SelectTarget(
int button);
288 void DoClicked_Unload(
int button);
289 void DoClicked_SpellCast(
int button);
290 void DoClicked_Repair(
int button);
291 void DoClicked_Return();
292 void DoClicked_Stop();
293 void DoClicked_StandGround();
294 void DoClicked_Button(
int button);
295 void DoClicked_CancelUpgrade();
296 void DoClicked_CancelTrain();
297 void DoClicked_CancelBuild();
298 void DoClicked_Build(
int button);
299 void DoClicked_Train(
int button);
300 void DoClicked_UpgradeTo(
int button);
301 void DoClicked_Research(
int button);
302 void DoClicked_CallbackAction(
int button);
319 memset(this->
X, 0,
sizeof(this->
X));
320 memset(this->
Y, 0,
sizeof(this->
Y));
330 const int coeffX[] = { 0, 193, 256, 193, 0, -193, -256, -193, 0};
331 const int coeffY[] = { -256, -193, 0, 193, 256, 193, 0, -193, 0};
332 for (
int i = 0; i < 9; ++i) {
333 this->X[i] = (coeffX[i] * radius) >> 8;
334 this->Y[i] = (coeffY[i] * radius) >> 8;
353 #define MaxResourceInfo MaxCosts + 4
596 extern void CallHandler(
unsigned int handle,
int value);
int MouseScrollSpeedDefault
Middle-Mouse Scroll Speed (screenpixels per mousepixel)
Definition: ui.h:395
CViewport * SelectedViewport
Viewport containing mouse.
Definition: ui.h:452
int PosX
Ident of the panel.
Definition: ui.h:219
Two viewports split horizontal.
Definition: ui.h:156
CUIButton NetworkDiplomacyButton
network menu button
Definition: ui.h:462
Two viewports split vertical.
Definition: ui.h:158
CFont * TrainingFont
Multiple Training Text.
Definition: ui.h:428
CursorConfig ArrowNW
Cursor pointing north.
Definition: ui.h:495
int X
Definition: ui.h:363
int Offset640X
game timer
Definition: ui.h:478
int X
Definition: ui.h:172
bool HideNeutral
if true, show only for selected unit.
Definition: ui.h:199
int Y
Definition: ui.h:364
CursorConfig ArrowNE
Cursor pointing east.
Definition: ui.h:493
#define MaxResourceInfo
Definition: ui.h:353
std::vector< CUIUserButton > UserButtons
network diplomacy button
Definition: ui.h:465
ViewportModeType
Definition: ui.h:153
std::string SingleTrainingText
Button for single training.
Definition: ui.h:421
Four viewports split symmetric.
Definition: ui.h:159
CursorConfig Point
Offset for 640x480 Y position.
Definition: ui.h:484
std::string Name
Definition: ui.h:218
char * BoolFlags
if true, show for opponent unit.
Definition: ui.h:203
std::vector< ButtonAction > CurrentButtons
Pointer to current buttons.
Definition: botpanel.cpp:80
void UIHandleMouseMove(const PixelPos &pos)
Called if the mouse is moved in Normal interface state.
Definition: mouse.cpp:900
Old single viewport.
Definition: ui.h:155
CUIButton * UpgradingButton
Multiple Training Y Text position.
Definition: ui.h:432
void UserInterfaceCclRegister()
Register ccl features.
Definition: script_ui.cpp:1215
A platform independent color.
Definition: color.h:39
CursorConfig ArrowS
Cursor pointing south west.
Definition: ui.h:498
TextAlignment
Definition: ui.h:78
CursorConfig Cross
HourGlass, system is waiting.
Definition: ui.h:486
int IconFrame
icon graphic
Definition: ui.h:346
~ConditionPanel()
Definition: ui.h:191
int PosY
X coordinate of the panel.
Definition: ui.h:220
CursorConfig RedHair
Green action,attack cursor.
Definition: ui.h:489
int NumViewports
Current selected active viewport.
Definition: ui.h:453
CUserInterface()
Definition: ui.cpp:114
int Y
X coordinate.
Definition: ui.h:271
std::vector< CPopup * > ButtonPopups
Info panel contents.
Definition: ui.h:411
void FreeButtonStyles()
Definition: ui.cpp:377
int SingleTrainingTextX
Font for single traning.
Definition: ui.h:423
IntColor ViewportCursorColor
minimap
Definition: ui.h:469
void Load()
Definition: graphic.cpp:1642
void UIHandleButtonDown(unsigned button)
Called if any mouse button is pressed down.
Definition: mouse.cpp:1800
CUIButton NetworkMenuButton
menu button
Definition: ui.h:461
CursorConfig ArrowW
Cursor pointing north west.
Definition: ui.h:496
bool OnGraphic(int x, int y)
Definition: ui.h:260
void SetLeaveStops(bool enabled)
Enable/disable leaving the window stops scrolling.
Definition: ui.cpp:775
void ShowLoadProgress(const char *fmt,...) PRINTF_VAARG_ATTRIBUTE(1
Show load progress.
bool GetKeyScroll()
Check if keyboard scrolling is enabled.
Definition: ui.cpp:729
CUserInterface UI
Current Selected Buttons.
Definition: ui.cpp:67
CMinimap Minimap
User buttons.
Definition: ui.h:468
int X
Graphic.
Definition: ui.h:270
The big unit structure.
Definition: unit.h:119
CPieMenu PieMenu
Definition: ui.h:447
std::vector< CUIButton > TransportingButtons
Button info for researching.
Definition: ui.h:436
#define PRINTF_VAARG_ATTRIBUTE(a, b)
Definition: stratagus.h:90
const char DefaultGroupKeys[]
right button attacks
Definition: interface.cpp:79
ButtonStyle * FindButtonStyle(const std::string &style)
Find a button style.
Definition: script_ui.cpp:731
int EndX
Screen pixel upper corner y coordinate.
Definition: ui.h:174
std::string ClickMissile
The user interface.
Definition: script_ui.cpp:60
CFont * DefaultFont
Y coordinate of the panel.
Definition: ui.h:221
#define NoButton
pressed mouse button flags
Definition: interface.h:156
CGraphic * DefeatBackgroundG
Victory background graphic.
Definition: ui.h:508
std::vector< CUnitInfoPanel * > InfoPanelContents
Info panel.
Definition: ui.h:409
ViewportModeType ViewportMode
Definition: ui.h:450
Definition: contenttype.h:46
bool GetMouseScroll()
Check if mouse scrolling is enabled.
Definition: ui.cpp:711
bool ShowOpponent
if true, don't show for allied unit. (but show own units)
Definition: ui.h:201
CursorConfig YellowHair
Multi-select cursor.
Definition: ui.h:487
std::string UiGroupKeys
Default group keys.
Definition: interface.cpp:80
void Draw()
Definition: mainscr.cpp:1168
CPopup * PopupByIdent(const std::string &ident)
return popup by ident string
Definition: ui.cpp:160
CInfoPanel InfoPanel
Icon+Text of all resources.
Definition: ui.h:408
CUIButton * ResearchingButton
Button info for upgrade.
Definition: ui.h:434
std::vector< CUIButton > SelectedButtons
Button for single selected unit.
Definition: ui.h:415
CursorConfig GreenHair
Yellow action,attack cursor.
Definition: ui.h:488
int TextY
text X position
Definition: ui.h:351
CViewport * MouseViewport
Current viewport mode.
Definition: ui.h:451
std::string TrainingText
Training buttons.
Definition: ui.h:427
Definition: viewport.h:63
CButtonPanel ButtonPanel
should complete bar have shadow
Definition: ui.h:444
CFont * MaxSelectedFont
Selected buttons.
Definition: ui.h:416
Font definition.
Definition: font.h:73
int TrainingTextY
Multiple Training X Text position.
Definition: ui.h:430
int ScrollPaddingBottom
Scrollable area past the top of map.
Definition: ui.h:179
std::vector< CFiller > Fillers
Color for reverse text displayed.
Definition: ui.h:404
CStatusLine StatusLine
minimap cursor color
Definition: ui.h:472
void CleanUserInterface()
Clean up the ui module.
Definition: ui.cpp:311
bool CompletedBarShadow
color for completed bar
Definition: ui.h:441
~CUserInterface()
Definition: ui.cpp:304
void Load()
Definition: ui.cpp:210
Three viewports split horiontal.
Definition: ui.h:157
CMapArea()
Definition: ui.h:165
void CheckViewportMode()
Definition: ui.cpp:701
int MaxSelectedTextY
position to place '+#' text
Definition: ui.h:418
CUIButton MenuButton
Scroll speed in seconds for messages.
Definition: ui.h:460
bool GetGrabMouse()
Check if mouse grabbing is enabled.
Definition: ui.cpp:747
ConditionPanel * Condition
Array of contents to display.
Definition: ui.h:225
int IconX
icon frame
Definition: ui.h:347
CGraphic * VictoryBackgroundG
Cursor pointing south east.
Definition: ui.h:507
std::string ReverseFontColor
Color for normal text displayed.
Definition: ui.h:402
CUIButton * SingleSelectedButton
Popup windows for buttons.
Definition: ui.h:413
#define MAX_NUM_VIEWPORTS
Definition: ui.h:146
bool GetLeaveStops()
Check if scrolling stops when leaving the window.
Definition: ui.cpp:765
std::string DamageMissile
Missile to show when you click.
Definition: script_ui.cpp:61
Definition: statusline.h:41
CMapArea MapArea
Parameters of all viewports.
Definition: ui.h:455
~CUnitInfoPanel()
Definition: ui.cpp:104
int KeyScrollSpeed
Key Scroll Speed.
Definition: ui.h:391
std::map< std::string, ButtonStyle * > ButtonStyleHash
Missile to show damage caused.
Definition: script_ui.cpp:62
CursorConfig Glass
General pointing cursor.
Definition: ui.h:485
int IconWidth
icon Y position
Definition: ui.h:349
void UIHandleButtonUp(unsigned button)
Called if any mouse button is released up.
Definition: mouse.cpp:1881
std::vector< CUIButton > TrainingButtons
Y text position single training.
Definition: ui.h:426
CViewport * GetViewport(const PixelPos &screenPos)
Get viewport for screen pixel position.
Definition: ui.cpp:398
std::string NormalFontColor
Cursor warp screen position.
Definition: ui.h:401
void InitUserInterface()
Mirror buildings 1 yes, 0 now.
Definition: ui.cpp:173
bool KeyScroll
Enable mouse scrolling.
Definition: ui.h:389
bool Contains(const PixelPos &screenPos) const
Definition: ui.cpp:267
CursorConfig ArrowSW
Cursor pointing west.
Definition: ui.h:497
CGraphic * G
Definition: ui.h:362
CResourceInfo Resources[MaxResourceInfo]
Filler graphics.
Definition: ui.h:406
int ScrollPaddingTop
Scrollable area past the right of map.
Definition: ui.h:178
bool HideAllied
if true, don't show for neutral unit.
Definition: ui.h:200
char * Variables
array of condition about user flags.
Definition: ui.h:204
void RestrictCursorToViewport()
Restrict mouse cursor to viewport.
Definition: mouse.cpp:862
void SetGrabMouse(bool enabled)
Enable/disable grabbing the mouse.
Definition: ui.cpp:757
int IconY
icon X position
Definition: ui.h:348
CUITimer Timer
status line
Definition: ui.h:475
CursorConfig ArrowSE
Cursor pointing south.
Definition: ui.h:499
CGraphic * G
Definition: ui.h:345
CColor CompletedBarColorRGB
Button info for transporting.
Definition: ui.h:439
CResourceInfo()
Definition: ui.h:342
void RestrictCursorToMinimap()
Restrict mouse cursor to minimap.
Definition: mouse.cpp:872
int SingleTrainingTextY
X text position single training.
Definition: ui.h:424
PixelPos MouseWarpPos
Definition: ui.h:399
int MouseScrollSpeed
Mouse Scroll Speed (screenpixels per mousepixel)
Definition: ui.h:393
void SetMouseScroll(bool enabled)
Enable/disable scrolling with the mouse.
Definition: ui.cpp:721
CViewport Viewports[MAX_NUM_VIEWPORTS]
Viewports currently used
Definition: ui.h:454
CFont * MessageFont
geometry of the whole map area
Definition: ui.h:456
bool FancyBuildings
Up to 11 keys used for group selection.
Definition: ui.cpp:62
int MaxSelectedTextX
Font type to use.
Definition: ui.h:417
CursorConfig Scroll
Red action,attack cursor.
Definition: ui.h:490
CUIButton * SingleTrainingButton
if > maximum units selected
Definition: ui.h:420
CFont * SingleTrainingFont
Text for single training.
Definition: ui.h:422
bool MouseScroll
Definition: ui.h:388
CursorConfig ArrowN
Cursor pointing north east.
Definition: ui.h:494
int MessageScrollSpeed
Font used for messages.
Definition: ui.h:457
int TrainingTextX
Multiple Training Font.
Definition: ui.h:429
CursorConfig ArrowE
Cursor for scrolling map around.
Definition: ui.h:492
bool RightButtonAttacks
Definition: ui.cpp:58
void SetNewViewportMode(ViewportModeType mode)
Definition: ui.cpp:671
CGraphic * G
Definition: ui.h:269
int Offset480Y
Offset for 640x480 X position.
Definition: ui.h:479
void SaveUserInterface(CFile &file)
Save the ui state.
Definition: ui.cpp:296
int MouseScrollSpeedControl
Middle-Mouse Scroll Speed with Control pressed.
Definition: ui.h:397
int AddHandler(lua_State *l)
Definition: script_ui.cpp:892
uint32_t IntColor
Definition: color.h:74
CUnitInfoPanel()
Definition: ui.h:213
int ScrollPaddingLeft
Screen pixel bottom y coordinate.
Definition: ui.h:176
int EndY
Screen pixel right x coordinate.
Definition: ui.h:175
void CycleViewportMode(int)
Cycle through all available viewport modes.
Definition: ui.cpp:690
int Y
Screen pixel left corner x coordinate.
Definition: ui.h:173
bool ShowOnlySelected
Definition: ui.h:197
void SetKeyScroll(bool enabled)
Enable/disable scrolling with the keyboard.
Definition: ui.cpp:739
CInfoPanel()
Definition: ui.h:358
ConditionPanel()
Definition: ui.h:188
Cursor config reference.
Definition: cursor.h:144
int ScrollPaddingRight
Scrollable area past the left of map.
Definition: ui.h:177
CFiller()
Definition: ui.h:256
std::vector< CContentType * > Contents
Default font for content.
Definition: ui.h:223
void CallHandler(unsigned int handle, int value)
Definition: script_ui.cpp:911
IntColor CompletedBarColor
color for completed bar
Definition: ui.h:440
int TextX
icon W size
Definition: ui.h:350
void SetViewportMode(ViewportModeType mode)
Select viewport mode.
Definition: ui.cpp:642