mirror of
https://github.com/zeldaret/ss
synced 2026-07-30 16:03:22 -04:00
change everything to use a common types file
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
#include <c/c_math.h>
|
||||
#include <m/m_math.h>
|
||||
#include <nw4r/math/arithmetic.h>
|
||||
|
||||
void mMtx_c::toRot(mAng3_c &out) const {
|
||||
f32 t1 = 0.0f;
|
||||
f32 t0 = m[0][2] + m[2][2];
|
||||
if (t0 > 0.0f) {
|
||||
t1 = t0 * nw4r::math::FrSqrt(t0);
|
||||
}
|
||||
s16 anglex = cM::atan2s(-m[1][2], t1);
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "types.h"
|
||||
#include "toBeSorted/bitwise_flag_helper.h"
|
||||
#include <common.h>
|
||||
|
||||
|
||||
bool BitwiseFlagHelper::checkFlag(u16 slot, u16 shift, const u16 *pData, u16 flagCount) {
|
||||
return (pData[slot] >> shift) & 1;
|
||||
@@ -9,4 +10,4 @@ void BitwiseFlagHelper::setFlag(u16 slot, u16 shift, u16 *pData, u16 flagCount)
|
||||
}
|
||||
void BitwiseFlagHelper::unsetFlag(u16 slot, u16 shift, u16 *pData, u16 flagCount) {
|
||||
pData[slot] &= ~(1 << shift);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
#include "libc.h"
|
||||
#include "types.h"
|
||||
#include "toBeSorted/file_manager.h"
|
||||
#include "toBeSorted/flag_space.h"
|
||||
#include "libc.h"
|
||||
#include "toBeSorted/file_manager.h"
|
||||
#include <common.h>
|
||||
|
||||
u16* FlagSpace::getFlagPtrChecked() {
|
||||
|
||||
u16 *FlagSpace::getFlagPtrChecked() {
|
||||
filemanagerCheck();
|
||||
return mpFlags;
|
||||
}
|
||||
u16* FlagSpace::getFlagPtrUnchecked() {
|
||||
u16 *FlagSpace::getFlagPtrUnchecked() {
|
||||
return mpFlags;
|
||||
}
|
||||
void FlagSpace::unsetAll() {
|
||||
@@ -24,11 +25,10 @@ void FlagSpace::copyFromSaveFile2(u16 *pSaved, u16 offset, u16 flagCount) {
|
||||
|
||||
void FlagSpace::copyFromSaveFile(u16 *pSaved, u16 offset, u16 flagCount) {
|
||||
checkedMemcpy(mpFlags + offset, mCount * 2, pSaved, flagCount * 2);
|
||||
|
||||
}
|
||||
void FlagSpace::filemanagerCheck() {
|
||||
if (FileManager::sInstance->mIsFileUnk1[0]) {
|
||||
return;
|
||||
}
|
||||
while (true) {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
#include "types.h"
|
||||
#include "libc.h"
|
||||
#include <common.h>
|
||||
|
||||
#include "rvl/macros.h"
|
||||
#include "toBeSorted/flag_space.h"
|
||||
#include "toBeSorted/file_manager.h"
|
||||
#include "toBeSorted/bitwise_flag_helper.h"
|
||||
#include "toBeSorted/file_manager.h"
|
||||
#include "toBeSorted/flag_space.h"
|
||||
|
||||
class SceneflagManager {
|
||||
public:
|
||||
public:
|
||||
FlagSpace mSceneflags;
|
||||
FlagSpace mTempflags;
|
||||
FlagSpace mZoneflags;
|
||||
@@ -18,8 +17,8 @@ class SceneflagManager {
|
||||
static u16 sTempFlags[4];
|
||||
static u16 sSceneFlags[8];
|
||||
static u16 sZoneFlags[0xFC];
|
||||
// public:
|
||||
static SceneflagManager* sInstance;
|
||||
// public:
|
||||
static SceneflagManager *sInstance;
|
||||
void doNothing();
|
||||
void setShouldCommit(u16 flag);
|
||||
SceneflagManager();
|
||||
@@ -70,14 +69,12 @@ void SceneflagManager::doNothing() {}
|
||||
void SceneflagManager::setShouldCommit(u16 flag) {
|
||||
mShouldCommit = 1;
|
||||
}
|
||||
SceneflagManager::SceneflagManager():
|
||||
mSceneflags(sSceneFlags, ARRAY_LENGTH(sSceneFlags)),
|
||||
mTempflags(sTempFlags, ARRAY_LENGTH(sTempFlags)),
|
||||
mZoneflags(sZoneFlags, ARRAY_LENGTH(sZoneFlags))
|
||||
{
|
||||
mSceneIdx = 0xFFFF;
|
||||
mShouldCommit = 0;
|
||||
}
|
||||
SceneflagManager::SceneflagManager()
|
||||
: mSceneflags(sSceneFlags, ARRAY_LENGTH(sSceneFlags)), mTempflags(sTempFlags, ARRAY_LENGTH(sTempFlags)),
|
||||
mZoneflags(sZoneFlags, ARRAY_LENGTH(sZoneFlags)) {
|
||||
mSceneIdx = 0xFFFF;
|
||||
mShouldCommit = 0;
|
||||
}
|
||||
// SceneflagManager::SceneflagManager()
|
||||
// {
|
||||
// mSceneflags.init(sSceneFlags, ARRAY_LENGTH(sSceneFlags));
|
||||
@@ -166,7 +163,7 @@ bool SceneflagManager::checkZoneFlag(u16 roomId, u16 flag) {
|
||||
return false;
|
||||
} else {
|
||||
u16 zoneflag = flag - 0xC0;
|
||||
u16* pData = FileManager::sInstance->getZoneFlagsConst();
|
||||
u16 *pData = FileManager::sInstance->getZoneFlagsConst();
|
||||
u16 slot = getZoneflagSlot(roomId, zoneflag);
|
||||
return mFlagHelper.checkFlag(slot, zoneflag % 16, pData, 0xFC);
|
||||
}
|
||||
@@ -175,22 +172,22 @@ bool SceneflagManager::checkUncommittedZoneflag(u16 roomId, u16 flag) {
|
||||
if (flag == 0xFF) {
|
||||
return false;
|
||||
} else {
|
||||
u16* pData;
|
||||
u16 *pData;
|
||||
u16 zoneflag = flag - 0xC0;
|
||||
pData = mZoneflags.getFlagPtrUnchecked();
|
||||
u16 slot = getZoneflagSlot(roomId, zoneflag);
|
||||
return mFlagHelper.checkFlag(slot, zoneflag % 16, pData, mZoneflags.mCount);
|
||||
}
|
||||
}
|
||||
inline bool checkSceneflag(SceneflagManager* mgr, u16 flag) {
|
||||
u16* pData;
|
||||
pData = mgr->mSceneflags.getFlagPtrUnchecked();
|
||||
// u16 slot = getSceneflagSlot2(flag);
|
||||
return mgr->mFlagHelper.checkFlag(mgr->getSceneflagSlot(flag), flag % 16, pData, mgr->mSceneflags.mCount);
|
||||
inline bool checkSceneflag(SceneflagManager *mgr, u16 flag) {
|
||||
u16 *pData;
|
||||
pData = mgr->mSceneflags.getFlagPtrUnchecked();
|
||||
// u16 slot = getSceneflagSlot2(flag);
|
||||
return mgr->mFlagHelper.checkFlag(mgr->getSceneflagSlot(flag), flag % 16, pData, mgr->mSceneflags.mCount);
|
||||
}
|
||||
bool SceneflagManager::checkUncommittedTempOrSceneflag(u16 flag) {
|
||||
if (flag >= 0x80) {
|
||||
u16* pData;
|
||||
u16 *pData;
|
||||
u16 tempflag = flag - 0x80;
|
||||
pData = mTempflags.getFlagPtrUnchecked();
|
||||
u16 slot = getTempflagSlot(tempflag);
|
||||
@@ -211,13 +208,13 @@ bool SceneflagManager::checkFlag(u16 roomId, u16 flag) {
|
||||
}
|
||||
}
|
||||
bool SceneflagManager::checkSceneflagGlobal(u16 sceneIdx, u16 flag) {
|
||||
u16* pData = FileManager::sInstance->getSceneFlagsConst();
|
||||
u16 *pData = FileManager::sInstance->getSceneFlagsConst();
|
||||
return mFlagHelper.checkFlag(getSceneflagSlotGlobal(sceneIdx, flag), flag % 16, pData, 0x800);
|
||||
}
|
||||
bool SceneflagManager::checkTempOrSceneflag(u16 flag) {
|
||||
if (flag >= 0x80) {
|
||||
u16 tempflag = flag - 0x80;
|
||||
const u16* pData = FileManager::sInstance->getTempFlagsConst();
|
||||
const u16 *pData = FileManager::sInstance->getTempFlagsConst();
|
||||
u16 slot = getTempflagSlot(tempflag);
|
||||
return mFlagHelper.checkFlag(slot, tempflag % 16, pData, 4);
|
||||
} else {
|
||||
@@ -233,7 +230,7 @@ bool SceneflagManager::checkUncommittedFlag(u16 roomId, u16 flag) {
|
||||
}
|
||||
void SceneflagManager::setZoneflag(u16 roomId, u16 flag) {
|
||||
if (checkUncommittedZoneflag2(roomId, flag) != 1 && flag != 0xFF) {
|
||||
u16* pData;
|
||||
u16 *pData;
|
||||
u16 zoneflag = flag - 0xC0;
|
||||
pData = mZoneflags.getFlagPtrChecked();
|
||||
u16 slot = getZoneflagSlot(roomId, zoneflag);
|
||||
@@ -250,19 +247,19 @@ void SceneflagManager::setFlag(u16 roomId, u16 flag) {
|
||||
}
|
||||
void SceneflagManager::setSceneflagGlobal(u16 sceneIdx, u16 flag) {
|
||||
u16 slot = getSceneflagSlotGlobal(sceneIdx, flag);
|
||||
u16* pData = FileManager::sInstance->getSceneFlagsConst();
|
||||
u16 *pData = FileManager::sInstance->getSceneFlagsConst();
|
||||
u16 pCurData = pData[slot];
|
||||
mFlagHelper.setFlag(0, flag % 16, &pCurData, 2);
|
||||
FileManager::sInstance->setSceneFlags(&pCurData, slot, 1);
|
||||
if (sceneIdx == mSceneIdx) {
|
||||
u16* pData2 = mSceneflags.getFlagPtrChecked();
|
||||
u16 *pData2 = mSceneflags.getFlagPtrChecked();
|
||||
mFlagHelper.setFlag(getSceneflagSlot(flag), flag % 16, pData2, mSceneflags.mCount);
|
||||
}
|
||||
setShouldCommit(flag);
|
||||
}
|
||||
void SceneflagManager::setTempOrSceneflag(u16 flag) {
|
||||
if (checkUncommittedTempOrSceneflag2(flag) != 1) {
|
||||
u16* pData;
|
||||
u16 *pData;
|
||||
if (flag >= 0x80) {
|
||||
u16 tempflag = flag - 0x80;
|
||||
pData = mTempflags.getFlagPtrChecked();
|
||||
@@ -276,7 +273,7 @@ void SceneflagManager::setTempOrSceneflag(u16 flag) {
|
||||
}
|
||||
void SceneflagManager::unsetZoneflag(u16 roomId, u16 flag) {
|
||||
if (checkUncommittedZoneflag2(roomId, flag) != 0 && flag != 0xFF) {
|
||||
u16* pData;
|
||||
u16 *pData;
|
||||
u16 zoneflag = flag - 0xC0;
|
||||
pData = mZoneflags.getFlagPtrChecked();
|
||||
u16 slot = getZoneflagSlot(roomId, zoneflag);
|
||||
@@ -293,19 +290,19 @@ void SceneflagManager::unsetFlag(u16 roomId, u16 flag) {
|
||||
}
|
||||
void SceneflagManager::unsetSceneflagGlobal(u16 sceneIdx, u16 flag) {
|
||||
u16 slot = getSceneflagSlotGlobal(sceneIdx, flag);
|
||||
u16* pData = FileManager::sInstance->getSceneFlagsConst();
|
||||
u16 *pData = FileManager::sInstance->getSceneFlagsConst();
|
||||
u16 pCurData = pData[slot];
|
||||
mFlagHelper.unsetFlag(0, flag % 16, &pCurData, 2);
|
||||
FileManager::sInstance->setSceneFlags(&pCurData, slot, 1);
|
||||
if (sceneIdx == mSceneIdx) {
|
||||
u16* pData2 = mSceneflags.getFlagPtrChecked();
|
||||
u16 *pData2 = mSceneflags.getFlagPtrChecked();
|
||||
mFlagHelper.unsetFlag(getSceneflagSlot(flag), flag % 16, pData2, mSceneflags.mCount);
|
||||
}
|
||||
setShouldCommit(flag);
|
||||
}
|
||||
void SceneflagManager::unsetTempOrSceneflag(u16 flag) {
|
||||
if (checkUncommittedTempOrSceneflag2(flag) != 0) {
|
||||
u16* pData;
|
||||
u16 *pData;
|
||||
if (flag >= 0x80) {
|
||||
u16 tempflag = flag - 0x80;
|
||||
pData = mTempflags.getFlagPtrChecked();
|
||||
@@ -326,6 +323,6 @@ s32 SceneflagManager::doCommit() {
|
||||
FileManager::getInstance()->setZoneFlags(mZoneflags.getFlagPtrUnchecked(), 0, mZoneflags.mCount);
|
||||
mShouldCommit = false;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user