Add ksys::Patrol & ksys::Terminal

parent 43e001017f author Tonycons-dev <70544875+Tonycons-dev@users.noreply.github.com> 1656184351 -0400 committer Tonycons-dev <70544875+Tonycons-dev@users.noreply.github.com> 1656432051 -0400

Squash commits again (last one messed up)
This commit is contained in:
Tonycons-dev 2022-06-25 15:12:31 -04:00
parent 43e001017f
commit fe98f6f0f3
8 changed files with 84 additions and 32 deletions

View File

@ -88051,9 +88051,9 @@ Address,Quality,Size,Name
0x000000710109ca14,U,000008, 0x000000710109ca14,U,000008,
0x000000710109ca1c,U,000260, 0x000000710109ca1c,U,000260,
0x000000710109cb20,U,000084, 0x000000710109cb20,U,000084,
0x000000710109cb74,U,000100, 0x000000710109cb74,O,000100,_ZN4ksys8Terminal18SingletonDisposer_D1Ev
0x000000710109cbd8,U,000108, 0x000000710109cbd8,O,000108,_ZN4ksys8Terminal18SingletonDisposer_D0Ev
0x000000710109cc44,U,000148,Terminal::createInstance 0x000000710109cc44,O,000148,_ZN4ksys8Terminal14createInstanceEPN4sead4HeapE
0x000000710109ccd8,U,000028, 0x000000710109ccd8,U,000028,
0x000000710109ccf4,U,000020, 0x000000710109ccf4,U,000020,
0x000000710109cd08,U,000004,j__ZdlPv_1175 0x000000710109cd08,U,000004,j__ZdlPv_1175
@ -88734,9 +88734,9 @@ Address,Quality,Size,Name
0x00000071010b9c04,U,000128,MoviePlayer::__auto1 0x00000071010b9c04,U,000128,MoviePlayer::__auto1
0x00000071010b9c84,U,000024, 0x00000071010b9c84,U,000024,
0x00000071010b9c9c,U,000448,MoviePlayer::__auto0 0x00000071010b9c9c,U,000448,MoviePlayer::__auto0
0x00000071010b9e5c,U,000056, 0x00000071010b9e5c,O,000056,_ZN4ksys6Patrol18SingletonDisposer_D1Ev
0x00000071010b9e94,U,000092, 0x00000071010b9e94,O,000092,_ZN4ksys6Patrol18SingletonDisposer_D0Ev
0x00000071010b9ef0,U,000384,Patrol::createInstance 0x00000071010b9ef0,O,000384,_ZN4ksys6Patrol14createInstanceEPN4sead4HeapE
0x00000071010ba070,O,000056,_ZN4ksys8Revision18SingletonDisposer_D1Ev 0x00000071010ba070,O,000056,_ZN4ksys8Revision18SingletonDisposer_D1Ev
0x00000071010ba0a8,O,000092,_ZN4ksys8Revision18SingletonDisposer_D0Ev 0x00000071010ba0a8,O,000092,_ZN4ksys8Revision18SingletonDisposer_D0Ev
0x00000071010ba104,O,000164,_ZN4ksys8Revision14createInstanceEPN4sead4HeapE 0x00000071010ba104,O,000164,_ZN4ksys8Revision14createInstanceEPN4sead4HeapE

Can't render this file because it is too large.

View File

