From ffc1dc63760f8ecf8b6b71a7ac820435e736c58b Mon Sep 17 00:00:00 2001 From: wolfreak99 Date: Tue, 1 Aug 2017 04:41:09 -0400 Subject: [PATCH 1/2] Add OpenRCT2 information and changelog to About window --- data/language/en-GB.txt | 3 + distribution/changelog.txt | 1 + src/openrct2/drawing/drawing.h | 8 + src/openrct2/drawing/sprite.cpp | 9 + src/openrct2/localisation/string_ids.h | 4 + src/openrct2/windows/about.c | 223 ++++++++++++++++++++----- 6 files changed, 207 insertions(+), 41 deletions(-) diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index fbb546f6f8..1bc4cb6c32 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -4445,6 +4445,9 @@ STR_6133 :{SMALLFONT}{BLACK}Access rides and scenery that have not yet been i STR_6134 :Clear Scenery STR_6135 :Client sent invalid request STR_6136 :Server sent invalid request +STR_6137 :OpenRCT2, a free and open source clone of Roller Coaster Tycoon 2. +STR_6138 :OpenRCT2 is the work of many authors, a full list can be found in "Contributors". For more information, visit http://github.com/OpenRCT2/OpenRCT2 +STR_6139 :All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them. ############# # Scenarios # diff --git a/distribution/changelog.txt b/distribution/changelog.txt index 0536cbee47..dd15e14505 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -38,6 +38,7 @@ - Improved: The land tool buttons can now be held down to increase/decrease size. - Improved: Dropdowns longer than 32 items overflow into columns. - Improved: Ride Type option in ride window is now a dropdown. +- Improved: "About OpenRCT2" window redesigned, now contains OpenRCT2 info and access to changelog 0.1.0 (2017-07-12) ------------------------------------------------------------------------ diff --git a/src/openrct2/drawing/drawing.h b/src/openrct2/drawing/drawing.h index 3e8629c516..6c5724526a 100644 --- a/src/openrct2/drawing/drawing.h +++ b/src/openrct2/drawing/drawing.h @@ -238,6 +238,12 @@ typedef struct rct_palette { rct_palette_entry entries[256]; } rct_palette; +typedef struct rct_size16 +{ + sint16 width; + sint16 height; +} rct_size16; + #define SPRITE_ID_PALETTE_COLOUR_1(colourId) (IMAGE_TYPE_REMAP | ((colourId) << 19)) #define SPRITE_ID_PALETTE_COLOUR_2(primaryId, secondaryId) (IMAGE_TYPE_REMAP_2_PLUS | IMAGE_TYPE_REMAP | ((primaryId << 19) | (secondaryId << 24))) #define SPRITE_ID_PALETTE_COLOUR_3(primaryId, secondaryId) (IMAGE_TYPE_REMAP_2_PLUS | ((primaryId << 19) | (secondaryId << 24))) @@ -363,6 +369,8 @@ void shorten_path(utf8 *buffer, size_t bufferSize, const utf8 *path, sint32 avai void scrolling_text_initialise_bitmaps(); sint32 scrolling_text_setup(rct_string_id stringId, uint16 scroll, uint16 scrollingMode); +rct_size16 FASTCALL gfx_get_sprite_size(uint32 image_id); + #include "NewDrawing.h" #endif diff --git a/src/openrct2/drawing/sprite.cpp b/src/openrct2/drawing/sprite.cpp index fd2e44fedc..46ce0aacef 100644 --- a/src/openrct2/drawing/sprite.cpp +++ b/src/openrct2/drawing/sprite.cpp @@ -706,4 +706,13 @@ extern "C" { return _csgLoaded; } + + rct_size16 FASTCALL gfx_get_sprite_size(uint32 image_id) + { + rct_g1_element *g1_source = gfx_get_g1_element(image_id & 0X7FFFF); + rct_size16 size; + size.width = g1_source->width; + size.height = g1_source->height; + return size; + } } diff --git a/src/openrct2/localisation/string_ids.h b/src/openrct2/localisation/string_ids.h index 635e861802..cbf08f33da 100644 --- a/src/openrct2/localisation/string_ids.h +++ b/src/openrct2/localisation/string_ids.h @@ -3810,6 +3810,10 @@ enum { STR_MULTIPLAYER_CLIENT_INVALID_REQUEST = 6135, STR_MULTIPLAYER_SERVER_INVALID_REQUEST = 6136, + STR_ABOUT_OPENRCT2_DESCRIPTION = 6137, + STR_ABOUT_OPENRCT2_DESCRIPTION_2 = 6138, + STR_ABOUT_OPENRCT2_DESCRIPTION_3 = 6139, + // Have to include resource strings (from scenarios and objects) for the time being now that language is partially working STR_COUNT = 32768 }; diff --git a/src/openrct2/windows/about.c b/src/openrct2/windows/about.c index 6a2abb412b..61fbe77e58 100644 --- a/src/openrct2/windows/about.c +++ b/src/openrct2/windows/about.c @@ -18,30 +18,78 @@ #include "../sprites.h" #include "../interface/widget.h" #include "../interface/window.h" +#include "../OpenRCT2.h" + +#define WW 400 +#define WH 330 + +enum +{ + WINDOW_ABOUT_PAGE_OPENRCT2, + WINDOW_ABOUT_PAGE_RCT2, +}; enum WINDOW_ABOUT_WIDGET_IDX { WIDX_BACKGROUND, WIDX_TITLE, WIDX_CLOSE, - WIDX_MUSIC_CREDITS, + WIDX_ABOUT_OPENRCT2, + WIDX_ABOUT_RCT2, + WIDX_PAGE_BACKGROUND, + + WIDX_PAGE_START, + + // About OpenRCT2 + WIDX_CHANGELOG = WIDX_PAGE_START, + + // About RCT2 + WIDX_MUSIC_CREDITS = WIDX_PAGE_START, WIDX_PUBLISHER_CREDITS }; -rct_widget window_about_widgets[] = { - { WWT_FRAME, 0, 0, 399, 0, 329, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 398, 1, 14, STR_ROLLERCOASTER_TYCOON_2, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 387, 397, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button +#define WIDGETS_MAIN \ + WWT_FRAME, 0, 0, 399, 0, 329, 0xFFFFFFFF, STR_NONE }, /* panel / background */ \ + { WWT_CAPTION, 0, 1, 398, 1, 14, STR_ROLLERCOASTER_TYCOON_2, STR_WINDOW_TITLE_TIP }, /* title bar */ \ + { WWT_CLOSEBOX, 0, 387, 397, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* close x button */ \ + { WWT_DROPDOWN_BUTTON, 0, 10, 199, 15, 30, STR_TITLE_SEQUENCE_OPENRCT2, STR_NONE }, /* about OpenRCT2 button */ \ + { WWT_DROPDOWN_BUTTON, 0, 201, 390, 15, 30, STR_TITLE_SEQUENCE_RCT2, STR_NONE }, /* about RCT2 button */ \ + { WWT_IMGBTN, 1, 0, 399, 31, WH - 1, 0xFFFFFFFF, STR_NONE /* page background */ + +static rct_widget window_about_openrct2_widgets[] = { + { WIDGETS_MAIN }, + { WWT_DROPDOWN_BUTTON, 1, 125, 275, 300, 311, STR_CHANGELOG_TITLE, STR_NONE }, // changelog button + { WIDGETS_END } +}; + +static rct_widget window_about_rct2_widgets[] = { + { WIDGETS_MAIN }, { WWT_DROPDOWN_BUTTON, 1, 100, 299, 230, 241, STR_MUSIC_ACKNOWLEDGEMENTS_ELLIPSIS, STR_NONE }, // music credits button { WWT_DROPDOWN_BUTTON, 1, 157, 356, 307, 318, STR_INFOGRAMES_INTERACTIVE_CREDITS, STR_NONE }, // infogrames credits button { WIDGETS_END }, }; -static void window_about_mouseup(rct_window *w, rct_widgetindex widgetIndex); -static void window_about_paint(rct_window *w, rct_drawpixelinfo *dpi); +static rct_widget *window_about_page_widgets[] = { + window_about_openrct2_widgets, + window_about_rct2_widgets, +}; -static rct_window_event_list window_about_events = { +#define DEFAULT_ENABLED_WIDGETS \ + 1ULL << WIDX_CLOSE) | (1ULL << WIDX_ABOUT_OPENRCT2) | (1ULL << WIDX_ABOUT_RCT2 + +static uint64 window_about_page_enabled_widgets[] = { + (DEFAULT_ENABLED_WIDGETS) | (1ULL << WIDX_CHANGELOG), + (DEFAULT_ENABLED_WIDGETS) | (1ULL << WIDX_MUSIC_CREDITS) | (1ULL << WIDX_PUBLISHER_CREDITS), +}; + +static void window_about_openrct2_mouseup(rct_window *w, rct_widgetindex widgetIndex); +static void window_about_openrct2_paint(rct_window *w, rct_drawpixelinfo *dpi); + +static void window_about_rct2_mouseup(rct_window *w, rct_widgetindex widgetIndex); +static void window_about_rct2_paint(rct_window *w, rct_drawpixelinfo *dpi); + +static rct_window_event_list window_about_openrct2_events = { NULL, - window_about_mouseup, + window_about_openrct2_mouseup, NULL, NULL, NULL, @@ -66,10 +114,48 @@ static rct_window_event_list window_about_events = { NULL, NULL, NULL, - window_about_paint, + window_about_openrct2_paint, NULL }; +static rct_window_event_list window_about_rct2_events = { + NULL, + window_about_rct2_mouseup, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + window_about_rct2_paint, + NULL +}; + +static rct_window_event_list *window_about_page_events[] = { + &window_about_openrct2_events, + &window_about_rct2_events, +}; + +static void window_about_set_page(rct_window *w, sint32 page); + /** * * rct2: 0x0066D2AC @@ -84,14 +170,14 @@ void window_about_open() return; window = window_create_centred( - 400, - 330, - &window_about_events, + WW, + WH, + window_about_page_events[WINDOW_ABOUT_PAGE_OPENRCT2], WC_ABOUT, 0 ); - window->widgets = window_about_widgets; - window->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_MUSIC_CREDITS) | (1 << WIDX_PUBLISHER_CREDITS); + window->widgets = window_about_page_widgets[WINDOW_ABOUT_PAGE_OPENRCT2]; + window->enabled_widgets = window_about_page_enabled_widgets[WINDOW_ABOUT_PAGE_OPENRCT2]; window_init_scroll_widgets(window); window->colours[0] = COLOUR_LIGHT_BLUE; @@ -99,16 +185,68 @@ void window_about_open() window->colours[2] = COLOUR_LIGHT_BLUE; } -/** - * - * rct2: 0x0066D4D5 - */ -static void window_about_mouseup(rct_window *w, rct_widgetindex widgetIndex) +#pragma region OpenRCT2 + +static void window_about_openrct2_mouseup(rct_window *w, rct_widgetindex widgetIndex) { switch (widgetIndex) { case WIDX_CLOSE: window_close(w); break; + case WIDX_ABOUT_OPENRCT2: + case WIDX_ABOUT_RCT2: + window_about_set_page(w, widgetIndex - WIDX_ABOUT_OPENRCT2); + break; + case WIDX_CHANGELOG: + window_changelog_open(); + break; + } +} + +static void window_about_openrct2_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ + window_draw_widgets(w, dpi); + + sint32 x, y, width; + rct_size16 logoSize; + + x = w->x + (w->width / 2); + y = w->y + w->widgets[WIDX_PAGE_BACKGROUND].top + 5; + width = w->width - 20; + + utf8 buffer[256]; + utf8 *ch = buffer; + + openrct2_write_full_version_info(ch, sizeof(buffer) - (ch - buffer)); + y += gfx_draw_string_centred_wrapped(dpi, &ch, x, y, width, STR_STRING, w->colours[2]) + 11; + y += gfx_draw_string_centred_wrapped(dpi, NULL, x, y, width, STR_ABOUT_OPENRCT2_DESCRIPTION, w->colours[2]) + 2; + + logoSize = gfx_get_sprite_size(SPR_G2_LOGO); + gfx_draw_sprite(dpi, SPR_G2_LOGO, x - (logoSize.width / 2), y, 0); + y += logoSize.height + 20; + + y += gfx_draw_string_centred_wrapped(dpi, NULL, x, y, width, STR_ABOUT_OPENRCT2_DESCRIPTION_2, w->colours[2]) + 15; + gfx_draw_string_centred_wrapped(dpi, NULL, x, y, width, STR_ABOUT_OPENRCT2_DESCRIPTION_3, w->colours[2]); +} + +#pragma endregion OpenRCT2 + +#pragma region RCT2 + +/** + * + * rct2: 0x0066D4D5 + */ +static void window_about_rct2_mouseup(rct_window *w, rct_widgetindex widgetIndex) +{ + switch (widgetIndex) { + case WIDX_CLOSE: + window_close(w); + break; + case WIDX_ABOUT_OPENRCT2: + case WIDX_ABOUT_RCT2: + window_about_set_page(w, widgetIndex - WIDX_ABOUT_OPENRCT2); + break; case WIDX_MUSIC_CREDITS: window_music_credits_open(); break; @@ -122,14 +260,16 @@ static void window_about_mouseup(rct_window *w, rct_widgetindex widgetIndex) * * rct2: 0x0066D321 */ -static void window_about_paint(rct_window *w, rct_drawpixelinfo *dpi) +static void window_about_rct2_paint(rct_window *w, rct_drawpixelinfo *dpi) { - sint32 x, y; + sint32 x, y, yPage; window_draw_widgets(w, dpi); + yPage = w->y + w->widgets[WIDX_PAGE_BACKGROUND].top + 5; + x = w->x + 200; - y = w->y + 17; + y = yPage; // Version gfx_draw_string_centred(dpi, STR_VERSION_X, x, y, COLOUR_BLACK, NULL); @@ -151,25 +291,26 @@ static void window_about_paint(rct_window *w, rct_drawpixelinfo *dpi) gfx_draw_string_centred(dpi, STR_THANKS_TO, x, y, COLOUR_BLACK, NULL); y += 10; gfx_draw_string_centred(dpi, STR_THANKS_TO_PEOPLE, x, y, COLOUR_BLACK, NULL); - y += 10; - gfx_draw_string_centred(dpi, STR_CREDIT_SPARE_1, x, y, COLOUR_BLACK, NULL); - y += 10; - gfx_draw_string_centred(dpi, STR_CREDIT_SPARE_2, x, y, COLOUR_BLACK, NULL); - y += 10; - gfx_draw_string_centred(dpi, STR_CREDIT_SPARE_3, x, y, COLOUR_BLACK, NULL); - y += 10; - gfx_draw_string_centred(dpi, STR_CREDIT_SPARE_4, x, y, COLOUR_BLACK, NULL); - y += 10; - gfx_draw_string_centred(dpi, STR_CREDIT_SPARE_5, x, y, COLOUR_BLACK, NULL); - y += 10; - gfx_draw_string_centred(dpi, STR_CREDIT_SPARE_6, x, y, COLOUR_BLACK, NULL); - y += 10; - gfx_draw_string_centred(dpi, STR_CREDIT_SPARE_7, x, y, COLOUR_BLACK, NULL); - + // Images - gfx_draw_sprite(dpi, SPR_CREDITS_CHRIS_SAWYER_SMALL, w->x + 92, w->y + 40, 0); - gfx_draw_sprite(dpi, SPR_CREDITS_INFOGRAMES, w->x + 50, w->y + 247, 0); + gfx_draw_sprite(dpi, SPR_CREDITS_CHRIS_SAWYER_SMALL, w->x + 92, yPage + 24, 0); + gfx_draw_sprite(dpi, SPR_CREDITS_INFOGRAMES, w->x + 50, yPage + 211, 0); // Licence - gfx_draw_string_left(dpi, STR_LICENSED_TO_INFOGRAMES_INTERACTIVE_INC, NULL, COLOUR_BLACK, w->x + 157, w->y + 257); + gfx_draw_string_left(dpi, STR_LICENSED_TO_INFOGRAMES_INTERACTIVE_INC, NULL, COLOUR_BLACK, w->x + 157, yPage + 221); +} + +#pragma endregion RCT2 + +static void window_about_set_page(rct_window *w, sint32 page) +{ + w->page = page; + w->frame_no = 0; + w->pressed_widgets = 0; + w->widgets = window_about_page_widgets[page]; + w->enabled_widgets = window_about_page_enabled_widgets[page]; + w->event_handlers = window_about_page_events[page]; + + window_init_scroll_widgets(w); + window_invalidate(w); } From ca77c75a5627086b5ec6285ae575bb4329edcb74 Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Wed, 2 Aug 2017 14:03:43 +0200 Subject: [PATCH 2/2] Improve tabs, alignment, remove now-unnecessary information and strings Removes RCT2 version string, Infogrames credits and logo, removes strings for aforementioned info. Moves OpenRCT2 version string to under the Changelog... button, rewords and fixes some of the strings --- OpenRCT2.xcodeproj/project.pbxproj | 12 +- data/language/en-GB.txt | 69 ++++---- src/openrct2/interface/window.h | 1 - src/openrct2/localisation/string_ids.h | 36 +--- src/openrct2/windows/{about.c => About.cpp} | 117 ++++++++----- src/openrct2/windows/music_credits.c | 4 +- src/openrct2/windows/publisher_credits.c | 182 -------------------- 7 files changed, 116 insertions(+), 305 deletions(-) rename src/openrct2/windows/{about.c => About.cpp} (62%) delete mode 100644 src/openrct2/windows/publisher_credits.c diff --git a/OpenRCT2.xcodeproj/project.pbxproj b/OpenRCT2.xcodeproj/project.pbxproj index fe7cc4cd47..e829769110 100644 --- a/OpenRCT2.xcodeproj/project.pbxproj +++ b/OpenRCT2.xcodeproj/project.pbxproj @@ -21,6 +21,7 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ + 4C5C268D1F31F65B003F90A1 /* About.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C5C268C1F31F65B003F90A1 /* About.cpp */; }; 4C8667821EEFDCDF0024AAB8 /* RideGroupManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8667801EEFDCDF0024AAB8 /* RideGroupManager.cpp */; }; 4C8B42701EEB1ABD00F015CA /* X8DrawingEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8B426E1EEB1ABD00F015CA /* X8DrawingEngine.cpp */; }; 4C8B42721EEB1AE400F015CA /* HardwareDisplayDrawingEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C8B42711EEB1AE400F015CA /* HardwareDisplayDrawingEngine.cpp */; }; @@ -324,7 +325,6 @@ F76C87411EC4E88400FA49E2 /* sawyercoding.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C85071EC4E7CD00FA49E2 /* sawyercoding.c */; }; F76C87431EC4E88400FA49E2 /* util.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C85091EC4E7CD00FA49E2 /* util.c */; }; F76C87451EC4E88400FA49E2 /* Version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C850B1EC4E7CD00FA49E2 /* Version.cpp */; }; - F76C87471EC4E88400FA49E2 /* about.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C850E1EC4E7CD00FA49E2 /* about.c */; }; F76C87481EC4E88400FA49E2 /* banner.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C850F1EC4E7CD00FA49E2 /* banner.c */; }; F76C87491EC4E88400FA49E2 /* changelog.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C85101EC4E7CD00FA49E2 /* changelog.c */; }; F76C874A1EC4E88400FA49E2 /* cheats.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C85111EC4E7CD00FA49E2 /* cheats.c */; }; @@ -364,7 +364,6 @@ F76C876E1EC4E88400FA49E2 /* options.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C85351EC4E7CD00FA49E2 /* options.c */; }; F76C876F1EC4E88400FA49E2 /* park.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C85361EC4E7CD00FA49E2 /* park.c */; }; F76C87701EC4E88400FA49E2 /* player.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C85371EC4E7CD00FA49E2 /* player.c */; }; - F76C87711EC4E88400FA49E2 /* publisher_credits.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C85381EC4E7CD00FA49E2 /* publisher_credits.c */; }; F76C87721EC4E88400FA49E2 /* research.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C85391EC4E7CD00FA49E2 /* research.c */; }; F76C87731EC4E88400FA49E2 /* ride.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C853A1EC4E7CD00FA49E2 /* ride.c */; }; F76C87741EC4E88400FA49E2 /* ride_construction.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C853B1EC4E7CD00FA49E2 /* ride_construction.c */; }; @@ -568,6 +567,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 4C5C268C1F31F65B003F90A1 /* About.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = About.cpp; sourceTree = ""; }; 4C8667801EEFDCDF0024AAB8 /* RideGroupManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RideGroupManager.cpp; sourceTree = ""; }; 4C8667811EEFDCDF0024AAB8 /* RideGroupManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RideGroupManager.h; sourceTree = ""; }; 4C8B426E1EEB1ABD00F015CA /* X8DrawingEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = X8DrawingEngine.cpp; sourceTree = ""; }; @@ -1196,7 +1196,6 @@ F76C850A1EC4E7CD00FA49E2 /* util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = util.h; sourceTree = ""; }; F76C850B1EC4E7CD00FA49E2 /* Version.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Version.cpp; sourceTree = ""; }; F76C850C1EC4E7CD00FA49E2 /* Version.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Version.h; sourceTree = ""; }; - F76C850E1EC4E7CD00FA49E2 /* about.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = about.c; sourceTree = ""; }; F76C850F1EC4E7CD00FA49E2 /* banner.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = banner.c; sourceTree = ""; }; F76C85101EC4E7CD00FA49E2 /* changelog.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = changelog.c; sourceTree = ""; }; F76C85111EC4E7CD00FA49E2 /* cheats.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = cheats.c; sourceTree = ""; }; @@ -1238,7 +1237,6 @@ F76C85351EC4E7CD00FA49E2 /* options.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = options.c; sourceTree = ""; }; F76C85361EC4E7CD00FA49E2 /* park.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = park.c; sourceTree = ""; }; F76C85371EC4E7CD00FA49E2 /* player.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = player.c; sourceTree = ""; }; - F76C85381EC4E7CD00FA49E2 /* publisher_credits.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = publisher_credits.c; sourceTree = ""; }; F76C85391EC4E7CD00FA49E2 /* research.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = research.c; sourceTree = ""; }; F76C853A1EC4E7CD00FA49E2 /* ride.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ride.c; sourceTree = ""; }; F76C853B1EC4E7CD00FA49E2 /* ride_construction.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ride_construction.c; sourceTree = ""; }; @@ -2393,7 +2391,7 @@ F76C850D1EC4E7CD00FA49E2 /* windows */ = { isa = PBXGroup; children = ( - F76C850E1EC4E7CD00FA49E2 /* about.c */, + 4C5C268C1F31F65B003F90A1 /* About.cpp */, F76C850F1EC4E7CD00FA49E2 /* banner.c */, F76C85101EC4E7CD00FA49E2 /* changelog.c */, F76C85111EC4E7CD00FA49E2 /* cheats.c */, @@ -2436,7 +2434,6 @@ F76C85351EC4E7CD00FA49E2 /* options.c */, F76C85361EC4E7CD00FA49E2 /* park.c */, F76C85371EC4E7CD00FA49E2 /* player.c */, - F76C85381EC4E7CD00FA49E2 /* publisher_credits.c */, F76C85391EC4E7CD00FA49E2 /* research.c */, F76C853A1EC4E7CD00FA49E2 /* ride.c */, F76C853B1EC4E7CD00FA49E2 /* ride_construction.c */, @@ -2988,6 +2985,7 @@ F76C88781EC5324E00FA49E2 /* AudioChannel.cpp in Sources */, F76C88791EC5324E00FA49E2 /* AudioContext.cpp in Sources */, 4CB832AC1EFFB8D100B88761 /* ttf.c in Sources */, + 4C5C268D1F31F65B003F90A1 /* About.cpp in Sources */, 4C8B42721EEB1AE400F015CA /* HardwareDisplayDrawingEngine.cpp in Sources */, F76C887A1EC5324E00FA49E2 /* AudioMixer.cpp in Sources */, F76C887B1EC5324E00FA49E2 /* FileAudioSource.cpp in Sources */, @@ -3278,7 +3276,6 @@ F76C87411EC4E88400FA49E2 /* sawyercoding.c in Sources */, F76C87431EC4E88400FA49E2 /* util.c in Sources */, F76C87451EC4E88400FA49E2 /* Version.cpp in Sources */, - F76C87471EC4E88400FA49E2 /* about.c in Sources */, F76C87481EC4E88400FA49E2 /* banner.c in Sources */, F76C87491EC4E88400FA49E2 /* changelog.c in Sources */, F76C874A1EC4E88400FA49E2 /* cheats.c in Sources */, @@ -3318,7 +3315,6 @@ F76C876E1EC4E88400FA49E2 /* options.c in Sources */, F76C876F1EC4E88400FA49E2 /* park.c in Sources */, F76C87701EC4E88400FA49E2 /* player.c in Sources */, - F76C87711EC4E88400FA49E2 /* publisher_credits.c in Sources */, F76C87721EC4E88400FA49E2 /* research.c in Sources */, F76C87731EC4E88400FA49E2 /* ride.c in Sources */, F76C87741EC4E88400FA49E2 /* ride_construction.c in Sources */, diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index 1bc4cb6c32..78c8fa6134 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -851,7 +851,7 @@ STR_0845 : STR_0846 : STR_0847 :About 'OpenRCT2' STR_0848 :RollerCoaster Tycoon 2 -STR_0849 :{WINDOW_COLOUR_2}Version 2.01.028 +STR_0849 : STR_0850 :{WINDOW_COLOUR_2}Copyright {COPYRIGHT} 2002 Chris Sawyer, all rights reserved STR_0851 :{WINDOW_COLOUR_2}Designed and programmed by Chris Sawyer STR_0852 :{WINDOW_COLOUR_2}Graphics by Simon Foster @@ -860,13 +860,13 @@ STR_0854 :{WINDOW_COLOUR_2}Additional sounds recorded by David Ellis STR_0855 :{WINDOW_COLOUR_2}Representation by Jacqui Lyons at Marjacq Ltd. STR_0856 :{WINDOW_COLOUR_2}Thanks to: STR_0857 :{WINDOW_COLOUR_2}Peter James Adcock, Joe Booth, and John Wardley -STR_0858 :{WINDOW_COLOUR_2} -STR_0859 :{WINDOW_COLOUR_2} -STR_0860 :{WINDOW_COLOUR_2} -STR_0861 : -STR_0862 : -STR_0863 : -STR_0864 : +STR_0858 : +STR_0859 : +STR_0860 : +STR_0861 : +STR_0862 : +STR_0863 : +STR_0864 : STR_0865 :{STRINGID} STR_0866 :{POP16}{STRINGID} STR_0867 :{POP16}{POP16}{STRINGID} @@ -2867,7 +2867,7 @@ STR_2856 :{WINDOW_COLOUR_2}Tutorial STR_2857 :{WINDOW_COLOUR_2}(Press a key or mouse button to take control) STR_2858 :Can't start marketing campaign... STR_2859 :Another instance of OpenRCT2 is already running -STR_2860 :Infogrames Interactive credits... +STR_2860 : STR_2861 :{WINDOW_COLOUR_2}Licensed to Infogrames Interactive Inc. STR_2862 :Music acknowledgements... STR_2863 :Music acknowledgements @@ -2915,29 +2915,29 @@ STR_2904 :{WINDOW_COLOUR_2}Manic Mechanic: (Allister Brimble) copyright {CO STR_2905 :{WINDOW_COLOUR_2}Techno Torture: (Allister Brimble) copyright {COPYRIGHT} Chris Sawyer STR_2906 :{WINDOW_COLOUR_2}Sweat Dreams: (Allister Brimble) copyright {COPYRIGHT} Chris Sawyer STR_2907 :{WINDOW_COLOUR_2}What shall we do with the Drunken Sailor: (Anon/Allister Brimble) copyright {COPYRIGHT} Chris Sawyer -STR_2908 :{WINDOW_COLOUR_2}Infogrames Interactive -STR_2909 :{WINDOW_COLOUR_2}Senior Producer: Thomas J. Zahorik -STR_2910 :{WINDOW_COLOUR_2}Executive Producer: Bill Levay -STR_2911 :{WINDOW_COLOUR_2}Senior Marketing Product Manager: Scott Triola -STR_2912 :{WINDOW_COLOUR_2}V.P. of Product Development: Scott Walker -STR_2913 :{WINDOW_COLOUR_2}General Manager: John Hurlbut -STR_2914 :{WINDOW_COLOUR_2}Director of Quality Assurance: Michael Craighead -STR_2915 :{WINDOW_COLOUR_2}Q.A. Certification Manager: Kurt Boutin -STR_2916 :{WINDOW_COLOUR_2}Q.A. Certification Lead: Mark Huggins -STR_2917 :{WINDOW_COLOUR_2}Testers: Dena Irene Fitzgerald, Scott Rollins, Christopher McPhail -STR_2918 :{WINDOW_COLOUR_2}Clif McClure, Erik Maramaldi, Erik Jeffery -STR_2919 :{WINDOW_COLOUR_2}Director of Marketing: Ann Marie Bland -STR_2920 :{WINDOW_COLOUR_2}Manager of Creative Services: Steve Martin -STR_2921 :{WINDOW_COLOUR_2}Manager of Editorial & Documentation Services: Elizabeth Mackney -STR_2922 :{WINDOW_COLOUR_2}Graphic Designer: Paul Anselmi -STR_2923 :{WINDOW_COLOUR_2}Copywriter: Kurt Carlson -STR_2924 :{WINDOW_COLOUR_2}Special Thanks to: Peter Matiss -STR_2925 :{WINDOW_COLOUR_2}Engineering Specialist: Ken Edwards -STR_2926 :{WINDOW_COLOUR_2}Engineering Services Manager: Luis Rivas -STR_2927 :{WINDOW_COLOUR_2}Lead Compatibility Analyst: Geoffrey Smith -STR_2928 :{WINDOW_COLOUR_2}Compatibility Analysts: Jason Cordero, Burke McQuinn, Kim Jardin -STR_2929 :{WINDOW_COLOUR_2}Lead Tester: Daniel Frisoli -STR_2930 :{WINDOW_COLOUR_2}Senior Tester: Matt Pantaleoni +STR_2908 : +STR_2909 : +STR_2910 : +STR_2911 : +STR_2912 : +STR_2913 : +STR_2914 : +STR_2915 : +STR_2916 : +STR_2917 : +STR_2918 : +STR_2919 : +STR_2920 : +STR_2921 : +STR_2922 : +STR_2923 : +STR_2924 : +STR_2925 : +STR_2926 : +STR_2927 : +STR_2928 : +STR_2929 : +STR_2930 : STR_2931 :{WINDOW_COLOUR_2} STR_2932 :{WINDOW_COLOUR_2} STR_2933 :{WINDOW_COLOUR_2} @@ -4446,8 +4446,9 @@ STR_6134 :Clear Scenery STR_6135 :Client sent invalid request STR_6136 :Server sent invalid request STR_6137 :OpenRCT2, a free and open source clone of Roller Coaster Tycoon 2. -STR_6138 :OpenRCT2 is the work of many authors, a full list can be found in "Contributors". For more information, visit http://github.com/OpenRCT2/OpenRCT2 -STR_6139 :All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them. +STR_6138 :OpenRCT2 is the work of many authors, a full list can be found in {OPENQUOTES}contributors.md{ENDQUOTES}. For more information, visit http://github.com/OpenRCT2/OpenRCT2 +STR_6139 :All product and company names belong to their respective holders. Use of them does not imply any affiliation with or endorsement by them. +STR_6140 :Changelog... ############# # Scenarios # diff --git a/src/openrct2/interface/window.h b/src/openrct2/interface/window.h index 3584d70a34..04a1c67baa 100644 --- a/src/openrct2/interface/window.h +++ b/src/openrct2/interface/window.h @@ -756,7 +756,6 @@ void window_research_funding_page_paint(rct_window *w, rct_drawpixelinfo *dpi, r void window_scenery_open(); void window_music_credits_open(); -void window_publisher_credits_open(); void window_track_manage_open(struct track_design_file_ref *tdFileRef); void window_viewport_open(); void window_themes_open(); diff --git a/src/openrct2/localisation/string_ids.h b/src/openrct2/localisation/string_ids.h index cbf08f33da..19d4848d59 100644 --- a/src/openrct2/localisation/string_ids.h +++ b/src/openrct2/localisation/string_ids.h @@ -284,7 +284,7 @@ enum { // STR_0846 : STR_ABOUT = 847, STR_ROLLERCOASTER_TYCOON_2 = 848, - STR_VERSION_X = 849, + //STR_VERSION_X = 849, STR_COPYRIGHT_CS = 850, STR_DESIGNED_AND_PROGRAMMED_BY_CS = 851, STR_GRAPHICS_BY_SF = 852, @@ -293,13 +293,7 @@ enum { STR_REPRESENTATION_BY_JL = 855, STR_THANKS_TO = 856, STR_THANKS_TO_PEOPLE = 857, - STR_CREDIT_SPARE_1 = 858, - STR_CREDIT_SPARE_2 = 859, - STR_CREDIT_SPARE_3 = 860, - STR_CREDIT_SPARE_4 = 861, - STR_CREDIT_SPARE_5 = 862, - STR_CREDIT_SPARE_6 = 863, - STR_CREDIT_SPARE_7 = 864, +// STR_0858 to 0864 are removed. STR_STRINGID = 865, STR_ARG_2_STRINGID = 866, // Unused STR_ARG_4_STRINGID = 867, // Unused @@ -2298,7 +2292,6 @@ enum { // STR_2857 :{WINDOW_COLOUR_2}(Press a key or mouse button to take control) STR_CANT_START_MARKETING_CAMPAIGN = 2858, // STR_2859 :Another instance of OpenRCT2 is already running - STR_INFOGRAMES_INTERACTIVE_CREDITS = 2860, STR_LICENSED_TO_INFOGRAMES_INTERACTIVE_INC = 2861, STR_MUSIC_ACKNOWLEDGEMENTS_ELLIPSIS = 2862, STR_MUSIC_ACKNOWLEDGEMENTS = 2863, @@ -2346,29 +2339,6 @@ enum { STR_MUSIC_ACKNOWLEDGEMENTS_TRACK_TECHNO_TORTURE = 2905, STR_MUSIC_ACKNOWLEDGEMENTS_TRACK_SWEET_DREAMS = 2906, STR_MUSIC_ACKNOWLEDGEMENTS_TRACK_WHAT_SHALL_WE_DO_WITH_THE_DRUNKEN_SAILOR = 2907, - STR_CREDITS_PUBLISHER_TILE = 2908, - STR_CREDITS_PUBLISHER_LINE_0 = 2909, - STR_CREDITS_PUBLISHER_LINE_1 = 2910, - STR_CREDITS_PUBLISHER_LINE_2 = 2911, - STR_CREDITS_PUBLISHER_LINE_3 = 2912, - STR_CREDITS_PUBLISHER_LINE_4 = 2913, - STR_CREDITS_PUBLISHER_LINE_5 = 2914, - STR_CREDITS_PUBLISHER_LINE_6 = 2915, - STR_CREDITS_PUBLISHER_LINE_7 = 2916, - STR_CREDITS_PUBLISHER_LINE_10 = 2917, - STR_CREDITS_PUBLISHER_LINE_11 = 2918, - STR_CREDITS_PUBLISHER_LINE_14 = 2919, - STR_CREDITS_PUBLISHER_LINE_15 = 2920, - STR_CREDITS_PUBLISHER_LINE_16 = 2921, - STR_CREDITS_PUBLISHER_LINE_17 = 2922, - STR_CREDITS_PUBLISHER_LINE_18 = 2923, - STR_CREDITS_PUBLISHER_LINE_21 = 2924, - STR_CREDITS_PUBLISHER_LINE_19 = 2925, - STR_CREDITS_PUBLISHER_LINE_20 = 2926, - STR_CREDITS_PUBLISHER_LINE_12 = 2927, - STR_CREDITS_PUBLISHER_LINE_13 = 2928, - STR_CREDITS_PUBLISHER_LINE_9 = 2929, - STR_CREDITS_PUBLISHER_LINE_8 = 2930, STR_MAIN_COLOUR_SCHEME = 2971, STR_ALTERNATIVE_COLOUR_SCHEME_1 = 2972, @@ -3814,6 +3784,8 @@ enum { STR_ABOUT_OPENRCT2_DESCRIPTION_2 = 6138, STR_ABOUT_OPENRCT2_DESCRIPTION_3 = 6139, + STR_CHANGELOG_ELLIPSIS = 6140, + // Have to include resource strings (from scenarios and objects) for the time being now that language is partially working STR_COUNT = 32768 }; diff --git a/src/openrct2/windows/about.c b/src/openrct2/windows/About.cpp similarity index 62% rename from src/openrct2/windows/about.c rename to src/openrct2/windows/About.cpp index 61fbe77e58..beeea1a508 100644 --- a/src/openrct2/windows/about.c +++ b/src/openrct2/windows/About.cpp @@ -14,14 +14,18 @@ *****************************************************************************/ #pragma endregion -#include "../localisation/localisation.h" -#include "../sprites.h" -#include "../interface/widget.h" -#include "../interface/window.h" #include "../OpenRCT2.h" +extern "C" +{ + #include "../interface/widget.h" + #include "../localisation/localisation.h" + #include "../sprites.h" +} + #define WW 400 -#define WH 330 +#define WH 350 +#define TABHEIGHT 50 enum { @@ -33,9 +37,9 @@ enum WINDOW_ABOUT_WIDGET_IDX { WIDX_BACKGROUND, WIDX_TITLE, WIDX_CLOSE, - WIDX_ABOUT_OPENRCT2, - WIDX_ABOUT_RCT2, WIDX_PAGE_BACKGROUND, + WIDX_TAB_ABOUT_OPENRCT2, + WIDX_TAB_ABOUT_RCT2, WIDX_PAGE_START, @@ -44,27 +48,25 @@ enum WINDOW_ABOUT_WIDGET_IDX { // About RCT2 WIDX_MUSIC_CREDITS = WIDX_PAGE_START, - WIDX_PUBLISHER_CREDITS }; #define WIDGETS_MAIN \ - WWT_FRAME, 0, 0, 399, 0, 329, 0xFFFFFFFF, STR_NONE }, /* panel / background */ \ - { WWT_CAPTION, 0, 1, 398, 1, 14, STR_ROLLERCOASTER_TYCOON_2, STR_WINDOW_TITLE_TIP }, /* title bar */ \ - { WWT_CLOSEBOX, 0, 387, 397, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* close x button */ \ - { WWT_DROPDOWN_BUTTON, 0, 10, 199, 15, 30, STR_TITLE_SEQUENCE_OPENRCT2, STR_NONE }, /* about OpenRCT2 button */ \ - { WWT_DROPDOWN_BUTTON, 0, 201, 390, 15, 30, STR_TITLE_SEQUENCE_RCT2, STR_NONE }, /* about RCT2 button */ \ - { WWT_IMGBTN, 1, 0, 399, 31, WH - 1, 0xFFFFFFFF, STR_NONE /* page background */ + WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, /* panel / background */ \ + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_ABOUT, STR_WINDOW_TITLE_TIP }, /* title bar */ \ + { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* close x button */ \ + { WWT_IMGBTN, 1, 0, WW - 1, TABHEIGHT, WH - 1, 0xFFFFFFFF, STR_NONE }, /* page background */ \ + { WWT_TAB, 1, 3, 93, 17, TABHEIGHT, IMAGE_TYPE_REMAP | SPR_TAB_LARGE, STR_NONE }, /* about OpenRCT2 button */ \ + { WWT_TAB, 1, 94, 184, 17, TABHEIGHT, IMAGE_TYPE_REMAP | SPR_TAB_LARGE, STR_NONE /* about RCT2 button */ static rct_widget window_about_openrct2_widgets[] = { { WIDGETS_MAIN }, - { WWT_DROPDOWN_BUTTON, 1, 125, 275, 300, 311, STR_CHANGELOG_TITLE, STR_NONE }, // changelog button + { WWT_DROPDOWN_BUTTON, 1, 100, 299, WH - 50, WH - 39, STR_CHANGELOG_ELLIPSIS, STR_NONE }, // changelog button { WIDGETS_END } }; static rct_widget window_about_rct2_widgets[] = { { WIDGETS_MAIN }, - { WWT_DROPDOWN_BUTTON, 1, 100, 299, 230, 241, STR_MUSIC_ACKNOWLEDGEMENTS_ELLIPSIS, STR_NONE }, // music credits button - { WWT_DROPDOWN_BUTTON, 1, 157, 356, 307, 318, STR_INFOGRAMES_INTERACTIVE_CREDITS, STR_NONE }, // infogrames credits button + { WWT_DROPDOWN_BUTTON, 1, 100, 299, WH - 50, WH - 39, STR_MUSIC_ACKNOWLEDGEMENTS_ELLIPSIS, STR_NONE }, // music credits button { WIDGETS_END }, }; @@ -74,11 +76,11 @@ static rct_widget *window_about_page_widgets[] = { }; #define DEFAULT_ENABLED_WIDGETS \ - 1ULL << WIDX_CLOSE) | (1ULL << WIDX_ABOUT_OPENRCT2) | (1ULL << WIDX_ABOUT_RCT2 + (1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_ABOUT_OPENRCT2) | (1ULL << WIDX_TAB_ABOUT_RCT2) static uint64 window_about_page_enabled_widgets[] = { - (DEFAULT_ENABLED_WIDGETS) | (1ULL << WIDX_CHANGELOG), - (DEFAULT_ENABLED_WIDGETS) | (1ULL << WIDX_MUSIC_CREDITS) | (1ULL << WIDX_PUBLISHER_CREDITS), + DEFAULT_ENABLED_WIDGETS | (1ULL << WIDX_CHANGELOG), + DEFAULT_ENABLED_WIDGETS | (1ULL << WIDX_MUSIC_CREDITS), }; static void window_about_openrct2_mouseup(rct_window *w, rct_widgetindex widgetIndex); @@ -86,6 +88,7 @@ static void window_about_openrct2_paint(rct_window *w, rct_drawpixelinfo *dpi); static void window_about_rct2_mouseup(rct_window *w, rct_widgetindex widgetIndex); static void window_about_rct2_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_about_openrct2_common_paint(rct_window *w, rct_drawpixelinfo *dpi); static rct_window_event_list window_about_openrct2_events = { NULL, @@ -160,7 +163,7 @@ static void window_about_set_page(rct_window *w, sint32 page); * * rct2: 0x0066D2AC */ -void window_about_open() +static void _window_about_open() { rct_window* window; @@ -176,11 +179,11 @@ void window_about_open() WC_ABOUT, 0 ); - window->widgets = window_about_page_widgets[WINDOW_ABOUT_PAGE_OPENRCT2]; - window->enabled_widgets = window_about_page_enabled_widgets[WINDOW_ABOUT_PAGE_OPENRCT2]; + + window_about_set_page(window, WINDOW_ABOUT_PAGE_OPENRCT2); window_init_scroll_widgets(window); - window->colours[0] = COLOUR_LIGHT_BLUE; + window->colours[0] = COLOUR_GREY; window->colours[1] = COLOUR_LIGHT_BLUE; window->colours[2] = COLOUR_LIGHT_BLUE; } @@ -193,9 +196,9 @@ static void window_about_openrct2_mouseup(rct_window *w, rct_widgetindex widgetI case WIDX_CLOSE: window_close(w); break; - case WIDX_ABOUT_OPENRCT2: - case WIDX_ABOUT_RCT2: - window_about_set_page(w, widgetIndex - WIDX_ABOUT_OPENRCT2); + case WIDX_TAB_ABOUT_OPENRCT2: + case WIDX_TAB_ABOUT_RCT2: + window_about_set_page(w, widgetIndex - WIDX_TAB_ABOUT_OPENRCT2); break; case WIDX_CHANGELOG: window_changelog_open(); @@ -203,23 +206,38 @@ static void window_about_openrct2_mouseup(rct_window *w, rct_widgetindex widgetI } } +static void window_about_openrct2_common_paint(rct_window * w, rct_drawpixelinfo * dpi) +{ + sint32 x1, x2, y; + + x1 = w->x + (&w->widgets[WIDX_TAB_ABOUT_OPENRCT2])->left + 45; + x2 = w->x + (&w->widgets[WIDX_TAB_ABOUT_RCT2])->left + 45; + y = w->y + (((&w->widgets[WIDX_TAB_ABOUT_OPENRCT2])->top + (&w->widgets[WIDX_TAB_ABOUT_OPENRCT2])->bottom) / 2) - 3; + + set_format_arg(0, rct_string_id, STR_TITLE_SEQUENCE_OPENRCT2); + gfx_draw_string_centred_wrapped(dpi, gCommonFormatArgs, x1, y, 87, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_AQUAMARINE); + + set_format_arg(0, rct_string_id, STR_TITLE_SEQUENCE_RCT2); + gfx_draw_string_centred_wrapped(dpi, gCommonFormatArgs, x2, y, 87, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_AQUAMARINE); +} + static void window_about_openrct2_paint(rct_window *w, rct_drawpixelinfo *dpi) { window_draw_widgets(w, dpi); + window_about_openrct2_common_paint(w, dpi); sint32 x, y, width; rct_size16 logoSize; x = w->x + (w->width / 2); - y = w->y + w->widgets[WIDX_PAGE_BACKGROUND].top + 5; + y = w->y + w->widgets[WIDX_PAGE_BACKGROUND].top + 10; width = w->width - 20; utf8 buffer[256]; utf8 *ch = buffer; - openrct2_write_full_version_info(ch, sizeof(buffer) - (ch - buffer)); - y += gfx_draw_string_centred_wrapped(dpi, &ch, x, y, width, STR_STRING, w->colours[2]) + 11; - y += gfx_draw_string_centred_wrapped(dpi, NULL, x, y, width, STR_ABOUT_OPENRCT2_DESCRIPTION, w->colours[2]) + 2; + + y += gfx_draw_string_centred_wrapped(dpi, NULL, x, y, width, STR_ABOUT_OPENRCT2_DESCRIPTION, w->colours[2]) + 10; logoSize = gfx_get_sprite_size(SPR_G2_LOGO); gfx_draw_sprite(dpi, SPR_G2_LOGO, x - (logoSize.width / 2), y, 0); @@ -227,6 +245,9 @@ static void window_about_openrct2_paint(rct_window *w, rct_drawpixelinfo *dpi) y += gfx_draw_string_centred_wrapped(dpi, NULL, x, y, width, STR_ABOUT_OPENRCT2_DESCRIPTION_2, w->colours[2]) + 15; gfx_draw_string_centred_wrapped(dpi, NULL, x, y, width, STR_ABOUT_OPENRCT2_DESCRIPTION_3, w->colours[2]); + + gfx_draw_string_centred_wrapped(dpi, &ch, x, w->y + WH - 25, width, STR_STRING, w->colours[2]); + } #pragma endregion OpenRCT2 @@ -243,16 +264,13 @@ static void window_about_rct2_mouseup(rct_window *w, rct_widgetindex widgetIndex case WIDX_CLOSE: window_close(w); break; - case WIDX_ABOUT_OPENRCT2: - case WIDX_ABOUT_RCT2: - window_about_set_page(w, widgetIndex - WIDX_ABOUT_OPENRCT2); + case WIDX_TAB_ABOUT_OPENRCT2: + case WIDX_TAB_ABOUT_RCT2: + window_about_set_page(w, widgetIndex - WIDX_TAB_ABOUT_OPENRCT2); break; case WIDX_MUSIC_CREDITS: window_music_credits_open(); break; - case WIDX_PUBLISHER_CREDITS: - window_publisher_credits_open(); - break; } } @@ -265,19 +283,16 @@ static void window_about_rct2_paint(rct_window *w, rct_drawpixelinfo *dpi) sint32 x, y, yPage; window_draw_widgets(w, dpi); + window_about_openrct2_common_paint(w, dpi); yPage = w->y + w->widgets[WIDX_PAGE_BACKGROUND].top + 5; x = w->x + 200; - y = yPage; - - // Version - gfx_draw_string_centred(dpi, STR_VERSION_X, x, y, COLOUR_BLACK, NULL); + y = yPage + 5; // Credits - y += 10; gfx_draw_string_centred(dpi, STR_COPYRIGHT_CS, x, y, COLOUR_BLACK, NULL); - y += 79; + y += 84; gfx_draw_string_centred(dpi, STR_DESIGNED_AND_PROGRAMMED_BY_CS, x, y, COLOUR_BLACK, NULL); y += 10; gfx_draw_string_centred(dpi, STR_GRAPHICS_BY_SF, x, y, COLOUR_BLACK, NULL); @@ -291,13 +306,13 @@ static void window_about_rct2_paint(rct_window *w, rct_drawpixelinfo *dpi) gfx_draw_string_centred(dpi, STR_THANKS_TO, x, y, COLOUR_BLACK, NULL); y += 10; gfx_draw_string_centred(dpi, STR_THANKS_TO_PEOPLE, x, y, COLOUR_BLACK, NULL); - + y += 25; + gfx_draw_string_centred(dpi, STR_LICENSED_TO_INFOGRAMES_INTERACTIVE_INC, x, y, COLOUR_BLACK, NULL); + // Images gfx_draw_sprite(dpi, SPR_CREDITS_CHRIS_SAWYER_SMALL, w->x + 92, yPage + 24, 0); - gfx_draw_sprite(dpi, SPR_CREDITS_INFOGRAMES, w->x + 50, yPage + 211, 0); // Licence - gfx_draw_string_left(dpi, STR_LICENSED_TO_INFOGRAMES_INTERACTIVE_INC, NULL, COLOUR_BLACK, w->x + 157, yPage + 221); } #pragma endregion RCT2 @@ -311,6 +326,16 @@ static void window_about_set_page(rct_window *w, sint32 page) w->enabled_widgets = window_about_page_enabled_widgets[page]; w->event_handlers = window_about_page_events[page]; + w->pressed_widgets |= (page == WINDOW_ABOUT_PAGE_RCT2) ? (1ULL << WIDX_TAB_ABOUT_RCT2) : (1ULL << WIDX_TAB_ABOUT_OPENRCT2); + window_init_scroll_widgets(w); window_invalidate(w); } + +extern "C" +{ + void window_about_open() + { + _window_about_open(); + } +} \ No newline at end of file diff --git a/src/openrct2/windows/music_credits.c b/src/openrct2/windows/music_credits.c index 3be496b22d..0e5e27eba0 100644 --- a/src/openrct2/windows/music_credits.c +++ b/src/openrct2/windows/music_credits.c @@ -29,7 +29,7 @@ rct_widget window_music_credits_widgets[] = { { WWT_FRAME, 0, 0, 509, 0, 313, 0xFFFFFFFF, STR_NONE }, // panel / background { WWT_CAPTION, 0, 1, 508, 1, 14, STR_MUSIC_ACKNOWLEDGEMENTS, STR_WINDOW_TITLE_TIP }, // title bar { WWT_CLOSEBOX, 0, 497, 507, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button - { WWT_SCROLL, 0, 4, 505, 18, 309, SCROLL_VERTICAL, STR_NONE }, // scroll + { WWT_SCROLL, 0, 4, 505, 18, 309, SCROLL_VERTICAL, STR_NONE }, // scroll { WIDGETS_END }, }; @@ -167,7 +167,7 @@ static void window_music_credits_mouseup(rct_window *w, rct_widgetindex widgetIn */ static void window_music_credits_scrollgetsize(rct_window *w, sint32 scrollIndex, sint32 *width, sint32 *height) { - *height = 560; + *height = 460; } /** diff --git a/src/openrct2/windows/publisher_credits.c b/src/openrct2/windows/publisher_credits.c deleted file mode 100644 index cec4499d83..0000000000 --- a/src/openrct2/windows/publisher_credits.c +++ /dev/null @@ -1,182 +0,0 @@ -#pragma region Copyright (c) 2014-2017 OpenRCT2 Developers -/***************************************************************************** - * OpenRCT2, an open source clone of Roller Coaster Tycoon 2. - * - * OpenRCT2 is the work of many authors, a full list can be found in contributors.md - * For more information, visit https://github.com/OpenRCT2/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. - * - * A full copy of the GNU General Public License can be found in licence.txt - *****************************************************************************/ -#pragma endregion - -#include "../localisation/localisation.h" -#include "../sprites.h" -#include "../interface/widget.h" -#include "../interface/window.h" - -enum WINDOW_PUBLISHER_CREDITS_WIDGET_IDX { - WIDX_BACKGROUND, - WIDX_TITLE, - WIDX_CLOSE -}; - -rct_widget window_publisher_credits_widgets[] = { - {WWT_FRAME, 0, 0, 419, 0, 383, 0xFFFFFFFF, STR_NONE}, // panel / background - {WWT_CAPTION, 0, 1, 418, 1, 14, STR_ROLLERCOASTER_TYCOON_2, STR_WINDOW_TITLE_TIP }, // title bar - {WWT_CLOSEBOX, 0, 407, 417, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button - {WWT_SCROLL, 0, 4, 415, 18, 379, SCROLL_VERTICAL, STR_NONE }, // scroll - { WIDGETS_END }, -}; - -static void window_publisher_credits_mouseup(rct_window *w, rct_widgetindex widgetIndex); -static void window_publisher_credits_scrollgetsize(rct_window *w, sint32 scrollIndex, sint32 *width, sint32 *height); -static void window_publisher_credits_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_publisher_credits_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, sint32 scrollIndex); - -static rct_window_event_list window_publisher_credits_events = { - NULL, - window_publisher_credits_mouseup, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - window_publisher_credits_scrollgetsize, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - window_publisher_credits_paint, - window_publisher_credits_scrollpaint -}; - -/** -* -* rct2: 0x0066D4EC -*/ -void window_publisher_credits_open() -{ - rct_window* window; - - // Check if window is already open - window = window_bring_to_front_by_class(WC_PUBLISHER_CREDITS); - if (window != NULL) - return; - - window = window_create_centred( - 420, - 384, - &window_publisher_credits_events, - WC_PUBLISHER_CREDITS, - 0 - ); - - window->widgets = window_publisher_credits_widgets; - window->enabled_widgets = 1 << WIDX_CLOSE; - - window_init_scroll_widgets(window); - window->colours[0] = COLOUR_LIGHT_BLUE; - window->colours[1] = COLOUR_LIGHT_BLUE; - window->colours[2] = COLOUR_LIGHT_BLUE; - -} - -/** -* -* rct2: 0x0066D7A8 -*/ -static void window_publisher_credits_mouseup(rct_window *w, rct_widgetindex widgetIndex) -{ - switch (widgetIndex) { - case WIDX_CLOSE: - window_close(w); - break; - } -} - -/** -* -* rct2: 0x0066D7B3 -*/ -static void window_publisher_credits_scrollgetsize(rct_window *w, sint32 scrollIndex, sint32 *width, sint32 *height) -{ - *height = 350; -} - -/** -* -* rct2: 0x0066D5CB -*/ -static void window_publisher_credits_paint(rct_window *w, rct_drawpixelinfo *dpi) -{ - window_draw_widgets(w, dpi); -} - -sint32 credits_order[] = { - STR_CREDITS_PUBLISHER_LINE_0, - STR_CREDITS_PUBLISHER_LINE_1, - STR_CREDITS_PUBLISHER_LINE_2, - STR_CREDITS_PUBLISHER_LINE_3, - STR_CREDITS_PUBLISHER_LINE_4, - STR_CREDITS_PUBLISHER_LINE_5, - STR_CREDITS_PUBLISHER_LINE_6, - STR_CREDITS_PUBLISHER_LINE_7, - STR_CREDITS_PUBLISHER_LINE_8, - STR_CREDITS_PUBLISHER_LINE_9, - STR_CREDITS_PUBLISHER_LINE_10, - STR_CREDITS_PUBLISHER_LINE_11, - STR_CREDITS_PUBLISHER_LINE_12, - STR_CREDITS_PUBLISHER_LINE_13, - STR_CREDITS_PUBLISHER_LINE_14, - STR_CREDITS_PUBLISHER_LINE_15, - STR_CREDITS_PUBLISHER_LINE_16, - STR_CREDITS_PUBLISHER_LINE_17, - STR_CREDITS_PUBLISHER_LINE_18, - STR_CREDITS_PUBLISHER_LINE_19, - STR_CREDITS_PUBLISHER_LINE_20, - STR_CREDITS_PUBLISHER_LINE_21, -}; - -/** -* -* rct2: 0x0066D5D1 -*/ -static void window_publisher_credits_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, sint32 scrollIndex) -{ - sint32 x = 200; - sint32 y = 2; - - gfx_draw_sprite(dpi, SPR_CREDITS_INFOGRAMES, x - 49, y, 0); - - y += 86; - - draw_string_centred_underline(dpi, STR_CREDITS_PUBLISHER_TILE, NULL, COLOUR_BLACK, x, y); - - y += 14; - - for (sint32 i = 0; i < sizeof(credits_order)/sizeof(sint32); i++) { - gfx_draw_string_centred(dpi, credits_order[i], x, y, COLOUR_BLACK, NULL); - y += 11; - } - - -}