mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #213 from duncanspumpkin/game_cleanup
Implemented check affordability and clean up
This commit is contained in:
commit
a2240932e2
17
src/game.c
17
src/game.c
|
@ -252,7 +252,7 @@ void game_handle_input()
|
||||||
|
|
||||||
if (RCT2_GLOBAL(0x009DEA64, uint16) & 2) {
|
if (RCT2_GLOBAL(0x009DEA64, uint16) & 2) {
|
||||||
RCT2_GLOBAL(0x009DEA64, uint16) &= ~2;
|
RCT2_GLOBAL(0x009DEA64, uint16) &= ~2;
|
||||||
RCT2_CALLPROC_X(0x006677F2, 0, 1, 0, 0, 5, 2, 0);
|
game_do_command(0, 1, 0, 0, 5, 2, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (RCT2_GLOBAL(0x009ABDF2, uint8) != 0) {
|
if (RCT2_GLOBAL(0x009ABDF2, uint8) != 0) {
|
||||||
|
@ -1639,16 +1639,21 @@ void game_handle_keyboard_input()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* rct2: 0x006677F2
|
* rct2: 0x0069C62C
|
||||||
*
|
*
|
||||||
* @param cost (ebp)
|
* @param cost (ebp)
|
||||||
*/
|
*/
|
||||||
static int game_check_affordability(int cost)
|
static int game_check_affordability(int cost)
|
||||||
{
|
{
|
||||||
int eax, ebx, ecx, edx, esi, edi, ebp;
|
if (cost <= 0)return cost;
|
||||||
ebp = cost;
|
if (RCT2_GLOBAL(0x141F568, uint8) & 0xF0)return cost;
|
||||||
RCT2_CALLFUNC_X(0x0069C62C, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp);
|
|
||||||
return ebp;
|
if (!(RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32)&(1 << 8))){
|
||||||
|
if (cost <= (sint32)(DECRYPT_MONEY(RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_MONEY_ENCRYPTED, sint32))))return cost;
|
||||||
|
}
|
||||||
|
RCT2_GLOBAL(0x13CE952, uint32) = cost;
|
||||||
|
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = 827;
|
||||||
|
return 0x80000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32 game_do_command_table[58];
|
static uint32 game_do_command_table[58];
|
||||||
|
|
|
@ -25,11 +25,14 @@ void game_create_windows();
|
||||||
void game_update();
|
void game_update();
|
||||||
void game_logic_update();
|
void game_logic_update();
|
||||||
void sub_0x0069E9A7();
|
void sub_0x0069E9A7();
|
||||||
|
void update_rain_animation();
|
||||||
|
void update_water_animation();
|
||||||
|
|
||||||
int game_do_command(int eax, int ebx, int ecx, int edx, int esi, int edi, int ebp);
|
int game_do_command(int eax, int ebx, int ecx, int edx, int esi, int edi, int ebp);
|
||||||
|
|
||||||
void game_load_or_quit_no_save_prompt();
|
void game_load_or_quit_no_save_prompt();
|
||||||
int game_load_save();
|
int game_load_save();
|
||||||
|
void game_pause_toggle();
|
||||||
char save_game();
|
char save_game();
|
||||||
void rct2_exit();
|
void rct2_exit();
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "addresses.h"
|
#include "addresses.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "gfx.h"
|
#include "gfx.h"
|
||||||
|
#include "game.h"
|
||||||
#include "rct2.h"
|
#include "rct2.h"
|
||||||
#include "screenshot.h"
|
#include "screenshot.h"
|
||||||
#include "string_ids.h"
|
#include "string_ids.h"
|
||||||
|
@ -47,7 +48,7 @@ void screenshot_check()
|
||||||
if (RCT2_GLOBAL(RCT2_ADDRESS_SCREENSHOT_COUNTDOWN, uint8) != 0) {
|
if (RCT2_GLOBAL(RCT2_ADDRESS_SCREENSHOT_COUNTDOWN, uint8) != 0) {
|
||||||
RCT2_GLOBAL(RCT2_ADDRESS_SCREENSHOT_COUNTDOWN, uint8)--;
|
RCT2_GLOBAL(RCT2_ADDRESS_SCREENSHOT_COUNTDOWN, uint8)--;
|
||||||
if (RCT2_GLOBAL(RCT2_ADDRESS_SCREENSHOT_COUNTDOWN, uint8) == 0) {
|
if (RCT2_GLOBAL(RCT2_ADDRESS_SCREENSHOT_COUNTDOWN, uint8) == 0) {
|
||||||
RCT2_CALLPROC_EBPSAFE(0x00684218);
|
update_rain_animation();
|
||||||
screenshotIndex = screenshot_dump();
|
screenshotIndex = screenshot_dump();
|
||||||
RCT2_GLOBAL(0x013CE952, uint16) = STR_SCR_BMP;
|
RCT2_GLOBAL(0x013CE952, uint16) = STR_SCR_BMP;
|
||||||
RCT2_GLOBAL(0x013CE952 + 2, uint16) = screenshotIndex;
|
RCT2_GLOBAL(0x013CE952 + 2, uint16) = screenshotIndex;
|
||||||
|
|
|
@ -91,7 +91,7 @@ static void title_create_windows();
|
||||||
void title_load()
|
void title_load()
|
||||||
{
|
{
|
||||||
if (RCT2_GLOBAL(0x009DEA6E, uint8) & 1)
|
if (RCT2_GLOBAL(0x009DEA6E, uint8) & 1)
|
||||||
RCT2_CALLPROC_X(0x00667C15, 0, 1, 0, 0, 0, 0, 0);
|
RCT2_CALLPROC_X(0x00667C15, 0, 1, 0, 0, 0, 0, 0);//Game pause toggle
|
||||||
|
|
||||||
RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) = SCREEN_FLAGS_TITLE_DEMO;
|
RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) = SCREEN_FLAGS_TITLE_DEMO;
|
||||||
|
|
||||||
|
@ -289,8 +289,8 @@ void title_update()
|
||||||
// RCT2_CALLPROC_EBPSAFE(0x006EA627); // window_manager_handle_input();
|
// RCT2_CALLPROC_EBPSAFE(0x006EA627); // window_manager_handle_input();
|
||||||
game_handle_input();
|
game_handle_input();
|
||||||
|
|
||||||
RCT2_CALLPROC_EBPSAFE(0x006838BD);
|
update_water_animation();
|
||||||
RCT2_CALLPROC_EBPSAFE(0x00684218);
|
update_rain_animation();
|
||||||
|
|
||||||
if (RCT2_GLOBAL(0x009AAC73, uint8) != 255) {
|
if (RCT2_GLOBAL(0x009AAC73, uint8) != 255) {
|
||||||
RCT2_GLOBAL(0x009AAC73, uint8)++;
|
RCT2_GLOBAL(0x009AAC73, uint8)++;
|
||||||
|
|
Loading…
Reference in New Issue