diff --git a/projects/openrct2.vcxproj b/projects/openrct2.vcxproj index 1f0de53737..95fe426232 100644 --- a/projects/openrct2.vcxproj +++ b/projects/openrct2.vcxproj @@ -95,6 +95,7 @@ + diff --git a/projects/openrct2.vcxproj.filters b/projects/openrct2.vcxproj.filters index 559453fe4d..a37dff35ba 100644 --- a/projects/openrct2.vcxproj.filters +++ b/projects/openrct2.vcxproj.filters @@ -293,6 +293,9 @@ Windows + + Windows + diff --git a/src/window_map.c b/src/window_map.c new file mode 100644 index 0000000000..79719deb93 --- /dev/null +++ b/src/window_map.c @@ -0,0 +1,184 @@ +/***************************************************************************** + * Copyright (c) 2014 Ted John, Dennis Devriendt + * OpenRCT2, an open source clone of Roller Coaster Tycoon 2. + * + * This file is part of OpenRCT2. + * + * OpenRCT2 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 3 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, see . + *****************************************************************************/ + +#include "addresses.h" +#include "strings.h" +#include "widget.h" +#include "window.h" + +static enum WINDOW_MAP_WIDGET_IDX { + WIDX_BACKGROUND, + WIDX_TITLE, + WIDX_CLOSE, +}; + +static rct_widget window_map_widgets[] = { + { WWT_FRAME, 0, 0, 309, 0, 371, STR_NONE, STR_NONE }, + { WWT_CAPTION, 0, 1, 308, 1, 14, STR_OPTIONS, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, 297, 307, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WIDGETS_END }, +}; + +static void window_map_emptysub() { } +static void window_map_close(); +static void window_map_mouseup(); +static void window_map_mousedown(); +static void window_map_update(); +static void window_map_scrollgetsize(); +static void window_map_scrollmousedown(); +static void window_map_invalidate(); +static void window_map_paint(); +static void window_map_scrollpaint(); + +static void* window_map_events[] = { + window_map_close, + window_map_mouseup, + window_map_emptysub, + window_map_mousedown, + window_map_emptysub, + window_map_emptysub, + window_map_update, + window_map_emptysub, + window_map_emptysub, + 0x0068D093, + 0x0068D074, + 0x0068D088, + window_map_emptysub, + 0x0068D055, + window_map_emptysub, + window_map_scrollgetsize, + window_map_scrollmousedown, + window_map_scrollmousedown, + window_map_emptysub, + window_map_emptysub, + window_map_emptysub, + window_map_emptysub, + 0x0068D140, + window_map_emptysub, + window_map_emptysub, + window_map_invalidate, + window_map_paint, + window_map_scrollpaint +}; + +/** +* +* rct2: 0x0068C88A +*/ +void window_map_open() +{ + RCT2_CALLPROC_EBPSAFE(0x0068C88A); + //rct_window* w; + + // Check if window is already open + //w = window_bring_to_front_by_id(WC_OPTIONS, 0); + //if (w != NULL) + // return; +} + +/** +* +* rct2: 0x006BAFCA +*/ +static void window_map_mouseup() +{ + RCT2_CALLPROC_EBPSAFE(0x006BAFCA); + /*short widgetIndex; + rct_window *w; + + __asm mov widgetIndex, dx + __asm mov w, esi + + switch (widgetIndex) { + case WIDX_CLOSE: + window_close(w); + break; + }*/ +} + +/** +* +* rct2: 0x0068D040 +*/ +static void window_map_mousedown() +{ + RCT2_CALLPROC_EBPSAFE(0x0068D040); +} + +/** +* +* rct2: 0x0068D7FB +*/ +static void window_map_update() +{ + RCT2_CALLPROC_EBPSAFE(0x0068D7FB); +} + +/** +* +* rct2: 0x0068D7CC +*/ +static void window_map_scrollgetsize() +{ + RCT2_CALLPROC_EBPSAFE(0x0068D7CC); +} + +/** +* +* rct2: 0x0068D726 +*/ +static void window_map_scrollmousedown() +{ + RCT2_CALLPROC_EBPSAFE(0x0068D726); +} + +/** +* +* rct2: 0x0068CA8F +*/ +static void window_map_invalidate() +{ + RCT2_CALLPROC_EBPSAFE(0x0068CA8F); +} + +/** +* +* rct2: 0x0068CDA9 +*/ +static void window_map_paint() +{ + RCT2_CALLPROC_EBPSAFE(0x0068CDA9); + /*rct_window *w; + rct_drawpixelinfo *dpi; + + __asm mov w, esi + __asm mov dpi, edi + + window_draw_widgets(w, dpi);*/ +} + +/** +* +* rct2: 0x0068CF23 +*/ +static void window_map_scrollpaint() +{ + RCT2_CALLPROC_EBPSAFE(0x0068CF23); +} \ No newline at end of file