From 81fb5f9545c4dfef8be558a66ceada57c3cdd213 Mon Sep 17 00:00:00 2001 From: Ted John Date: Sun, 14 Aug 2016 15:07:32 +0100 Subject: [PATCH] Integrate climate globals --- src/addresses.h | 26 +++++++++++++------------- src/world/climate.c | 15 ++++++++++++++- src/world/climate.h | 28 ++++++++++++++-------------- 3 files changed, 41 insertions(+), 28 deletions(-) diff --git a/src/addresses.h b/src/addresses.h index 658859b0ad..5225b9f87c 100644 --- a/src/addresses.h +++ b/src/addresses.h @@ -318,19 +318,6 @@ #define RCT2_ADDRESS_GRASS_SCENERY_TILEPOS 0x013B0E70 #define RCT2_ADDRESS_STAFF_PATROL_AREAS 0x013B0E72 -#define RCT2_ADDRESS_CLIMATE 0x013CA746 -#define RCT2_ADDRESS_CURRENT_WEATHER 0x013CA74A -#define RCT2_ADDRESS_NEXT_WEATHER 0x013CA74B -#define RCT2_ADDRESS_CURRENT_TEMPERATURE 0x013CA74C -#define RCT2_ADDRESS_NEXT_TEMPERATURE 0x013CA74D -#define RCT2_ADDRESS_CLIMATE_UPDATE_TIMER 0x013CA748 -#define RCT2_ADDRESS_CURRENT_WEATHER_EFFECT 0x013CA74E -#define RCT2_ADDRESS_NEXT_WEATHER_EFFECT 0x013CA74F -#define RCT2_ADDRESS_CURRENT_WEATHER_GLOOM 0x013CA750 -#define RCT2_ADDRESS_NEXT_WEATHER_GLOOM 0x013CA751 -#define RCT2_ADDRESS_CURRENT_RAIN_LEVEL 0x013CA752 -#define RCT2_ADDRESS_NEXT_RAIN_LEVEL 0x013CA753 - #define RCT2_ADDRESS_NEWS_ITEM_LIST 0x013CA754 #define RCT2_ADDRESS_CURRENT_FONT_SPRITE_BASE 0x013CE950 @@ -603,6 +590,19 @@ #define RCT2_ADDRESS_SCENERY_TOOL_CTRL_PRESSED 0x00F64F12 #define RCT2_ADDRESS_SCENERY_TOOL_SHIFT_PRESSED 0x00F64F13 +#define RCT2_ADDRESS_CLIMATE 0x013CA746 +#define RCT2_ADDRESS_CURRENT_WEATHER 0x013CA74A +#define RCT2_ADDRESS_NEXT_WEATHER 0x013CA74B +#define RCT2_ADDRESS_CURRENT_TEMPERATURE 0x013CA74C +#define RCT2_ADDRESS_NEXT_TEMPERATURE 0x013CA74D +#define RCT2_ADDRESS_CLIMATE_UPDATE_TIMER 0x013CA748 +#define RCT2_ADDRESS_CURRENT_WEATHER_EFFECT 0x013CA74E +#define RCT2_ADDRESS_NEXT_WEATHER_EFFECT 0x013CA74F +#define RCT2_ADDRESS_CURRENT_WEATHER_GLOOM 0x013CA750 +#define RCT2_ADDRESS_NEXT_WEATHER_GLOOM 0x013CA751 +#define RCT2_ADDRESS_CURRENT_RAIN_LEVEL 0x013CA752 +#define RCT2_ADDRESS_NEXT_RAIN_LEVEL 0x013CA753 + #define RCT2_ADDRESS_COMMON_FORMAT_ARGS 0x013CE952 #define RCT2_ADDRESS_NEXT_FREE_MAP_ELEMENT 0x0140E9A4 diff --git a/src/world/climate.c b/src/world/climate.c index 0a2fbc0192..c104ca51da 100644 --- a/src/world/climate.c +++ b/src/world/climate.c @@ -43,10 +43,23 @@ typedef struct rct_weather_transition { assert_struct_size(rct_weather_transition, 26); #pragma pack(pop) -static const rct_weather_transition* climate_transitions[4]; +uint8 gClimate; +uint8 gClimateCurrentWeather; +sint8 gClimateCurrentTemperature; +uint8 gClimateCurrentWeatherEffect; +uint8 gClimateCurrentWeatherGloom; +uint8 gClimateCurrentRainLevel; +uint8 gClimateNextWeather; +sint8 gClimateNextTemperature; +uint8 gClimateNextWeatherEffect; +uint8 gClimateNextWeatherGloom; +uint8 gClimateNextRainLevel; +uint16 gClimateUpdateTimer; uint16 gClimateLightningFlash; +static const rct_weather_transition* climate_transitions[4]; + // Sound data static int _rainVolume = 1; static unsigned int _lightningTimer, _thunderTimer; diff --git a/src/world/climate.h b/src/world/climate.h index 8b7c72797f..349c6a6df0 100644 --- a/src/world/climate.h +++ b/src/world/climate.h @@ -46,23 +46,23 @@ typedef struct rct_weather { assert_struct_size(rct_weather, 8); #pragma pack(pop) -#define gClimate RCT2_GLOBAL(RCT2_ADDRESS_CLIMATE, uint8) -#define gClimateCurrentWeather RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_WEATHER, uint8) -#define gClimateCurrentTemperature RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_TEMPERATURE, sint8) -#define gClimateCurrentWeatherEffect RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_WEATHER_EFFECT, uint8) -#define gClimateCurrentWeatherGloom RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_WEATHER_GLOOM, uint8) -#define gClimateCurrentRainLevel RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RAIN_LEVEL, uint8) -#define gClimateNextWeather RCT2_GLOBAL(RCT2_ADDRESS_NEXT_WEATHER, uint8) -#define gClimateNextTemperature RCT2_GLOBAL(RCT2_ADDRESS_NEXT_TEMPERATURE, sint8) -#define gClimateNextWeatherEffect RCT2_GLOBAL(RCT2_ADDRESS_NEXT_WEATHER_EFFECT, uint8) -#define gClimateNextWeatherGloom RCT2_GLOBAL(RCT2_ADDRESS_NEXT_WEATHER_GLOOM, uint8) -#define gClimateNextRainLevel RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RAIN_LEVEL, uint8) -#define gClimateUpdateTimer RCT2_GLOBAL(RCT2_ADDRESS_CLIMATE_UPDATE_TIMER, uint16) - -extern const rct_weather climate_weather_data[6]; +extern uint8 gClimate; +extern uint8 gClimateCurrentWeather; +extern sint8 gClimateCurrentTemperature; +extern uint8 gClimateCurrentWeatherEffect; +extern uint8 gClimateCurrentWeatherGloom; +extern uint8 gClimateCurrentRainLevel; +extern uint8 gClimateNextWeather; +extern sint8 gClimateNextTemperature; +extern uint8 gClimateNextWeatherEffect; +extern uint8 gClimateNextWeatherGloom; +extern uint8 gClimateNextRainLevel; +extern uint16 gClimateUpdateTimer; extern uint16 gClimateLightningFlash; +extern const rct_weather climate_weather_data[6]; + int climate_celsius_to_fahrenheit(int celsius); void climate_reset(int climate); void climate_update();