Skip to content

Commit

Permalink
Moves issue-#8 to MultiMission.
Browse files Browse the repository at this point in the history
  • Loading branch information
CCHyper committed Mar 9, 2022
1 parent 2f74ee1 commit e3d18b8
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 16 deletions.
16 changes: 0 additions & 16 deletions src/bugfix/bugfix_hooks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,21 +49,6 @@
#include "hooker_macros.h"


/**
* #issue-8
*
* Fixes MultiMission "MaxPlayers" incorrectly loaded with "MinPlayers".
*
* @author: CCHyper
*/
static void _MultiMission_Constructor_MaxPlayers_Typo_Patch()
{
static const char *TEXT_MAXPLAYERS = "MaxPlayers";
Patch_Dword(0x005EF124+1, (uintptr_t)TEXT_MAXPLAYERS); // +1 skips "push" opcode
Patch_Dword(0x005EF5E4+1, (uintptr_t)TEXT_MAXPLAYERS); // +1 skips "push" opcode
}


/**
* Scale up the input rect to the desired width and height, while maintaining the aspect ratio.
*
Expand Down Expand Up @@ -377,5 +362,4 @@ void BugFix_Hooks()
_Intro_Movie_Patches();
_Dont_Stretch_Main_Menu_Video_Patch();
_Scale_Movies_By_Ratio_Patch();
_MultiMission_Constructor_MaxPlayers_Typo_Patch();
}
2 changes: 2 additions & 0 deletions src/extensions/ext_hooks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@

#include "mapseedext_hooks.h"
#include "multiscoreext_hooks.h"
#include "multimissionext_hooks.h"

#include "cciniext_hooks.h"

Expand Down Expand Up @@ -205,6 +206,7 @@ void Extension_Hooks()

MapSeedClassExtension_Hooks();
MultiScoreExtension_Hooks();
MultiMissionExtension_Hooks();

CCINIClassExtension_Hooks();

Expand Down
51 changes: 51 additions & 0 deletions src/extensions/multimission/multimissionext_hooks.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*******************************************************************************
/* O P E N S O U R C E -- V I N I F E R A **
/*******************************************************************************
*
* @project Vinifera
*
* @file MULTIMISSIONEXT_HOOKS.CPP
*
* @author CCHyper
*
* @brief Contains the hooks for the extended MultiMission class.
*
* @license Vinifera 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.
*
* Vinifera 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 <http://www.gnu.org/licenses/>.
*
******************************************************************************/
#include "endgameext_hooks.h"
#include "debughandler.h"
#include "asserthandler.h"

#include "hooker.h"
#include "hooker_macros.h"


/**
* Main function for patching the hooks.
*/
void MultiMissionExtension_Hooks()
{
/**
* #issue-8
*
* Fixes MultiMission "MaxPlayers" incorrectly loaded with "MinPlayers".
*
* @author: CCHyper
*/
static const char *TEXT_MAXPLAYERS = "MaxPlayers";
Patch_Dword(0x005EF124+1, (uintptr_t)TEXT_MAXPLAYERS); // +1 skips "push" opcode
Patch_Dword(0x005EF5E4+1, (uintptr_t)TEXT_MAXPLAYERS); // +1 skips "push" opcode
}
31 changes: 31 additions & 0 deletions src/extensions/multimission/multimissionext_hooks.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*******************************************************************************
/* O P E N S O U R C E -- V I N I F E R A **
/*******************************************************************************
*
* @project Vinifera
*
* @file MULTIMISSIONEXT_HOOKS.H
*
* @author CCHyper
*
* @brief Contains the hooks for the extended MultiMission class.
*
* @license Vinifera 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.
*
* Vinifera 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 <http://www.gnu.org/licenses/>.
*
******************************************************************************/
#pragma once


void MultiMissionExtension_Hooks();

0 comments on commit e3d18b8

Please sign in to comment.