@ -1,9 +1,16 @@
#pragma once
#include <prim/seadSafeString.h>
class GameConfig { class GameConfig {
public: public:
static GameConfig* getInstance() { return sInstancePtr; } static GameConfig* getInstance() { return sInstancePtr; }
char mPadding[0x419]; char _0[0x3dd];
bool mField419; bool _3dd;
char _3de[0x3b];
bool _419;
sead::SafeString mPatrolFeatures;
private: private:
static GameConfig* sInstancePtr; static GameConfig* sInstancePtr;

View File

@ -48,6 +48,8 @@ target_sources(uking PRIVATE
SystemPauseMgr.h SystemPauseMgr.h
SystemTimers.cpp SystemTimers.cpp
SystemTimers.h SystemTimers.h
Terminal.cpp
Terminal.h
Timer.cpp Timer.cpp
Timer.h Timer.h
UIGlue.cpp UIGlue.cpp

View File

@ -1,7 +1,20 @@
#include "KingSystem/System/Patrol.h" #include "KingSystem/System/Patrol.h"
#include <devenv/seadEnvUtil.h>
#include "KingSystem/Framework/GameConfig.h"
namespace ksys { namespace ksys {
SEAD_SINGLETON_DISPOSER_IMPL(Patrol) SEAD_SINGLETON_DISPOSER_IMPL(Patrol)
Patrol::Patrol() {
mField0 = GameConfig::getInstance()->_3dd;
mHasAutoPlay = GameConfig::getInstance()->mPatrolFeatures.include("オートプレイ");
mHasAutoGenPatroller = GameConfig::getInstance()->mPatrolFeatures.include("AutoGenPatroller");
mLoadStaticPhysUnstableMapUnit = false;
mList.initOffset(8);
sead::EnvUtil::getEnvironmentVariable(&mBuildURL, "BUILD_URL");
}
} // namespace ksys } // namespace ksys

View File

@ -1,6 +1,6 @@
#pragma once #pragma once
#include <basis/seadTypes.h> #include <container/seadOffsetList.h>
#include <heap/seadDisposer.h> #include <heap/seadDisposer.h>
#include <prim/seadSafeString.h> #include <prim/seadSafeString.h>
#include "KingSystem/Utils/Types.h" #include "KingSystem/Utils/Types.h"
@ -10,16 +10,19 @@ namespace ksys {
class Patrol { class Patrol {
SEAD_SINGLETON_DISPOSER(Patrol) SEAD_SINGLETON_DISPOSER(Patrol)
public: Patrol();
Patrol() = default;
~Patrol() = default; ~Patrol() = default;
u8 _0[0x3 - 0x0]; public:
// FIXME
bool mField0;
bool mHasAutoPlay;
bool mHasAutoGenPatroller;
bool mLoadStaticPhysUnstableMapUnit; bool mLoadStaticPhysUnstableMapUnit;
sead::FixedSafeString<0x100> mBuildURL; sead::FixedSafeString<0x100> mBuildURL;
sead::ListNode _140; // FIXME: Unknown template type
u32 _150; sead::OffsetList<u32> mList;
u32 _154;
}; };
KSYS_CHECK_SIZE_NX150(Patrol, 0x158); KSYS_CHECK_SIZE_NX150(Patrol, 0x158);
} // namespace ksys } // namespace ksys

View File

@ -35,7 +35,7 @@ void StarterPackMgr::registerPackFactoryAndMakeOverlayArena(bool reduced_heap_si
} }
void StarterPackMgr::deleteArenaAndHeapAndUnregisterFactory() { void StarterPackMgr::deleteArenaAndHeapAndUnregisterFactory() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
if (mOverlayArena) { if (mOverlayArena) {
delete mOverlayArena; delete mOverlayArena;
mOverlayArena = nullptr; mOverlayArena = nullptr;
@ -49,7 +49,7 @@ void StarterPackMgr::deleteArenaAndHeapAndUnregisterFactory() {
} }
void StarterPackMgr::loadBootupGraphicsPack() { void StarterPackMgr::loadBootupGraphicsPack() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
sead::SafeString extension = ".pack"; sead::SafeString extension = ".pack";
res::registerPackExtension(true, extension); res::registerPackExtension(true, extension);
@ -64,7 +64,7 @@ void StarterPackMgr::loadBootupGraphicsPack() {
} }
void StarterPackMgr::loadBootupPacks() { void StarterPackMgr::loadBootupPacks() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
sead::SafeString extension = ".pack"; sead::SafeString extension = ".pack";
res::registerPackExtension(true, extension); res::registerPackExtension(true, extension);
@ -83,7 +83,7 @@ void StarterPackMgr::loadBootupPacks() {
} }
void StarterPackMgr::loadTitlePack() { void StarterPackMgr::loadTitlePack() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
sead::SafeString extension = ".pack"; sead::SafeString extension = ".pack";
res::registerPackExtension(true, extension); res::registerPackExtension(true, extension);
@ -98,7 +98,7 @@ void StarterPackMgr::loadTitlePack() {
} }
void StarterPackMgr::loadTitleBGPacks() { void StarterPackMgr::loadTitleBGPacks() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
sead::SafeString extension = ".pack"; sead::SafeString extension = ".pack";
res::registerPackExtension(true, extension); res::registerPackExtension(true, extension);
@ -122,18 +122,18 @@ void StarterPackMgr::loadAocMainFieldPack() {
} }
void StarterPackMgr::unloadBootupGraphicsPack() { void StarterPackMgr::unloadBootupGraphicsPack() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
res::setResourceMgrPack(nullptr); res::setResourceMgrPack(nullptr);
mBootupGfxPack.requestUnload(); mBootupGfxPack.requestUnload();
} }
} }
bool StarterPackMgr::bootupGraphicsPackReady() { bool StarterPackMgr::bootupGraphicsPackReady() {
return GameConfig::getInstance()->mField419 || mBootupGfxPack.isReadyOrNeedsParse(); return GameConfig::getInstance()->_419 || mBootupGfxPack.isReadyOrNeedsParse();
} }
void StarterPackMgr::setPackToBootupGraphics() { void StarterPackMgr::setPackToBootupGraphics() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
mBootupGfxPack.parseResource(nullptr); mBootupGfxPack.parseResource(nullptr);
res::registerPackExtension(false, ""); res::registerPackExtension(false, "");
res::setResourceMgrPack(&mBootupGfxPack); res::setResourceMgrPack(&mBootupGfxPack);
@ -141,7 +141,7 @@ void StarterPackMgr::setPackToBootupGraphics() {
} }
void StarterPackMgr::unloadBootupAndBootupLangPack() { void StarterPackMgr::unloadBootupAndBootupLangPack() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
res::setResourceMgrPack(nullptr); res::setResourceMgrPack(nullptr);
mBootupPack.requestUnload(); mBootupPack.requestUnload();
mBootupLangPack.requestUnload(); mBootupLangPack.requestUnload();
@ -149,12 +149,12 @@ void StarterPackMgr::unloadBootupAndBootupLangPack() {
} }
bool StarterPackMgr::bootupPacksReady() { bool StarterPackMgr::bootupPacksReady() {
return GameConfig::getInstance()->mField419 || return GameConfig::getInstance()->_419 ||
(mBootupPack.isReadyOrNeedsParse() && mBootupLangPack.isReadyOrNeedsParse()); (mBootupPack.isReadyOrNeedsParse() && mBootupLangPack.isReadyOrNeedsParse());
} }
void StarterPackMgr::setPackToBootupPack() { void StarterPackMgr::setPackToBootupPack() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
mBootupPack.parseResource(nullptr); mBootupPack.parseResource(nullptr);
mBootupLangPack.parseResource(nullptr); mBootupLangPack.parseResource(nullptr);
res::registerPackExtension(false, ""); res::registerPackExtension(false, "");
@ -163,22 +163,22 @@ void StarterPackMgr::setPackToBootupPack() {
} }
void StarterPackMgr::unloadTitlePack() { void StarterPackMgr::unloadTitlePack() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
res::setResourceMgrPack(nullptr); res::setResourceMgrPack(nullptr);
mTitlePack.requestUnload(); mTitlePack.requestUnload();
} }
} }
bool StarterPackMgr::isTitlePackReady() { bool StarterPackMgr::isTitlePackReady() {
return GameConfig::getInstance()->mField419 || mTitlePack.isReadyOrNeedsParse(); return GameConfig::getInstance()->_419 || mTitlePack.isReadyOrNeedsParse();
} }
bool StarterPackMgr::isTitlePackK() { bool StarterPackMgr::isTitlePackK() {
return GameConfig::getInstance()->mField419 || mTitlePack.hasParsedResource(); return GameConfig::getInstance()->_419 || mTitlePack.hasParsedResource();
} }
void StarterPackMgr::setPackToTitlePack() { void StarterPackMgr::setPackToTitlePack() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
mTitlePack.parseResource(nullptr); mTitlePack.parseResource(nullptr);
res::registerPackExtension(false, ""); res::registerPackExtension(false, "");
res::setResourceMgrPack(&mTitlePack); res::setResourceMgrPack(&mTitlePack);
@ -186,7 +186,7 @@ void StarterPackMgr::setPackToTitlePack() {
} }
void StarterPackMgr::setPackToTitleBGPack() { void StarterPackMgr::setPackToTitleBGPack() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
mTitleBGPack.waitForReady(); mTitleBGPack.waitForReady();
mTitleBGPack.parseResource(nullptr); mTitleBGPack.parseResource(nullptr);
mTitleBGLangPack.waitForReady(); mTitleBGLangPack.waitForReady();
@ -202,7 +202,7 @@ void StarterPackMgr::setPackToTitleBGPack() {
} }
void StarterPackMgr::unloadTitleBGAndAocMainFieldPacksAndStuff() { void StarterPackMgr::unloadTitleBGAndAocMainFieldPacksAndStuff() {
if (!GameConfig::getInstance()->mField419) { if (!GameConfig::getInstance()->_419) {
res::setResourceMgrPack(nullptr); res::setResourceMgrPack(nullptr);
mTitleBGPack.requestUnload(); mTitleBGPack.requestUnload();
mTitleBGLangPack.requestUnload(); mTitleBGLangPack.requestUnload();

View File

@ -0,0 +1,7 @@
#include "KingSystem/System/Terminal.h"
namespace ksys {
SEAD_SINGLETON_DISPOSER_IMPL(Terminal)
} // namespace ksys

View File

@ -0,0 +1,20 @@
#pragma once
#include <heap/seadDisposer.h>
#include <hostio/seadHostIONode.h>
#include "KingSystem/Utils/Types.h"
namespace ksys {
class Terminal : public sead::hostio::Node {
SEAD_SINGLETON_DISPOSER(Terminal)
Terminal() = default;
virtual ~Terminal() = default;
public:
u32 mFlag = 0;
};
KSYS_CHECK_SIZE_NX150(Terminal, 0x30);
} // namespace ksys