mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-22 09:22:18 -05:00
added Cheat Sync Time (#957)
* added Cheat Sync Time This syncs the ingame time with the real world time. I wasnt quite sure where to put the code so im sorry if this is bad i just wanted to contribute to this project. * Update soh/src/code/z_play.c Co-authored-by: Christopher Leggett <chris@leggett.dev> * Update z_play.c added suggestions from leggettc18 * Update z_play.c Co-authored-by: Christopher Leggett <chris@leggett.dev>
This commit is contained in:
parent
27e0f19dac
commit
db33604171
@ -1416,6 +1416,9 @@ namespace SohImGui {
|
||||
Tooltip("Prevents the Deku Shield from burning on contact with fire");
|
||||
EnhancementCheckbox("Shield with Two-Handed Weapons", "gShieldTwoHanded");
|
||||
Tooltip("This allows you to put up your shield with any two-handed weapon in hand except for Deku Sticks");
|
||||
Tooltip("This allows you to put up your shield with any two-handed weapon in hand\nexcept for Deku Sticks");
|
||||
EnhancementCheckbox("Time Sync", "gTimeSync");
|
||||
Tooltip("This syncs the ingame time with the real world time");
|
||||
|
||||
{
|
||||
static int32_t betaQuestEnabled = CVar_GetS32("gEnableBetaQuest", 0);
|
||||
|
@ -7,6 +7,8 @@
|
||||
#include "../libultraship/ImGuiImpl.h"
|
||||
#include "soh/frame_interpolation.h"
|
||||
|
||||
#include <time.h>
|
||||
|
||||
void* D_8012D1F0 = NULL;
|
||||
//UNK_TYPE D_8012D1F4 = 0; // unused
|
||||
Input* D_8012D1F8 = NULL;
|
||||
@ -1444,6 +1446,18 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
|
||||
CLOSE_DISPS(gfxCtx);
|
||||
}
|
||||
|
||||
time_t Gameplay_GetRealTime() {
|
||||
time_t t1, t2;
|
||||
struct tm* tms;
|
||||
time(&t1);
|
||||
tms = localtime(&t1);
|
||||
tms->tm_hour = 0;
|
||||
tms->tm_min = 0;
|
||||
tms->tm_sec = 0;
|
||||
t2 = mktime(tms);
|
||||
return t1 - t2;
|
||||
}
|
||||
|
||||
void Gameplay_Main(GameState* thisx) {
|
||||
GlobalContext* globalCtx = (GlobalContext*)thisx;
|
||||
|
||||
@ -1487,6 +1501,20 @@ void Gameplay_Main(GameState* thisx) {
|
||||
if (1 && HREG(63)) {
|
||||
LOG_NUM("1", 1);
|
||||
}
|
||||
|
||||
if (CVar_GetS32("gTimeSync", 0)) {
|
||||
const int maxRealDaySeconds = 86400;
|
||||
const int maxInGameDayTicks = 65536;
|
||||
|
||||
int secs = (int)Gameplay_GetRealTime();
|
||||
float percent = (float)secs / (float)maxRealDaySeconds;
|
||||
|
||||
int newIngameTime = maxInGameDayTicks * percent;
|
||||
|
||||
gSaveContext.dayTime = newIngameTime;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// original name: "Game_play_demo_mode_check"
|
||||
|
Loading…
Reference in New Issue
Block a user