1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-24 23:34:37 +01:00
Files
OpenRCT2/src/openrct2/interface/Window_internal.h
Hielke Morsink a51462b0fd Include necessary files for compiling headers
This commits works towards #7289. It includes files that it depends on, or forward declares types when possible. It may seem like this only increases compilation time, but before this commit they depended on the other includes of the source files that use them.
2018-03-31 23:07:14 +02:00

109 lines
4.0 KiB
C

#pragma region Copyright (c) 2014-2018 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
#ifndef _WINDOW2_H_
#define _WINDOW2_H_
#include "Window.h"
struct rct_research_item;
struct rct_object_entry;
/**
* Window structure
* size: 0x4C0
*/
struct rct_window {
rct_window_event_list* event_handlers; // 0x000
rct_viewport* viewport; // 0x004
uint64 enabled_widgets; // 0x008
uint64 disabled_widgets; // 0x010
uint64 pressed_widgets; // 0x018
uint64 hold_down_widgets; // 0x020
rct_widget* widgets; // 0x028
sint16 x; // 0x02C
sint16 y; // 0x02E
sint16 width; // 0x030
sint16 height; // 0x032
sint16 min_width; // 0x034
sint16 max_width; // 0x036
sint16 min_height; // 0x038
sint16 max_height; // 0x03A
rct_windownumber number; // 0x03C
uint16 flags; // 0x03E
rct_scroll scrolls[3]; // 0x040
uint8 list_item_positions[1024];// 0x076
uint16 no_list_items; // 0x476 0 for no items
sint16 pad_478;
sint16 selected_list_item; // 0x47A -1 for none selected
sint16 pad_47C;
sint16 pad_47E;
union {
coordinate_focus viewport_focus_coordinates;
sprite_focus viewport_focus_sprite;
campaign_variables campaign;
new_ride_variables new_ride;
news_variables news;
map_variables map;
ride_variables ride;
scenery_variables scenery;
track_list_variables track_list;
error_variables error;
};
sint16 page; // 0x48A
union {
sint16 picked_peep_old_x; // 0x48C staff/guest window: peep x gets set to 0x8000 on pickup, this is the old value
sint16 vehicleIndex; // 0x48C Ride window: selected car when setting vehicle colours
sint16 numberOfStaff; // 0x48C Used in park window.
sint16 var_48C;
};
uint16 frame_no; // 0x48E updated every tic for motion in windows sprites
uint16 list_information_type; // 0x490 0 for none, Used as current position of marquee in window_peep
union {
sint16 picked_peep_frame; // 0x492 Animation frame of picked peep in staff window and guest window
sint16 var_492;
};
union { // 0x494
uint32 highlighted_item;
uint16 ride_colour;
rct_research_item* research_item;
rct_object_entry* object_entry;
const scenario_index_entry* highlighted_scenario;
struct {
uint16 var_494;
uint16 var_496;
};
};
uint8 var_498[0x14];
sint16 selected_tab; // 0x4AC
sint16 var_4AE;
uint16 viewport_target_sprite; // 0x4B0 viewport target sprite
sint16 saved_view_x; // 0x4B2
sint16 saved_view_y; // 0x4B4
rct_windowclass classification; // 0x4B6
uint8 pad_4B7;
sint8 var_4B8;
sint8 var_4B9;
uint8 colours[6]; // 0x4BA
uint8 visibility; // VISIBILITY_CACHE
uint16 viewport_smart_follow_sprite; // Smart following of sprites. Handles setting viewport target sprite etc
};
// rct2: 0x01420078
extern rct_window g_window_list[WINDOW_LIMIT_MAX + WINDOW_LIMIT_RESERVED];
#endif