CScriptSpecialFunction progress & symbol updates

Former-commit-id: 84d590be2f
This commit is contained in:
2022-10-04 20:16:03 -04:00
parent c8528fc2ee
commit e7ecda7a36
20 changed files with 234 additions and 152 deletions

View File

@@ -258,9 +258,9 @@ public:
const CTransform4f& GetTransform() const { return x34_transform; }
void SetTransform(const CTransform4f& xf) {
x34_transform = xf;
xe4_27_notInSortedLists = true;
xe4_28_transformDirty = true;
xe4_29_actorLightsDirty = true;
SetTransformDirty(true);
SetTransformDirtySpare(true);
SetPreRenderHasMoved(true);
}
void SetRotation(const CQuaternion& rot) {
SetTransform(rot.BuildTransform4f(GetTranslation()));

View File

@@ -41,23 +41,22 @@ private:
static bool mManagerInstalled;
};
// TODO where?
enum EFlowState {
kFS_None,
kFS_WinBad,
kFS_WinGood,
kFS_WinBest,
kFS_LoseGame,
kFS_Default,
kFS_StateSetter,
kFS_PreFrontEnd,
kFS_FrontEnd,
kFS_Game,
kFS_GameExit,
};
class CMain {
public:
enum ERestartMode {
kRM_None,
kRM_WinBad,
kRM_WinGood,
kRM_WinBest,
kRM_LoseGame,
kRM_Default,
kRM_StateSetter,
kRM_PreFrontEnd,
kRM_FrontEnd,
kRM_Game,
kRM_GameExit,
};
CMain();
~CMain();
@@ -78,7 +77,7 @@ public:
bool CheckTerminate();
bool CheckReset();
void OpenWindow();
void SetFlowState(EFlowState s) { x12c_flowState = s; }
void SetRestartMode(ERestartMode s) { x12c_restartMode = s; }
void SetMaxSpeed(bool v) {
// ?
@@ -109,7 +108,7 @@ private:
f32 x120_;
f32 x124_;
CGameGlobalObjects* x128_gameGlobalObjects;
EFlowState x12c_flowState;
ERestartMode x12c_restartMode;
rstl::reserved_vector< uint, 10 > x130_frameTimes;
int x15c_frameTimeIdx;
bool x160_24_finished : 1;

View File

@@ -24,6 +24,11 @@ class CModelFlags;
// TODO move
#include "Kyoto/Math/CQuaternion.hpp"
struct SAdvancementDeltas {
public:
const CVector3f& GetOffsetDelta() const { return x0_posDelta; }
const CQuaternion& GetOrientationDelta() const { return xc_rotDelta; }
private:
CVector3f x0_posDelta;
CQuaternion xc_rotDelta;
};

View File

@@ -5,7 +5,17 @@
#include "Kyoto/Input/CRumbleGenerator.hpp"
class CStateManager;
class CVector3f;
class CRumbleManager {
public:
CRumbleManager();
~CRumbleManager();
void Rumble(CStateManager&, const CVector3f&, ERumbleFxId, float, ERumblePriority);
void Rumble(CStateManager&, ERumbleFxId, float, ERumblePriority);
private:
CRumbleGenerator x0_rumbleGenerator;
};

View File

@@ -138,6 +138,7 @@ public:
}
CEnvFxManager* EnvFxManager() { return x880_envFxManager; }
const CEnvFxManager* GetEnvFxManager() const { return x880_envFxManager; }
CRumbleManager* GetRumbleManager() { return x88c_rumbleManager; }
CRandom16* GetActiveRandom() const { return x900_random; }
@@ -162,19 +163,33 @@ public:
const CDamageInfo& info, const CMaterialFilter& filter,
const CVector3f& knockbackVec);
// State transitions
void DeferStateTransition(EStateManagerTransition t);
EStateManagerTransition GetDeferredStateTransition() const { return xf90_deferredTransition; }
void SetBossParams(TUniqueId bossId, float maxEnergy, u32 stringIdx);
void SetPendingOnScreenTex(CAssetId texId, const CVector2i& origin, const CVector2i& extent) {
void EnterMapScreen() { DeferStateTransition(kSMT_MapScreen); }
void EnterPauseScreen() { DeferStateTransition(kSMT_PauseGame); }
void EnterLogBookScreen() { DeferStateTransition(kSMT_LogBook); }
void EnterSaveGameScreen() { DeferStateTransition(kSMT_SaveGame); }
void EnterMessageScreen(uint, float);
bool GetWantsToEnterMapScreen() const { return xf90_deferredTransition == kSMT_MapScreen; }
bool GetWantsToEnterPauseScreen() const { return xf90_deferredTransition == kSMT_PauseGame; }
bool GetWantsToEnterLogBookScreen() const { return xf90_deferredTransition == kSMT_LogBook; }
bool GetWantsToEnterSaveGameScreen() const { return xf90_deferredTransition == kSMT_SaveGame; }
bool GetWantsToEnterMessageScreen() const {
return xf90_deferredTransition == kSMT_MessageScreen;
}
void SetEnergyBarActorInfo(TUniqueId bossId, float maxEnergy, u32 stringIdx);
void SetPendingOnScreenTex(CAssetId texId, const CVector2i& origin, const CVector2i& extent);/* {
xef4_pendingScreenTex.x0_id = texId;
xef4_pendingScreenTex.x4_origin = origin;
xef4_pendingScreenTex.xc_extent = extent;
}
}*/
const SOnScreenTex& GetPendingScreenTex() const { return xef4_pendingScreenTex; }
float IntegrateVisorFog(float f);
void SetShouldQuitGame(bool should) { xf94_25_quitGame = should; }
void SetSkipCinematicSpecialFunction(TUniqueId id) { xf38_skipCineSpecialFunc = id; }
void QuitGame() { xf94_25_quitGame = true; }
bool GetWantsToQuit() const { return xf94_25_quitGame; }
void SetCinematicSkipObject(TUniqueId id) { xf38_skipCineSpecialFunc = id; }
void SetInSaveUI(bool b) { xf94_28_inSaveUI = b; }
bool GetInSaveUI() const { return xf94_28_inSaveUI; }
void SetIsFullThreat(bool v) { xf94_30_fullThreat = v; }

View File

@@ -115,11 +115,11 @@ private:
bool x1e5_24_doSave : 1;
bool x1e5_25_playerInArea : 1;
bool x1e5_26_displayBillboard : 1;
rstl::optional_object< CToken > x1e8_; // CTexture?
rstl::optional_object< CToken > x1e8_;
public:
CScriptSpecialFunction(TUniqueId, const rstl::string&, const CEntityInfo&, const CTransform4f&,
ESpecialFunction, const rstl::string&, float, float, float, float,
const CVector3f&, const CColor&, bool, const CDamageInfo&, s32, s32,
const CVector3f&, const CColor&, bool, const CDamageInfo&, int, int,
CPlayerState::EItemType, u16, u16, u16);
void Accept(IVisitor& visitor) override;
@@ -148,7 +148,7 @@ public:
void DeleteEmitter(CSfxHandle& handle);
int GetSpecialEnding(const CStateManager&) const;
void AddOrUpdateEmitter(float pitch, CSfxHandle& handle, u16 id, const CVector3f& pos, uchar vol);
void AddOrUpdateEmitter(float pitch, CSfxHandle& handle, u16 id, CVector3f pos, u8 vol);
};
#endif _CSCRIPTSPECIALFUNCTION_HPP

View File

@@ -98,11 +98,11 @@ private:
};
template < typename T >
inline const T* TCastToConstPtr(const CEntity* p) {
static inline const T* TCastToConstPtr(const CEntity* p) {
return TCastToPtr< T >(const_cast< CEntity* >(p));
}
template < typename T >
inline const T* TCastToConstPtr(const CEntity& p) {
static inline const T* TCastToConstPtr(const CEntity& p) {
return TCastToPtr< T >(const_cast< CEntity& >(p));
}