diff options
Diffstat (limited to 'src/uqm/border.c')
-rw-r--r-- | src/uqm/border.c | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/src/uqm/border.c b/src/uqm/border.c new file mode 100644 index 0000000..193d19a --- /dev/null +++ b/src/uqm/border.c @@ -0,0 +1,200 @@ +//Copyright Paul Reiche, Fred Ford. 1992-2002 + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + + +#include "libs/gfxlib.h" +#include "libs/threadlib.h" +#include "colors.h" +#include "setup.h" +#include "sis.h" +#include "units.h" +#include "util.h" + + +void +InitSISContexts (void) +{ + RECT r; + + SetContext (StatusContext); + + SetContext (SpaceContext); + SetContextFGFrame (Screen); + + r.corner.x = SIS_ORG_X; + r.corner.y = SIS_ORG_Y; + r.extent.width = SIS_SCREEN_WIDTH; + r.extent.height = SIS_SCREEN_HEIGHT; + SetContextClipRect (&r); +} + +void +DrawSISFrame (void) +{ + RECT r; + + SetContext (ScreenContext); + + BatchGraphics (); + { + SetContextForeGroundColor ( + BUILD_COLOR (MAKE_RGB15 (0x0A, 0x0A, 0x0A), 0x08)); + r.corner.x = 0; + r.corner.y = 0; + r.extent.width = SIS_ORG_X + SIS_SCREEN_WIDTH + 1; + r.extent.height = SIS_ORG_Y - 1; + DrawFilledRectangle (&r); + r.corner.x = 0; + r.corner.y = 0; + r.extent.width = SIS_ORG_X - 1; + r.extent.height = SIS_ORG_Y + SIS_SCREEN_HEIGHT + 1; + DrawFilledRectangle (&r); + r.corner.x = 0; + r.corner.y = r.extent.height; + r.extent.width = SIS_ORG_X + SIS_SCREEN_WIDTH + 1; + r.extent.height = SCREEN_HEIGHT - SIS_ORG_Y + SIS_SCREEN_HEIGHT; + DrawFilledRectangle (&r); + r.corner.x = SIS_ORG_X + SIS_SCREEN_WIDTH + 1; + r.corner.y = 0; + r.extent.width = SCREEN_WIDTH - r.corner.x; + r.extent.height = SCREEN_HEIGHT; + DrawFilledRectangle (&r); + + r.corner.x = SIS_ORG_X - 1; + r.corner.y = SIS_ORG_Y - 1; + r.extent.width = SIS_SCREEN_WIDTH + 2; + r.extent.height = SIS_SCREEN_HEIGHT + 2; + DrawStarConBox (&r, 1, + BUILD_COLOR (MAKE_RGB15 (0x10, 0x10, 0x10), 0x19), + BUILD_COLOR (MAKE_RGB15 (0x08, 0x08, 0x08), 0x1F), + TRUE, BLACK_COLOR); + + r.corner.y = 0; + r.extent.height = SIS_ORG_Y; + + r.corner.x = SIS_ORG_X; + r.extent.width = SIS_MESSAGE_BOX_WIDTH; + DrawStarConBox (&r, 1, + BUILD_COLOR (MAKE_RGB15 (0x00, 0x00, 0x0E), 0x54), + BUILD_COLOR (MAKE_RGB15 (0x00, 0x01, 0x1C), 0x4E), + TRUE, BUILD_COLOR (MAKE_RGB15 (0x00, 0x00, 0x14), 0x01)); + + r.extent.width = SIS_TITLE_BOX_WIDTH; + r.corner.x = SIS_ORG_X + SIS_SCREEN_WIDTH - SIS_TITLE_BOX_WIDTH; + DrawStarConBox (&r, 1, + BUILD_COLOR (MAKE_RGB15 (0x00, 0x00, 0x0E), 0x54), + BUILD_COLOR (MAKE_RGB15 (0x00, 0x01, 0x1C), 0x4E), + TRUE, BUILD_COLOR (MAKE_RGB15 (0x00, 0x00, 0x14), 0x01)); + + SetContextForeGroundColor (BLACK_COLOR); + r.corner.x = SAFE_X + SPACE_WIDTH - 1; + r.corner.y = 0; + r.extent.width = 1; + r.extent.height = SCREEN_HEIGHT; + DrawFilledRectangle (&r); + r.corner.x = SAFE_X + SPACE_WIDTH; + r.corner.y = SAFE_Y + 139; + DrawPoint (&r.corner); + r.corner.x = SCREEN_WIDTH - 1; + DrawPoint (&r.corner); + + SetContextForeGroundColor ( + BUILD_COLOR (MAKE_RGB15 (0x10, 0x10, 0x10), 0x19)); + r.corner.y = 1; + r.extent.width = 1; + r.extent.height = SAFE_Y + SIS_TITLE_HEIGHT; + r.corner.x = SIS_ORG_X - 1; + DrawFilledRectangle (&r); + r.corner.x = SIS_ORG_X + SIS_SCREEN_WIDTH - SIS_TITLE_BOX_WIDTH - 1; + DrawFilledRectangle (&r); + + r.corner.x = 0; + r.corner.y = SCREEN_HEIGHT - 1; + r.extent.width = SAFE_X + SPACE_WIDTH - 1; + r.extent.height = 1; + DrawFilledRectangle (&r); + r.corner.x = SAFE_X + SPACE_WIDTH - 2; + r.corner.y = 0; + r.extent.width = 1; + r.extent.height = SCREEN_HEIGHT - 1; + DrawFilledRectangle (&r); + r.corner.x = SCREEN_WIDTH - 1; + r.corner.y = 0; + r.extent.width = 1; + r.extent.height = SAFE_Y + 139; + DrawFilledRectangle (&r); + r.corner.x = SAFE_X + SPACE_WIDTH; + r.corner.y = SCREEN_HEIGHT - 1; + r.extent.width = SCREEN_WIDTH - r.corner.x; + r.extent.height = 1; + DrawFilledRectangle (&r); + r.corner.x = SCREEN_WIDTH - 1; + r.corner.y = SAFE_Y + 140; + r.extent.width = 1; + r.extent.height = (SCREEN_HEIGHT - 1) - r.corner.y; + DrawFilledRectangle (&r); + + SetContextForeGroundColor ( + BUILD_COLOR (MAKE_RGB15 (0x08, 0x08, 0x08), 0x1F)); + r.corner.y = 1; + r.extent.width = 1; + r.extent.height = SAFE_Y + SIS_MESSAGE_HEIGHT; + r.corner.x = SIS_ORG_X + SIS_MESSAGE_BOX_WIDTH; + DrawFilledRectangle (&r); + r.corner.x = SIS_ORG_X + SIS_SCREEN_WIDTH; + ++r.extent.height; + DrawFilledRectangle (&r); + r.corner.y = 0; + r.extent.width = (SAFE_X + SPACE_WIDTH - 2) - r.corner.x; + r.extent.height = 1; + DrawFilledRectangle (&r); + r.corner.x = 0; + r.extent.width = SIS_ORG_X - r.corner.x; + DrawFilledRectangle (&r); + r.corner.x = SIS_ORG_X + SIS_MESSAGE_BOX_WIDTH; + r.extent.width = SIS_SPACER_BOX_WIDTH; + DrawFilledRectangle (&r); + + r.corner.x = 0; + r.corner.y = 1; + r.extent.width = 1; + r.extent.height = (SCREEN_HEIGHT - 1) - r.corner.y; + DrawFilledRectangle (&r); + r.corner.x = SAFE_X + SPACE_WIDTH; + r.corner.y = 0; + r.extent.width = 1; + r.extent.height = SAFE_Y + 139; + DrawFilledRectangle (&r); + r.corner.x = SAFE_X + SPACE_WIDTH + 1; + r.corner.y = SAFE_Y + 139; + r.extent.width = STATUS_WIDTH - 2; + r.extent.height = 1; + DrawFilledRectangle (&r); + r.corner.x = SAFE_X + SPACE_WIDTH; + r.corner.y = SAFE_Y + 140; + r.extent.width = 1; + r.extent.height = SCREEN_HEIGHT - r.corner.y; + DrawFilledRectangle (&r); + } + + InitSISContexts (); + ClearSISRect (DRAW_SIS_DISPLAY); + + UnbatchGraphics (); +} + |