summaryrefslogtreecommitdiff
path: root/src/KingSystem/Resource/Event/resResourceDemo.cpp
blob: 81b245cabe8c9ce95c227c629d505e6b7fb16cf2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "KingSystem/Resource/Event/resResourceDemo.h"
#include "KingSystem/Resource/resEntryFactory.h"
#include "KingSystem/Resource/resSystem.h"

namespace ksys::res {

void Demo::registerFactory(sead::Heap* heap) {
    auto* rm = sead::ResourceMgr::instance();
    if (!rm)
        return;

    if (rm->getDefaultFactory() != rm->findFactory("bdemo"))
        return;

    res::registerEntryFactory(new (heap) EntryFactory<Demo>(1.0, sizeof(Demo)), "bdemo");
}

Demo::Demo() : agl::utl::IParameterIO(".bdemo", 0) {}

void Demo::doCreate_(u8* buffer, u32, sead::Heap*) {
    using FormatStr = sead::FormatFixedSafeString<128>;

    mLocation.init(sead::Vector3f::zero, FormatStr("Location"), "", &mDemoSettingObj);
    mWeather.init(FormatStr("none"), FormatStr("Weather"), "", &mDemoSettingObj);
    mTime.init(-1.0, FormatStr("Time"), "", &mDemoSettingObj);
    mStartType.init(FormatStr("Load"), FormatStr("StartType"), "", &mDemoSettingObj);
    mNoEntryActors.init(FormatStr("none"), FormatStr("NoEntryActors"), "", &mDemoSettingObj);
    mSaveType.init(FormatStr("none"), FormatStr("SaveType"), "", &mDemoSettingObj);
    mExtension.init(FormatStr("evfl"), FormatStr("Extension"), "", &mDemoSettingObj);
    mIsFlashbackDemo.init(false, FormatStr("IsFlashbackDemo"), "", &mDemoSettingObj);

    mOverwritePlayerPos.init(sead::Vector3f::zero, FormatStr("OverwritePlayerPos"), "",
                             &mDemoSettingObj);
    mIsOverwritePlayerPos.init(false, FormatStr("IsOverwritePlayerPos"), "", &mDemoSettingObj);

    mMapProjectName.init("", FormatStr("MapProjectName"), "", &mDemoSettingObj);
    mMapResourceName.init("", FormatStr("MapResourceName"), "", &mDemoSettingObj);
    mIsStartupDemo.init(false, FormatStr("IsStartupDemo"), "", &mDemoSettingObj);
    mProgress.init("", FormatStr("Progress"), "", &mDemoSettingObj);
    mProductFormat.init("", FormatStr("ProductFormat"), "", &mDemoSettingObj);

    mNextDemo.init("", FormatStr("NextDemo"), "", &mDemoSettingObj);

    mIsStopChemical.init(true, FormatStr("IsStopChemical"), "", &mDemoSettingObj);

    mPlayerEndPos.init(sead::Vector3f::zero, FormatStr("PlayerEndPos"), "", &mDemoSettingObj);
    mIsMovePlayerEndPos.init(false, FormatStr("IsMovePlayerEndPos"), "", &mDemoSettingObj);

    mStartLocationType.init(FormatStr("Starter"), FormatStr("StartLocationType"), "",
                            &mDemoSettingObj);
    mEventMode.init(FormatStr("Seamless"), FormatStr("EventMode"), "", &mDemoSettingObj);
    mWithTransAnimation.init(false, FormatStr("WithTransAnimation"), "", &mDemoSettingObj);

    mOverwritePlayerRotY.init(0.0, FormatStr("OverwritePlayerRotY"), "", &mDemoSettingObj);
    mPlayerEndRotY.init(0.0, FormatStr("PlayerEndRotY"), "", &mDemoSettingObj);
    mStartLocationRotY.init(0.0, FormatStr("StartLocationRotY"), "", &mDemoSettingObj);
    mStartPosName.init("", FormatStr("StartPosName"), "", &mDemoSettingObj);
    mEndPosName.init("", FormatStr("EndPosName"), "", &mDemoSettingObj);

    mSkipPolicy.init("Auto", FormatStr("SkipPolicy"), "", &mDemoSettingObj);
    mDispName.init("", FormatStr("DispName"), "", &mDemoSettingObj);
    mTraverseLimit.init(0.0, FormatStr("TraverseLimit"), "", &mDemoSettingObj);

    mForceEnableIK.init(false, FormatStr("ForceEnableIK"), "", &mDemoSettingObj);

    mIsUseNakedSound.init(false, FormatStr("IsUseNakedSound"), "", &mDemoSettingObj);
    mWorldMuteType.init("Thru_ShakeNoise", FormatStr("WorldMuteType"), "", &mDemoSettingObj);
    mBgmStopType.init("StopWithFade", FormatStr("BgmStopType"), "", &mDemoSettingObj);

    mTraverseType.init("", FormatStr("TraverseType"), "", &mDemoSettingObj);
    mTraversePos.init(sead::Vector3f::zero, FormatStr("TraversePos"), "", &mDemoSettingObj);

    mVoiceComplete.init(false, FormatStr("VoiceComplete"), "", &mProgressObj);
    mSeComplete.init(false, FormatStr("SEComplete"), "", &mProgressObj);
    mBgmComplete.init(false, FormatStr("BgmComplete"), "", &mProgressObj);
    mEffectComplete.init(false, FormatStr("EffectComplete"), "", &mProgressObj);
    mEnvComplete.init(false, FormatStr("EnvComplete"), "", &mProgressObj);
    mFinalComplete.init(false, FormatStr("FinalComplete"), "", &mProgressObj);

    mWaitLoadActorNames.init("", FormatStr("WaitLoadActorNames"), "", &mDemoSettingObj);
    mHideActors.init("", FormatStr("HideActors"), "", &mDemoSettingObj);
    mDisableFarActors.init("", FormatStr("DisableFarActors"), "", &mDemoSettingObj);
    mTraverseMergePolicy.init("default", FormatStr("TraverseMergePolicy"), "", &mDemoSettingObj);
    mHighPriorityActors.init("", FormatStr("HighPriorityActors"), "", &mDemoSettingObj);
    mTraverseCutPos.init(sead::Vector3f::zero, FormatStr("TraverseCutPos"), "", &mDemoSettingObj);
    mTraverseCutRadius.init(0.0, FormatStr("TraverseCutRadius"), "", &mDemoSettingObj);
    mTraverseInnerCutPos1.init(sead::Vector3f::zero, FormatStr("TraverseInnerCutPos1"), "",
                               &mDemoSettingObj);
    mTraverseInnerCutRadius1.init(0.0, FormatStr("TraverseInnerCutRadius1"), "", &mDemoSettingObj);
    mTraverseInnerCutPos2.init(sead::Vector3f::zero, FormatStr("TraverseInnerCutPos2"), "",
                               &mDemoSettingObj);
    mTraverseInnerCutRadius2.init(0.0, FormatStr("TraverseInnerCutRadius2"), "", &mDemoSettingObj);
    mDisableTraverseTime.init(-1, FormatStr("DisableTraverseTime"), "", &mDemoSettingObj);

    addObj(&mDemoSettingObj, FormatStr("DemoSetting"));
    addObj(&mProgressObj, FormatStr("Progress"));

    if (buffer)
        applyResParameterArchive(agl::utl::ResParameterArchive{buffer});
}

}  // namespace ksys::res