Skip to content

Commit

Permalink
Added unlock everything option
Browse files Browse the repository at this point in the history
  • Loading branch information
krystalgamer committed Nov 10, 2023
1 parent 4fc44e3 commit 96c9ee2
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 3 deletions.
10 changes: 9 additions & 1 deletion texture_loader/new_ep.c
Expand Up @@ -10,7 +10,7 @@

#include "log.h"

#define CTL_VERSION "0.9.1"
#define CTL_VERSION "0.9.2"

typedef int (*OriginalEntryPoint_t)(void);
OriginalEntryPoint_t OriginalEntryPoint = (OriginalEntryPoint_t)0x0052B46F;
Expand All @@ -25,6 +25,7 @@ typedef struct{
bool frame_counter;
bool frame_limiter;
bool fix_bugs;
bool unlock_everything;
} Settings;

void EnsureBinkw32IsLoaded(void) {
Expand Down Expand Up @@ -137,6 +138,10 @@ static BOOL ApplyMyPatches(const Settings *settings){
DO_OR_QUIT(FixBugs());
}

if (settings->unlock_everything) {
DO_OR_QUIT(UnlockEverything());
}

return TRUE;
}

Expand Down Expand Up @@ -221,6 +226,7 @@ static void WriteSettingsToDisk(const Settings *settings) {
AddSettingToJsonObject(json, "frame_counter", settings->frame_counter);
AddSettingToJsonObject(json, "frame_limiter", settings->frame_limiter);
AddSettingToJsonObject(json, "fix_bugs", settings->fix_bugs);
AddSettingToJsonObject(json, "unlock_everything", settings->unlock_everything);

char *content = cJSON_Print(json);
fputs(content, fp);
Expand Down Expand Up @@ -274,6 +280,7 @@ static void ReadSettings(Settings* settings) {
GetJsonBool(json, "frame_counter", &settings->frame_counter);
GetJsonBool(json, "frame_limiter", &settings->frame_limiter);
GetJsonBool(json, "fix_bugs", &settings->fix_bugs);
GetJsonBool(json, "unlock_everything", &settings->unlock_everything);
cJSON_Delete(json);
}

Expand All @@ -293,6 +300,7 @@ static int NewEntryPoint() {
.frame_counter = false,
.frame_limiter = false,
.fix_bugs = true,
.unlock_everything = false,
};

ReadSettings(&settings);
Expand Down
18 changes: 17 additions & 1 deletion texture_loader/patches.c
Expand Up @@ -364,6 +364,8 @@ DWORD* secondFrameUpdater = (DWORD*)0x0060CFB0;
typedef int (__fastcall *CBody_EveryFrame_t)(int a1);
CBody_EveryFrame_t CBody_EveryFrame_orig = (CBody_EveryFrame_t)0x00460ED0;

static const DWORD FPS_DIVIDER = 2;

int __fastcall CBody_EveryFrame(int a1) {


Expand All @@ -376,7 +378,7 @@ int __fastcall CBody_EveryFrame(int a1) {
DWORD v3 = *(DWORD*)(a1 + 124);
DWORD v4;
do {
v4 = *current_frame - v3 < 2;
v4 = *current_frame - v3 < FPS_DIVIDER;
*(DWORD *)(a1 + 128) = *current_frame - v3;
}
while(v4 && !(*firstFrameUpdater) && !(*secondFrameUpdater));
Expand Down Expand Up @@ -409,3 +411,17 @@ BOOL FixBugs() {
Nop(0x0042D49B, 8, "Fix CCop::GetYankedBySpidey null dereference that assumes CBaddy::StruckGameObject was called");
return TRUE;
}

/************************************************
Unlock everything
************************************************/

typedef int (*ActivateCheat_t)(int cheatIndex);
ActivateCheat_t ActivateCheat = (ActivateCheat_t)0x0047C240;

BOOL UnlockEverything() {
DebugPuts("Unlocking everything");
return ActivateCheat(1) == 1;
}
1 change: 1 addition & 0 deletions texture_loader/patches.h
Expand Up @@ -11,5 +11,6 @@ BOOL FileLoader();
BOOL TextureLoader();
BOOL ModOptions();
BOOL FixBugs();
BOOL UnlockEverything();

#endif
3 changes: 2 additions & 1 deletion texture_loader/sm2000.json
Expand Up @@ -7,5 +7,6 @@
"file_loader": true,
"frame_counter": false,
"frame_limiter": false,
"fix_bugs": true
"fix_bugs": true,
"unlock_everything": false
}

0 comments on commit 96c9ee2

Please sign in to comment.